Delphi-PRAXiS
Seite 3 von 14     123 4513     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Minesweeper (https://www.delphipraxis.net/184385-minesweeper.html)

Mavarik 23. Mär 2015 22:52

AW: Minesweeper
 
Ich glaube Du hast da etwas falsch verstanden...

MEIN Beispiel war doch so wie Dein Source...

saii 24. Mär 2015 15:13

AW: Minesweeper
 
Vielen Dank für die Kritik und Berichtigungen.
Manche Sachen die hier genannt werden probier ich halt aus, aber als quasi-Anfänger komm ich dann auch schnell nicht weiter.

Ich hab mich jetzt jedenfalls entschieden ein PanelArray zu generieren.
Meine Frage: Wie erstelle ich die Prozedur für das OnMouseDown-Ereignis?
Delphi-Quellcode:
begin
      Panel := TPanel.Create(Self);
      Panel.Parent := Self;
      Panel.Name := 'P_' + IntToStr(x) + '_' + IntToStr(y);
      Panel.Width := WH;
      Panel.Height := WH;
      Panel.Caption := '';
      Panel.Left := x1 + (x * WH);
      Panel.Top := y1 + (y * WH);
      Panel.OnMouseDown := PanelMatrixMouseDown( {?} );
    end;

BadenPower 24. Mär 2015 15:35

AW: Minesweeper
 
Die Zuweisung der Prozedur zum Ereignis erfolgt ohne Klammern und ohne Parameter, also nur der Prozedurname.

Delphi-Quellcode:
Panel.OnMouseDown := PanelMatrixMouseDown;

Mavarik 24. Mär 2015 17:20

AW: Minesweeper
 
Zitat:

Zitat von saii (Beitrag 1294650)
Meine Frage: Wie erstelle ich die Prozedur für das OnMouseDown-Ereignis?

Ich mach das immer so:

Nimm ein Panel und mach da Click auf Mousedown oder auf OnClick

geh in den Source... Kopieren die Procedure von oben in den Privat teil und drücke Speichern, damit das Form die Procedure "vergißt"...

Schon hast Du die Procedure mit den richtigen Parametern.

Mavarik

saii 24. Mär 2015 17:40

AW: Minesweeper
 
Danke BadenPower und Mavarik.
Mal sehen wie weit ich komme :)

saii 24. Mär 2015 18:11

AW: Minesweeper
 
Ich wollte mit
Delphi-Quellcode:
A:=StrToInt(Panel.Name[3]);
(falls das funktioniert hätte) A aus dem Namen des Panels bestimmen,
aber das Problem ist, dass der Name des Panels an der Stelle (zB P_4_7) auch zweistellig sein kann. (P_10_13)

Wenn ihr wisst was ich meine.. wie löse ich das Problem? oder gibt es eh einen besseren Weg?

BadenPower 24. Mär 2015 18:20

AW: Minesweeper
 
Für was brauchst Du das A?

Auf das auslösende Panel kannst Du in der Event-Prozedure mit
Delphi-Quellcode:
DiesesPanel := TPanel(Sender);
zugreifen.

himitsu 24. Mär 2015 18:25

AW: Minesweeper
 
Und anstatt du Dinger nachträglich zu suchen, hätte man die auch automatisch erstellen können, dabei einem zweidimensionalem Array zugewiesen und hätte den ganze Quatsch mit den Namen auch lassen können.

PS: Man kann Zahlen auch immer zweistellig schreiben. 01 :stupid:

saii 24. Mär 2015 18:40

AW: Minesweeper
 
Ich nutze jetzt zusätzlich zum PanelArray ein weiteres IntegerArray weil ich die einzelnen Panels einen Wert von 0 bis 9 zuweise und Ich nicht weiß wie ich das mit einem PanelArray anstellen soll.

Ich brauche A, um aus dem TPanel die Koordinaten zu entnehmen.

DAs geht bestimmt einfacher, oder?

saii 24. Mär 2015 19:00

AW: Minesweeper
 
Himitsu, ich erstelle die Panels automatisch und benenne sie (warum weiß ich auch nicht, wie ich gerade bemerke)

Von daher weiß ich auch nicht, wie ich die zweistellig benennen soll.
Delphi-Quellcode:
procedure TForm1.CreatePanelMatrix(x1, y1: Integer);
var
  x,y:integer;
begin
  for x := 0 to 14 do
    for y := 0 to 14 do
    begin
      Panel := TPanel.Create(Self);
      Panel.Parent := Self;
      Panel.Name := 'P_' + IntToStr(x) + '_' + IntToStr(y);
      Panel.Width := 30;
      Panel.Height := 30;
      Panel.Caption := '';
      Panel.Left := x1 + (x * 30);
      Panel.Top := y1 + (y * 30);
      Panel.OnMouseDown := PanelMatrixMouseDown;
    end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:29 Uhr.
Seite 3 von 14     123 4513     Letzte »    

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