AGB  ·  Datenschutz  ·  Impressum  







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

TForm Freigeben

Ein Thema von Pro_RJ · begonnen am 3. Sep 2008 · letzter Beitrag vom 10. Aug 2009
Antwort Antwort
Seite 2 von 4     12 34      
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#11

Re: TForm Freigeben

  Alt 3. Sep 2008, 14:20
Zitat von Pro_RJ:
Aber wann bzw wo?
Im destructor kann ich Form1 nicht auf NIL setzten da anschließend eien Zugriffsverletzung kommt.

Ich habe es auch gerade mal mit der normalen Klasse TForm getestet. Hier tritt genau das gleiche Phänomen auf.
Ich dachte erst das es an der neuen Klasse liegt aber dem ist nicht so.
  Mit Zitat antworten Zitat
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#12

Re: TForm Freigeben

  Alt 3. Sep 2008, 14:25
PS: es ist egal ob das Fenster über Application.CreateForm(TForm1, Form1) oder Form1 := TForm1.Create(); erzeugt wird.
Die Frage ist nur wir kann ich nach dem Schließen des Fensters die Variable Form1 wider auf NIL setzen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: TForm Freigeben

  Alt 3. Sep 2008, 14:28
Aus der Klasse heraus nicht.
Markus Kinzler
  Mit Zitat antworten Zitat
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#14

Re: TForm Freigeben

  Alt 3. Sep 2008, 14:31
Zitat von mkinzler:
Aus der Klasse heraus nicht.
verstehe ich leider nicht ganz
Aber wann könnte ich dann die Variable Form1 wieder auf nil setzten?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: TForm Freigeben

  Alt 3. Sep 2008, 14:34
Die Klasse kennt die Referenzvariablen, die zur Laufzeit existieren ja nicht.
Markus Kinzler
  Mit Zitat antworten Zitat
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#16

Re: TForm Freigeben

  Alt 3. Sep 2008, 15:03
AHHH jetzt hab ich verstanden wo das eigentliche Problem liegt.
Gibt es eine möglichkeit die die Referenzvariablen zu ermitteln?
Wer ruft eigentichlich den destructor nach dem FormClose auf?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: TForm Freigeben

  Alt 3. Sep 2008, 15:09
Die Methode Close
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: TForm Freigeben

  Alt 3. Sep 2008, 15:13
und warum rufst du anstatt Form1.close nicht freeandnil(form1) auf? Da wird die Form doch auch vorher geschlossen und deine referenz ist nil.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Pro_RJ

Registriert seit: 16. Apr 2008
146 Beiträge
 
#19

Re: TForm Freigeben

  Alt 3. Sep 2008, 15:39
Gibt es die möglichkeit sich eine Referenzvariablen zu speichern?

bsp. dem Constructor übergeben : CreatePCB(AOwner : TComponent; Var Reference);
Diese Referenz im Object speichern und bei Destroy diese Referenz auf NIL setzten?
geht sowas?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: TForm Freigeben

  Alt 3. Sep 2008, 15:47
Jein, nur unter gewissen Umständen. Aber das ergibt eine schöne Fehlerquelle, wenn diese Umstände nicht eingehalten werden. Und das ist meist der Fall.
==> Nein

Edit: Von wo wird denn das Fenster geschlossen?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 23:30 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