Autor Beitrag
Blackheart
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

ME
D3Prof.-D6Standard
BeitragVerfasst: Sa 20.03.04 15:42 
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 ?

ausblenden volle Höhe 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';// Das ist nur zur Überprüfung !
  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 user profile iconPeter Lustig: Topic verschoben
ixtreme
Gast
Erhaltene Danke: 1



BeitragVerfasst: Sa 20.03.04 15:53 
wieso schreibst du a nicht einfach global?


ixtreme.de
adler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 511

Windows XP
Delphi 05 Pers
BeitragVerfasst: 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 ^^

_________________
Wo's nix zu gucken gibt, gibts vielleicht was zu hören.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Blackheart Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

ME
D3Prof.-D6Standard
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 20.03.04 17:08 
Hast Du mein Posting gelesen? Damit sollte das auch ohne globale Variable gehen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 20.03.04 19:59 
klar... auch gut