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