![]() |
AW: Threadübergreifende Bitmap
Zitat:
Code:
wird in einem Timer alle 10 ms aufgerufen. (Steht oben auch schon)
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin Paintbox1.Canvas.Draw(0,0, FBild); end; Wieso sollte es sonst auch bis zu der Mausbewegung funktionieren?! |
AW: Threadübergreifende Bitmap
Zitat:
Und die VCL baut hier (aus verständlichen Gründen) keinen Threadschutz um den Zugriff herum. Die sporadischen Fehlermeldungen sind eigentlich nur Zufällig funktionierende Zugriffe. |
AW: Threadübergreifende Bitmap
OK...
Timer 10ms geht nicht.. Vergiss den Timer... Folgendes ist zu ändern:
Delphi-Quellcode:
Im Thread noch setzen "vor der While"
aBild.Canvas.Font.Name := 'Arial';
Dann Uses Unit1 in Unit2 und
Delphi-Quellcode:
Schon funktioniert es!
procedure TTestThread.Zeichne;
begin FBild.Canvas.StretchDraw( Rect(0,0,FBild.Width,FBild.Height), aBild ); Form1.Paintbox1.Canvas.Draw(0,0, FBild); // neu end; |
AW: Threadübergreifende Bitmap
Zitat:
Jedes Zeichnen aus dem Thread auf im Hauptprogramm erzeugte Formulare kracht früher oder später. |
AW: Threadübergreifende Bitmap
Zitat:
Zitat:
Und zusätzlich habe ich dann eine (kleine) Kreuzreferenz zwischen Unit1 und 2, Zeichne unnötigerweise auf ein Zwischenbitmap, da ich von der GUI ja nicht neuzeichnen sollte und abgesehen davon ist es echt nicht schön von einer Klasse auf die "höhere" Klasse zuzugreifen. Zitat:
Das sehe ich auch so, deshalb möchte ich die Zeichnung nur "irgendwie" (aber ordentlich!) rüberkriegen... Danke für eure Hilfe, leider hat keiner einen funktionierenden Lösungsansatz bishher liefern können. |
AW: Threadübergreifende Bitmap
Zitat:
Probier doch mal statt TBitmap TPngImage. |
AW: Threadübergreifende Bitmap
TPngImage gibts erst ab XE7 wenn ich das richtig sehe.
Ich arbeite noch mit der Steinzeitversion 7 |
AW: Threadübergreifende Bitmap
Zitat:
Falls du TMS einsetzt, diese haben eine eigene Implementierung (haben die OpenSource-Version lizenziert bevor Emba diese gekauft hat). |
AW: Threadübergreifende Bitmap
TPngImage sollte seit Delphi 2009 enthalten sein.
Das Original von Gustavo Daud sollte auch mit Delphi 7 funktionieren, wenn du es noch irgendwo findest. |
AW: Threadübergreifende Bitmap
Habe den Link gefunden
Code:
Also liegt der Fehler in der Verarbeitung von WindowsHandles?
http://www.snehovapohotovost.cz/authorsmore.php?id=6929
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? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz