当前位置 : 主页 > 编程语言 > delphi >

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

来源:互联网 收集:自由互联 发布时间:2021-06-23
我有一些菜单项,其中的操作是这样的: procedure TMISMainFrm.ActiSalesInvoiceExecute(Sender: TObject);begin if CheckMdiList('Sales Invoice') then BEGIN SalesInvFrm := tSalesInvFrm.Create(Self,0,UserIdNo,1,1); SalesInvFrm.Show;
我有一些菜单项,其中的操作是这样的:

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;
网友评论