我自定义一函数,在另一段代码中想调用这个函数并传给他一个参数,该如何实现?
例如:
procedure tformmain.open(sender:tobject);//自定义函数。
var
  title:string;
begin
  showmessage(title);
end;procedure TFormmain.Button1Click(Sender: TObject);
var
  MyLabel:TLabel;
  title:string;
begin
  MyLabel:=TLabel.Create(self);
  MyLabel.Parent:=ScrollBox1;
  MyLabel.Cursor:=crHandPoint;
  mylabel.OnClick:=formmain.open;  //响应事件,我想从这里传递一个参数title给自定义的函数open。
end;

解决方案 »

  1.   

    这样不得的
    改为使用全局变量了
    或者是TFormmain中的任一个成员
    eg:TFormmain.mystr
      

  2.   

    你看这样写行不行:
    procedure tformmain.open(title: string);//自定义函数。
    begin
      showmessage(title);
    end;procedure TFormmain.Button1Click(Sender: TObject);
    var
      MyLabel:TLabel;
      title:string;
    begin
      MyLabel:=TLabel.Create(self);
      MyLabel.Parent:=ScrollBox1;
      MyLabel.Cursor:=crHandPoint;
      title := 'yourname';//你要传递的值
      mylabel.OnClick:=formmain.open(title);  //响应事件,我想从这里传递一个参数title给自定义的函数open。
    end;
      

  3.   

    procedure tformmain.open(Title:string);
    begin
      showmessage(title);
    end;
    procedure TFormmain.Button1Click(Sender: TObject);
    var
      MyLabel:TLabel;
      title:string;
    begin
      MyLabel:=TLabel.Create(self);
      MyLabel.Parent:=ScrollBox1;
      MyLabel.Cursor:=crHandPoint;
      title := 'yourname';//你要传递的值
      mylabel.OnClick:=formmain.open(title);
      

  4.   

    To: lzy6204(学无止境),fbincrazy(全职流氓) ,这样好像不行啊
    To:  ly_liuyang(Liu Yang) ,因为我做的是一个循环赋值,所以使用全局变量会丢失数据,请问还有其它解决方法么?
      

  5.   

    你想传什么参数,把它付给MyLabel的属性如MyLabel.Hint:='yourname'调用时 showmessage(TLabel(sender).Hint);