Hi,
ich habe einen Indy server mit folgendem Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TfrmMain.serverIndyDisconnect(AContext: TIdContext); var I:Integer; begin for I := 0 to gridClients.RowCount - 1 do begin if gridClients.Cells[0, I] = IntToStr(AContext.Binding.Handle) then begin gridClients.Rows[I].Delete(I); end; end;
WriteLogEntry('Connection closed... (' + AContext.Binding.PeerIP+')'); end; |
Leider funktioniert dies nicht, da die Binding.Handle in dem Moment schon tot ist.
Ich finde in den Indy-Membern keinen anderen eindeutigen Wert, die PeerIP ist zwar noch vorhanden und gültig, aber ja nicht eindeutig, grade was localhost / interne IPs angeht.
Jemand eine Idee, wie ich eine Eindeutigkeit feststelle um Daten in ein grid zu sammeln und auch nur die richtige Spalte wieder zu entfernen?
Moderiert von
Narses: Delphi-Tags hinzugefügt