窗体里有三控件,并且是动态生成的,现在我要问:怎么知道我鼠标点击的是哪个控件?   即怎么知道它的name?

解决方案 »

  1.   

    你在创建立时可以指定呀,
    procedure Tform1.ini;
    begin
      button:=Tbutton.Create(self);
      button.Name:='button1';
    end;
      

  2.   

    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure vButtonClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
     i:integer;
     vButton:TButton;
    begin
     for i:=1 to 3 do
     begin
      vButton:=TButton.Create(Form1);
      vButton.Name:='Button'+IntToStr(i);
      vButton.Caption:=vButton.Name;
      vButton.Left:=20;
      vButton.Top:=30*i;
      vButton.Parent:=Form1;
      vButton.OnClick:=vButtonClick;
     end;
    end;procedure TForm1.vButtonClick(Sender: TObject);
    begin
     ShowMessage(TButton(Sender).Name+' is '+Sender.ClassName+' was Clicked');
    end;end.
      

  3.   

    Application.OnMessage里,判断Msg.message=WM_MOUSEUP时,Msg.hwnd的值!
      

  4.   

    你在创建Button的时候给他们的一些属性附上区别的值不就得啦。