![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
gregson |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Добрый день, коллеги.
Можно ли создать на визуальной форме таблицу для отображения подключенных к сокетовому серверу клиентов? Какой нужно использовать компонент? А самое главное можно ли будет редактировать эту таблицу из разных потоков. Сервер создан на компоненте INDY версия 9. Пишу в Delphi 7. Собсна сервер уже готов и работает, просто хотелось бы нормальной визуализации, например: Приконнектился новый клиент -> в таблице появилась новая запись с ip адресом Уже из потока....клиент представился системе -> находим в таблице этого клиента по ip адресу например и заполняем в найденной строке колонку ID Клиент отсоединился или поймали exception -> находим в таблице этого клиента и удаляем запись. Раз уж запостил тему, вот еще вопрос в догонку, если есть у кого ссылки на темы правильного логирования работы сервера, закиньте пожалуйста. На сервер подключается много клиентов, много потоков, пока все валю в одно цельное мемо, получается бардак, но разобраться можно, хотелось бы писать логи по ИД пользователя и вообще что лучше использовать, думаю мемо дилетантское решение. Заранее благодарю за любую помощь! |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
TListView в режиме Report вполне подойдёт.
В потоке создавай итем и запоминай. Можно редактировать прямо в потоке - работа всё равно событийная - сообщения будут в очередь выстраиваться. Каждое подключение работает со своим итемом (строкой). При коннекте создаёт, при работе меняет, при отключении убивает. |
|||
|
||||
gregson |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 28.6.2009 Репутация: нет Всего: нет |
Snowy, спасибо за ответ, компоненту посмотрел, красивая, но как с ней работать так и не догнал даже после того, как отгуглил...Не могу понять как задать тип столбцов и как к ним потом обращаться!?
А еще не будет ли exceptionsов если пара разных потоков будут одновременно пытаться менять данные в этой таблице?! |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 8 Всего: 329 |
||||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
Что касается, как работать - полистай форум - тут примеров есть немало.
Что касается разных потоков, то я уже написал - работа идёт на уровне сообщений. То есть разные потоки отправляют окну сообщения, которые выстраиваются в очередь сообщений. Напрямую потоки ничего не делают - просто отправляют сообщения в очередь. А главный поток уже их обрабатывает сам в порядке поступления. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |