Einzelnen Beitrag anzeigen

Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#2

Re: try ClientSocket1.active:=true führt zu fehler

  Alt 2. Sep 2003, 01:07
Was für einen Interval hat der Timer denn?
Unter Umständen dauert das Öffnen des Sockets irgendwann länger als einen Interval, und du rufst bspw zweimal hintereinander das Open auf.

Du könntest dir ne globale Variable machen. Nen Boolean, den zu z.B, "connecting" nennst.
Nach dem Aufruf vom Open des Sockets setzt du connecting auf true, überprüfst aber vorher ob connecting vielleicht schon true ist.

Also die Modifikation:

Delphi-Quellcode:
procedure TForm1.PingServerTimer(Sender: TObject);
begin
       if ClientSocket1.Active=false and not connecting then begin
                try
                        ClientSocket1.Open;
                        connecting:= true;
                        richedit1.Lines.Add('Checking Server: '+ClientSettingsIP.edit1.text);
                except
                        HandleExceptionPing;
                end;
                exit;
        end;

        if ClientSocket1.Active=true then begin
                panel4.Color:=clGreen;
                connecting:= false;
                Label4.Caption:='Server Online';
        end;
end;
Naja, nur kann ich dir nicht 100%ig sagen, dass das die Fehlerquelle ist. Gibt Delphi bzw. die Exception dir genauere Informationen über den aufgetretenen Fehler?

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat