Dynamische Buttons auslesen
Re: Dynamische Buttons auslesen
Die Möglichkeit, welche mir als erstes einfallen würde wäre, durch "feld" rattern und die schauen welcher Button dem Sender entspricht (Pointer vergleichen). Das ginge auch ohne zusätzliche Daten und müsste bei 8x8 auch "drin liegen".
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Dynamische Buttons auslesen
Code: Alles auswählen
inherided OnClick := MyButtonClick;
Ich meinte, jetzt, je nach seinen Fähigkeiten, dürfte das einfach oder schwer bzw. ungewohnt sein. Jedoch ist dürfte das Parsen noch aufwendiger sein bzw. schwerer sein....
MFG
Michael Springwald
Michael Springwald
Re: Dynamische Buttons auslesen
hm also danke auf jeden fall an alle, am besten gefällt mir die methode, eine neue button klasse zu erstellen, allerdings ist mir ncoh nicht ganz klar wie das funktioniert,
also kann ich dann einfach schreiben:
So hab cih das jetz zumindest verstanden...
oder muss ich trotzdem noch zusätzlich was machen?
Ich habs mittlerweile auch anders gelöst wobei das sicherlich der schlechteste weg ist, ich hab einfach für jeden x,y eine eigenes überweisen geschreiben^^ sprich
und dann in clickxy jeweils
das ganze is natürlich keine gute lösung alleine wegen dem eiwig langem quelltext^^
Werd auf jeden fall versuchen einen der hier geannten lösungsvorschläge umzusetzen
MFG m3zz0
also kann ich dann einfach schreiben:
Code: Alles auswählen
feld[x][y].onclick:=@globalclick(x,y)
oder muss ich trotzdem noch zusätzlich was machen?
Ich habs mittlerweile auch anders gelöst wobei das sicherlich der schlechteste weg ist, ich hab einfach für jeden x,y eine eigenes überweisen geschreiben^^ sprich
Code: Alles auswählen
feld[1][1].onclick:=@click11
feld[1][2].onclick:=@click12
[...]
feld[8][8].onclick:=@click88
Code: Alles auswählen
globalclick(x,y)
Werd auf jeden fall versuchen einen der hier geannten lösungsvorschläge umzusetzen

MFG m3zz0
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Dynamische Buttons auslesen
Code: Alles auswählen
So hab cih das jetz zumindest verstanden...
oder muss ich trotzdem noch zusätzlich was machen?
Eigentlich brauchst du nur einen "Namen" zu vergeben beim erstellen. Die OnClick Procedure hat einen Sender, der beinhaltet die Komponente die Angeklickt wurde:Ich habs mittlerweile auch anders gelöst wobei das sicherlich der schlechteste weg ist, ich hab einfach für jeden x,y eine eigenes überweisen geschreiben^^ sprich
Code: Alles auswählen
feld[1][1].onclick:=@click11
feld[1][2].onclick:=@click12
[...]
feld[8][8].onclick:=@click88
(Sender as TButton). So kommst du an den Werten ran. So gesehen brauchst du das 2D Array gar nicht mehr...
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Dynamische Buttons auslesen
Der Sinn hier ist ein und dieselbe Methode für alle Instanzen zu verwenden. Geht das so ?pluto hat geschrieben:Das ist gar nicht notwendig. Du kannst die Methode Click direkt überschreiben,Code: Alles auswählen
inherided OnClick := MyButtonClick;
-Michael
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Dynamische Buttons auslesen
Theoretisch müsste das so gehen, da ja alle Komponenten von der selben Klasse abgeleitet sind. Es kommt drauf an, ob es Sinvoll ist, die Methode zu überschreiben oder ein Externes Event zu verwenden.
MFG
Michael Springwald
Michael Springwald
Re: Dynamische Buttons auslesen
Warum so kompliziert?
Durch's Array rattern und
if feld[X][Y]=Sender then //X und Y zurückgeben.
reicht doch?
Durch's Array rattern und
if feld[X][Y]=Sender then //X und Y zurückgeben.
reicht doch?
Re: Dynamische Buttons auslesen
also ich habe das ganze nun (mit hendy_'s hilfe
) gelöst.
ich gebe jedem button ein tag bestehend aus
dann kann ich über
x bzw y auslesen 
Ich glaube das wurde auch versucht mir zu erklären, leider habe ich das ganze an der stelle nicht so recht verstanden^^
naja danke an alle für die hilfe
m3zz0

ich gebe jedem button ein tag bestehend aus
Code: Alles auswählen
tag:=strtoint(inttostr(x)+inttostr(y))
Code: Alles auswählen
x:=(Sender as Tbutton).tag div 10;
y:=(sender as Tbutton).tag MOD 10;

Ich glaube das wurde auch versucht mir zu erklären, leider habe ich das ganze an der stelle nicht so recht verstanden^^
naja danke an alle für die hilfe

m3zz0
-
- Beiträge: 80
- Registriert: Sa 11. Apr 2009, 17:01
- OS, Lazarus, FPC: Windoof (L 0.9.26 FPC 2.2.2)
- CPU-Target: 32Bit
Re: Dynamische Buttons auslesen
nu ja, die eigentliche hilfe kam von hier, nur ich hatte das Pech, das dir erklären zu müssen 

Dankt monta !!