Zitat:
Vielleicht ist es einfacher wenn du uns sagst mit welcher Delphi Version du was erreichen willst? Evtl. ist dann ein ganz anderer Ansatz der richtige..?
joar
Zitat:
wie
Auf die Messages reagieren
oder GetAsyncKeyState
oder GetKeyState (innerhalb irgendeiner Message)
oder anderes Zeugs, z.B. aus
DirectX und Co.
So wie in #3 (mit Message-Loop und der richtigen registrieren Klasse) funktioniert es, in halbwegs aktuellen Windowsen und in allen Delphis der letzten 15 Jahre und vermutlich auch mehr.
Was macht im readkm das CASE
außerhalb der Schleife?
zum Code aus #8:
Wenn jemand (DU) den Debugger benutzten würde,
dann viele vielleicht auf, dass das Programm im CreateWindow in creWin hängen bleibt
und nachfolgend natürlich die externe Messagebeandlung & Tastenprüfung demnach auch garnichts machen kann.
Und ab Delphi 11 bekommt man auch noch wunderschön einen RuntimError 201 um die Ohren gehauen,
da dort die Bereichsprüfung (RangeCheck) nun im Debug-Profil standardmäßig aktiv ist.
Und wer ein eigentliches "HauptFenster" als Popup (WS_POPUP) deklariert, der braucht sich nicht wundern, wenn es etwas "anders" auf Tastatur/Maus/Fokusteuerung reagiert.
PeekMessage ohne Pausen, lässt die CPU nur ein bissl unnötig viel arbeiten.
PeekMessage+MsgWaitForMultipleObjects (siehe
Delay) oder GetMessage sind da sparsamer. (aber funktionell ist es erstmal egal)
Lesetipps:
https://www.delphi-treff.de/tutorial...ierung/nonvcl/
und auch mal da durchstöbern
https://www.michael-puff.de/ (das menü unten funktioniert nicht mehr, daher siehe nachfolgenden Link)
http://web.archive.org/web/201804300...chael-puff.de/
PS: Wenn wndprocnur noch DefWindowProc macht, dann kann man das auch gleich ganz weglassen.