Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schleife für Array beginnt an falscher Stelle (https://www.delphipraxis.net/146766-schleife-fuer-array-beginnt-falscher-stelle.html)

Fussel9 26. Jan 2010 20:41


Schleife für Array beginnt an falscher Stelle
 
Hi habe hier schon einiges zu meinem projekt gepostet..

das war das jetzige resultat:

Delphi-Quellcode:
//Aufruf
procedure TFormMain.Start;
begin
if not (Runde >= 20) then
  begin
    Inc(Runde);
    Austeilen([Card1,Card2,Card3,Card4,Card5,Card6,Card7,Card8,
              Card9,Card10,Card11,Card12,Card13,Card14,Card15,
              Card16,Card17,Card18,Card19,Card20],[OpCa1,OpCa2,
              OpCa3,OpCa4,OpCa5,OpCa6,OpCa7,OpCa8,OpCa9,OpCa10,
              OpCa11,OpCa12,OpCa13,OpCa14,OpCa15,OpCa16,OpCa17,
              OpCa18,OpCa19,OpCa20],[OpCa21,OpCa22,OpCa23,OpCa24,
              OpCa25,OpCa26,OpCa27,OpCa28,OpCa29,OpCa210,OpCa211,
              OpCa212,OpCa213,OpCa214,OpCa215,OpCa216,OpCa217,
              OpCa218,OpCa219,OpCa220]);
  end
Delphi-Quellcode:
procedure TFormMain.Austeilen(aImage: Array of TImage;
                              bImage: Array of TImage;
                              cImage: Array of TImage);
var
  i : Integer;
begin
Kliste.mischen;
Kliste.toFirst;
  for i := 0 to Runde-1 do
    begin
      Hand.Einfuegen(Kliste.GibAktuelles.GibInhalt);
      Kliste.Next;
      G1Hand.Einfuegen(KListe.GibAktuelles.GibInhalt);
      Kliste.Next;
      G2Hand.Einfuegen(KListe.GibAktuelles.GibInhalt);
      aImage[i].Picture.LoadFromFile(Hand.GibAktuelles.GibInhalt.GibPfad);
      bImage[i].Picture.LoadFromFile(X+'CARDBack.jpg');
      cImage[i].Picture.LoadFromFile(X+'CARDBackHORIZ.jpg');
      Kliste.Next;
    end;
end;
es handelt sich ersichtlicher weise um 20 Image komponenten ... jetzt will ich herrausfinden welche vom benutzer angeklickt wird...
daher wollte ich über die OnClick procedur der Image komponenten
via
Delphi-Quellcode:
ShowMessage((Sender as TImage).Name);
herrausfinden um welche es sich handelt - zum testen...
dabei habe ich herrausgefunden dass die erste Imagekomponente die ein Bild zugeteilt bekommt
''Card11'' ist statt ''Card1''

also wenn ich auf die angezeigte Karte klicke kommt die Message
Card11

ich habe einen Button eingebaut der Start aufruft

klicke ich ihn dann werden natürlich
2 Karten ausgeteilt usw.

also klicke ich dann auf die zweite Karte kommt die message
Card12

usw. bis Card20

dann ist plötzlich die elfte karte... card11
und die erste card1 ... zwölfte ausgeteilte karte-> card12 erste und zweite ausgeteilte karte card1 und card2 ...

Weiß ihrgendjemand warum das so ist oder wie ich das ändern kann... bzw. wie ich anders herrausfinden kann die wievielte karte angeklickt wurde?


<PS...soll ich das vielleicht einfach mal hochladen oder gehts auch so?>

mkinzler 26. Jan 2010 20:49

Re: Schleife für Array beginnt an falscher Stelle
 
Ich würdec statt Name den Tag verwenden

Fussel9 26. Jan 2010 20:51

Re: Schleife für Array beginnt an falscher Stelle
 
Was für einen Tag?
(Sender as TImage).Tag
existiert nicht...

€dit: OOOPs... existiert doch delphi hats nur nicht angezeigt wegen ShowMessage....

jetzt ist jede Message '0' ....

Fussel9 26. Jan 2010 20:58

Re: Schleife für Array beginnt an falscher Stelle
 
Habe jetzt jedem Tag die eintsprechende nr. zugewiesen... geht aber auch nicht... so ziehmlich das selbe problem wie vorher

Fussel9 26. Jan 2010 21:03

Re: Schleife für Array beginnt an falscher Stelle
 
Habe es herrausgefunden : man klickt die hinter den anderen liegenden komponenten unwissentlich an... dadurch werden diese nach vorne geholt...
Delphi-Quellcode:
procedure TFormMain.Card1Click(Sender: TObject);
begin
(Sender as TImage).BringToFront;
ShowMessage(IntToStr((Sender as TImage).Tag));
end;
daher die falschen messages.. denn card11 lag standartmäßig über oder vor card1...sind so in zwei reihen angeordnet...
:mrgreen:

Wolfgang Mix 26. Jan 2010 21:19

Re: Schleife für Array beginnt an falscher Stelle
 
Schaue 'mal in die Regeln, bitte!
Pushen ist hier nicht erwünscht. Lasse Dir 24 h Zeit!

Gruß

Wolfgang

mkinzler 26. Jan 2010 21:20

Re: Schleife für Array beginnt an falscher Stelle
 
Zitat:

Lasse Dir 24 h Zeit!
Oder editiere deinen letzten Beitrag

Wolfgang Mix 26. Jan 2010 21:24

Re: Schleife für Array beginnt an falscher Stelle
 
:)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz