Forum: Multimedia
Delphi
by TiGü,
19. Jul 2018
Möglich wäre auch die Verwendung von TThread.Queue(nil...)
procedure TSourceThread.DoSendData;
begin
FOwner.lbl_CountSource.Caption := IntToStr(FCounter);
if Assigned(FSendData) then
FSendData(FCounter);
end;
Forum: Multimedia
Delphi
by TiGü,
18. Jul 2018
Nichtsdestotrotz greifst du auf Ressourcen innerhalb des Kontextes deines Update-Threads zu, die ganz eindeutig zum Mainthread gehören.
Dazu wurde dir auf den vorigen Seiten genügend oft gesagt, dass man das nicht macht.
Das ist kein kurzes Anhalten in der Parkverbotszone, das ist ein Wenden auf der Autobahn.
Du musst zwingend mit TThread.Syncronize(nil,...) arbeiten.
Forum: Multimedia
Delphi
by TiGü,
18. Jul 2018
Nein!
Erzeuge dir doch dazu mal in der OSD-Form ein FormCreate-Eventhandler und schreibe da wie folgt:
if MainThreadID = TThread.Current.ThreadId then
ShowMessage('Ich bin im Hauptthread'!)
else
ShowMessage('Ich bin in einen anderen Thread Context:' + UIntToStr(TThread.Current.ThreadId));
PS: Bitte nicht mehr "Fred" für Thread schreiben. Das ist genauso schlimm wie "Schlepptop und...
Forum: Multimedia
Delphi
by TiGü,
9. Jul 2018
Wir fragen ja nicht aus Spaß an der Freude nach Quelltext.
In 99 % der Fälle ist es nämlich so, dass der Ersteller der Ursprungsfrage Informationen vorenthält, die er als unwichtig erachtet, die aber entscheidende Details sind.
Oft ist es auch so, dass beim Erstellen eines abgespeckten Beispielprojektes das Problem wundersamerweise verschwindet und man drauf kommt, warum etwas nicht...
Forum: Multimedia
Delphi
by TiGü,
9. Jul 2018
Beispielprojekt als ZIP hier hochladen?
Forum: Multimedia
Delphi
by TiGü,
9. Jul 2018
Zu 2.:
Machst du denn auch ein Form.Repaint, sobald du das Bitmap auf den Form.Canvas gezeichnet hast? (Form.Canvas.Draw oder Form.Canvas.StretchDraw)