Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kein TForm, Application.Terminated geht nicht! (https://www.delphipraxis.net/34639-kein-tform-application-terminated-geht-nicht.html)

edosoft 25. Nov 2004 19:48


Kein TForm, Application.Terminated geht nicht!
 
Hallo,

Also ich hab hier den source:

Delphi-Quellcode:
begin
  Application.Initialize;
  Application.Run;

  while not Application.Terminated do Application.ProcessMessages;
end.
(Also das nur ma zum Test)

Wenn ich das Programm jetzt mit dem Strg.+Alt+Del. (Win 98!!) beende passiert nix. Nach so ner halben Minute oder so kommt dann halt "Programm konnte nicht beendet werden" und "Programm sofort beenden".

Also ich kann des Programm abschießen aber wenn ichs normal beende (z.b. runterfahren) kommt halt zuerst der fehler " Programm konnte nicht beendet werden..."

Wie kann ich das machen?
Danke!

/edit: Ach ja hatte ich vergessen. Ich hab keine TForm und auch keine Andere Unit eingebunden (Ausser "Forms").
Also das ist dann halt der Auszug aus der Project1.dpr

Dax 25. Nov 2004 19:49

Re: Kein TForm, Application.Terminated geht nicht!
 
Delphi-Quellcode:
begin
  Application.Initialize;
  Application.Run;

  while not Application.Terminated do Application.ProcessMessages;
  // Commented
end.
Commented: Diese Zeile bewirkt, das die Messageloop des Programms nie verlassen wird. Nimm es raus, und dein Programm sollte wieder Ordnungsgemäß schließen.

edosoft 25. Nov 2004 19:52

Re: Kein TForm, Application.Terminated geht nicht!
 
hm?

Das Programm sollte ne endlosschlaufe haben die sich beendet sobald das programm beendet wird...

Dax 25. Nov 2004 19:54

Re: Kein TForm, Application.Terminated geht nicht!
 
Hat es schon. Das nennt sich Message-Loop. Am besten mal in Luckies Win-API-Tuts nachsehen. ;)

IngoD7 26. Nov 2004 08:20

Re: Kein TForm, Application.Terminated geht nicht!
 
Zitat:

Zitat von edosoft
Das Programm sollte ne endlosschlaufe haben die sich beendet sobald das programm beendet wird...

Wie auch Dax schon sinngemäß schrieb: Genau das passiert bei Application.Run (siehe hierzu auch die Delphi-Hilfe).

Jens Schumann 26. Nov 2004 08:28

Re: Kein TForm, Application.Terminated geht nicht!
 
Hallo,
edosoft sollte uns verraten was er beabsichtigt. Ich kann es nicht erkennen.

edosoft 27. Nov 2004 00:59

Re: Kein TForm, Application.Terminated geht nicht!
 
Also.

Ich will ein Programm.
Das soll die DynDNS updaten.
Ich hab mir gedacht ich mach das mit ner while Schlaufe.
Ich will kein TForm oder sowas im Programm haben.

Also:

Delphi-Quellcode:
[..]
Application.Run;
while not Application.terminated do
  UpdateDynDNS();

end.

Dummerweise ist Application.Terminated NIE gesetzt und das Programm macht die while-Schleife weiter bisses abgeschossen wird.
Deshalb: Windows bringt die Fehlermeldung "Programm konnte nicht beendet werden..."

Das Programm soll halt eben App.Terminated auch wirklich setzten wenns die Beenden MSG von Windows kriegt...

@Jens Schumann: Jetzt klar?


/EDIT: ach ja und wenn ich KEINE while-Schlaufe hab beendet sich das Programm sobalds bei "End." angekommen ist!!

dizzy 27. Nov 2004 01:08

Re: Kein TForm, Application.Terminated geht nicht!
 
Dann schau dir doch mal Luckies Non-VCL Tutorials an, und bau dir eine Messageloop ein. Sonst wird dein Programm nie mitbekommen wann und ob es überhaupt eine Message von Windows bekommt.
Du proggst ja hier Non-VCL. Mit der VCL brauchst du keine Msg-Loop zu bauen - die bringt die VCL schon mit. Also: Ohne VCL keine vorgefertigte Loop.

edosoft 27. Nov 2004 12:45

Re: Kein TForm, Application.Terminated geht nicht!
 
Äh...
Ja.

Nur ein Problem noch:
www.luckie-online.de: Seite nicht verfügbar...

Dax 27. Nov 2004 12:50

Re: Kein TForm, Application.Terminated geht nicht!
 
Kein Problem: Seite funktioniert :roll:

BtW: Bau' die Schleife besser in eine unsichtbare Form ein ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:20 Uhr.
Seite 1 von 2  1 2      

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