delphi7从入门到精通的例子,点击窗体在点击处添加按钮,下面是代码,和书上源例的代码一模一样,通过编译,但运行点击窗体毫无反应,而源代码的工程文件却能添加上,求指教。
unit CreateCF;interfaceuses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms;type
  TForm1 = class(TForm)
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.DFM}uses
  StdCtrls;procedure TForm1.FormMouseDown(
  Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  Btn: TButton;
begin
  Btn := TButton.Create (Self);
  Btn.Parent := Self;
  Btn.Left := X;
  Btn.Top := Y;
  Btn.Width := Btn.Width + 50;
  Btn.Caption := Format ('Button at %d, %d', [X, Y]);
end;end.

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Self.OnMouseDown :=  FormMouseDown;//加上这句,或在事件属性上关联下就可以了。
    end;你没有关联FormMouseDown事件。
      

  2.   

    楼上说的是对的。或者在Form事件里面的OnMouseDown后面双击下。
      

  3.   

    谢谢case5166,不过已自己找到是没有在OnMouseDown事件下添加FormMouseDow,请问下面的Self是什么意思。
    Btn := TButton.Create (Self);
      Btn.Parent := Self;
    case5166所说的Self.OnMouseDown :=  FormMouseDown其中的Self是将FormMouseDow过程与OnMouseDown事件关联起来吗
      

  4.   

    Self就是事件OnMouseDown前面的TForm1对应的窗口实例。
    Self.OnMouseDown :=  FormMouseDown;和手动添加窗口的OnMouseDown事件是一个道理,只是一个是在代码里面关联,一个是在设计期关联。