Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
AW: Minesweeper
25. Mär 2015, 10:55
Es geht doch noch einfacher.
Delphi-Quellcode:
procedure TForm1.CreatePanelMatrix(InitialX, InitialY: Integer);
const
PANEL_WIDTH = 30;
PANEL_HEIGHT = 30;
COUNT_X = 15;
COUNT_Y = 15;
BITS_PER_BYTE = 8;
var
X, Y: Integer;
Panel: TPanel;
begin
for X := 0 to COUNT_X - 1 do
for Y := 0 to COUNT_Y - 1 do
begin
Panel := TPanel.Create(Self);
Panel.Parent := Self;
Panel.Width := PANEL_WIDTH;
Panel.Height := PANEL_HEIGHT;
Panel.Caption := '';
Panel.Left := InitialX + X * PANEL_WIDTH;
Panel.Top := InitialY + Y * PANEL_HEIGHT;
Panel.OnMouseDown := PanelMatrixMouseDown;
Panel.Tag := X shl (BITS_PER_BYTE * SizeOf(word)) or Y;
end;
end;
procedure TForm1.PanelMatrixMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Position: DWORD;
begin
Position := DWORD((Sender as TPanel).Tag);
ShowMessage(Format('X: %d, Y: %d', [HiWord(Position), LoWord(Position)]));
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|