Napravio sam to, ali mislim da bi trebalo moći jednostavnije...
Koristim npr proceduru:
Code:
procedure TForm1.GetKontrole;
var i: integer;
begin
m.Lines.Clear;
for i := 0 to Form1.ControlCount - 1 do begin
if form1.Controls[i].ClassNameIs('tPanel') then
GetZaPanel(TPanel(form1.Controls[i]));
end;
end;
procedure TForm1.GetZaPanel(Panel: TPanel);
var i: integer;
begin
m.Lines.Append(Panel.Name + ' // ' + Panel.Caption)
for i := 0 to Panel.ControlCount- 1 do begin
if Panel.Controls[i].ClassNameIs('tPanel') then GetZaPanel(TPanel(Panel.Controls[i]));
end;
end;
procedure TForm1.GetKontrole;
var i: integer;
begin
m.Lines.Clear;
for i := 0 to Form1.ControlCount - 1 do begin
if form1.Controls[i].ClassNameIs('tPanel') then
GetZaPanel(TPanel(form1.Controls[i]));
end;
end;
procedure TForm1.GetZaPanel(Panel: TPanel);
var i: integer;
begin
m.Lines.Append(Panel.Name + ' // ' + Panel.Caption)
for i := 0 to Panel.ControlCount- 1 do begin
if Panel.Controls[i].ClassNameIs('tPanel') then GetZaPanel(TPanel(Panel.Controls[i]));
end;
end;
na ovaj način moram raditi za svaku vrstu kontrola zasebnu proceduru.
Mora postojati jednostavniji (krači) način...
Mala nadopuna:
kako otkriti da li je na formi TMainMenu ? Nemože se dobiti s
Code:
if Form.Controls[i] is tMainMenu then ...
if Form.Controls[i] is tMainMenu then ...
[Ovu poruku je menjao franjo_tahi dana 13.12.2010. u 14:38 GMT+1]