![]() |
Re: Thread abbrechen
Deine SetActive-Methode ist nicht ganz richtig. Du suspendest oder resumest, aber wenn der Thread vorher schon suspendet war, muss danach zweimal resume verwendet werden, genauso reicht einmal resume nicht aus, wenn zweimal suspendet war.
Schau dir mal die Eigenschaft suspended an. Ist es Absicht, dass am Anfang von TMiamiLabel gleich zweimal suspended (wenn csDesigning in ComponentState) wird? Du createst ja suspended und setzt dann nochmal setActive. Hoffe geholfen zu haben Apollonius |
Re: Thread abbrechen
Okay... ich habe das jetzt folgenermaßen umprogrammiert:
Delphi-Quellcode:
Aber er stoppt nicht mehr...
procedure TMiamiLabelMoving.DrawLoop;
begin {...} if not FActive then begin if FKill then begin FKill := false; FActive := false; end; Suspend; end; end; procedure TMiamiLabel.SetActive(const Value: Boolean); begin FActive := Value; MovingThread.FActive := Value; if (Value) and (MovingThread.Suspended) then MovingThread.Resume; end; |
Re: Thread abbrechen
So war das nicht gemeint.
Delphi-Quellcode:
procedure TMiamiLabel.SetActive(const Value: Boolean);
begin FActive := Value; MovingThread.FActive := Value; Movingthread.suspended:=value; end; |
Re: Thread abbrechen
Achso... Aber das wollte ich nicht ;) und zwar sollte er schon die Animation fertig gemacht haben und dann suspenden ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz