AGB  ·  Datenschutz  ·  Impressum  







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

nachgeladene Form Fenster Drucken

Ein Thema von spartakus · begonnen am 3. Jul 2005 · letzter Beitrag vom 3. Jul 2005
 
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: nachgeladene Form Fenster Drucken

  Alt 3. Jul 2005, 18:47
@omata: Laut Hilfe stimmt dies zum teil. Angenommen folgende Situtation ist gegeben
Delphi-Quellcode:
procedure TForm1.DoSomeThing;
begin
  ShowMessage('Hallo');
  //Free or Release?
  Caption := 'Test';
end;
In diesem Fall muss man Release verwenden da das Form frühestens nach Beendigung de Procedure zerstört werden soll. Würde man Free nehmen gäbe es dann bei "Caption := ..." eine AV.

Für den Rest dürfte es allerdings keine Rolle spielen.
Natürlich könnte jetzt das Argument kommen das bei Release noch Messages abgearbeitet werden. Aber wer/was verhindert das nach Release noch eine Message an das Programm geschickt wird bevor die Message von Release abgearbeitet wird. Niemand/Nichts und somit wäre man wieder am Anfang - nämlich das nicht alle Nachrichten abgearbeitet sind.

Der Vorteil von Release ist einfach nur der das, das Form erst freigegeben wird wenn die Message abgearbeitet ist welche von Release gesendet wird. Wenn allerdings folgende Situtation gegeben ist
Delphi-Quellcode:
procedure TForm1.DoSomeThing;
begin
  ShowMessage('Hallo');
  //Free or Release?
  Application.ProcessMessage;
  Caption := 'Test';
end;
so spielt es keine Rolle ob man Release oder Free nimmt, denn durch das "Application.ProcessMessages" wird die Message zum freigeben des Formulars auch abgearbeitet bevor das Ende der Procedure erreicht wird und eine AV sollte ebenfalls damit auftreten.

Kurz und Knapp. Wenn man weiß das, das Form und dessen unterkomponenten gerade nichts abarbeiten kann man auch free nutzen, und das sollte hier auch der Fall sein, denn die Anweisung wird ja erst ausgeführt wenn ShowModal zurück gekehrt ist, und dies setzt ja auch vorraus das die wm_close-Nachricht abgeabeitet wurde und somit ist ausgeschlossen das sich die Anwendung gerade in einer Procedure befindet.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 01:39 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 by Thomas Breitkreuz