Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi buttons aus array identifizieren (https://www.delphipraxis.net/106565-buttons-aus-array-identifizieren.html)

naridian 12. Jan 2008 20:36


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

SirThornberry 12. Jan 2008 20:40

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:
while (i < Length(deinArray)) and (deinArray[i].Button <> Sender) do
  inc(i);

if (i < Length(deinArray)) then
  showmessage('Index: ' + inttostr(i));
Besser wäre die Verwendung einer Liste.

naridian 12. Jan 2008 20:47

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?

SirThornberry 12. Jan 2008 20:51

Re: buttons aus array identifizieren
 
dann kannst du IndexOf der Liste verwenden wenn du nur die Buttons dort rein packst.

naridian 12. Jan 2008 20:58

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).

SirThornberry 12. Jan 2008 21:21

Re: buttons aus array identifizieren
 
Das liegt daran das Sender ein TObject ist. Du musst also den Sender erst zur entsprechenden Klasse (TButton) casten.

Muetze1 12. Jan 2008 21:48

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