Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Images (Spielkarten) anordnen
galagher - So 25.04.10 21:04
Titel: Images (Spielkarten) anordnen
Hallo!
Ich möchte Images, die Spielkarten darstellen, nebeneinander anordnen, und weiss nicht wie!
Angenommen, es sind 5 Karten, die 2. und 3. von links wurde bereits gespielt, bleiben die 1., 4. und 5. Ich möchte nun diese Karten direkt nebeneinander anordnen, es soll also die 4. soll den Left-Wert der 2. einnehmen und die 5. den Wert der 3. Hoffe, das ist verständlich!
Wie könnte nun ein Code aussehen, der genau das macht: Den Left-Wert von Images so setzen, dass Karten nach links gerückt werden, und zwar so weit, dass ihr Left-Wert Left+50 ihres linken Nachbarn ist (die Karten überlappen einander) und dabei den Platz fehlender Karten einnehmen?
Kurz gesagt, möchte ich die Images immer schön nebeneinander haben, wie in der Grafik, aber ich weiss nicht wie ich das machen soll...
gfehmke - So 25.04.10 21:24
Hi
Ich würde mit einem Array of TImage ( bild[x] ) arbeiten.
Images werden entfernt durch bild[x].Visible := False
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| n:=50; for x=1 to 5 begin if bild[x].visible then begin n:=n + 50; bild[x].left:=n; end; end; |
Die noch sichtbaren Images werden mit dem Versatzu von 50 Pixeln ab Position 100 positioniert.
( Ungetestetes Codeschnipsel )
HTH
G.
Xion - So 25.04.10 22:02
Etwas abgewandelt: Alle karten, die sichtbar sind, werden entsprechend angeordnet
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| n:=0; for x:=0 to High(Karten)do begin if bild[x].visible then begin bild[x].left:=n*50; bild[x].BringToFront; n:=n + 1; end; end; |
galagher - Mo 26.04.10 17:26
Xion hat folgendes geschrieben : |
Etwas abgewandelt: Alle karten, die sichtbar sind, werden entsprechend angeordnet
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| n:=0; for x:=0 to High(Karten)do begin if bild[x].visible then begin bild[x].left:=n*50; bild[x].BringToFront; n:=n + 1; end; end; | |
Genau das! Darauf bin ich nicht gekommen! Habe den Code bloss ein wenig angepasst - Left ist niemals 0, sondern kann, abhängig von der Anzahl der Karten, zwei Werte haben, also musste ich nur noch den Left-Wert addieren und es passt!
Vielen Dank für eure Hilfe!
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!