AGB  ·  Datenschutz  ·  Impressum  







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

nachrichtenschleife aufrecht erhalten

Ein Thema von lbccaleb · begonnen am 26. Sep 2007 · letzter Beitrag vom 26. Sep 2007
Antwort Antwort
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#1

nachrichtenschleife aufrecht erhalten

  Alt 26. Sep 2007, 13:05
hy there,

ich habe ein nonvcl programm in dem eine suchfunktion etwas länger dauert nun wollte ich das er in der zeit die nachrichtenschleife aufrecht erhält!!

ich hab es mit

Delphi-Quellcode:
procedure ProcessMessages;
// hält die Nachrichtenschleife in Gang
var
  Msg: TMsg;
begin
  if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then begin
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  end;
end;
probiert nur leider beendet er dort mein programm nicht wirklich mehr mit, nimmt zwar noch eingaben entgegen, aber wird nicht wirklich geschlossen. nur das fenster verschwindet optisch..

gibt es da eine besser möglich keit die schleife aufrecht zu erhalten???


danke schon mal im vorraus
Martin
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: nachrichtenschleife aufrecht erhalten

  Alt 26. Sep 2007, 13:11
Versuch das:
Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
// Procedure : ProcessMessages
// Comment : Replacement for ProcessMessages of TApplication
procedure ProcessMessages(hWnd: DWORD);
var
  Msg : TMsg;
begin
  while PeekMessage(Msg, hWnd, 0, 0, PM_REMOVE) do
  begin
    TranslateMessage(Msg);
    DispatchMessage(Msg);
  end;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: nachrichtenschleife aufrecht erhalten

  Alt 26. Sep 2007, 13:12
Delphi-Quellcode:
function ProcessMessages:boolean;
// hält die Nachrichtenschleife in Gang
var
  Msg: TMsg;
begin
  if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then
  begin
    result := Msg.Message <> WM_QUIT;
    if Result then
    begin
      TranslateMessage(Msg);
      DispatchMessage(Msg);
    end;
  end;
end;
In deinem Programmcode muss nun der Return-wert ausgewertet werden:
Delphi-Quellcode:
for I := 0 to 99999 do
begin
  // irgendwas tun ...
  if not ProcessMessages then Exit;
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: nachrichtenschleife aufrecht erhalten

  Alt 26. Sep 2007, 13:22
mhh als handle das handle vom hauptfenster???

ich habs mit hinstance als handle versucht aber das ging nicht, fährt das programm fest und nimmt keine eingaben mehr an kann auch nicht auf normalem weg beendet werden!!
Martin
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: nachrichtenschleife aufrecht erhalten

  Alt 26. Sep 2007, 15:57
Zitat von lbccaleb:
mhh als handle das handle vom hauptfenster???
Auf welchen Beitrag bezieht sich diese Frage ?
Hast du meinen Betrag gelesen ? Hast du gesehen, dass ich eine Sonderbehandlung für die Message WM_QUIT eingebaut habe?! In der VCL wird das ganz ähnlich gemacht.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: nachrichtenschleife aufrecht erhalten

  Alt 26. Sep 2007, 17:12
ja hab ich, hab ich auch getest deine version aber irgend wie immer noch nicht das, was ich mir erhofft hab.. und ich hab kein plan wiese....

ich hab es jetzt erst mal so gelöst das ich luckie´s version nehme und dann in wm_destroy noch zusätzlich nen halt; kommando eingefügt hab, das ist zwar nicht das gelbe vom ei aber es geht erstmal und der post von mir auf den von luckie bezogen, ja..
Martin
  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 12:06 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