Fórum como listar os controles do formulario de forma hierarquica #336444
18/01/2007
0
Form, dentro dele todos os painels
Panels, dentro dele todos os edit, botoes, etc.
Menu, dentro dele todos tmenuitens.
Como conseguir isso ?
Obrigado.
var
s: TStringList;
begin
s := TStringList.Create;
with TForm1 do
begin
for I := 0 to ComponentCount - 1 do
begin
oComponent := Components[I];
s.Add(oComponent.Name);
end;
end;
s.Free;
end;
Src68
Curtir tópico
+ 0Posts
18/01/2007
Emerson Nascimento
ou seria melhor num treeview?
Gostei + 0
18/01/2007
Src68
Obrigado.
Gostei + 0
19/01/2007
Emerson Nascimento
procedure TForm1.montaTreeView(Arvore: TTreeView; Item: TTreeNode; Componente: TWinControl); var i: integer; No: TTreeNode; begin if Item <> nil then No := Arvore.Items.AddChild( Item, Componente.Name ) else No := Arvore.Items.Add( Item, Componente.Name ); for i := 0 to Componente.ControlCount-1 do if (Componente.Controls[i] is TWinControl) then montaTreeView(Arvore, No, TWinControl(Componente.Controls[i])); end;
o uso é bem simples. basta executar:
[i:b1d95652f3]montaTreeView( [/i:b1d95652f3][b:b1d95652f3]NomeDaTreeViewOndeSeraExibidaAHierarquia[/b:b1d95652f3], nil, Self[i:b1d95652f3] );[/i:b1d95652f3]
no exemplo acima eu passo o formulário ativo (Self), mas no lugar dele você pode passar qualquer componente herdado da classe TWinControl (PageControl, GroupBox, Panel, etc).
a hierarquia será exibida na treeview passada no primeiro parâmetro.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)