Skocz do zawartości
DoNcEr

[Delphi]LanChat na socketach

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

if ListView1.Items.Count > ListView1.ItemIndex albo coś takiego. Bo item Index jest 0,...,n, a count będzie 0,1,...,n+1

Udostępnij tego posta


Odnośnik do posta
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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Może

 

GML
if ListView1.Strings[ItemIndex] <> ''

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Tylko 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ę tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×