Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi komponeten löschen (https://www.delphipraxis.net/9253-komponeten-loeschen.html)

LoL 22. Sep 2003 07:12


komponeten löschen
 
hallo zusammen

wie lösche ich eine komponete die ich zur laufzeit erzeut habe ganz und gar aus dem speicher?
mit free oder destroy oder nil oder alles zusammen und was ist der unterschied?

mfg christoph

Nalincah 22. Sep 2003 07:32

Re: komponeten löschen
 
Mit free

LoL 22. Sep 2003 07:33

Re: komponeten löschen
 
hi general

bist du sicher das das voll und ganz reicht?
wie ich eine komponeten mehrmal hintereinader gelöscht und wieder erzeugt hatte hatte kam irgendwann ein fehler

Nalincah 22. Sep 2003 07:40

Re: komponeten löschen
 
Warum willst du die mehrmals die gleiche Komponente zerstören?

Robert Marquardt 22. Sep 2003 07:43

Re: komponeten löschen
 
Du musst eine Fehler gemacht haben, wie eine Komponente zweimal freizugeben.

FreeAndNil(Komponente) ist dein Freund. Das ruft Free auf und setzt danach den Zeiger auf nil.

LoL 22. Sep 2003 07:48

Re: komponeten löschen
 
wenn ich zwischen 2 panel hin hund her schalte und die alle zur laufzeit erzeugt werden will ich sie löschen um so den speicher bedarf meins programms gering zu halten;

noch ne andere frage warum funzt das nicht:
Delphi-Quellcode:
  FreeAndNil(panel.FindComponent('panel2'));

Nalincah 22. Sep 2003 07:52

Re: komponeten löschen
 
Hast du Panel2 in Panel1 liegen oder ist beides auf Form1?

LoL 22. Sep 2003 07:53

Re: komponeten löschen
 
panel liegt auf form1 und panel2 auf panel
Zitat:

Constant object cannot be passed as var parameter

LoL 22. Sep 2003 07:57

Re: komponeten löschen
 
hi

wenn ichs aber so mache,...
Delphi-Quellcode:
var comp : TComponent;
begin
  comp := panel.FindComponent('panel2');
  FreeAndNil(comp);
end;
...dann funzt es! das kann doch nicht sein

Nalincah 22. Sep 2003 08:00

Re: komponeten löschen
 
Ich krieg immer diese Meldung:
Delphi-Quellcode:
Konstantenobjekt kann nicht als Var-Parameter weitergegeben
werden
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
panel1,panel2:TPanel;
begin
  panel1 := TPanel.Create(Form1);
  panel1.Parent := Form1;
  panel1.Width := 100;
  panel1.Height := 100;
  panel2 := TPanel.Create(Panel1);
  panel2.Parent := panel1;
  panel2.Width := 50;
  panel2.Height := 50;
  panel2.Name := 'panel2';
  FreeAndNil(panel1.FindComponent('panel2'));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:07 Uhr.
Seite 1 von 2  1 2      

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