Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Kraisel,
16. Jun 2016
Abschlusserkenntnisse:
Folgende Aussagen kann ich für XE10.1 und Firemonkey bestätigen:
So, ... und wohl nur so funktioniert es mit TBitmap im Thread einwandfrei. Passt auch zu einigen vorangegangenen Kommentaren.
1) MainTread: TBitmap.Create, dann beliebig auf dem Canvas herummalen
2) MainTread: Bitmap.Map (ReadWrite)
3) SomeThreads: Beliebig "zu Fuß" in den Buffer malen und/oder...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Kraisel,
15. Jun 2016
Vielleicht kann man aber folgendes machen:
1) MainThread: Bmp.map aufrufen.
2) SomeThread: Direktes Manipulieren der TBitmapData.Data.
3) MainThread: Bmp.unmap aufrufen.
Das müsste ja OK sein, solange der MainThread die Bmp nicht anrührt, bis die Threads fertig sind. Oder?
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Kraisel,
15. Jun 2016
Kategorie "ganz blöd" kannte ich noch nicht, aber sofort in mein Repertoire aufgenommen. :-D
Wenn es unbedingt parallel sein muss, geht es so:
1) MainThread: Kopie einer Bmp in ein allociertes Memory, das geht sau schnell, wenn man das Memory genau wie die Bmp organisiert.
2) SomeThread: Manipulieren des Memories, vielleicht den alten Brasenham-Algorithmus wieder aus dem Keller holen. Aber...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Kraisel,
14. Jun 2016
Unter FMX (Firemonkey) kann man nicht unbedingt von Windows-Resourcen ausgehen.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Kraisel,
13. Jun 2016
Hallo Zusammen,
dies ist keine Frage, sondern nur eine getestete Aussage. Denn immer mal wieder tritt die Frage auf, ob TBitmap threadsave ist oder nicht. Wie viele andere Kollegen auch, war ich der Meinung, dass man durchaus mit Map/Unmap in einem Thread wenigstens aus der Bmp lesen kann. Aber selbst das geht manchmal schief und es werden falsche Pixel gelesen. Ob hier ein falscher Buffer...