AGB  ·  Datenschutz  ·  Impressum  







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

Komponenten und deren Freigabe

Ein Thema von Privateer3000 · begonnen am 18. Aug 2003 · letzter Beitrag vom 18. Aug 2003
Antwort Antwort
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

Komponenten und deren Freigabe

  Alt 18. Aug 2003, 11:21
Hiho,
ich habe folgendes Problem:
in zb.Formx werden Edit's dynamisch erstellt und benannt.
Der Inhalt deren kann gespeichert werden und das Form wieder geschlossen werden.So weit, so gut.
Wird dieses Form kurz danach wieder aufgerufen wird eine Exeption ausgelöst und als Grund angegeben das Edit'xxx' schon exisitiert.
Also gehe ich der Annahme das nach dem Schliessen des Forms die erstellten Edit's noch im Speicher existieren.
Was muss beim schliessen des Forms beachtet werden??
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Komponenten und deren Freigabe

  Alt 18. Aug 2003, 11:27
Die Edits werden bei der Freigabe des Parent-Objektes freigegeben, also i.d.R. bei FormDestroy.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Komponenten und deren Freigabe

  Alt 18. Aug 2003, 11:39
Hallo Chewie´,
das ist nicht ganz richtig. Die Komponenten werden freigegeben, wenn der Besitzer freigegeben wird. Der Besitzer muss nicht unbedingt der Parent sein.
Wenn ein TEdit auf einem Panel liegt und das Panel auf einem Formular dann ist das Panel der Parent und das Formular der Besitzer.
Bei zur Designzeit erzeugten Komponenten ist in der Regel der Formular der Besitzer. Wird die Komponente zur Laufzeit erzeugt entscheidet der Paramter des constructors über den Besitzer.
procedure TForm1.CreateEdit;
begin
Edit:=TEdit.Create(Self); // Formular ist der Besitzer, Komponente wird freigeben wenn das Formular zerstört wird.
end;
procedure TForm1.CreateEdit;
begin
Edit:=TEdit.Create(Nil); Komponente hat keinen Besizter, Komponente wird nicht freigeben wenn das Formular zerstört wird.
end;
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Komponenten und deren Freigabe

  Alt 18. Aug 2003, 11:54
Autsch

Ich habe deutsch gedacht und den englischen Begriff geschrieben - das ging nicht gut.
Danke für die Korrektur.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Komponenten und deren Freigabe

  Alt 18. Aug 2003, 12:10
Hiho

in diesem Falle:
myedit := TEdit.Create(Form9);
wird das Form als Besitzer deklariert.
Nach der Aussage müssten ja die Edits zerstört werden wenn das Form zerstört wird.
Trotzdem kommt es zu diesen Fehlermeldungen.
Zusätzlich habe ich folgendes probiert (ohne Erfolg):
Delphi-Quellcode:
procedure TForm9.Beenden1Click(Sender: TObject);
begin
close;
Form9.Free;
end;
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Komponenten und deren Freigabe

  Alt 18. Aug 2003, 12:23
Hai Privateer,

hast Du schon einmal versucht die von dir Erzeugten Objekt im OnClose Event der Form expliziet freizugeben?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Komponenten und deren Freigabe

  Alt 18. Aug 2003, 13:30
hab ich auch schon probiert.Vielleicht sollte man andere Arten ausprobieren.
Verhalten sich zum Beispiel Frames anders als Forms??
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Komponenten und deren Freigabe

  Alt 18. Aug 2003, 14:15
Hallo Privateer3000,
wie erzeugst Du das Formular?
Poste doch mal ein bisschen Source.
  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 05:31 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