Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Thread abbrechen (https://www.delphipraxis.net/92092-thread-abbrechen.html)

Apollonius 15. Mai 2007 14:11

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

xZise 15. Mai 2007 14:54

Re: Thread abbrechen
 
Okay... ich habe das jetzt folgenermaßen umprogrammiert:
Delphi-Quellcode:
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;
Aber er stoppt nicht mehr...

Apollonius 15. Mai 2007 15:09

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;

xZise 15. Mai 2007 18:08

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.
Seite 2 von 2     12   

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