![]() |
TActionlist -> 2 Buttons -> Welcher wurde gedrückt ?
Hallo zusammen,
ich habe eine TActionlist, mit der ich zwei Buttons verbunden habe. Wie kann ich nun in dem Execute-Ereignis herrausfinden, welcher Button gedrückt wurde ? Gruss Holger |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Warum musst du dies überhaupt? Action(List) sind dafür da um definierte Handlungen (Actions) zentral zu definieren und verwalten und dies unabhängig der Position der Anzeige. Wenn du dies unterscheiden musst, dann ist die Action nicht gleich. Von daher zwei getrennte Actions anlegen und deren Handlung entsprechend behandeln.
Ansonsten: ![]() |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Beim OnExecute wird der Sender mitgegeben.
Den kannst Du zu einem Button casten. Dann kannst Du anhand dem Namen oder Caption oder sonst was herausfinden, welcher Button die Action ausgelöst hat. Aber prinzipiell hat Muetze recht. Eine Action sollte nur dann von mehreren Komponenten benutzt werden, wenn wirklich alles 100% gleich ist. Sonst eben mehrere Actions verwenden |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Zitat:
|
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Vielen dank schon mal.
Es geht darum, das ich zwei unterschiedliche PDF - Dateien mit den beiden Button öffnen möchte. Ich möchte mit der Actionliste die Berechtigung steuern. Das heisst enabled = FALSE/TRUE. Möchte dann halt in der Actionliste Enabled = FALSE für alle PDF-Buttons setzen. Möchte halt nicht jeden Button einzeln steuern müssen, da sie ja von der Funktion das selbe tuen, nur halt die PDF-Datein sind unterschiedlich, die geöffnet werden. Oder ist das ganz falsch gedacht ? Gruss Holger P.S.: Kannst Du mir hier mal kurz Code posten, wie ich aus dem Object Sender einen Button caste ? |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
OK.
Dann halt per ActionComponent. Zitat:
|
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
... hast Du dafür mal ein kleines Code-Beispiel ?
|
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Im onExecute-Events wird dir der Parameter Action übergeben, Action.ActionComponent referenziert dann den Auslöser
|
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Vielleicht habe ich jetzt ein Brett vor dem Kopf, aber in dem OnExecute-Event wird doch nur der Sender übergeben ?
Gruss Holger |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Zitat:
Sollte so funktionieren:
Delphi-Quellcode:
procedure TFoActionForm.AcButtonPressExecute(Sender: TObject);
begin if TBasicAction(AcButtonPress).ActionComponent = BuPDFNummerEins then begin MachWas; end else if TBasicAction(AcButtonPress).ActionComponent = BuPDFNummerZwei then begin MachWasAnderes; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:43 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