Skocz do zawartości

[Delphi]LanChat na socketach


DoNcEr

Rekomendowane odpowiedzi

Witam

 

Napisalem serwer - klient na socketach.

Do klientów piszę tą procedurą:

procedure TForm1.buttonClick(Sender: TObject);

begin

Serwer.Socket.Connections[ListView1.ItemIndex].SendText(RDoWys.Text);
end;

 

ListView dodaje klientów online i kasuje gdy sie ktos rozlaczy ,

więc mój problem polega na tym, że w momencie gdy klient sie rozłączy a ja klikne button to wywala blad bo juz nie ma itema o tym indeksie.

 

Jak napisać do tego warunek ,że "jeśli ten itemindex istnieje to wyślij"?

 

Starałem się jasno opisać a trochę nazawijałem mam nadzieje że zrozumiecie;)

 

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdziłem ten warunek niestety tak samo ale dzięki rozjaśniło mi się trochę spróbowałem tak:

 

procedure TForm1.buttonClick(Sender: TObject);
var
i:integer;
begin
i:= ListView1.Items.Count-1;
if   i >= ListView1.ItemIndex  then Serwer.Socket.Connections[ListView1.ItemIndex].SendText(doWyslania.Text);
end;

 

i myślę że to powinno już na pewno działać.. a jednak nie działa:/

 

EDIT:

 var
i:integer;
begin
i:= ListView1.Items.Count-1;
if  ( (i >= ListView1.ItemIndex) and (ListView1.ItemIndex >= 0 ))then Serwer.Socket.Connections[ListView1.ItemIndex].SendText(doWyslania.Text);
end;

problem rozwiązanny po rozlaczeniu klienta itemindex zwracał wartość -1 dlatego mi wywalało

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...