Einzelnen Beitrag anzeigen

Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Problem bei Überprüfung ob Client Online ist! IndyTCP

  Alt 7. Mär 2005, 11:08
Hi,

erstmal würde ich den Connect mit einem Timeout versehen !
Code:
GeneralC.Connect(5000); // 5 Sekunden
Zweitens, würde ich Dir dringenst empfehlen am am Anfang deiner Procedure den Timer auszuschalten und am Ende der Procedure den Timer wieder anzuschalten, vielleicht das ganze durch nen Try Finnally Block sichern.

Dann würde ich hingehen und Deinen Code etwas optimieren :
Code:
  // .....
  try
    GeneralC.Connect(5000); // Timeout 5 Sek.
  except
    // just catch the exception
  end;
  if GeneralC.connected then begin
    // save disconnect
    try
      GeneralC.disconnect;
    except
      // just catch it
    end;
    kontakte[i] := tree2.Items.AddChildFirst(tree2.Items.Item[0],table1.fieldbyname('Name').Text);
  end
  else begin
    // Offline
    kontakte[i] := tree2.Items.AddChildFirst(tree2.Items.Item[1],table1.fieldbyname('Name').Text);
  end;
end; // end vom For
if tree2.items.item[0].ChildCount > 0 then
  tree2.items.item[0].Fullexpand;
if tree2.items.item[1].ChildCount > 0 then
  tree2.items.item[1].Fullexpand;
Desweiteren würde ich mir noch Deinen "Online" und Deinen "Offline" Node in einer temporären Var speichern und nicht mit Item[0] und Item[1] arbeiten.

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat