![]() |
Kein TForm, Application.Terminated geht nicht!
Hallo,
Also ich hab hier den source:
Delphi-Quellcode:
(Also das nur ma zum Test)
begin
Application.Initialize; Application.Run; while not Application.Terminated do Application.ProcessMessages; end. 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 |
Re: Kein TForm, Application.Terminated geht nicht!
Delphi-Quellcode:
Commented: Diese Zeile bewirkt, das die Messageloop des Programms nie verlassen wird. Nimm es raus, und dein Programm sollte wieder Ordnungsgemäß schließen.
begin
Application.Initialize; Application.Run; while not Application.Terminated do Application.ProcessMessages; // Commented end. |
Re: Kein TForm, Application.Terminated geht nicht!
hm?
Das Programm sollte ne endlosschlaufe haben die sich beendet sobald das programm beendet wird... |
Re: Kein TForm, Application.Terminated geht nicht!
Hat es schon. Das nennt sich Message-Loop. Am besten mal in Luckies Win-API-Tuts nachsehen. ;)
|
Re: Kein TForm, Application.Terminated geht nicht!
Zitat:
|
Re: Kein TForm, Application.Terminated geht nicht!
Hallo,
edosoft sollte uns verraten was er beabsichtigt. Ich kann es nicht erkennen. |
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!! |
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. |
Re: Kein TForm, Application.Terminated geht nicht!
|
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:05 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