Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: OnMouseOver bei Array of TPanel

  Alt 2. Okt 2010, 18:42
In Delphi 3 wird es bestimmt schon TList geben.
Da kannst Du nach dem Erzeugen der Panels diese anhängen (anstatt eines Arrays).

PanelList: TList; ...
PanelList := TListe.Create; ...
//für jedes erzeugte Panel:
PanelList.Add(NewPanel); ...
//später kannst Du in einer Schleife rückwärts durch die Liste gehen und unsichtbare Panels löschen:
Delphi-Quellcode:
for I := PanelList.Count - 1 downto 0 do
begin
  TmpPanel := TMyPanel(PanelList[I]);
  if not TmpPanel.Visible then
  begin
    TmpPanel.Free;
    PanelList.Delete(I);
  end;
end;
// Die Schleife kannst Du jederzeit auslösen, z.B. in einem Timer oder nachdem ein Panel unsichtbar gesetzt wurde
// abwärts musst Du zählen, da sonst die Schleife beim löschen von Items mit dem Zähler durcheinander käme
// In PanelList.Count hast Du immer die Anzahl der existierenden Panels -> 0 = alle gelöscht
...
//Zum Schluss der Ordnung halber die Liste wieder freigeben:
PanelList.Free;
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat