![]() |
TAction - Aufruf via ShortCut?
Hi,
ich habe eine Action, bei welcher ich je nach Aufruf-Herkunft andere Aspekte in der Auswertung betrachte. Gibt es irgend eine Möglichkeit herauszufinden, ob die Action via Click oder HotKey kommt? lg
Delphi-Quellcode:
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.Actions, Vcl.ActnList, Vcl.Menus; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private ActionList1: TActionList; actTest: TAction; PopupMenu1: TPopupMenu; MenuItem1: TMenuItem; procedure actTestExecute(Sender: TObject); public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.actTestExecute(Sender: TObject); begin // gibt es die Möglichkeit, herauszufinden ob der Execute via ShortCut oder MenuItem erfolgt? // actTest.ActionComponent ist in beiden Fällen gesetzt end; procedure TForm1.FormCreate(Sender: TObject); begin ActionList1 := TActionList.Create(Self); ActionList1.Name := 'ActionList1'; actTest := TAction.Create(Self); actTest.ShortCut := ShortCut(Ord('T'), [ssCtrl]); {Strg + T} actTest.ActionList := ActionList1; actTest.OnExecute := actTestExecute; actTest.Caption := 'Test'; actTest.Name := 'actTest'; PopupMenu1 := TPopupMenu.Create(Self); PopupMenu1.Name := 'PopupMenu1'; MenuItem1 := TMenuItem.Create(Self); MenuItem1.Name := 'MenuItem1'; MenuItem1.Action := actTest; PopupMenu1.Items.Add(MenuItem1); Self.PopupMenu := PopupMenu1; end; end. |
AW: TAction - Aufruf via ShortCut?
Beim Aufruf über den ShortCut ist
Delphi-Quellcode:
. Beim Aufruf z.B. über ein TMenuItem oder einen TButton steht dort die auslösende TComponent drin.
ActionComponent = nil
|
AW: TAction - Aufruf via ShortCut?
Zitat:
|
AW: TAction - Aufruf via ShortCut?
Für ein MenuItem stimmt das allerdings. Dort wird schon auf Menüebene nach dem Item mit diesem ShortCut gesucht und ein Click ausgelöst. Damit ist das nicht mehr von einem Mausklick zu unterscheiden.
Es ist aber wohl auch so, dass ActionComponent nach dem Execute nicht wieder auf nil gesetzt wird, obwohl das in der Dokumentation so geschrieben steht: ![]() Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:24 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