???RT,谢谢!或者,自定义了一个过程,把窗体上的所有组件的onDblClick赋给这个过程。
最好的写法。
for nIndex:=0 to componentCount-1 do
begin
  ....end;

解决方案 »

  1.   

    截获双击事件
    public
        { Public declarations }
        procedure AppMsg(var Msg: TMsg; var Handled: Boolean);
      end;
    implementation
    {$R *.dfm}
    procedure TForm1.AppMsg(var Msg: TMsg; var Handled: Boolean);
    begin
      if Msg.Message = WM_LBUTTONDBLCLK then
      begin
        showmessage('fdfdf');
        //写你的过程
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      Application.OnMessage := AppMsg;
    end;
      

  2.   

    //try ittype
      TC = class(TControl);
      TForm1 = class(TForm)
        private
        { Private declarations }
        procedure MyDblClick(Sender: TObject);
        ...
      end;procedure TForm1.MyDblClick(Sender: TObject);
    begin
      //
    end;//TForm1.OnCreate
    var
      AControl: TControl;
      i : integer;//your nIndex
    begin
      for i := 0 to ComponentCount - 1 do
      if Components[i] is TControl then
      begin
        TC(Components[i]).OnDblClick := MyDblClick;
      end;
    end;
      

  3.   

    agree lion_lh(xmanx), ilang(VCL&Object Pascal) .
     我做看看。
      

  4.   

    去看《Delphi5开发人员指南》里面RTTI一章,里面有详细的介绍