Komponenten zur Laufzeit Löschen



  • Hi zusammen,

    Ich habe da mal ne Frage was das löschen von Komponenten zur Laufzeit angeht.

    Folgendes: Ich erstelle in einer ScrollBox eine Liste mit je 2 Labels und einer CheckBox
    Die Liste kann schon mal 500 Einträge enthalten. Also 1000 Labels und 500 CheckBoxen.
    Geht soweit auch ganz gut. Wenn ich nun ne neue Liste laden möchte muss ich zuvor die zur Laufzeit erstellten einträge vorher aus der ScrollBox entfernen. Das mache ich zurzeit mit SB->DestroyComponents();

    Geht auch - nur das es ewig lange dauert (so 20sec). meine Frage wäre jetzt ob es eine schnellere Lösung gibt.
    Zur Info: in der ScrollBox gibt es ansonsten keine anderen Komponenten.

    Gruss Robert



  • Hallo

    Eventuell ist es effizienter die ScrollBox selber zu löschen und komplett mit den neuen Childs wieder neu zu erstellen.

    Die Wartezeit bei der Schleife wird vermutlich durch das jeweilige Neuzeichnen/Positionieren der restlichen Childs nach jedem Löschen eines Childs zu erklären. Eventuell läst sich über WinAPI-Funktionen dieser Mehraufwand unterbinden.

    bis bald
    akari



  • Danke schonmal - Das mit dem entfernen der SB könnte echt klappen (zumindest währe es logisch).
    Ich probier das mal aus.

    WinApi müsste ich mich erstmal durchwurschteln.....

    Thx Robert



  • Wollte mal meine Lösung sagen zur vollständigkeit.

    Also der Vorschlag von Akari war richtig. Ich Lösche direkt die ScrollBox da ist es dann egal wie viel da drinn ist und erstelle sie direkt wieder neu.
    Das ganze noch in eine Funktion gepackt kann ich jetzt von überall (Quasi die Box leeren).

    Danke nochmal für den Denkanstoss 🙂


Anmelden zum Antworten