So, ich hab in der DP doch was gefunden, war nur immer falsch gesucht.
(
www.delphipraxis.net...=tbitmap+pbitmapinfo )
Und zwar ist folgendes bei rausgekommen. Das funktioniert soweit auch, aber nur beim ersten Aufruf. Jeder weiter liefert exakt die selben Daten. Ich denke mal, es hat was damit zu tun dass das Bitmap kein DIB sondern ein DDB enthält, warum auch immer.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| lpBits:PByte; Buffer:PByteArray; row : Integer; begin ..... lpBits := @(PBITMAPINFO(Result)^.bmiColors); for row := Bitmap.Height - 1 downto 0 do begin buffer := Bitmap.Scanline[row]; CopyMemory(lpBits, buffer, wLineLen); inc(lpBits, wLineLen); end; |
Nun ist die Frage: wie kriege ich das Bitmap dazu, seine Daten zu aktualisieren? Ich hatte vorher zum Testen ein SaveToFile vor der Schleife, da ging es. Ich vermute mal, es wird dort etwas Aufgerufen, um das DIB zu aktualisieren. Ich tippe da mal auf DIBNeeded, aber die darf ich ja selbst nicht aufrufen, da sie private ist.
Was kann man da machen?
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."