Forum: Programmieren allgemein
Delphi
by jaenicke,
10. Jan 2017
Ich meinte so etwas wie:const
WM_MySuperSpecialOperation = WM_USER + 777; // ab WM_USER oder WM_APP kannst du eigene Botschaften definieren
var
MyValue: TMyVeryOwnRecord;
begin
SendMessageW(GetParent(WinHandle), WM_MySuperSpecialOperation, 0, @MyValue);Kompiliert so wohl nicht, aber was ich damit zeigen möchte ist, dass du auch eine ganz eigene Message und einen ganz eigenen Recordtyp...
Forum: Programmieren allgemein
Delphi
by jaenicke,
10. Jan 2017
Immer wenn du einen Pointer hast, der auf nichts Bekanntes zeigt. Sprich einen Pointer auf eine lokale Variable musst du nicht initialisieren, einen Pointer, den du ohne weitere Zusammenhänge lokal als Variable deklariert hast, schon.
Nebenbei:
Du musst auch nicht WM_NOTIFY benutzen. Du kannst ruhig eine eigene Windows Message und einem eigenen Recordtyp verwenden, wenn du vielleicht noch...
Forum: Programmieren allgemein
Delphi
by jaenicke,
10. Jan 2017
Hier findest du entsprechenden Code mit Erläuterungen:
https://de.m.wikibooks.org/wiki/Programmierkurs:_Delphi:_Pointer
Es fehlt vor der Verwendung lediglich die Reservierung des Speichers mit New und nach dem SendMessage die Freigabe mit Dispose.
Forum: Programmieren allgemein
Delphi
by jaenicke,
10. Jan 2017
Du kannst das ja verwenden, aber wenn du per WM_NOTIFY einen Record weizergehen möchtest, musst du auch den nötigen Speicher reservieren.
Im Moment schreibst du, da der Parameter, den du einfach auf einen Pointer auf den Record castest, ja nicht einmal ein Pointer ist, an eine quasi zufällige Stelle im Speicher und hoffst, dass das gut geht...
Auffallen tut das bei dir, weil du eben nicht...