1

我有一个TComponent类的实例,需要通过 WinAPI 调用与相应的控件进行交互。

为了做到这一点,我需要一个由TComponent实例表示的控件的句柄。

我怎样才能得到那个句柄TComponent

4

1 回答 1

4

尝试将您的 TComponent 实例转换为 TWinControl。

如果它返回有效句柄,则未经测试,但它返回合理的数字。

 procedure TForm1.Button1Click(Sender: TObject);
   var
     i: integer;
     mycontrol: TWinControl;
   begin
     Memo1.Lines.Clear;
     for i := 0 to ComponentCount - 1 do
       if Components[i] is TWinControl then
          begin
            mycontrol := TWinControl(Components[i]);
            Memo1.Lines.Add(IntToStr(mycontrol.Handle));
          end;
   end;
于 2012-11-07T07:05:27.057 回答