Zbiór obiektów w Delphi

0

Witam.
Jak można utworzyć zbiór obiektów w Delphi? Mam 100 paneli i chcę wykonywać konkretne czynności na wszystkich na raz. Np. wszystkim zmienić kolor lub jej zaznaczyć/odznaczyć. Macie jakiś pomysł?
Bardzo proszę o tłumaczenie metodą chłopską, bo nie jestem zawodowcem.
Pozdrawiam

0
for i:=0 to ComponentCount -1 do begin
  if Components[i] is TPanel then begin
    (Components[i] as TPanel).Color = clRed;
  end;
end;

Pisane z głowy więc nie gwarantuje ze poprawnie

0
(..)  
FPanelList: TList
(..)  
FPanelList := TList.Create;
(..)  
FPanelList.Add(pPanel1);
FPanelList.Add(pPanel2);
FPanelList.Add(pPanel3);
FPanelList.Add(pPanel4);
(..)  
for ii := 0 to FPanelList.Count - 1 TPanel(FPanelList[ii]).Color := clRed;
(..)  
FPanelList.Free;
0

Cymes - wielkie dzięki! Działa tak jak chciałem.
Zajceva sposobu już nie sprawdzałem, ale thx za szybką odpowiedź.

A wiecie jak zrobić, żeby 1 poleceniem zaznaczy i potem odznaczyć wiele Paneli?
I czy da się uzależnić rozmiar Paneli od tego czy inne komponenty są widoczne lub niewidoczne? np. gdy znika mi GropBox chce, żeby Panele automatycznie się powiększyły.

0

@zajcev

FPanelList.Add(pPanel1);
FPanelList.Add(pPanel2);
FPanelList.Add(pPanel3);
FPanelList.Add(pPanel4);

Nie mów mi ,że takim sposobem byś dodawał 100 paneli :)

0
BrakU napisał(a)

I czy da się uzależnić rozmiar Paneli od tego czy inne komponenty są widoczne lub niewidoczne? np. gdy znika mi GropBox chce, żeby Panele automatycznie się powiększyły.

Co do zaznaczenia nie zrozumiałem chyba. Chociaż pewnie byś chciał je wszyskie powiększyć w Runtime ... nie da się na raz, ale da się w pętli.
Na Twoim miejscu zaczął bym jednak zabawę od ScrollBox'a, ew. w nowym delphi jest chyba coś takiego jak GroupPanel, ale mogę się mylić.

Jeśli się upierasz przy panelu - to pobaw się właściwością AutoSize i Anchors.

b

0

albo align.

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