Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Обсуждение статей
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2008, 15:41   #21
DeCoder
Пользователь
 
Регистрация: 17.04.2008
Сообщений: 22
По умолчанию

Индекс - это есть "I"("Connections[i]"). Выделяешь элемент и пишешь, чтоб какой-нибудь компонент отобразил индекс.
DeCoder вне форума Ответить с цитированием
Старый 25.04.2008, 16:01   #22
DeCoder
Пользователь
 
Регистрация: 17.04.2008
Сообщений: 22
По умолчанию

Есть ещё вопрос...
Как принудительно переименовать кого-либо?

////////////////////

Я хочу, чтобы пользователь мог сразу находиться в несколькох чатах. Какой компонент использовать лучше? "TabSet" или "TabbedNotebook" или какой-нибудь другой? Я хочу использовать "TN" - т.к. если в чате будет приват, то все приват-окна должны будут быть открыты в том чате, в котором есть пользователь, с которым общается пользователь.
->Как сделать, чтобы при открытии окна нового чата, там создавались все те же окна, что и на главной форме.?

////////////////////

Как определить, занят-ли выбранный порт на твоём компьютере или нет? Пинговать каждый раз свой комп неохота, да и прога будет виснуть тогда.
->Если на сервере стоит порт для коннекта ХХХ, то клиент может подключиться к данному серверу только на этот порт? Или я не так понимаю работу сервера? ммм.... Порт необходим для получения/отправки данных, клиент должен для каждого сервера использовать новый порт. А у сервера может-ли быть для 1 чата несколько портов?.
Просто сталкнулся с проблемолй организации комнат - неужели прийдётся для каждой комнаты делать новый сервер?

Последний раз редактировалось DeCoder; 25.04.2008 в 16:23. Причина: Новые вопросы
DeCoder вне форума Ответить с цитированием
Старый 25.04.2008, 17:22   #23
DeCoder
Пользователь
 
Регистрация: 17.04.2008
Сообщений: 22
По умолчанию

Можно ли как-то уменьшить мерцание при перерисовке компонента?
Или убрать его совсем?
DeCoder вне форума Ответить с цитированием
Старый 25.04.2008, 20:05   #24
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от InseR Посмотреть сообщение
Подскажите пожалуйста как получить индекс выделяемого элемента в ListBox
ListBox1.ItemIndex

Цитата:
Сообщение от DeCoder
Как принудительно переименовать кого-либо?
По этическим соображениям сервер не имеет на это никаких прав. Если это нужно по причине нецензурного имени или пр. , то это нужно отсекать еще на стадии регистрации пользователя.
А если конструктивно, то вам нужно ввести новый тип команды, которую клиентское приложение понимает как: "изменить имя пользователя", ...стало быть, свое имя поменяется на предложенное серверов, а сервер одновременно, с такой командой для конкретного пользователя, подготовит новый список пользователей (с новым именем) и отправит остальным участникам.

Цитата:
Сообщение от DeCoder
Я хочу, чтобы пользователь мог сразу находиться в несколькох чатах. Какой компонент использовать лучше? "TabSet" или "TabbedNotebook" или какой-нибудь другой? Я хочу использовать "TN" - т.к. если в чате будет приват, то все приват-окна должны будут быть открыты в том чате, в котором есть пользователь, с которым общается пользователь.
->Как сделать, чтобы при открытии окна нового чата, там создавались все те же окна, что и на главной форме.?
Используйте PageControl (Win32). Примените сохранение настроек в файлах, ...при изменении каких-либо параметров, пусть идет запись, и считывание другими окнами, ...тогда даже при закрытии программы, все ваши вкладки и окна останутся на своих местах. Вам виднее, сколько окон нужно, когда они должны появляться и у кого, ...пытайтесь смотреть в корень задачи.

Цитата:
Сообщение от DeCoder
Как определить, занят-ли выбранный порт на твоём компьютере или нет? Пинговать каждый раз свой комп неохота, да и прога будет виснуть тогда. ...
Система сама выдаст сообщение об ошибке порта. Берите значения в пределах 20000 - 65535 и конфликтов быть не должно.

