8
我怎樣才能找到所有窗體上說,目前對用戶可見的控件控制?即列出所有可以被標記爲並且不被隱藏的控制(例如,在不可見的標籤頁上)。找出所有用戶可見
我怎樣才能找到所有窗體上說,目前對用戶可見的控件控制?即列出所有可以被標記爲並且不被隱藏的控制(例如,在不可見的標籤頁上)。找出所有用戶可見
既然你寫的,你要列出可以按Tab鍵,我想你說的是窗口控件的控件。
然後,如果你知道的形式擁有其所有的孩子,沒有其他控件,你可以做簡單的
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;
前面的部分「即」並不完全匹配它之後的部分。例如,在它之前,'控件'不需要被窗口化,並且它們可以被禁用。之後,它們必須同時啓用並啓用。 –