Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ereignisbeahndlung für mehrere Buttons (https://www.delphipraxis.net/106104-ereignisbeahndlung-fuer-mehrere-buttons.html)

Chaoten-Joe 5. Jan 2008 14:55


Ereignisbeahndlung für mehrere Buttons
 
Moin zusammen,

ich habe schon im Forum nachgeschaut, finde aber trotzdem nicht die Lösung zu meinem Problem. Ich habe mehrere Buttons, die via "Tag" laufend nummeriert sind. Nun möchte ich eine Ereignisbehandlungsroutine für alle Buttons anlegen, bei der jeweils eine SQL-Anweisung gestartet wird, abhängig von der Nummer des Buttons:

Delphi-Quellcode:
 MainForm.TempQuery3.Close;
  MainForm.TempQuery3.SQL.Clear;
  try MainForm.TempQuery3.SQL.Add('SELECT Bezeichnung FROM Lager WHERE (Nummer = '+IntToStr(TJvNavPanelButton(Self).Tag)+')') except end;
  try MainForm.TempQuery3.Open except end;
Ich bekomme es weder mit Self noch FindComponent hin, den Tag des Buttons auszulesen, der gerade gedrückt wurde. Wie muss der richtige Befehl lauten? :gruebel:

Danke für die Hilfe und liebe Grüße
Christian

grenzgaenger 5. Jan 2008 15:05

Re: Ereignisbeahndlung für mehrere Buttons
 
mal abgesehen, dass diese exeption behandlung verboten gehöhrt. würd ich den anderen weg gehen und nur einmal die query in einer funktion aufrufen. die verschiedenen buttons rufen dann diese funktion (mit parameter) auf. so sparst du dir dann 'n paar 100 querys zu ändern.

DelphiKlaus 5. Jan 2008 15:11

Re: Ereignisbeahndlung für mehrere Buttons
 
Hey,

den Tag-Wert des Buttons bekommst Du in der Ereignisroutine durch den Parameter Sender.

Du wirst sowas in der Art wie

Delphi-Quellcode:
  (Sender as TJvNavPanelButton).Tag
benutzen müssen. Voraussetzung ist, dass die Ereignisbehandlungsroutine nur von Buttons vom Typ TJvNavPanelButton aufgerufen wird. Ansonsten musst Du vorher noch den Typ prüfen:

Delphi-Quellcode:
  if Sender is TJvNavPanelButton then
    begin
     ... (Sender as TJvNavPanelButton).Tag


    end
Viele Grüße

Klaus

Chaoten-Joe 5. Jan 2008 16:00

Re: Ereignisbeahndlung für mehrere Buttons
 
Super Klaus! Vielen Dank! Hat geklappt !!!

:bounce1: :bounce2: :dancer:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz