![]() |
Re: alternative zu 225 onclick-ereignissen ?
Hi dEluXe,
dazu gibts den FindComponent-Befehl: [dp]"FindComponent"[/dp] ![]() Greetz alcaeus |
Re: alternative zu 225 onclick-ereignissen ?
oder mal ganz radikal ^^
nimm nur ein Image und in onMouseDown bekommst du die Klickposition. wie man in ein Image reinmalt, wirst du ja wissen und die Feldnummern (X:Y) bekommst du so raus
Delphi-Quellcode:
PosX := X div Feldbreite;
PosY := Y div Feldhoehe; |
Re: alternative zu 225 onclick-ereignissen ?
ich finde das mit einem image auch die einfachste variante. - Und du musst auch nicht 225 mal das OnClick schreiben wenn du ein array nutzt. Hier mal bissl source falls du es doch mit mehreren Images machen willst
Delphi-Quellcode:
TForm1 = class(TForm)
[...] fImages: Array[1..225] of TImage; procedure FImgClick(Sender: TObject); [...] [...] procedure TForm1.OnCreateProc(Sender: TObject); var LCount, LX, LY, LWidth: Integer; begin LWidth := 20; LX := 0; LY := 0; for LCount := 1 to 225 do begin fImages[LCount] := TImage.Create(Self); fImages[LCount].Parent := Self; fImages.SetBounds(LX, LY, LWidth, LWidth); fImages.Tag := LCount; //um später herauszufinden welches geklickt wurde fImages.OnClick := FImgClick; inc(LX, LWidth); if LX = 15 * LWidth then begin LX := 0; inc(LY, LWidth); end; end; end; [...] procedure TForm1.FImgClick(Sender: TObject); var LImage: TImage; begin if Sender is TImage then begin LImage := TImage(Sender); //mit LImage.Tag findest du jetzt raus welches Image geklickt wurde end; end; [...] procedure TForm1.OnDestroyProc(Sender: TObject); var LCount: Integer; begin //freigeben der Images for LCount := 1 to 225 do fImages[LCount].Free; end; |
Re: alternative zu 225 onclick-ereignissen ?
Natürlich könnte man auch
Delphi-Quellcode:
verwenden :roll:
fImages: Array[1..15] of Array[1..15] of TImage;
|
Re: alternative zu 225 onclick-ereignissen ?
Kuck dir mal mein Vire Gewinnt an:
![]() |
Re: alternative zu 225 onclick-ereignissen ?
HiHo,
So hab jetzt längere Zeit mal rumexperimentiert und hab das Problem letztendlich dadurch gelöst, dass ich die Images dynamisch erstellt habe und dann beim onclick-Ereignis das Tag auslese, um den Namen zu bestimmen. Also ertsmal funktioniert es, werde es jetzt jedoch noch mal mit einem Image (Koordinaten berechnen) versuchen zu lösen. Vielen Dank für eure schnelle und zahlreiche Hilfe dEluXe |
Re: alternative zu 225 onclick-ereignissen ?
Zitat:
Wobei ich vllt. eine andere Variante bevorzugen würde. Mach doch einfach ein array[1..15, 1..15] of integer; (z.b. 0 nix, 1 -> spieler1, 2 -> spieler2) und benutzt canvas zum zeichnen.... Dann wartest du auf einen Click in das Canvas, wertest die Postion aus und setzt das entsprechende feld auf den Wert und lässt dann ein Rechteck an die entsprechenden Koordinaten zeichnen... :) MFG... vllt hab ich noch ein Beispiel prog dazu da, wenn du das brauchst sag bescheid :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz