AW: 4gewinnt
Hallo Wega
du kannst auch bei Lazarus Shapes erst zur Laufzeit generieren. Die Eigenschaft Tag gibt es auch. Und auch sonst funktioniert es praktisch gleich wie bei Delphi. Bei Lazarus sieht Shape1MouseDown etwas anders aus:
Delphi-Quellcode:
procedure Tform1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); Deine Shapes sollen auf MouseDown reagieren; das kannst du bei Lazarus zum Beispiel so tun:
Delphi-Quellcode:
FShapes[x,y].OnMouseDown := @Shape1MouseDown;
Getestet mit Lazarus 1.6.4. Wenn du den Lazarus Code willst, dann sende mir eine PN. |
AW: 4gewinnt
Zitat:
Deshalb: Hast du geprüft, ob "i*7+j+1" für alle i,j einen gültigen Index liefert? Hast du dir überlegt auf list zu verzichten? Soweit ich sehe, gewinnst du durch list nix. Du könntest direkt auf deine Shapes zugreifen. Damit du auf Umrechnungen wie i*7+j+1 verzichten kannst: Du könntest deinen Shapes eventuell etwas intelligentere Namen geben. Ich meine damit: Du hast definiert
Delphi-Quellcode:
Weise deinen Shapes Namen Shape<Zeile><Spalte> zu: Shape11, Shape12, Shape13,.... Shape67.
arrayInt: array[1..6,1..7] of integer;
So färbst du dann deine Shapes ein:
Delphi-Quellcode:
if ( arrayInt[i,j]=1 ) then
( FindComponent( 'Shape' + inttostr(i)+inttostr(j) ) as TShape ).brush.color := clred else ... ( Wie erwähnt: Die Eigenschaft Tag ist ab und zu auch ganz praktisch. ) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 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