![]() |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Wir Reden hier vom Event der ActionList.
|
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Zitat:
Delphi-Quellcode:
Es wird also auch noch ein TApplicationEvents benötigt.
procedure TMainForm.ApplicationEventsActionExecute(Action: TBasicAction;
var Handled: Boolean); procedure TMainForm.MyActionExecute(Sender: TObject); |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Delphi-Quellcode:
procedure TDemo_Form.ac_blubbExecute(Sender: TObject); // Action : ac_blubb
begin ShowMessage((Sender as TAction).ActionComponent.Name); // Zeigt den Namen des Controls über den die Action gestartet wurde end; |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Vielen vielen dank.
Also ich bin nun wie in dem Code-Beispiel über das Event der Action gegangen und nicht über das Event der Actionlist. Das klappt super. Danke an euch alle. Gruss Holger |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Trotzdem mein Beispiel:
Du brauchst auf dem Formular eine TActionList und TApplicationEvents Dann:
Delphi-Quellcode:
Nun wird erst ApplicationEvents1ActionExecute und dann AcButtonPressExecute ausgeführt.
procedure TFoStatus.AcButtonPressExecute(Sender: TObject);
begin if TBasicAction(AcButtonPress).ActionComponent = BuAbbrechen then begin // MachWas; end else if TBasicAction(AcButtonPress).ActionComponent = BuAbbrechen then begin // MachWasAnderes; end; end; procedure TFoStatus.ApplicationEvents1ActionExecute(Action: TBasicAction; var Handled: Boolean); begin if Action.ActionComponent = BuAbbrechen then begin // MachWas; end else if Action.ActionComponent = BuAbbrechen then begin // MachWasAnderes; end; end; |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
@RavenIV: Was ich bei deinen beiden Beispielen vermisse: wo bzw. was ist AcButtonPress?
Wenn, dann typecaste den Sender:
Delphi-Quellcode:
procedure TFoStatus.AcButtonPressExecute(Sender: TObject);
begin Assert(Sender is TBasicAction, 'Ups, doch keine TBasicAction...'); if TBasicAction(Sender).ActionComponent = PDF1Laden then begin // MachWas; end else if TBasicAction(Sender).ActionComponent = PDF2Laden then begin // MachWasAnderes; end; end; |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Zitat:
Sorry, hab das schnell runtergetippt und das casten vergessen :oops: |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Zitat:
1. Du typecastest eine Action Komponente auf ihre Basisklasse zurück - wozu? 2. Du gehst fest davon aus, dass es nur diese eine Action sein kann, die diese Methode aufruft. 3. Du hast ActionComponent immer mit dem gleichen Element verglichen (sprich: in beiden Fällen). Was das sein könnte habe ich mir gedacht, aber die drei Punkte machten den Code unverständlich bzw. man/der Fragestelelr erkennt den Sinn bzw. intern Ablauf/Aufbau schwerer bzw. nicht. |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Zitat:
Wird hier alles auf die Goldwaage gelegt, was man von sich gibt. Ein klein Wenig mitdenken dürfte wohl nicht zuviel sein. :x |
Re: TActionlist -> 2 Buttons -> Welcher wurde gedrückt
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 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