在不知道控件的name的情况下,从控件的单击事件中如何取控件的Name和caption。比如可以通过sender.classname取控件的类名。谢谢。

解决方案 »

  1.   

    label1.Caption:=self.ActiveControl.Name;
    假如未知控件有caption属性则可以取值,如Tbutton
    label1.Caption:=(sender as Tbutton).caption;
      

  2.   

    label1.Caption:=Tbutton(sender).caption;
    //强转换需要先知道其类型
      

  3.   

    uses
      TypInfo;if GetPropInfo(Sender, 'Caption') <> nil then ...
      

  4.   

    procedure TForm4.Button1Click(Sender: TObject);
    var
      strName,strText: String;
    begin
      if Sender is TComponent then
        strName := TComponent(Sender).Name
      else
        StrName := '(没有Name属性)';  if Sender is TWinControl then
        begin
          SetLength(strText,MAX_PATH);
          SetLength(strText,SendMessage(TWinControl(Sender).Handle,WM_GETTEXT,PChar(strText),MAX_PATH);
        end
      else
        strText := '(无Caption)';  ShowMessage(Format('Name:%s'#13#10'Caption:%s',[strName,strText]));
    end;
      

  5.   

    又见僵哥,僵哥请去
    http://topic.csdn.net/u/20081106/01/3f46d687-a97c-4139-915d-171c3343cff7.html接分。
      

  6.   

    xxxx.click(sender: tobject)
    begin
      (sender as Txxxx).name;
    end;这意味着首先必须知道控件类型