Forum: Object-Pascal / Delphi-Language
by FirstTry,
3. Okt 2015
Vielen Dank für eure Hilfe!
Mit TBitmap32 funktioniert alles einwandfrei.
Wäre nett wenn mir jemand dazu gute Tutorials/ Beispiele liefern könnte.
Ansonsten sehe ich diesen Thread als geschlossen :)
Abschließend: TBitmap (oder sonst etwas, dass TCanvas nutzt) sollte nicht in Threads verwendet werden.
Forum: Object-Pascal / Delphi-Language
by FirstTry,
2. Okt 2015
Habe den Link gefunden
http://www.snehovapohotovost.cz/authorsmore.php?id=6929
Also liegt der Fehler in der Verarbeitung von WindowsHandles?
Es kann doch nicht sein, dass mein Fehler nicht "normal" lösbar ist... Sicher dass es am Bitmap liegt?
Könnte es anstatt mit Synchronize mit irgendetwas anderem klappen?
Forum: Object-Pascal / Delphi-Language
by FirstTry,
2. Okt 2015
TPngImage gibts erst ab XE7 wenn ich das richtig sehe.
Ich arbeite noch mit der Steinzeitversion 7
Forum: Object-Pascal / Delphi-Language
by FirstTry,
2. Okt 2015
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
Paintbox1.Canvas.Draw(0,0, FBild);
end;
wird in einem Timer alle 10 ms aufgerufen. (Steht oben auch schon)
Wieso sollte es sonst auch bis zu der Mausbewegung funktionieren?!
Forum: Object-Pascal / Delphi-Language
by FirstTry,
2. Okt 2015
Guten Tag,
Es kommt teilweise der Fehler: 'Leinwand/Bild erlaubt kein Zeichnen'
Vielleicht wird zu schnell gemalt oder zu oft..
Ich weiß leider immer noch nicht, wo der Fehler genau steckt. Scheinbar im Synchronize, aber auch ein Test zeigte, dass Synchronize blockierend ist, also weiß ich nicht was es für Fehler geben könnte.
Wird möglicherweise "Canvas.Draw" von einem anderen Thread...
Forum: Object-Pascal / Delphi-Language
by FirstTry,
2. Okt 2015
Danke Luckie für deinen Beitrag.
Allerdings bin ich mir nicht sicher ob du überhaupt einen Blick in den Code geworfen hast.
1. Das Bitmap wird nur 1mal erzeugt
2. Steigt der Speicher nur wenn die Maus über der Form ist
3. Verarbeite ich die Mausbewegung nichteinmal (nur die normalen Windows Events, kein Code von mir)
Wie programmiert man denn unter XP? :?:
Forum: Object-Pascal / Delphi-Language
by FirstTry,
2. Okt 2015
Ja damit habe ich den Fehler reproduziert! Ich habe auf der Form einen Timer, der die OnPaint Methode der Paintbox alle 10ms aufruft.
Scheinbar nicht... Deshalb fragte ich nach etwas anderem :wink:
Forum: Object-Pascal / Delphi-Language
by FirstTry,
1. Okt 2015
Vielen Dank für deine Antwort!
Synchronize ist also nicht blockierend, ist das das Problem ?!
Es geht hier nicht um die Uhrzeit, aber zur Vereinfachung des Problems auf das Wesentliche habe ich versucht ein Testprojekt zu schreiben, indem der Fehler den ich meine Sichtbar wird.
Bei sleep(20) hält er trotzdem noch manchmal an... wielange muss ich denn warten? kann ich WaitFor oder sonst...