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;