![]() |
probleme mit dem ausladen von frames
moin, ich nochmal kurz. wie kann ich denn alle frames ausladen. also ich lade die frames nach und nach in meine scrollbox ein, wenn ich jetzt aber eins eigenladen haben und nicht wieder auf nil setzte, dann überlappen die frames...gibt es einen globalen befehl alles frames auf nil zu setzten oder muss ich das dann machen wie folgt:
if frame1.parent <> nil then frame1.parent := nil else if if frame2.parent <> nil then frame2.parent := nil usw ? |
Re: probleme mit dem ausladen von frames
Nil setzen gibt die Frame nicht frei und somit ist sie auch nicht zerstört sondern weiterhin sichtbar, nur mit dem Unterschied, dass du keinen direkten Zugriff mehr hast (da du die Referenz weggeworfen hast).
Was willst du erreichen? Soll die Frame komplett weg? dann:
Delphi-Quellcode:
FreeAndNil(Frame1);
|
Re: probleme mit dem ausladen von frames
nein das frame soll nicht komplett weg, sondern nur nicht mehr in der scrollbox angezeigt werden ..ich denke wenn ich sie freeundnil raushaue muss ich sie ja dann auch wieder createn ? oder ist das sinnvoll ?
also ich sage:
Delphi-Quellcode:
wenn ich jetzt aber ein anderes einlade:
frame1.Parent := frmMain.SBFrameContainer; //läd mir mein frame in die scrollbox
Delphi-Quellcode:
frame2.Parent := frmMain.SBFrameContainer; //läd mir mein frame in die scrollbox
bleiben reste des ersten frames bestehen jetzt gehe ich vor wie folgt:
Delphi-Quellcode:
damit sind dann die reste verschwunden ..aber wenn ich jetzt 100 frames habe darf ich 100 if abfragen machen das nervt.
if frame1.parent <> nil then frame1.parent := nil
frame2.Parent := frmMain.SBFrameContainer; |
Re: probleme mit dem ausladen von frames
Die If-Abfragen kannst du dir doch schenken:
Delphi-Quellcode:
Aber es geht noch eleganter:
frame1.Parent := nil;
frame2.Parent := nil;
Delphi-Quellcode:
procedure RemoveChildControls(c: TWinControl);
begin while c.ControlCount > 0 do begin c.Controls[0].Parent := nil; end; end; // Alles, was auf Scrollbox1 liegt entfernen // Die Childs selber werden aber nicht freigegeben RemoveChildControls(Scrollbox1); |
Re: probleme mit dem ausladen von frames
shmia, sau geil...genau danach habe ich gesucht ....vieln vielen dank !
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz