AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Kein TForm, Application.Terminated geht nicht!
Thema durchsuchen
Ansicht
Themen-Optionen

Kein TForm, Application.Terminated geht nicht!

Ein Thema von edosoft · begonnen am 25. Nov 2004 · letzter Beitrag vom 28. Nov 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von edosoft
edosoft

Registriert seit: 27. Okt 2003
Ort: Wehingen
258 Beiträge
 
Turbo Delphi für Win32
 
#1

Kein TForm, Application.Terminated geht nicht!

  Alt 25. Nov 2004, 20:48
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
Dominik Weber
www.edo-soft.com
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Kein TForm, Application.Terminated geht nicht!

  Alt 25. Nov 2004, 20:49
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.
  Mit Zitat antworten Zitat
Benutzerbild von edosoft
edosoft

Registriert seit: 27. Okt 2003
Ort: Wehingen
258 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Kein TForm, Application.Terminated geht nicht!

  Alt 25. Nov 2004, 20:52
hm?

Das Programm sollte ne endlosschlaufe haben die sich beendet sobald das programm beendet wird...
Dominik Weber
www.edo-soft.com
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Kein TForm, Application.Terminated geht nicht!

  Alt 25. Nov 2004, 20:54
Hat es schon. Das nennt sich Message-Loop. Am besten mal in Luckies Win-API-Tuts nachsehen.
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Kein TForm, Application.Terminated geht nicht!

  Alt 26. Nov 2004, 09:20
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).
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Kein TForm, Application.Terminated geht nicht!

  Alt 26. Nov 2004, 09:28
Hallo,
edosoft sollte uns verraten was er beabsichtigt. Ich kann es nicht erkennen.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von edosoft
edosoft

Registriert seit: 27. Okt 2003
Ort: Wehingen
258 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Kein TForm, Application.Terminated geht nicht!

  Alt 27. Nov 2004, 01:59
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!!
Dominik Weber
www.edo-soft.com
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Kein TForm, Application.Terminated geht nicht!

  Alt 27. Nov 2004, 02:08
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.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von edosoft
edosoft

Registriert seit: 27. Okt 2003
Ort: Wehingen
258 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Kein TForm, Application.Terminated geht nicht!

  Alt 27. Nov 2004, 13:45
Äh...
Ja.

Nur ein Problem noch:
www.luckie-online.de: Seite nicht verfügbar...
Dominik Weber
www.edo-soft.com
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#10

Re: Kein TForm, Application.Terminated geht nicht!

  Alt 27. Nov 2004, 13:50
Kein Problem: Seite funktioniert

BtW: Bau' die Schleife besser in eine unsichtbare Form ein
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:23 Uhr.
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