obname: TComponentprocedure TForm1.MyPopStu(Sender: TObject);
begin
  TStaticText(Obname).Color := clGreen;
  TStaticText(Obname).Font.Color := clWhite;
end;procedure TForm1.t1Click(Sender: TObject);
begin
  Obname := t1;  //---- 这里的 t1 是否可以什么函数得到 如 Self.Component[];
  MyPopStu;
end;procedure TForm1.t2Click(Sender: TObject);
begin
  Obname := t2;
  MyPopStu;
end;
从而使以上两节换成
procedure TForm1.t1Click(Sender: TObject);
begin
  Obname := Self.Component[];
  MyPopStu;
end;procedure TForm1.t2Click(Sender: TObject);
begin
  Obname := Self.Component[];
  MyPopStu;
end;
或有其它更简方法,谢谢!

解决方案 »

  1.   

    procedure TForm1.MyPopStu(Sender: TObject);
    begin
      if (Sender is TStaticText) then
      begin
        (Sender as TStaticText).Color := clGreen;
        (Sender as TStaticText).Font.Color := clWhite;
      end;
    end;procedure TForm1.t1Click(Sender: TObject);
    begin
      MyPopStu(Sender);
    end;
      

  2.   

    (Sender as TControl).Name或者 TControl(Sender).Name
      

  3.   


    obname: TComponentprocedure TForm1.MyPopStu(Sender: TObject);
    begin
      TStaticText(Obname).Color := clGreen;
      TStaticText(Obname).Font.Color := clWhite;
    end;procedure TForm1.t1Click(Sender: TObject);
    begin
      Obname := Sender as TComponent  --- 没学好,用 as
      MyPopStu;
    end;procedure TForm1.t2Click(Sender: TObject);
    begin
      Obname := Sender as TComponent
      MyPopStu;
    end;
    谢谢
      

  4.   

    汗,没注意楼主的ObName是TCompoent类型。
    Sender as TComponent或TComponent(Sender)顶5楼的,那应该是你最满意的结果