AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

4gewinnt

Ein Thema von Wega2104 · begonnen am 20. Mai 2017 · letzter Beitrag vom 21. Mai 2017
Antwort Antwort
Seite 2 von 2     12   
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: 4gewinnt

  Alt 21. Mai 2017, 18:39
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:

    FShapes[x,y].OnMouseDown := @Shape1MouseDown;
Getestet mit Lazarus 1.6.4. Wenn du den Lazarus Code willst, dann sende mir eine PN.
Michael Gasser
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
760 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: 4gewinnt

  Alt 21. Mai 2017, 19:08
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
 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. )
Michael Gasser

Geändert von Michael II (21. Mai 2017 um 19:16 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:33 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