AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Application beenden vor erstem Erzeugen von Form
Thema durchsuchen
Ansicht
Themen-Optionen

Application beenden vor erstem Erzeugen von Form

Ein Thema von RalfSi · begonnen am 6. Jun 2012 · letzter Beitrag vom 7. Jun 2012
Antwort Antwort
RalfSi

Registriert seit: 6. Jun 2012
9 Beiträge
 
#1

AW: Application beenden vor erstem Erzeugen von Form

  Alt 6. Jun 2012, 17:14
Application.Terminate und/bzw. Exit habe mir nichts gebracht.
Der Code nach Terminate wird dennoch ausgeführt und exit brachte Fehlermeldungen in irgendwelchen bpls.
Ich hab's nun so gemacht, dass ich die Lösung angehe:

Code:
if darf_starten then begin
   Application.CreateForm(TfrmMain, frmMain);
   Application.Run;
 end;
Dennoch bleibt mir das mit dem Terminate/Destroy unverständlich (gerade auch, weil ich das Gefühl habe, dass Application.Terminate nichts zur Folge hat, außer Fehlermeldungen).
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Application beenden vor erstem Erzeugen von Form

  Alt 6. Jun 2012, 18:08
Was macht Application.Destroy ? Löst die Instanz und gibt den Speicher frei! Was passiert wenn du dann fragst if not Application.Terminated ? Du greifst noch mal auf das Application Objekt zu, das du gerade feigegeben hast. Klar das es da knallt.

Vielleicht an einem Beispiel verdeutlicht:

Delphi-Quellcode:
var
  StringList: TStringList;
begin
  StringList := TStringList.Create;
  StringList.Free;
  StringList.Add('Viel Spaß');
end;
Was stimmt hier nicht?
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: Application beenden vor erstem Erzeugen von Form

  Alt 6. Jun 2012, 18:15
Antwort: 'Viel Spaß' ist deplaziert. Rein emotionell.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

AW: Application beenden vor erstem Erzeugen von Form

  Alt 6. Jun 2012, 20:13
Dennoch bleibt mir das mit dem Terminate/Destroy unverständlich (gerade auch, weil ich das Gefühl habe, dass Application.Terminate nichts zur Folge hat, außer Fehlermeldungen).
Ganz einfach: Das Zerstören des Application-Objekts oder Application.terminate beendet das Programm nicht, sondern sondern zerstört nur die Message-Queue.
Es kann aber auch Programme ohne Message-Queue geben, auch wenn das nicht besonders Windows-typisch ist.

Wenn du dich näher mit den Grundlagen (also was unter anderem hinter diesem Objekt steckt) beschäftigen willst, kannst du dir das Win32-Tutorial von Luckie angucken.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  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 12:42 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