AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Schleife für Array beginnt an falscher Stelle
Thema durchsuchen
Ansicht
Themen-Optionen

Schleife für Array beginnt an falscher Stelle

Ein Thema von Fussel9 · begonnen am 26. Jan 2010 · letzter Beitrag vom 26. Jan 2010
Antwort Antwort
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#1

Schleife für Array beginnt an falscher Stelle

  Alt 26. Jan 2010, 21:41
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
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?>
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Schleife für Array beginnt an falscher Stelle

  Alt 26. Jan 2010, 21:49
Ich würdec statt Name den Tag verwenden
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Schleife für Array beginnt an falscher Stelle

  Alt 26. Jan 2010, 21:51
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' ....
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Schleife für Array beginnt an falscher Stelle

  Alt 26. Jan 2010, 21:58
Habe jetzt jedem Tag die eintsprechende nr. zugewiesen... geht aber auch nicht... so ziehmlich das selbe problem wie vorher
  Mit Zitat antworten Zitat
Benutzerbild von Fussel9
Fussel9

Registriert seit: 25. Mai 2009
322 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Schleife für Array beginnt an falscher Stelle

  Alt 26. Jan 2010, 22:03
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...
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Schleife für Array beginnt an falscher Stelle

  Alt 26. Jan 2010, 22:19
Schaue 'mal in die Regeln, bitte!
Pushen ist hier nicht erwünscht. Lasse Dir 24 h Zeit!

Gruß

Wolfgang
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Schleife für Array beginnt an falscher Stelle

  Alt 26. Jan 2010, 22:20
Zitat:
Lasse Dir 24 h Zeit!
Oder editiere deinen letzten Beitrag
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Schleife für Array beginnt an falscher Stelle

  Alt 26. Jan 2010, 22:24
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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