AGB  ·  Datenschutz  ·  Impressum  







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

Application.Processmessages blockiert

Ein Thema von DoktorD · begonnen am 29. Apr 2009 · letzter Beitrag vom 29. Apr 2009
Antwort Antwort
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#1

Application.Processmessages blockiert

  Alt 29. Apr 2009, 12:09
Hi. Ich nutze in meinen Programm Application.Processmessages um zu warten, bis eine bestimmte sage eintritt.
Aber wenn ich dies in einer Whileschleife ablaufen lasse, kann ich das Programm mit Alt + F4 nicht beenden.

Warum ist das denn so?
Wie kann ich das lösen?

Hier mal ein kleines Beispiel:
Delphi-Quellcode:
procedure TForm22.FormActivate(Sender: TObject);
begin
  while m_bTest = FALSE do
    Application.ProcessMessages;
end;
Danke für Eure Antworten
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Application.Processmessages blockiert

  Alt 29. Apr 2009, 12:14
Application.ProcessMessages; wartet nicht, sondern stösst nur die Abarbeitung von Windows-Nachrichten an. Du solltest zusätzlich noch einen Delay() o.ä. einbauen
Markus Kinzler
  Mit Zitat antworten Zitat
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#3

Re: Application.Processmessages blockiert

  Alt 29. Apr 2009, 12:21
Ok, das würde einiges erklären. Mit einem Sleep hab ich es auch schon probiert aber da geht es auch nicht.

Delphi-Quellcode:
procedure TForm22.FormActivate(Sender: TObject);
begin
  while m_bTest = FALSE do
  begin
    Application.ProcessMessages;
    sleep(10);
  end;
end;
Gibts in Delphi denn ein Delay? Die Delays in diesem Forum sind nämlich auch alle mit Application.Processmessages gelöst
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.187 Beiträge
 
Delphi 12 Athens
 
#4

Re: Application.Processmessages blockiert

  Alt 29. Apr 2009, 12:21
nein, Application.ProcessMessages verarbeitet die Nachrichten ... bzw. dieses ruft solange das inderne Application.ProcessMessage (man beachte das fehlende S) auf, wie Nachrichten vorhanden sind und .ProcessMessage verarbeitet diese dann.


[add]
ach ja, und nicht auf False/True prüfen!

[add2]
nein, aber DelayDelay bzw. Hier im Forum suchenDelay

Delphi-Quellcode:
while not m_bTest and not Application.Terminated do
  Application.ProcessMessages;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Application.Processmessages blockiert

  Alt 29. Apr 2009, 12:25
Sleep() ist aktives warten. Sollte man nicht verwenden.
Markus Kinzler
  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 16:56 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