unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids;type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure TsbOnClick(Sender:Tobject);
  private    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}
procedure TForm1.TsbOnClick(Sender:Tobject);
 begin
  showmessage('OnClick');
 end;
procedure TForm1.Button1Click(Sender: TObject);
var Tsb:TButton;
begin
       Tsb:=TButton.Create(SELF) ;
       Tsb.Parent:=self;
       Tsb.OnClick:=TsbOnClick;
       Tsb.Width :=85;
       Tsb.Height :=70;
       Tsb.Caption :='MyButton';
       Tsb.Show;
end;end.

解决方案 »

  1.   

    var Tsb:TButton;
    begin
           Tsb:=TButton.Create(SELF) ;
           Tsb.Parent:=Panel1;
           //Tsb.OnClick:=TsbOnClick;       Tsb.Width :=85;
           Tsb.Height :=70;
           Tsb.Caption :='MyButton';
           Tsb.onclick := onclick;
           Tsb.Show;
    end;Procedure Tform.onclick(Sender:Tobject);
    begin
      .....
    end;
      

  2.   

    var Tsb:TButton;
    begin
           Tsb:=TButton.Create(SELF) ;
           Tsb.Parent:=Panel1;
           //Tsb.OnClick:=TsbOnClick;       Tsb.Width :=85;
           Tsb.Height :=70;
           Tsb.Caption :='MyButton';
           Tsb.onclick := onclick;
           Tsb.Show;
    end;Procedure Tform.onclick(Sender:Tobject);
    begin
      .....
    end;
      

  3.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls,extctrls, ExtDlgs, Buttons, Grids, DBGrids;type
      TForm1 = class(TForm)
        Label1: TLabel;
        Label2: TLabel;
        Panel1: TPanel;
        OpenPictureDialog1: TOpenPictureDialog;
        Button1: TButton;
        Button2: TButton;
        Image1: TImage;
        BitBtn1: TBitBtn;
        Edit1: TEdit;
        Edit2: TEdit;
        Button3: TButton;
        DBGrid1: TDBGrid;
        procedure FormCreate(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure BitBtn1Click(Sender: TObject);
        procedure Edit1KeyPress(Sender: TObject; var Key: Char);
        procedure Edit2KeyPress(Sender: TObject; var Key: Char);
        procedure Button3Click(Sender: TObject);
      private
        { Private declarations }
        img : array of TImage;
        procedure MyClick(Sender : TObject);
        Procedure Move(Sender : TObject);
        procedure BMouseMove(Sender: TObject; Shift: TShiftState; X,
          Y: Integer);
        procedure BMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure BMouseUp(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        public
      T : Boolean;
      P : TPoint;
        { Public declarations }
      end;var
      Form1: TForm1;
      J : Integer;
    implementation{$R *.DFM}
    procedure TForm1.MyClick(Sender: TObject);
    begin
      showmessage('click on dynamic image')
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      B: TButton;
    begin
      B := Tbutton.Create(self);
      B.Parent := Form1;
      B.Left := 104;
      B.Top :=264;
      B.Width := 75;
      B.Height := 25;
      B.OnClick := Myclick;
      B.OnMouseMove := BMouseMove;
      B.OnMouseDown := BMouseDown;
    end;procedure TForm1.BMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      if (T) and ( ssLeft in Shift) then
      Begin
       Cursor := crCross;
       Left := X;
       Top :=Y;
      ENd;
    end;
    procedure TForm1.BMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      T := True;
    end;procedure TForm1.BMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      T := False;
    end;procedure TForm1.Button3Click(Sender: TObject);
    var
      C: TButton;
      I : Integer;
    begin
      C := Tbutton.Create(self);
      C.Parent := Form1;
      C.Left := 104;
      C.Top :=264;
      C.Width := 75;
      C.Height := 25;
      C.Name := 'HH';
      C.OnClick := Myclick;
      C.OnMouseMove := BMouseMove;
      C.OnMouseDown := BMouseDown;
      ...
    end;
    ...
    对吗?
      

  4.   

    TO:以上各位兄弟:
    所写的Onclick事件代码不能够被响应,
    因为按钮是动态生成的,
      

  5.   

    TO:各位兄弟;
    程序可以了,ihihonline(小小->充电中……) 兄弟的程序是对了,
    另外TAB.free也可以去掉按钮,谢谢各位的支持