界面上有很多组件,我想单击某一个组件时能得到他的名称。不能在每个组件单击中中写代码来显示他得名称。那样就太容易啦!。要写一个过程或函数就可以达到。

解决方案 »

  1.   

    var i:integer;
    begin
    for i:=0 to Form1.componentcount-1 do
    ShowMessage(Form1.Components[i].Name);
    end;
      

  2.   

    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
      var
      i:integer;
      obj:TControl ;
    begin
      for i:=0 to self.ComponentCount-1  do
      begin
        obj:=TControl(self.Components[i]);
        if (obj.Left <=x) and (obj.Left +obj.Width >=x) and (obj.Top <=y) and (obj.Top +obj.Height>=y) then
        begin
          showmessage(obj.Name);
        end;
      end;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
       showmessage((Sender AS Tcomponent).GetNamePath);
    end;