Usunięcie komponentów z ScrollBoxa

0

Witam !

Chciałbym usunąć komponenty w ScrollBoxie, utworzone dynanicznie (label, edit itd). Czy jest jakaś komenda TScrollBox-a usuwajaca całość komponentów. Mam ich tam sporo, a nie chciałbym ich pojedyńczo usuwać, bo zwiększa to czas tej operacji.

Pozdrawiam
Remek

0
var
  i : integer;
begin

  for i := 0 to ScrollBox1.ControlCount - 1 do
    ScrollBox1.Controls[i].Free;

Pisałem z pamięci więc nie wiem czy działa :P ale powinno.

0

Nie powinno - pętla w drugą stronę:

for i := ScrollBox1.ControlCount - 1 downto 0 do

;P

0
brodny napisał(a)

Nie powinno - pętla w drugą stronę:

for i := ScrollBox1.ControlCount - 1 downto 0 do

;P

Masz rajcie, tak to jest jak się pisze a nie sprawdza ;P

0

Zrobiłem tak jak napisaliście, ale pojawił się problem z dostępem do elementów tablicy. Mam komunikat o przekroczeniu zakresu. Analizujac wartość ControlCount zauważyłem, że po każdym kasowaniu (free) zmienia się jej wartość i przez to dynamicznie zmienia sie rozmiar tablicy. Jak uniknąć tego błedu. Sprawdzanie czy controls[i]=nil nie wiele da, bo i tak brak dostępu aby sprawdzić.

Pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1