Znalazłem w necie kod do wylistowania komponentów w aplikacji. Chodzi mi teraz o to żeby listował nie Name a Caption komponentów.We wszystkich formach. Chodzi mi o Menuitem. Gdy dopisze application.Components nie szuka.
Mój kod:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
for i := 0 to ComponentCount -1 do
if Components[i] is TMenuItem then
ListBox1.Items.Add(TMenuItem(Components[i]).Caption);
end;
A gdy zastosuje kod z netu ze strony poniżej nie listuje komponentów typu PopupMenu czy Menu
http://www.marcocantu.com/ddh/ddh15/ddh15f.htm
procedure TDelExForm.AddOwned (
Node: TTreeNode; Component: TComponent);
var
I: Integer;
ChildNode: TTreeNode;
begin
for I := 0 to Component.ComponentCount - 1 do
begin
ChildNode := TreeView.Items.AddChild (Node,
Format ('%s (%s)', [
Component.Components[I].Name,
Component.Components[I].ClassName]));
AddOwned (ChildNode, Component.Components[I]);
end;
end;
procedure TDelExForm.BtnOwnerClick(Sender: TObject);
begin
TreeView.Items.BeginUpdate;
Screen.Cursor := crHourGlass;
try
TreeView.Items.Clear;
AddOwned (nil, Application);
finally
TreeView.Items.EndUpdate;
Screen.Cursor := crDefault;
end;
end;