Einzelnen Beitrag anzeigen

padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Ereignishandler an Thread anhängen geht nicht

  Alt 11. Feb 2007, 14:41
Danke erst mal!


Zitat:
Dein eigentliches Problem dürfte wohl darin liegen, dass Du hier dem Timer ein Routine zuweist, die zu einem Thread gehört. Der Thread wird beim Beenden freigeben und endet vor Aufruf des Timers...
stimmt, dass war blöd. Da hab ich in der Hitze des Gefechtes einen Schnellschuss gewagt.

Mein eigentliches Problem wollte ich damit umgehen, und hab mir damit das nächste eingehandelt.

Eigentlich sah die Sache so aus:

Delphi-Quellcode:
procedure TFadeoutThread.Fadeout;
begin
  _Threadruns := true;

  try

    if _activeBass = 1 then
    begin
      while _internBass1.Channel[0].Volume > 0 do
      begin
        _internBass1.Channel[0].Volume := _internBass1.Channel[0].Volume - 1;
        sleep(_indiFadeouttime);
      end;
      // hier gibt´s Probleme
      freeandnil(_internBass1);
   end;


  except
    if _activeBass = 1 then
      freeandnil(_internBass1);
    if _activeBass = 2 then
      freeandnil(_internBass2);
    Terminate;
    _Threadruns := false;
  end;

  // end Thread
  Terminate;
  _Threadruns := false;
end;
wenn ich im Thread dieses
      freeandnil(_internBass1); ausführe, stürzt das Programm ab, mit der Meldung "ungültiges Fensterhandle"
Darauf konnte ich mir nun gar keinen Reim machen.
Ich sollte das Konzept mit dem Thread wahrscheinlich noch mal komplett überdenken.

Padavan
  Mit Zitat antworten Zitat