Liebe Experten,
ich mache eine rechenintensive Bildanalyse. Das Bild liegt als TBitmap vor. Die Farbe eines Pixels hole ich mit Bitmap.canvas.pixels[x,y]. Nun mein Problem:
Ich will die Arbeit in einem eignen Thread (TTHREAD) machen und habe sie in der EXECUTE-Methode untergbracht. Das Bitmap ist lokal in der Klasse erklärt, wird dort im CREATE erzeugt und erst bei FREE wieder gelöscht.
Das Bild wird aber nur zum Teil bearbeitet, ab einem gewissen Zeitpunkt gibt Bitmap.canvas.pixels[x,y] immer den Wert -1. Laut Hilfe zeigt das, dass der Punkt außerhalb des ClipRect liegt. Stimmt auch, aus irgend einem Grund ist das ClipRect auf ((0,0),(1,1)) gesetzt. Zu Beginn der Baerbeitung ist es korrekt auf Bildbreite und -höhe gesetzt.
Lasse ich das EXECUTE nicht per RESUME starten sondern rufe es von Hautpthread einfach als Procedure auf, dann geht alles bestens.
Hat jemand eine Idee, wer bei einer lokalen Bitmap das ClipRect ändern könnte? Ich selbst kann es nicht ändern, es ist ja eine nur lesbare Eigenschaft.
Beste Grüße
GuaAck