| Autor |
Beitrag |
Grafix
      
Beiträge: 122
Windows 7 Professional
Delphi 2009, PHP, Prolog, Python, Java
|
Verfasst: So 10.05.09 17:05
Hallo mal wieder,
wie kann ich eine ScrollBox zur Laufzeit wieder leeren und dann wieder neu Befüllen?^^
Ich erzeuge auf dieser ScrollBox Panels:
Delphi-Quelltext 1: 2:
| Panel := TPanel.Create(self); Panel.Parent := SBInhalt; |
und nun möchte ich, dass diese (über einen Button) alle wieder gelöscht werden (oder zumindest nicht mehr angezeigt werden) und statt dessen neue wieder an den Anfang geschrieben werden.
ScrollBox.Free; löscht zwar alles, aber ich kann (wieso auch immer) danach nichts neues mehr hinzufügen.
lG
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 10.05.09 17:11
Mit ScrollBox.Free löschst du die ScrollBox, wie willst du die danach dann auch noch benutzen...
Entweder speicherst du die Panels in einem Array oder einer Liste oder du gehst ScrollBox.Components durch und löschst alles was ein Panel ist.
|
|
Grafix 
      
Beiträge: 122
Windows 7 Professional
Delphi 2009, PHP, Prolog, Python, Java
|
Verfasst: So 10.05.09 20:09
wie kann ich die Components denn löschen?
habs versucht mit
SBInhalt.Components[i] := '';
aber anscheinend kann man das nur lesen...
(Delphi anfänger und so^^)
--> habs rausgefunden =)
Zuletzt bearbeitet von Grafix am So 10.05.09 20:28, insgesamt 1-mal bearbeitet
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 10.05.09 20:22
Zuletzt bearbeitet von Yogu am So 10.05.09 20:42, insgesamt 1-mal bearbeitet
|
|
Grafix 
      
Beiträge: 122
Windows 7 Professional
Delphi 2009, PHP, Prolog, Python, Java
|
Verfasst: So 10.05.09 20:38
also deine Lösung scheint deutlich besser als meine =)
aber ich bekomm bei beiden Varianten folgenden Fehler:
"Listenindex überschreitet das Maximum (2)"
Was läuft da schief?
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 10.05.09 20:44
Hoppla, blöder Fehler.
Quelltext 1: 2: 3:
| 0: Erstes Control 1: Zweites Control 2: Drittes Control |
So sieht die Liste am Anfang aus. Jetzt löschen wir den ersten:
Quelltext 1: 2:
| 0: Zweites Control 1: Drittes Control |
Natürlich dürfen wir jetzt nicht den zweiten, also iten Eintrag nehmen, sondern den ersten. Ich hab die betroffenen Stellen oben mal geändert und hervorgehoben.
|
|
Grafix 
      
Beiträge: 122
Windows 7 Professional
Delphi 2009, PHP, Prolog, Python, Java
|
Verfasst: So 10.05.09 20:48
so, die Fehlermeldung ist weg, leider ist noch eine Zugriffsverletzung zu bekämpfen... kA wo die herkommt oO
(super Lösung die du da gefunden hast, mit dem iten Eintrag!!!)
--- Moderiert von Narses: Beiträge zusammengefasst---
Also mit deiner methode hat es leider nicht funktioniert (also ich habs nicht zum laufen bekommen). Hab die Box jetzt gelöscht und neu erstellt. Danke für eure Hilfe
|
|