So mein Hauptteil sieht nun so aus:
if(Spieler.Anz_Player>1)
{
temp3=1;
this.Ausgabe_Player1.Text = "würfelt...";
temp2=1;
timer1.Enabled=true;
while(temp3==1);
temp3=1;
this.Ausgabe_Player2.Text = "würfelt...";
temp2=2;
timer1.Enabled=true;
}
if(Spieler.Anz_Player>2)
{
while(temp3==1);
temp3=1;
this.Ausgabe_Player3.Text = "würfelt...";
temp2=3;
timer1.Enabled=true;
}
if(Spieler.Anz_Player>3)
{
while(temp3==1);
temp3=1;
this.Ausgabe_Player4.Text = "würfelt...";
temp2=4;
timer1.Enabled=true;
}
if(Spieler.Anz_Player>4)
{
while(temp3==1);
temp3=1;
this.Ausgabe_Player5.Text = "würfelt...";
temp2=5;
timer1.Enabled=true;
}
if(Spieler.Anz_Player>5)
{
while(temp3==1);
temp3=1;
this.Ausgabe_Player6.Text = "würfelt...";
temp2=6;
timer1.Enabled=true;
}
Das ist mein Timer:
private void timer1_Tick(object sender, System.EventArgs e)
{
switch(temp2)
{
case 1:
this.WürfelSpieler1.Image = new Bitmap(assembly.GetManifestResourceStream("Risiko.Grafiks.Würfel"+Zufall[0]+".bmp")) as Image;
this.Ausgabe_Player1.Text = "";
// timer1.Enabled=false;
// this.Ausgabe_Player2.Text = "würfelt...";
break;
case 2:
this.WürfelSpieler2.Image = new Bitmap(assembly.GetManifestResourceStream("Risiko.Grafiks.Würfel"+Zufall[1]+".bmp")) as Image;
this.Ausgabe_Player2.Text = "";
timer1.Enabled=false;
// if(Spieler.Anz_Player>2)
// this.Ausgabe_Player3.Text = "würfelt...";
break;
case 3:
this.WürfelSpieler3.Image = new Bitmap(assembly.GetManifestResourceStream("Risiko.Grafiks.Würfel"+Zufall[2]+".bmp")) as Image;
this.Ausgabe_Player3.Text = "";
timer1.Enabled=false;
// if(Spieler.Anz_Player>3)
// this.Ausgabe_Player4.Text = "würfelt...";
break;
case 4:
this.WürfelSpieler4.Image = new Bitmap(assembly.GetManifestResourceStream("Risiko.Grafiks.Würfel"+Zufall[3]+".bmp")) as Image;
this.Ausgabe_Player4.Text = "";
timer1.Enabled=false;
// if(Spieler.Anz_Player>4)
// this.Ausgabe_Player5.Text = "würfelt...";
break;
case 5:
this.WürfelSpieler5.Image = new Bitmap(assembly.GetManifestResourceStream("Risiko.Grafiks.Würfel"+Zufall[4]+".bmp")) as Image;
this.Ausgabe_Player5.Text = "";
timer1.Enabled=false;
// if(Spieler.Anz_Player>5)
// this.Ausgabe_Player6.Text = "würfelt...";
break;
case 6:
this.WürfelSpieler6.Image = new Bitmap(assembly.GetManifestResourceStream("Risiko.Grafiks.Würfel"+Zufall[5]+".bmp")) as Image;
this.Ausgabe_Player6.Text = "";
timer1.Enabled=false;
break;
}
temp3=0;
}
Doch irgendwie habe ich so 2 Probleme.
Es wird immer nur der Letzte Würfel angezeigt, und dann auch nur ab und an...
Mit der "Warte - funktion" hängt sich das Prog einfach auf.
Wisst ihr woran das liegen könnte?
Achja: Die temp Attribute habe ich vorerst global gemacht.
private void comboseminargruppe2_SelectionChangeCommitted(object sender, System.EventArgs e)
{
combodozenthonorar.Items.Clear();
try
{
DataSet test;
string temp = comboseminargruppe2.Text;
test = Abfrage("SELECT personen.personenname FROM seminargruppen, lehrauftraege, personen WHERE '" + temp + "' = seminargruppen.seminargruppenbezeichnung AND seminargruppen.seminargruppennummer = lehrauftraege.seminargruppennummer AND lehrauftraege.personennummer = personen.personennummer", "Personen");
combodozenthonorar.DataSource = test.Tables["personen"];
combodozenthonorar.DisplayMember = "personenname";
test.Clear();
}
catch {}
}
Mein Problem jetzt ist, dass beim ersten auswählen alles wie gewünscht klappt, beim zweiten aber eine Exception an der Stelle
string temp = comboseminargruppe2.Text
kommt. Und zwar folgende:
Eine nicht behandelte Ausnahme des Typs 'System.ArgumentException' ist in system.windows.forms.dll aufgetreten.
Zusätzliche Informationen: Die Items-Auflistung kann nicht geändert werden, wenn die DataSource-Eigenschaft gesetzt ist.
Kurz zusammengefasst:
Je nachdem was du programmierst:
MFC -> CString
C++ -> std::string
.NET -> System::String
AnsiString ist der 'CString' von Borland
peterino schrieb:
(MFC Visual .net C++)
Die Wortschöpfungen werden ja immer kreativer
Als erstes würde ich dir empfehlen zu entscheiden welche GUI die verwenden möchtest. Auch wenn du MFC sagst(dann wärst du im falschen Forum) meinst du eher wohl Windows Form weil du ja da auch Klassennamen angegeben hattest.
Fertig gibts dein Eingabefenster nicht, ist aber sehr leicht zu realisieren. Einfach eine Form erstellen, die Controls so platzieren wie du die brauchst und dann evtl. noch Accept und CancelButton setzen, und schon hast du dein Fenster. Den Eingabewert könntest du dann noch als öffentliches Property angeben und das wars dann schon. Dann kannst du deine Form in der Art aufrufen:
if(DialogResult.OK == meineForm.ShowDialog())
MessageBox.Show("Eingegeben wurde: " + meineForm.Eingabe);
Das ist C# Pseudocode, da du mit den .Net Klassen arbeitest gehts in C++ ja genauso von der Logik her, wobei meineForm halt ne Variable von Typ deiner selbsdesignten Form ist und Eingabe nen öffentliches string Property.
Dieser Thread wurde von Moderator/in dEUs aus dem Forum MFC (Visual C++) in das Forum C# und .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
da Du ja ein DB anhängen möchtest
muss dieser User als Benutzer somit als User unter den Benutzern der Masterdatenbank existieren.
An/Einhängen einer neuen Db geht dann meines Kenntnisstandes wirklich nur als
Oberguru des MS SQL-Server!!! ---> Adminaccount auf Server
hmm habe zwar nur VS 2003 und arbeite nur mit VB.NET und C#.NET.
Aber ich denke lagere den Dialog in eine eigenständige Klassenbbibliothek aus.
Erstelle diese dann, als Ergebnis haste dann eine DLL.
Die kannste dann als Verweis in ein anderes Projekt aufnehmen!
Und aus dieser DLL kannste dann denn Dialog sofern der im Klassenbiblitheksprojekt Public ist aufrufen.
Die Projektarten gibts ja denke ich in allen .NET-Sprachen deshalb kann man auch so vorgehen.
Im Klassenbibliotheksprojekt fügst Du sozusagen die abgeleitete öffentliche Dialogklasse ein, und kombilierst es, um die Klassenbibliothek als DLL zu haben.
Auf jeden Fall hast Du so "Managed Code"!
mfg sclearscreen
hoffentlich konnte ich irgendwie was rüberbringen
es gibt eine Application Property ProductVersion, die sich aus verschiedenen Teilen zusammensetzt, die du aber nicht selbst verändern kannst. Kannst es dir ja in der MSDN Library mal anschauen.
gruß, jules
wenn ich mich nicht irre kann man darauf schon einen gewissen einfluss haben...
[Assembly: AssemblyVersion("1.0.0.0")]
Diese Sicherheitsabfrage ist so von Microsoft gewollt.
Bei Outlook XP konnte man die noch deaktivieren. Bei Outlook 2003 nicht mehr.
Zum deaktivieren suche mal bei Google.
Besser ist es aber wenn du die Mail über SMTP selbst versendest.
Für c# gibts sogar auch schon Klassen dafür.