unit Unit1;
interface
..............
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure mybuttonclick(sender:Tobject);   //不要加Tform1
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  mybutton:tbutton;
implementation
......
procedure tform1.mybuttonclick(sender:Tobject);
var button1:tbutton;
begin
  button1.caption:='ok'
end;
end.

解决方案 »

  1.   

    除了不要加TForm1外,还要做一个赋值语句:
    Button1.OnClick := mybuttonclick;
      

  2.   

    谢谢!可以实现.可为什么不要tform1哪?可不可写在其他地方来定义这个事件?
      

  3.   

    不为什么。pascal没有这样的语法啊。可以在其他地方定义这个事件。实际上事件是一个函数指针。
      

  4.   

    mybuttonclick(sender:Tobject);你这个方法已经定义在TForm1下,已经是TForm的一个函数,所以在申明的地方不用再加TForm.
    可以在别的地方定义。