mypanel[i].OnClick:=showmessage('111');
怎么编译不过,应该怎么写?

解决方案 »

  1.   

    ft,
    OnClick是一个函数指针,你需要按他的参数格式设计的函数才行。
    具体格式你copy一个函数头,然后自己改改名称就行了。
      

  2.   

    那我写了一个函数SendPaket(senddom:string);
    mypanel[i].OnClick:=SendPaket(senddom:string);
    还是编译不过,但是下面的是可以的,为什么我的函数不行呢?
    mypanel[i].OnClick:=button1click
      

  3.   

    我照你说的写了:
    procedure tscout.SendPacket(Sender: TObject;senddom:string);
    begin
    。。
    。。
            showmessage(senddom);
    end;
    调用:
    mypanel[i].OnClick:=sendpacket(dom[i]);
    还是没有对,为什么?
      

  4.   

    首先定义
    procedure Panel1Click(Sender: TObject);

    procedure TForm1.Panel1Click(Sender: TObject);
    begin
      showmessage('aaa');
    end;mypanel[i].OnClick:=Panel1Click;
      

  5.   

    谢谢 reedseutozte(haha) ( 
    但我想实现的是它直接调用我的一个函数
      

  6.   

    而我的函数里面还带参数
    procedure tscout.SendPacket(Sender: TObject;senddom:string);
      

  7.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      bb:TPanel;
    begin
      bb:=TPanel.Create(self);
      bb.Parent := Form1 ;
      bb.Name :='bb';
      bb.Caption :='创建按钮';
      bb.OnClick := myClick;
    end;procedure TForm1.myClick(Sender: TObject);
    begin
       showmessage('Hello');
    end;
      

  8.   

    procedure TForm1.mypanelClick(Sender: TObject);
    begin
    if sender is mypanel[1] then
    tscout.SendPacket(Sender,'panel1');
    if sender is mypanel[2] then
    tscout.SendPacket(Sender,'panel2);
    end;
    mypanel[i].OnClick:=Panel1Click;
      

  9.   

    但是我的函数里面还带参数,的时候怎么办呢?
    procedure tscout.SendPacket(Sender: TObject;senddom:string);
    mypanel[i].OnClick:=sendpacket(dom[i]);
    这句话有问题?那个Sender: TObject怎么表示呢?
      

  10.   

    sunny518(灵犀) ,你的我不是很懂。。
      

  11.   

    procedure Panel1Click(Sender: TObject);

    procedure TForm1.Panel1Click(Sender: TObject);
    begin
      sendpacket(dom[i]);
    end;mypanel[i].OnClick:=Panel1Click;