AGB  ·  Datenschutz  ·  Impressum  







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

OnIdle wird immer wieder ausgeführt

Ein Thema von RavenIV · begonnen am 30. Jun 2005 · letzter Beitrag vom 5. Jul 2005
Antwort Antwort
Seite 2 von 2     12   
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#11

Re: OnIdle wird immer wieder ausgeführt

  Alt 4. Jul 2005, 16:40
Yupp. Aber in dem Fall nicht, weil die Applikation den Fokus kriegt, sondern weil sie irgendwann mit der Abarbeitung des Klicks auf den OK-Button fertig ist. Aber natürlich mit dem selben Ergebnis.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: OnIdle wird immer wieder ausgeführt

  Alt 4. Jul 2005, 16:49
Zitat von Sidorion:
Yupp. Aber in dem Fall nicht, weil die Applikation den Fokus kriegt, sondern weil sie irgendwann mit der Abarbeitung des Klicks auf den OK-Button fertig ist. Aber natürlich mit dem selben Ergebnis.
OK, hab ich verstanden.
Danke.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
shmia

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

Re: OnIdle wird immer wieder ausgeführt

  Alt 4. Jul 2005, 17:13
Ich denke, du kommst mit dem OnIdle Event auf keinen grünen Zweig.
Mit dem Event OnMessage (wie oben vorgeschlagen) kannst du alles kontrollieren:
Delphi-Quellcode:
var
   lastMsgTime : DWORD;

procedure TForm1.HandleOnMessage(var Msg: TMsg; var Handled: Boolean);
begin
   case Msg.message of
      WM_ACTIVATE,
      WM_ACTIVATEAPP,
      WM_CREATE,
      WM_SETFOCUS,
      WM_MOUSEWHEEL,
      WM_CHAR,
      WM_SYSCHAR,
      WM_RBUTTONDOWN,
      WM_LBUTTONDOWN,
      WM_MBUTTONDOWN,
      WM_MOVE,
      WM_MOVING:
         lastMsgTime := Msg.time;
   end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
   Application.OnMessage := HandleOnMessage;
   lastMsgTime := GetTickCount;
end;

// Timer feuert alle 500ms
procedure TForm1.Timer1Timer(Sender: TObject);
var
   x : DWORD;
   diff : DWORD;
begin
   x := GetTickCount;
   diff := x - lastMsgTime;

   if diff > 10000 then // > 10 Sekunden
      Caption := 'ich schlafe jetzt in der TNA'
   else
      caption := IntToStr(diff)+ 'ms seit letzter Message';
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#14

Re: OnIdle wird immer wieder ausgeführt

  Alt 4. Jul 2005, 20:36
das "HandleOnMessage" funktioniert zu meiner Zufriedenheit.

kann es jedoch sein, dass die Message WM_MOVE nicht zu mir ins Programm kommt?
ich kann das Fenster auf dem Bildschirm rumschieben, wie ich will, die Zeit läuft aber weiter und irgendwas ist das Fenster in der TNA.

gruessle
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
shmia

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

Re: OnIdle wird immer wieder ausgeführt

  Alt 5. Jul 2005, 09:38
Zitat von RavenIV:
kann es jedoch sein, dass die Message WM_MOVE nicht zu mir ins Programm kommt?
ich kann das Fenster auf dem Bildschirm rumschieben, wie ich will, die Zeit läuft aber weiter und irgendwas ist das Fenster in der TNA.
Das ist mir auch schon aufgefallen, dass WM_MOVE nicht ankommt.
Du kannst ja mal mit WM_WINDOWPOSCHANGED und/oder WM_WINDOWPOSCHANGING herumspielen.
WM_SIZE gehört auch noch in die Liste.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 07:58 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