Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 15.06.2010, 20:59   #1
SwiP
Форумчанин
 
Регистрация: 18.03.2009
Сообщений: 101
Смущение Проблема с листбоксом и receive.text

Вообщем я делаю сетевую программу, и сейчас делаю комнату для ожидания. Есть листбокс, где написаны имена игроков. Но есть проблема.
Вот допустим, какой-то игрок решил покинуть игру, соответственно мне надо из ListBoxa удалить его имя не только у сервера, но и у клиента.
Я придумал такую схему: на стороне клиента, мы считаем количество элементов ListBoxa уже с нами, и тем самым задаём себе номер.
Например, я зашёл 5-ым, в листбоксе 5 игроков, мне присваивается 5-ый номер. При отрубании, я отошлю этот номер серверу, он его обработает, удалит у себя этот элемент листбокса и прикажет остальным клиентам удалить его.
И всё бы хорошо, но по какой-то причине, я не могу себе взять этот номер, он у меня всегда равен единице.
Вот код:
Код:
ClientSocketConnect
...
ClientSocket.Socket.SendText('nick_'+Edit1.Text); // Отправляем ник серверу
Listbox1.Items.Text:=Socket.ReceiveText; // Загружаем список игроков
id:=Listbox1.Items.Count; // В id - текущее количество элементов в листбохе
...
То есть всё отправляется нормально, но id всегда равен единице.
???
SwiP вне форума Ответить с цитированием
Старый 15.06.2010, 21:44   #2
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию

Может Вы один в списке просто? (если тестить на локальном компе)
А может лучше ListBox1.Items.Add(Socket.ReceiveTe xt); ? А потом сверху добить ListBox1.Update или Refresh =\
Sensizu вне форума Ответить с цитированием
Старый 15.06.2010, 22:21   #3
SwiP
Форумчанин
 
Регистрация: 18.03.2009
Сообщений: 101
По умолчанию

Малость перепутал, если через Items.Add, то всегда пишет 1, а если просто Items.Text, то 0.
Нет, я не один.
Update и Refresh не помогают
SwiP вне форума Ответить с цитированием
Старый 20.06.2010, 17:34   #4
SwiP
Форумчанин
 
Регистрация: 18.03.2009
Сообщений: 101
По умолчанию

Если кому интересно, как я решил проблему:
Сделал таймер, который с интервалом в 200 мс ищет в листбоксе имя игрока, и записывает его положение в переменную.
SwiP вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процедуры: Ввод(text)-Вычисление(string)-Вывод(text) FYBVFPFYBC Помощь студентам 2 06.05.2010 23:15
из string в text lanus Помощь студентам 6 13.03.2010 10:16
ПРОБЛЕМА ДОБАВ ДАННЫХ В ПОЛЯХ ТИПА TEXT NTEXT В MYSQL2000 shurik12 БД в Delphi 2 07.10.2008 20:31
y=Edit1->Text ??? m.a.x.i.m Помощь студентам 8 31.03.2008 11:29