![]() |
Buttons gleichschalten
Hallo,
ich habe eine größere Anzahl an Buttons auf meiner Form. Jetzt soll egal welcher dieser Button gedrückt wird die gleiche Funktion ausgeführt werden allerdings immer mit Bezug auf die ButtonNr bzw. Bezeichnung. Klar, ich könnte bei 30 Buttons 30x ButtonXClick aufrufen, was meine Applikation allerdings sehr unübersichtlich macht. Gibt es eine Möglichkeit dies eleganter zu handeln? |
Re: Buttons gleichschalten
Erstelle eine allgemeingültige Methode und weise diese per OI allen Buttons zu. Du musst innerhalb der Methode dann nur den Sender-Parameter auswerten.
|
Re: Buttons gleichschalten
Du kannst jedem Butten die gleiche ButtonClick Procedure zuweisen im OI.
In dieser kannst du dann zB. über den Button.Tag herrausfinden welcher Button angeklickt wurde. Natürlich musst du dann jedem Button einen Tag zuweisen.
Delphi-Quellcode:
procedure TForm1.AllRedButtonsClick(Sender: TObject);
begin if Sender is TButton then begin case TButton(Sender).Tag of 10: Print; 20: MakeNwe; 30: Close; end; end; end; |
Re: Buttons gleichschalten
So, hat auf anhieb funktioniert! Vielen Dank an euch beide!
|
Re: Buttons gleichschalten
hm jetzt muss ich doch nochmal was fragen. Hab mein Programm nochmal mit Studio2006 compiliert und jetzt kommt die Meldung TButton does not contain a member named Tag. Also durchcompilieren tut es nur es ignoriert die Bezeichnung des Buttons. Außerdem ist im Code .Tag rot unterstrichen.
Edit: Also es wird jetzt doch nicht ignoriert. Der Code funktioniert aber rot unterstrichen ist .tag trotzdem und wenn ich mit dem Curser drüber gehe kommt die angegebene Fehlermeldung. |
Re: Buttons gleichschalten
Am besten gar nicht ignorieren :mrgreen:. Ist die rote Linie weg, wenn Du Delphi neu startest?
|
Re: Buttons gleichschalten
Das ist ein bekannter Bug der IDE
|
Re: Buttons gleichschalten
na dann... Danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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 by Thomas Breitkreuz