Forum: Programmieren allgemein
by himitsu,
28. Jun 2016
Unter Win64 wird es mit LongInt natürlich knallen.
Selbst Integer/Cardinal ist inzwischen falsch, da dessen Größe eingefroren wurde.
Als Casts für Pointer solltest du immer nur die Typen IntPtr (falls das definiert ist), NativeInt NativeUInt (das neue "Integer") oder besser noch LPARAM, WPARAM und LRESULT verwenden.
Letztere sind die "eigentlichen" Typen der Parameter, für z.B. SendMessage,...
Forum: Programmieren allgemein
by himitsu,
27. Jun 2016
Unnötig?
Der Text wird eh nur mit dem einem Befehl reingegeben und es gibt somit nur eine Aktualisierung.
OK, "synchronisiert" wird es nur "indirekt".
Windows fügt diese Message synchronisert in die MessageQueue des Erstellerthreads des Controls ein.
Und da nur der eine Thread seine Messages ausliest und verarbeitet, werden dort alle Messages auch immer nur nacheinander...
Forum: Programmieren allgemein
by himitsu,
24. Jun 2016
Bei SendMessage/SetWindowText wird der Queue wohl nicht voll laufen, da das ja wartet, bis die Message verarbeitet wurde.
(da bräuchte man dann schon ganz viele Threads, die das gleichzeitig versuchen)
Bei PostMessage sieht das anders aus, aber müsste das nicht einen Fehler geben, wenn der Queue voll ist und man das versucht noch rein zu quetschen?
Und leider bietet Windows ja keinen...