Pozwolę sobie założyć nowy wątek, bo lektura forum nie przyniosła odpowiedzi.
Otóż mam program (galerię obrazów) w którym chciałbym dodać możliwość usuwania wybranych obrazów z widoku. Obrazy są dodawane jako obiekty TImage z przypisanym do nich checkboxem. Poniżej kod procedury usuwania:
procedure TForm1.Button5Click(Sender: TObject);
var
J : Integer;
S : String;
NewStr, OldStr : String;
begin
for J:=0 to componentcount-1 do
begin
if (Components[J] is Tcheckbox) and ((Components[J] as Tcheckbox).IsChecked=true)then
begin
S:= (components[J].Name);
oldstr:='czek';
newstr:='glowny';
S := StringReplace(S, OldStr, NewStr, [rfReplaceAll]);
findcomponent(s).free;
end;
end;
end;
Kiedy obrazów jest dużo wszystko działa bez zarzutu, ale kiedy schodzę do 3-5 to za każdym razem wyskakuje mi błąd:
"Argument out of range". Mam chyba znaczący brak wiedzy, bo nie mogę tego przeskoczyć.
for
obliczany jest tylko raz, co nie ma miejsca w pętliwhile
;