![]() |
buttons aus array identifizieren
Hallo!
Ich erstelle zur Laufzeit ein Array mit Buttons (genauer gesagt ein Array mit Frames auf denen je ein Button ist) und weise ihnen allen die selbe Prozedur für das Ereignis OnClick zu. In dieser Prozedur möchte ich jetzt den Button identifizieren, der das Ereignis ausgelöst hat. Am Besten indem ich den zugehörigen Arrayindex erfahre. Wie mache ich das? Das OnClick Ereignis liefert mir ja den Sender aber damit bin ich nicht weiter gekommen. Viele Grüße, Moritz |
Re: buttons aus array identifizieren
du musst den Sender mit allen Buttons aus deinem Array vergleichen bis du den richtigen Button gefunden hast.
Delphi-Quellcode:
Besser wäre die Verwendung einer Liste.
while (i < Length(deinArray)) and (deinArray[i].Button <> Sender) do
inc(i); if (i < Length(deinArray)) then showmessage('Index: ' + inttostr(i)); |
Re: buttons aus array identifizieren
Danke! Was meinst du genau mit Verwendung einer Liste? Ich könnte statt einem Array TList benutzen. Aber wie bekomme ich dann einfacher aus dem Sender den Listenindex?
|
Re: buttons aus array identifizieren
dann kannst du IndexOf der Liste verwenden wenn du nur die Buttons dort rein packst.
|
Re: buttons aus array identifizieren
ich würde gerne auch die frames reinpacken. kann ich nicht sowas wie sender.parent machen um den zeiger auf das frame zu bekommen?. Habs versucht, klappt aber nicht (Compiler erlaubt es nicht).
|
Re: buttons aus array identifizieren
Das liegt daran das Sender ein TObject ist. Du musst also den Sender erst zur entsprechenden Klasse (TButton) casten.
|
Re: buttons aus array identifizieren
Wieso erstellst du nicht eine Frame mit fest dem Button drauf in der IDE zur Designzeit. Dort kannst du dann auch entsprechend dein OnClick des Buttons implementieren. Zur Laufzeit brauchst du dir doch nur noch dynamische eine Frame Instanz basteln - und diese kannst du dann doch in z.B. einer TObjectList halten. Du hast dann auch ohne Probleme Zugriff auf den jeweiligen Button.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:34 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