Einzelnen Beitrag anzeigen

Benutzerbild von BillieJoe90
BillieJoe90

Registriert seit: 29. Sep 2006
Ort: Bovenden
122 Beiträge
 
#1

Thread: Funktion am Ende wird nicht ausgeführt

  Alt 6. Apr 2007, 20:28
Hallo,
ich habe ein TThread-Objekt mit folgender Execute-Methode:
Code:
procedure TtrdRipAudioCD.Execute;
begin
 // [...] Hier steht sonst der Code zum Rippen eines Audio-Tracks von einer CD

  frmCopyFromCD.ripNextTrack(self.trackNr);
end;
Die Funktion frmCopyFromCD.ripNextTrack() sieht folgendermaßen aus:
Code:
procedure TfrmCopyFromCD.ripNextTrack(lastRippedTrack:Integer);
var i:Integer;
    anotherChecked,isChecked:Boolean;
begin
  anotherChecked := false;
  lastRippedTrack := lastRippedTrack+1;
  for i:=lastRippedTrack+1 to length(currentCD.songs) do begin
    sgrSongs.GetCheckBoxState(0, i, isChecked);
    if isChecked then begin
      ripAudioCD := TtrdRipAudioCD.Create(true);
      ripAudioCD.setTrackNr(i-1);
      ripAudioCD.setDrive(cbxDrives.ItemIndex);
      ripAudioCD.Resume;
      anotherChecked := true;
      break;
    end;
  end;

  if not anotherChecked then
    showMessage('Alle ausgewählten Tracks gerippt!');
end;
Diese Methode wird jedoch scheinbar nicht ausgeführt. Jedenfalls passiert nichts. Auch, wenn ich probeweise nur ein showMessage('blabla') ausführen lasse, passiert nichts. Wenn ich das Programm dann schließe, bekomme ich noch einen Fehler angezeigt "Error Code 1400 Ungültiges Fensterhandle". Über die Suche habe ich herausgefunden, dass das damit zusammenhängt, dass der Thread wohl nicht richtig beendet wurde.

Ich muss dazu sagen, dass die Variable "ripAudioCD" auch der aktuell ausgeführte Thread ist. Da dachte ich sofort, daran, dass ich ja versuche, ripAudioCD wider neu zu belegen, obwohl der Thread noch ausgeführt wird. Aber warum passiert dann selbst nichts, wenn ich NUR showMessage(), ohne andere Befehle, ausführen lasse?!

Ich hoffe, jemand kann mir helfen.

Danke schonmal!

Johannes
Johannes
Wenn Sie jetzt gleich bestellen, bekommen Sie ein zweites Set GRATIS!
  Mit Zitat antworten Zitat