Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi nonvcl Endlosschleife ohne uses Forms (https://www.delphipraxis.net/96690-nonvcl-endlosschleife-ohne-uses-forms.html)

gandime 29. Jul 2007 01:27


nonvcl Endlosschleife ohne uses Forms
 
Hi,
wie kann ich mit nonvcl eine Endlosschleife ohne application.processmessages, welches ja aus uses Forms?
Die Schleife sollte aber Reagieren, damit die Timer noch funktionieren

mfg
gandime

sirius 29. Jul 2007 07:45

Re: nonvcl Endlosschleife ohne uses Forms
 
Das ist deine Schleife:
Delphi-Quellcode:
while getmessage(msg,0,0,) do
begin
  translatemessage(msg);
  dispatchmessage(msg);
end;
Wenn du an dich selber ein Postquitmessge schickst wird diese Schleife beendet.

jfheins 29. Jul 2007 09:38

Re: nonvcl Endlosschleife ohne uses Forms
 
Ich glaube, er meinte wie er in einem nonVCL Programm eine Schleife machen kann, ohne dass seine Anwendung einfriert ... also quasi ein nonVCL Gegenstück von Application.ProcessMessages ;)

Ich meine, das habe ich mal in einer Demo von Luckie oder so gesehn ...

turboPASCAL 29. Jul 2007 09:53

Re: nonvcl Endlosschleife ohne uses Forms
 
Das geht so:

Delphi-Quellcode:
procedure ProgressMessages;
var msg: TMsg;
begin
  if PeekMessage(Msg, 0, 0, 0, pm_Remove) then
  begin
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  end;
end;

//..
procedure ...
begin
  for x := ... to y do
  begin
    // to do....
    ProgressMessages;
  end;
end;

//...

sirius 29. Jul 2007 10:33

Re: nonvcl Endlosschleife ohne uses Forms
 
Zitat:

Zitat von jfheins
Ich glaube, er meinte wie er in einem nonVCL Programm eine Schleife machen kann, ohne dass seine Anwendung einfriert ... also quasi ein nonVCL Gegenstück von Application.ProcessMessages ;)

Ich meine, das habe ich mal in einer Demo von Luckie oder so gesehn ...

Achja, dafür nimmt man natürlich peekmessage statt getmessage, aber das hat ja TP schon geschrieben :wink:

gandime 29. Jul 2007 10:51

Re: nonvcl Endlosschleife ohne uses Forms
 
genau das wollte ich: PeekMessage(Msg, 0, 0, 0, pm_Remove)

danke an alle :-)

gandime 29. Jul 2007 11:30

Re: nonvcl Endlosschleife ohne uses Forms
 
blos wie mache ich das jetzt das nicht 100%cpu auslastung entsteht, möglichst ohne sleep?

sirius 29. Jul 2007 11:43

Re: nonvcl Endlosschleife ohne uses Forms
 
:wiejetzt:
Also möchtest du doch nicht ein "identischen Processmessages", sondern dein Programm soll auf eine Message warten (mit wenig CPU-Auslastung.
Dann nimmst du statt peekmessage -> getmessage.

gandime 29. Jul 2007 16:35

Re: nonvcl Endlosschleife ohne uses Forms
 
hmm ok sry meine Schuld


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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