AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objekt freigeben

Ein Thema von Snoop007 · begonnen am 1. Sep 2003 · letzter Beitrag vom 1. Sep 2003
Antwort Antwort
Snoop007

Registriert seit: 14. Jan 2003
331 Beiträge
 
Delphi 6 Personal
 
#1

Objekt freigeben

  Alt 1. Sep 2003, 11:08
Hi,
ich erszelle währen der laufzeit ein panel mit mehrere images.

wie kann ich nun das objekt wieder "löschen" und neu initialisieren ?

wenn ich
Code:
  if panel1 <> nil then
    Panel1.Destroy;
eingebe, erhalte ich eine execption, das gleiche mit .Free;
wenn ich nil zuweise, befindet es sich aber noch auf dem Formular, was nicht sein sollte.


mh, ich dachte das geht mit destroy
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#2

Re: Objekt freigeben

  Alt 1. Sep 2003, 11:14
eigentlich nimmt man .Free

oder noch FreeAndNil(panel1).

Doch sollte man ein VCL-Control nur zerstören wenn man es auch selber erzeugt hat.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Objekt freigeben

  Alt 1. Sep 2003, 11:19
Ich hab das so gemacht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
   p:=TPanel.Create(self);
   p.Parent:=Form1;
   p.Left:=100;
   p.Top:=100;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  p.Destroy;
end;
P als globale Variable. Funktioniert bestens.

[edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit]
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#4

Re: Objekt freigeben

  Alt 1. Sep 2003, 11:22
Liest von euch keiner die VCL-Hilfe...

Zitat:
Rufen Sie Destroy nicht direkt auf. Verwenden Sie stattdessen die Methode Free, die vor dem Aufrufen des Destruktors prüft, ob das Objekt noch im Speicher vorhanden ist.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Generalissimo

Registriert seit: 28. Aug 2003
187 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Objekt freigeben

  Alt 1. Sep 2003, 11:24
ja, ok x.free ist besser.
Die Theorie ist die selbe
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#6

Re: Objekt freigeben

  Alt 1. Sep 2003, 11:29
Der grund warum man das so machen sollte ist folgender...


Delphi-Quellcode:
  if l then
     obj := TSomething.Create
  else
     obj := nil;
  
  FreeAndNil(obj); // erzeugt nix Fehler, wenn obj = nil
  // nun ist obj = nil
FreeAndNil könnte man auch durch

Delphi-Quellcode:
  obj.Free;
  obj := nil;
ersetzen...
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Snoop007

Registriert seit: 14. Jan 2003
331 Beiträge
 
Delphi 6 Personal
 
#7

Re: Objekt freigeben

  Alt 1. Sep 2003, 22:16
mit FreeAndNil klarppts, danke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz