如何根据TAction触发的事件处理程序更改它的行为?



我有一些菜单项的动作是这样的:

procedure TMISMainFrm.ActiSalesInvoiceExecute(Sender: TObject);
begin
  if CheckMdiList('Sales Invoice') then
    BEGIN
      SalesInvFrm := tSalesInvFrm.Create(Self,0,UserIdNo,1,1);
      SalesInvFrm.Show;
    END;
end;

上述操作可以从多个位置调用,但第二个参数(0)可能会更改。我如何传递所需的参数,使我不必重新编码例程?

一种常用的简单方法是设置动作的Tag属性。显然,每个动作都应该是不同的。然后像这样更改执行处理程序:

procedure TMISMainFrm.ActiSalesInvoiceExecute(Sender: TObject);
begin
  if CheckMdiList('Sales Invoice') then
    BEGIN
      SalesInvFrm := tSalesInvFrm.Create(Self,(Sender as TAction).Tag,UserIdNo,1,1);
      SalesInvFrm.Show;
    END;
end;

相关内容

  • 没有找到相关文章

最新更新