I have done something similar in the past.
There are two ways that I can come up with for this.
Using Actions:
, TActionList.OnExecute. , , .
:
procedure TForm1.ActionList1Execute(Action: TBasicAction; var Handled: Boolean);
begin
WriteToLog(TAction(TBasicAction).Caption);
end;
:
Actions, , . , TMenuItem . MENU uses , . TMenuItem . , .
, , .
unit MenuItemLogger;
interface
uses Menus;
Type
TMenuItem = class(Menus.TMenuItem)
public
procedure Click; override;
end;
implementation
uses windows;
{ TMenuItem }
procedure TMenuItem.Click;
begin
outputdebugstring(PWideChar(self.Caption));
inherited;
end;
end.
, uses /DataModule (TMainMenu TPopupMenu), . , .
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ActnList, Menus, MenuItemLogger;
, , , , .