Цитата:
Сообщение от DeCoder
... ->Если на сервере стоит порт для коннекта ХХХ, то клиент может подключиться к данному серверу только на этот порт? Или я не так понимаю работу сервера? ммм.... Порт необходим для получения/отправки данных, клиент должен для каждого сервера использовать новый порт. А у сервера может-ли быть для 1 чата несколько портов?.
Просто сталкнулся с проблемолй организации комнат - неужели прийдётся для каждой комнаты делать новый сервер?
ClientSocket подключается на конкретный IP и конкретный порт, если порт сервера будет иной, чем у клиента, то связь не состоится. Вам никто не запрещает создать несколько ServerSocket'ов в одной программе, настроенных на разные порты , пусть сервер через дополнительный тип команды сообщает пользователям об имеющихся "комнатах", посылая им новые порты, на которые можно переподключиться.

Цитата:
Сообщение от DeCoder
Можно ли как-то уменьшить мерцание при перерисовке компонента?
Или убрать его совсем?
О каком компоненте идет речь? ...по-подробнее, что мерцает?
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 26.04.2008, 14:00   #25
DeCoder
Пользователь
 
Регистрация: 17.04.2008
Сообщений: 22
По умолчанию

Если точнее,то мерцает компонент Label, расположенный на компоненте ListBox.(при изменении размеров формы объект перересовывается).
DeCoder вне форума Ответить с цитированием
Старый 26.04.2008, 15:19   #26
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Так делать не следует, ...найдите другой способ отображения надписи в нужном месте, с помощью одного объекта.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 26.04.2008, 18:53   #27
DeCoder
Пользователь
 
Регистрация: 17.04.2008
Сообщений: 22
По умолчанию

Ну... не знаю. Я выложу екхешник. там поймёте, для чего мне нужно использование 2х компонентов.
Вложения
Тип файла: rar Chat.rar (219.1 Кб, 92 просмотров)
DeCoder вне форума Ответить с цитированием
Старый 26.04.2008, 21:21   #28
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Можно попробовать Label растянуть сразу на макс. размер, ее текст сдвинуть влево.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его

Последний раз редактировалось Beermonza; 26.04.2008 в 21:24.
Beermonza вне форума Ответить с цитированием
Старый 27.04.2008, 23:19   #29
DeCoder
Пользователь
 
Регистрация: 17.04.2008
Сообщений: 22
По умолчанию

Ладно. Я смотрел квип там та же проблема. До того, как занялся чатом даже внимание не обращал. Так что оставлю эту проблему "на закуску".

Есть 1 маленькая просьба)... Пожалюйста, напишите об освных коммандах компонентов Server&Client Socket. Или дайте линк на подобную книгу/документацию. Я просто программированием сетей в Делфи раньше вообще почти не занимая(только в лок. сети и то для БД). подвопрос: Как сделать запрос на сервер с клиента на загрузку какого-либо файла?(например, новостей чата).

Если не трудно, напишите пример, как можно переименовать клиента(если ник с матом или нет в нем логики (например, "ппН6гн7к")). Желательно в программном виде.

Как считаете, как наилучшим образом реализовать анти-мат? создать файл с базой матов и послe
"n" матов в чате от какого-либо
юзера давать предупреждение, позле "х" "пинать", а после "у" банить на "z" минут?


З.Ы.1. Сейчас занимаюсь криптографическими замочками в чате. Как вам интегрированный "Цезарь" и "Атбаш". сначала сдвиг на "n" символов, затем их перевод кодирование через алгоритм "Атбаш". Метод простейший. можно,кочно, добавить "XOR" ещё. - Чтоб люди обновляли свои версии чатов хотя-бы до целой версии. Ну и чтоб с прочих клиентов не могли зайти. Естественно, потом я усложню алгоритм.
В общем, хотел услышать предложения вариантов шифрования текста.

З.Ы.2. И всё-таки, как узнать ip того, кто отправил сообщение.

Последний раз редактировалось DeCoder; 28.04.2008 в 09:14. Причина: Опечатки
DeCoder вне форума Ответить с цитированием
Старый 28.04.2008, 14:31   #30
DeCoder
Пользователь
 
Регистрация: 17.04.2008
Сообщений: 22
По умолчанию

Блин... не знаю, что-то я туплю...
Никак не могу реализовать бан...
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
i:=form1.UserListView.ItemIndex;
ServerSocket.Socket.Connections[i].Close;
end;
DeCoder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обновление в блоге - Создание клиент-сервера Pblog Обсуждение статей 0 03.10.2007 17:12
обновление в блоге - Диплом. Создание и продвижение сайта - готовь сани летом, а дипл Pblog Обсуждение статей 0 31.08.2007 20:00
обновление в блоге - USB Холодильник Pblog Обсуждение статей 0 25.06.2007 14:13
обновление в блоге - О ярлыках Pblog Обсуждение статей 0 27.05.2007 03:17