AGB  ·  Datenschutz  ·  Impressum  







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

FormClose erzeugt Exception - Washalb?

Ein Thema von Jazzman_Marburg · begonnen am 1. Dez 2009 · letzter Beitrag vom 2. Dez 2009
 
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#9

Re: FormClose erzeugt Exception - Washalb?

  Alt 2. Dez 2009, 00:39
Zitat von Sir Rufo:
Wieso sollten da noch Methoden aufgerufen werden? ... von der VCL?
Ja, die VCL ist noch nicht fertig mit dem Formular.
Delphi-Quellcode:
procedure TCustomForm.Close; // aus der VCL
var
  CloseAction: TCloseAction;
begin
  if fsModal in FFormState then
    ModalResult := mrCancel
  else
    if CloseQuery then
    begin
      if FormStyle = fsMDIChild then
        if biMinimize in BorderIcons then
          CloseAction := caMinimize else
          CloseAction := caNone
      else
        CloseAction := caHide;
      DoClose(CloseAction); // hier wird das Event OnClose aufgerufen
      if CloseAction <> caNone then
        if Application.MainForm = Self then Application.Terminate // ???
        else if CloseAction = caHide then Hide // ***
        else if CloseAction = caMinimize then WindowState := wsMinimized // ***
        else Release; // ***
    end;
end;
Jede Zeile, die mit *** markiert ist greift auf das Formular Objekt zu.
Aber das Objekt ist ja schon freigeben und deshalb kann es in jeder dieser Zeilen zu einer Zugriffsverletzung kommen.
Bei der Zeile markiert mit ??? bin ich mir selbst nicht sicher, aber auch hier besteht potentiell die Gefahr,
dass über verschlungene Wege auf das (freigebene) Formular Objekt zugegriffen wird.
fork me on Github
  Mit Zitat antworten Zitat
 


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 17:19 Uhr.
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