1

クラスのインスタンスがあり、TComponentWinAPI呼び出しを介してそれぞれのコントロールと対話する必要があります。

これを行うには、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 に答える