Einzelnen Beitrag anzeigen

Bigmichi

Registriert seit: 12. Mär 2004
119 Beiträge
 
#1

VirtualStringTree und TTimer/JvThread/IdIcmpClient

  Alt 10. Jan 2006, 09:17
Hey Leute hab mal wieder ein Problem =((

ich hab eine VirtualStringTree und dort werden ca. 50 Computer aufeinmal angezeigt jeder der Computer wird mit einem eigenem Thread überprüft ob er erreich bar ist mit der IdIcmpClient doch mein Problem ist wenn ich das netz wechsle sollen ja neue Computer geladen werden das klappt ja gut nur der speicher wird zugemüllt der er immer neue timer thread und idicmpclients erstellt wenn ich vor dem wechsel nun löschen will... klappt es manchmal aber manchmal bricht er ab =/ also debuggerfehler... ich denke mal ich stoppe und lösche die comps falsch könnt ihr mir helfen =))

Delphi-Quellcode:
type
  PEntry = ^TEntry;

  TEntry = record
    Name: String;
    IPAdresse: String;
    PCName: String;
    Passwort: String;
    Timer:TTimer;
    Thread:TJvThread;
    PingC:TIdIcmpClient;
    Online:Integer;
  end;


Delphi-Quellcode:
var
  T,T2:PVirtualNode;
  Data: PEntry;
begin

  T := Stree.GetFirst;
  if T <> Nil then begin
    T2 := STree.GetFirstChild(T);
      if T2 <> Nil then begin

        while assigneD(T2) do begin
          Data := STree.GetNodeData(T2);


          if Data.Thread <> Nil then begin
            Data.Thread.Terminate;
          end;

          if Data.Timer <> Nil then begin
            Data.Timer.Enabled := False;
            Data.Timer.Destroy;
          end;

          if Data.PingC <> nil then begin
            Data.PingC.Free;
          end;

          T2 := T2.NextSibling;
        end;
      end;
  end;
Miniaturansicht angehängter Grafiken
a_168.jpg  
  Mit Zitat antworten Zitat