8
ユーザーは現在表示されているフォーム上のすべてのコントロールを見つけることができますか?すなわち、非表示のタブシート上のように、タブすることができ、かつ表示から隠すことのできないすべてのコントロールを列挙する。ユーザーに表示されるすべてのコントロールを見つけよう
ユーザーは現在表示されているフォーム上のすべてのコントロールを見つけることができますか?すなわち、非表示のタブシート上のように、タブすることができ、かつ表示から隠すことのできないすべてのコントロールを列挙する。ユーザーに表示されるすべてのコントロールを見つけよう
タブすることができるコントロールをリストしたいと書いたので、私はあなたがウィンドウコントロールについて話していると仮定します。フォームは、そのすべての子供なし他のコントロールを所有していることを知っていれば
次に、あなたは単に
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := 0 to ComponentCount - 1 do
if Components[i] is TWinControl then
if TWinControl(Components[i]).CanFocus then
Memo1.Lines.Add(Components[i].Name)
end;
を行うことができます。そうでなければ、あなたはする必要があります
procedure AddVisibleChildren(Parent: TWinControl; Memo: TMemo);
var
i: Integer;
begin
for i := 0 to Parent.ControlCount - 1 do
if Parent.Controls[i] is TWinControl then
if TWinControl(Parent.Controls[i]).CanFocus then
begin
Memo.Lines.Add(Parent.Controls[i].Name);
AddVisibleChildren(TWinControl(Parent.Controls[i]), Memo);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
AddVisibleChildren(Self, Memo1);
end;
'の前の部分は、その後の部分と正確に一致しません。たとえば、「コントロール」の前にウィンドウを表示する必要はなく、無効にすることもできます。その後、ウィンドウを開いて有効にする必要があります。 –