Entwickler-Ecke
Sonstiges (Delphi) - Problem mit Variable
Blackheart - Sa 20.03.04 15:42
Titel: Problem mit Variable
Habe folgendes Problem!
Habe sechs Bilder und die soll'n Zufällig gewählt werden das klappt ja.
das sind Würfel, also bei 0 wäre es das Bild mit der Eins usw.
Das mit dem Label hab ich nur eingebaut um zu sehen welche zufallsvariable grad erzeugt wurde,und ob das klappt.
Jetzt mein Problem
Ich möchte gern bei Image.klick das ich weiss welches Bild gerade da ist,so wie ich das hier gemacht habe erkennt er nur 0 oder 1 irgendwie muss ich die Variable an die Image.klick Methode übergeben aber wie ?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| procedure TForm1.Button1Click(Sender: TObject); var a: integer; begin randomize; a:=Random(6);
if a=0 then Label1.Caption:='1'; if a=1 then Label1.Caption:='2'; if a=2 then Label1.Caption:='3'; if a=3 then Label1.Caption:='4'; if a=4 then Label1.Caption:='5'; if a=5 then Label1.Caption:='6';
if a=0 then image1.Picture.LoadFromFile(ExtractFilePath(paramStr(0)) + '1.bmp'); if a=1 then image1.Picture.LoadFromFile(ExtractFilePath(paramStr(0)) + '2.bmp'); if a=2 then image1.Picture.LoadFromFile(ExtractFilePath(paramStr(0)) + '3.bmp'); if a=3 then image1.Picture.LoadFromFile(ExtractFilePath(paramStr(0)) + '4.bmp'); if a=4 then image1.Picture.LoadFromFile(ExtractFilePath(paramStr(0)) + '5.bmp'); if a=5 then image1.Picture.LoadFromFile(ExtractFilePath(paramStr(0)) + '6.bmp');
procedure TForm1.Image1Click(Sender: TObject); begin if a=0 then image2.Picture.LoadFromFile(ExtractFilePath(paramStr(0)) + '1.bmp'); end; |
Moderiert von
Peter Lustig: Topic verschoben
Anonymous - Sa 20.03.04 15:53
wieso schreibst du a nicht einfach global?
ixtreme.de
adler - Sa 20.03.04 15:54
Ist so da dein Code?
Sieht komisch aus, aber wenns funzt... declarier mal die variable a global...
Edit: Oh nein er war schneller ^^
Christian S. - Sa 20.03.04 16:07
Wenn ich das Problem richtig verstanden habe, kannst Du auch die Tag-Eigenschaft des Images beim Laden auf die Nummer des Bildes setzen und im OnClick abfragen.
Blackheart - Sa 20.03.04 16:42
Mein Problem ist beim Button.klick möchte ich sechs verschiedene Bilder laden im zufallsprinzip das war ja nicht das Problem.
Da ich wissen wollte ob auch das richtige Bild zum Wert geladen wird hab ich das mit dem Label eingefügt also das Label zeigt dann 1 an wenn der wert der Variablen 0 ist also weiss ich das mein Bild 1.bmp geladen wird.
Das sollte dazu sein ob die werte auch hinhaun also bei 0 kommt das Bild mit Würfel1 usw.
Aber jetzt kommts ich möchte gern das wenn das Image1 den wert 0 hat also mein Bild 1.bmp lädt auch die Image1.klick Methode das mitkriegt das der wert 0 ist.
Ich möchte dann nähmlich mit diesem wert weiter arbeiten aber das klappt nun mal nicht auch wenn ichs global vereinbare.
Die klick Methode erkennt nur den wert 0 oder 1
Ich hab ja angegeben in Button.klick if a=0 then aber !!!???
Danke für die Antwort!!!
Christian S. - Sa 20.03.04 17:08
Hast Du mein Posting gelesen? Damit sollte das auch ohne globale Variable gehen.
Delete - Sa 20.03.04 18:48
Deklarier dein 'a' global, also direkt da wo "Form1:TForm1;" steht und gib ihm dabei gleich einen aussagekräftigen Namen wie 'Würfelzahl'.
Und sieh dir auch mal die Funktion IntToStr an. --> Label1.Caption:=IntToStr(a);
Das ist um einiges sparsamer als deine zig if hintereinander... besonders da wo du dann deine Images laden willst.
Ach ja und randomize solltest du nur einmal beim Start der Anwendung aufrufen.
Christian S. - Sa 20.03.04 18:54
Ich finde, es ist mit der Tag-Eigenschaft übersichtlicher, weil die Information dort ist, wo sie hingehört: beim entsprechenden Objekt.
Delete - Sa 20.03.04 19:59
klar... auch gut
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!