Erstmal danke fürs Drüberschauen!
1.) keine CS bei Append und Ende
Das kommt noch. Ich hatte es bereits drin, wollte aber wirklich jede mögliche Fehlerquelle für
das beschriebene Phänomen ausschließen.
2.) in diesem Block
Delphi-Quellcode:
FThread.Append(Bild);
Sleep(250);// -> 4 Bilder / 1 Sek.
läuft der Thread ja bereits.....
Eben!
Auf meinem Rechner braucht er allein für das Umwandeln in png ca. 1 Sek/Bild. Er sollte an diese Stelle daher bereits genug zu tun haben, um noch während des Anfügens (
Append();
)weiterer Bilder die bereits vorhandenen umzuwandeln.
Das macht er aber nicht, was ich wiederum
nicht verstehe.
3.) wenn das:
Delphi-Quellcode:
Procedure TMainForm.RepeaterTimer(Sender: TObject);
Begin
Repeater.Enabled:=False;
ScannenClick(nil);
End;
ausgeführt wird, wird jedes mal eine neuer Thread losgetreten
Das ist ausdrücklich so gewollt!
Ich hatte ebenfalls bereits meine Code fürs Vergrößern/Verkleiner und/oder Drehen mit drin. Da erhielt ich
hin und wieder - aber leider nicht wirklich reproduzierbar - eine
EOutOfResources
. Ich habe das Code-Fragment daher mal eine Weile ohne Benutzereingaben laufen lassen.
Man kann den Kreislauf ja jederzeit unterbrechen, indem man einfach den Haken rausnimmt. Dann hört der "Spuk" nach dem nächsten Thread-Ende auf!
Vielleicht schaut Sir Rufo mal drüber ....
Das wäre wirklich nett.
Gruß, Alex