Opi napisał(a)
A tak czemu nie może być ?
var
i: Byte;
begin
for i := 1 to 35 do TPanel(FindComponent('Panel' + IntToStr(i))).Color := clWhite;
end;
No przecież Ci tłumaczę, że każde wywołanie FindComponent jedzie po wszystkich komponentach aż znajdzie właściwy i Ty to chcesz wywołać 35 razy (pętla), podczas gdy ja szukam tylko raz i to tylko po kontrolkach.
W skrócie (nie chce mi się przepisywać dokładnie jak to jest) twój kod po skompilowaniu rośnie do czegoś w stylu:
var
i, j Integer;
comp: TComponent;
begin
for i:=1 to 35 do
begin
for j:=0 to Form1.Form1.ComponentCount - 1 do
begin
comp:= Form1.Components[j];
if comp.Name = 'Panel' + IntToStr(i) then
begin
TPanel(comp).Color:= clWhite;
break;
end;
end;
end;
end;
Jak widać to co z pozoru jest wygodniejsze nie zawsze jest najbardziej optymalne.