AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi VirtualStringTree und TTimer/JvThread/IdIcmpClient
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualStringTree und TTimer/JvThread/IdIcmpClient

Ein Thema von Bigmichi · begonnen am 10. Jan 2006 · letzter Beitrag vom 1. Jun 2006
Antwort Antwort
Bigmichi

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

VirtualStringTree und TTimer/JvThread/IdIcmpClient

  Alt 10. Jan 2006, 08: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
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#2

Re: VirtualStringTree und TTimer/JvThread/IdIcmpClient

  Alt 10. Jan 2006, 08:59
stell doch einfach um auf objekt orientierte programmierung?

Delphi-Quellcode:
type
  TEntry = class
  public
    Name,
    IPAdresse,
    PCName,
    Passwort: String;
    Online:Integer;

    Timer:TTimer;
    Thread:TJvThread;
    PingC:TIdIcmpClient;

    constructor Create();
    destructor Destroy();
  end;

constructor TEntry.Create();
begin
  // hier die anderne objs erzeugen
end;

destructor TEntry.Destroy();
begin
  // hier die obj zerstören
end;
im form create
   vst.nodedatasize:=sizeof(tentry); objekte in den vst:
Delphi-Quellcode:
var
  obj: TEntry;
begin
  obj:=TEntry.create;
  vst.addobject(nil, vst);
end;
im vst on free:
Delphi-Quellcode:
var
  obj: tentry;
begin
  obj:=tentry(vst.getnodedata(node)^);
  obj.free;
end;
im gettext vom vst:
Delphi-Quellcode:
var
  obj: tentry;
begin
  obj:=tentry(vst.getnodedata(node)^);
  case column of
    0: celltext:=obj.name;
    // hier die andern spalten
  end;
end;
das ist jetzt erstmal die vst optik gewesen.
programmtechnisch würde ich wohl einen timer verwenden für das ganze projekt und ein ping objekt.
diese beiden würden dann die liste durch eine iteration aktuell halten. (sicherstellen das der timer nicht 2 mal gleichzeitig ausgelöst wird)
oder den timer weg und einen thread (ist aber komplizierter)

ich denke du musst keine echtzeit anzeige haben, eine verzögerung von 5-10 sekunden sollte kein problem darstellen oder?
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Bigmichi

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

Re: VirtualStringTree und TTimer/JvThread/IdIcmpClient

  Alt 11. Jan 2006, 10:37
vst.addobject(nil, vst); geht bei mir garnet =((((

addobject bestizt meine komp garnet o.O
bitte um andere Vorschläge =))
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#4

Re: VirtualStringTree und TTimer/JvThread/IdIcmpClient

  Alt 11. Jan 2006, 15:10
oh sorry das heist
vst.addchild(nil, obj);
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.163 Beiträge
 
Delphi 12 Athens
 
#5

Re: VirtualStringTree und TTimer/JvThread/IdIcmpClient

  Alt 31. Mai 2006, 14:08
Zitat von generic:
objekte in den vst:
Delphi-Quellcode:
var
  obj: TEntry;
begin
  obj:=TEntry.create;
  vst.addobject(nil, vst);
end;
du meinst bestimmt
Code:
var
  obj: TEntry;
begin
  obj:=TEntry.create;
  vst.addchild(nil, [color=#ff0000][b]obj[/b][/color]);
end;
[edit]
addobject > addchild ^^
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.415 Beiträge
 
Delphi XE5 Professional
 
#6

Re: VirtualStringTree und TTimer/JvThread/IdIcmpClient

  Alt 1. Jun 2006, 09:27
jup wie ich in #4 geschrieben habe.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz