sorunu czdüm. Belki faydası olur kodları paylaşayım procedure TForm1. ServerSocket1ClientDisconnect ;varara: TListItem;beginstatusbar1. SimpleText:= ;ara := ListView1. FindCaption(0, socket. RemoteAddress, True, True, False); if ara <> nil then begin ListView1. Selected := ara; ara. MakeVisible ; ListView1. SetFocus; Listview1. DeleteSelected; end;end;

formda 1 serversocket 1 tanede listviewmevcut. şimdi socket te onclientconnect eventine ListView1. Items. Add;index:=listview1. Items. Count-1;ListView1. Items . Caption:=pcadi;ListView1. Items . SubItems. Add ; şeklinde bir kodla listviewe düzgünce ekleme yapabiliyorum. Sorum şu bu clientdiscconnect olduğu zaman nasıl bir kod kullanmalıyımki dc olan makineyi listviewden kaldırayım. Timer vs kullanmadan yapmak mümkün mü?

selected olan itemi değil clientdisconnect olan itemi silmeyi istiyorum. biraz daha açayım. Listview şu şekilde düşünün. ad ip tarih genki 127.0.0.1 11.02.2010 genki2 192.168.1.1 11.02.2010 şimdi clientconnect olayına item ekleme olayını yaptım. Yani dışardan bi bağlantı geldiğinde ad ip tarih şekilde ekleme yapıyor. Bu bağlantılar aktif olduğu sürece listviewde gzüksün ancak bağlantı disconnect olduğu zaman kendini sildin. Yani genki2 clienti kapadı ve disconnect olduğu zaman benim listview ad ip tarih genki 127.0.0.1 11.02.2010 bu şekilde olsun.

şimdi şyle bişi var procedure TForm1. ServerSocket1ClientDisconnect ;beginstatusbar1. SimpleText:= ;end; serversocket1clientdisconnect olduğu an ben hangi adresin koptuğunu statusbara rahatlıkla basabiliyorum. Düşündüm ki kopan clientin ip numarasını biliyorsam timera gerek kalmadanda listviewden bu ip numarasına ait olan satırı kaldırabilirim. Ama listviewde sadece listview1. items. delete(1) şeklinde silme oluyor sanırsam. Ordaki 1 de satır noyu temsil ediyor. Şle birşey düşündüm kopan ip numarasını listviewde aratıcak eğer ipyi bulursa count ile hangi satırda olduğunu integer olarak bir değişkene atayıp son olarakta listview1. items. delete olarakta listviewden kaldırcak. Byle birşey mümkün mü? ki bana mümkün gibi geliyor ama delphi bilgim çok az olduğu için koda dkemedim :D

kod tam aklımda değil ama şyle izah edeyim listeya sağ tık eklersin sağ tıka bir sil yazarsın silin altına da ListView1. Items. delete dersin olar biter Mevzu derin | Papikolas Planet

koy bi timer hiç uğraşma serverin event'ında bağlı olup olmadığını kontrol edebilceğin bi kontrol yok çünkü ama indy serverin tcp serverinda ondisconnect eventı var o işini grmüyomu