Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#1

Problem mit Freigeben von CreateMessageDialog

  Alt 6. Jan 2007, 12:16
Hallo Jungs und Mädels,

ich erzeuge im OnCreate einer Form eine MessageForm mit CreateMessageDialog:

Delphi-Quellcode:
  //Meldungs-Form erzeugen und beschreiben
  MessageForm := CreateMessageDialog(Msg3, mtInformation, []);
  with MessageForm do
    begin
      BorderIcons := [];
      BorderStyle := bsNone;

      Font.Height := 15;
      Font.Style := [fsBold];
      Color := $00F8E4D8;
      Height := 55;
      Width := 320;
      FormStyle := fsStayOnTop;

      OnPaint := OnPaintMessageForm;
    end;
die Variable MessageForm ist im private-Bereich als TForm deklariert.

Soweit so gut - es funktioniert bestens.

Nur, soviel ich weiss, muss man "alles" was man erzeugt auch wieder im OnDestroy der Form freigeben.
Also mach ich im OnDestroy der Form:
FreeAndNil(MessageForm); Nur erhalte ich dabei folgende AccessViolation:

Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00000010. Lesen von Adresse 00000010'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
Nur warum?

Die Variable existiert - wird createt und müsste doch ganz einfach freizugeben sein, oder irre ich da mich?
Oder sind CreateMessageDialogs spezielle Forms?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat