Forum: Programmieren allgemein
Delphi
by himitsu,
1. Jul 2022
Weil schon seit Anfang an jegliche Konstanten abgelehnt werden. :zwinker:
Forum: Programmieren allgemein
Delphi
by himitsu,
30. Jun 2022
Mindestens die Form hat hat den Fokus, selbst wenn nichts drauf ist (so wie hier).
Und in der Schleife kommt auch erstmal Alles vorbei. (und Msg.hWnd kann man hier ja ignorieren)
GetKeyState/GetAsyncKeyState haben auch nur den Tastenstatus von innerhalb der aktuell/letzten abgerufenen Message.
Problem beim Timer ist auch, wenn man GetKeyState falsch auswertet, dann gehen da womöglich...
Forum: Programmieren allgemein
Delphi
by himitsu,
30. Jun 2022
Timer ist unnötig.
Entwerder es wird in der MessageLoop (nach GetMessage/PeekMessage) gemacht, indem man auf die gewünschten Tastatur-Messages reagiert,
oder in einer WindowProc. (via GWL_WNDPROC an eine bestehenden Klasse/Instanz angehängt, oder mit RegisterClass über eine eigene WindowClass)
Forum: Programmieren allgemein
Delphi
by himitsu,
29. Jun 2022
Ich seh kein PeekMessage im Code. (#20)
Außerdem ist da schonwieder lpClassName und lpWindowsName im CreateWindow vertauscht, bzw. es wird eine Klasse registriert, die nie verwendet wird.
Und nicht alle Messages kommen aus PeekMessage/GetMessage raus.
z.B. Alles, was SendMessage betrifft, wird direkt innerhalb von PeekMessage/GetMessage verarbeitet und garnicht zurückgegben.
Forum: Programmieren allgemein
Delphi
by himitsu,
19. Jun 2022
ja, weil das fenster noch nicht richtig initialisiert war.
Es fehlten noch sehr viele Messages, welche nicht behandelt wurden.
Unter Anderem war daher auch das Fenster selber unsichtbar, bis auf diese paar gemalten Rechtecke.
Aber das mit dem DefWindowProc hattest du schon bemerkt.
Oben hatte ich es auch schon nachgetragen, mit dem Unterschied des ELSE, aber ist erstmal egal, da das...
Forum: Programmieren allgemein
Delphi
by himitsu,
19. Jun 2022
Noch schlimmer. Es könnte eventuell sogar ein Code für Delphi 1 sein, also für ein 16 Bit Windows. (Windows 1.0 bis 3.11)
Hat dieser Code jemals funktioniert, dann wohl eher nur in uralten Windowsen. (vor allem die fehlende Messagebehandlung und die echt winzige Darstellung, schon bei FullHD)
Und es gibt unmassen Fehler:
* Rückgabewerte nicht zugewiesen -> WindowProc
* Aufrufconvention...