4

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

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)可能会改变。如何传递所需的参数,这样我就不必重新编码例程?

4

1 回答 1

7

一种常用的简单方法是设置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;
于 2011-09-15T13:00:24.417 回答