Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Alle Namen der Controls in einem Fenster auflisten

  Alt 23. Jun 2006, 14:12
Zu einem anderen Zweck in einem anderen Programm geschrieben, aber es könnte auch dir helfen:

Delphi-Quellcode:
procedure FindControls(wc: TWinControl; s: TStrings; c: TClass; recurse: Boolean = False);
var
  i: Integer;
  cc: TWinControl;
begin
  for i := 0 to Pred(wc.ControlCount) do
  begin
    cc := wc.Controls[i] as TWinControl;
    if cc is c then
      s.AddObject(cc.Name, cc);
    if recurse and (cc.ControlCount > 0) then
      FindControls(cc, s, c, recurse);
  end;
end;
Mit dieser Routine suche ich alle Controls einer bestimmten Klasse (wahlweise rekursiv) und speichere ihren Namen und einen Zeiger in einer StringListe:

Delphi-Quellcode:
procedure TDemoForm.DemoButtonClick(Sender: TObject);
begin
  with ListBox do
  begin
    Items.Clear;
    FindControls(self, Items, TEdit, true);
  end;
end;
marabu
  Mit Zitat antworten Zitat