Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   4gewinnt (https://www.delphipraxis.net/192806-4gewinnt.html)

Michael II 21. Mai 2017 17:39

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.

Michael II 21. Mai 2017 18:08

AW: 4gewinnt
 
Zitat:

Nun kommt eine Fehlermeldung sobald ich auf meinen Button klicke (External:SIGSEGV) und es leitet mich nur zu einer stelle hin, zeigt aber nichts weiteres an.
Leider zeigt dein Codeausschnitt nicht, welche Werte i und j durchlaufen.

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:
 arrayInt: array[1..6,1..7] of integer;
Weise deinen Shapes Namen Shape<Zeile><Spalte> zu: Shape11, Shape12, Shape13,.... Shape67.

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.
Seite 2 von 2     12   

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