Determine Which Controls are on a Form

Determine Which Controls are on a Form

Is there a simple way to ascertain the names of all the controls on a particular form at run time?


Every TComponent descendant has two properties, ComponentCount and Components, that you can use to get a lot of information from your forms. For example, drop a bunch of components from the component palette onto a form. Then, drop a TListBox and a TButton. Name them CompList and btnGet, respectively. Then paste this code into button’s OnClick event handler:

procedure TForm1.bntGetClick(Sender: TObject);var  I : Integer;begin  with Form1 do    for I := 0 to ComponentCount - 1 do      lstComps.Items.Add(Components[I].Name);end;

Pretty nifty, huh? For more info, look in the online help.


Share the Post: