AGB  ·  Datenschutz  ·  Impressum  







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

MDI - Variable TForm wieder freigeben

Ein Thema von davar · begonnen am 23. Feb 2006 · letzter Beitrag vom 23. Feb 2006
Antwort Antwort
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#1

MDI - Variable TForm wieder freigeben

  Alt 23. Feb 2006, 14:26
Hallo Leute,

habe hier eine Frage, die bestimmt einfach zu beantworten ist - nur find ich da keine Antwort.

In einer MDI-Applikation wird ein MDI-Child geöffnet, dabei wird ihr der Name z.B. "Form5" zugewiesen, so dass andere Fenster darauf zugreifen können.

In das "OnClose"-Ereignis setze ich den Code
Action:= caFree; ein, damit das Formular auch geschlossen und nicht minimiert wird.

Wie gesagt, andere Formulare können auf dieses Formular zugreifen. Und damit dabei keine Probleme entstehen wird vorher abgefragt:

Delphi-Quellcode:
if Assigned(Form5) then
.....
Wenn nun Form5 erstellt und wieder geschlossen wurde, verschwindet die Variable "Form5" jedoch nicht mehr und daher kommt ständig eine Fehlermeldung.

Wird die Variable "Form5" dann nicht freigegeben? Oder wie mach ich das?

MfG

davar
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: MDI - Variable TForm wieder freigeben

  Alt 23. Feb 2006, 15:04
Hallo davar,

wenn zu jeder Zeit höchstens eine Instanz von TForm5 existiert, dann kannst du die von Delphi - im Wesentlichen für eigene Zwecke - bereit gestellte globale Variable Form5 ruhig verwenden. Durch die CloseAction caFree wird zwar der durch die Instanz belegte Speicher wieder freigegeben, der Zeiger Form5 bleibt aber als dangling pointer erhalten. Damit deine Prüfung mit Assigned(Form5) wirksam ist, musst du im Ereignis OnClose() nicht nur die CloseAction auf caFree setzen, sondern auch den Zeiger Form5 auf nil.

Grüße vom marabu
  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 22:04 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