Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

Ereignis wird nicht zu Ende geführt (früher "... ausgelöst")

  Alt 13. Nov 2014, 22:23
Hallo,

wie man dem beigefügtn Programmcode entnehmen kann, besteht mein Programmrumpf aus 3 Komponenten:
dem VCL-Hauptprogramm, einem Bild-Container und einem Thread, der die Bilder komprimieren soll (PNG und JPEG). Das ganze gibt es als Arbeitsentwurf auch "in groß" zum verarbeiten der Bilder direkt aus dem Scanner. Da das nicht funktioniert und ich nicht mit zig Zeilen Code nerven will, habe ich das ganze klein nachgebaut.

Beim Click auf Button1 wird ein Bild geladen, im Bild-Container (dieser wiederum in einer Liste) abgelegt und an einen Thread zum Rechnen übergeben. Wenn der Thread fertig ist, löst er ein Ereignis aus. In der entsprechenden Procedure wollte ich die Bilder speichern. Beim Speichern wiederum hängt er sich auf. Der gesamte Code ist als zip-Datei (mit und ohne Bild)angehängt. Der Code im Event selbst sieht wie folgt aus:
Delphi-Quellcode:
procedure TForm1.ThreadEnde(ID: Integer);
begin
   Memo1.Lines.Append('Event for ID ' + IntToStr(ID) + ' received');
   if ID > 2 then
   begin
      TMyObject(fObjectList[ID]).PNGStream.SaveToFile('bild.png');
      TMyObject(fObjectList[ID]).JPGStream.SaveToFile('bild.jpg');
   end;
   // Bei ID < 3 läuft alles durch. Es muss also Probleme beim Speichern geben.
   Button1.Enabled:=true;
   Memo1.Lines.Append('... all done - object ID is ' + IntToStr(ID));
end;
Kann mir jemand sagen, was das Problem ist und wie man es löst?

Gruß, Alex

[edit]
Sowas von schief gegangen!
Ich habe weiter getestet und gleichzeitig hier geschrieben. Sehe erst jetzt, dass das Thema nicht (mehr) passt. Das Ereignis wird ausgelöst, dann aber nicht weiter abgearbeitet. Evtl. kann das bitte ein Moderatoer oder so für mich ändern. Danke
[/edit]
Angehängte Dateien
Dateityp: zip ObjectInThread.zip (1,9 KB, 5x aufgerufen)
Dateityp: zip ObjectInThread_mit_Bild.zip (1,65 MB, 5x aufgerufen)
Alex Winzer

Geändert von Schwedenbitter (13. Nov 2014 um 23:35 Uhr) Grund: Thema passt nicht (mehr).
  Mit Zitat antworten Zitat