Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Softwaretests und Qualitätssicherung (https://www.delphipraxis.net/86-softwaretests-und-qualitaetssicherung/)
-   -   Auftreten von Ereignissen konrollieren (https://www.delphipraxis.net/193614-auftreten-von-ereignissen-konrollieren.html)

delphifan2004 21. Aug 2017 10:53

Auftreten von Ereignissen konrollieren
 
Hallo,

ich möchte das Auftreten von Maus und Tastaturereignissen prüfen, auf deren Auftreten ja standardmäßig nicht gewartet wird. Wie müsste ich da zum Beispiel das Auftreten der Ereignisse von der WinAPI-Funktion GetMessage testen.

Mein Ansatz:

Delphi-Quellcode:
procedure TestGetMessage;
var mymsg: TMsg;
begin
  if GetMessage(msg,0,0,0) then
  case mymsg of
   WM_KEYDOWN: ConfirmMessage(mymsg);
   WM_KEYUP: ConfirmMessage(mymsg);
  end;
end;
Dies ist nur ein Beispiel für den Aufbau des Tests, wie ich ihn halt bisher gebaut habe. Ist das so richtig?

Ich sehe nämlich gerade in Luckies WinApi-Tutorial, dass die Nachrichtenschleife so aussieht:

Delphi-Quellcode:
//Hauptprogramm:
begin
  while GetMessage(mymsg,0,0,0) do begin end;
end.
Wie aber kann ich dann testen, ob die Message wirklich ankommt?

.

himitsu 21. Aug 2017 11:19

AW: Auftreten von Ereignissen konrollieren
 
Bei GetMessage bekommst du nur Messages, die per PostMessage verschickt wurden.

SendMessage wird direkt innerhalb von GetMessage verarbeitet.
Dort mommst du nur per Hook ran. (SetWindowsHookEx)
Zum Glück sind Tastaturereigniosse fast immer PostMessage.


Natürlich darfst du nicht vergessen alle anderen Messages (ELSE) zu verarbeiten (TranslateMessage und DispatchMessage), oder willst du alles Andere wirklich wegwerfen?


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