クラスのインスタンスがあり、TComponent
WinAPI呼び出しを介してそれぞれのコントロールと対話する必要があります。
これを行うには、TComponent
インスタンスで表されるコントロールのハンドルが必要です。
どうすればそのハンドルを取得できTComponent
ますか?
クラスのインスタンスがあり、TComponent
WinAPI呼び出しを介してそれぞれのコントロールと対話する必要があります。
これを行うには、TComponent
インスタンスで表されるコントロールのハンドルが必要です。
どうすればそのハンドルを取得できTComponent
ますか?
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;