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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2009, 11:29   #101
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Да и как разрулить эту ситуацию. Когда на сервер приходит личное сообщение, то ноль эмоций
Цитата:
Сообщение от BiT Посмотреть сообщение
Код:
// добавим в ChatRichEdit приватное сообщение с сервера
    3:Begin ShowColorMassage(Copy(text,1,5)+Copy(text,7+Length(NikEdit.Text),len-Length(NikEdit.Text)-1), 1);
     PlaySound('sound\sndSrvMsg.wav',0,SND_ASYNC);
У меня возникла Проблема со звуковым сообщением приватного сообщения.
Клиенты оповещаются звуком, когда приходит приват сообщения, а сервер нет.
Shouldercannon вне форума Ответить с цитированием
Старый 27.04.2009, 15:20   #102
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Думайте что сделать, ...я лично показал пример с выделением, для демонстрации этого достаточно. Программу я не модернизирую и не продвигаю, статья - начало, тема - развитие, дальше вы сами достраиваете.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 27.04.2009, 17:48   #103
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Хотел реализовать бан систему
Код:
procedure TForm1.ServerSocketClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Label4.Caption:=ServerSocket.Socket.Connections[i].RemoteAddress;
// добавим в ChatRichEdit сообщение с временем подключения клиента
// сразу зададим параметры шрифта (Arial, 8, красный, курсив)
  ShowColorMassage('00119['+TimeToStr(Time)+']  Подключился клиент.', 2);
// разрешаем обновление
  UpdDo:=True;
end;
в этот код я добавил строку
Код:
procedure TForm1.ServerSocketClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Label4.Caption:=ServerSocket.Socket.Connections[i].RemoteAddress; //Вот она
// добавим в ChatRichEdit сообщение с временем подключения клиента
// сразу зададим параметры шрифта (Arial, 8, красный, курсив)
  ShowColorMassage('00119['+TimeToStr(Time)+']  Подключился клиент.', 2);
// разрешаем обновление
  UpdDo:=True;
end;
После чего при подключении второго клиента сервер засыпается ошибками, в этого второй клиент так и не подключается.
в чём проблема?
Shouldercannon вне форума Ответить с цитированием
Старый 27.04.2009, 19:07   #104
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Нельзя обращаться к каналу по неизвестному номеру.
Код:
Label4.Caption:=ServerSocket.Socket.Connections[i].RemoteAddress;
В этом коде i содержит неизвестное число, как правило то, что осталось с прежних циклов. Если нужен адрес последнего подключившегося клиента, то разумнее использовать число каналов на текущий момент как индекс определения последнего. Вот так:
Код:
Label4.Caption := ServerSocket.Socket.Connections[ServerSocket.Socket.ActiveConnections-1].RemoteAddress;
Теперь, почему ServerSocket.Socket.ActiveConnectio ns - 1, ...каналы выражены в количественном отношении, а их нумерация начинается от 0.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 27.04.2009, 20:21   #105
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Спасибо. Идём дальше. Это моя система бана
Вот процедура, которая сравнивает полученный IP с базой имеющихся IP
Код:
procedure TForm1.BLogikClick(Sender: TObject);
var i: Integer;
LOGIKA: boolean;
begin
MLogik.Clear;

LOGIKA:=False;
if MGetIP.Text <> '' then
for i:=0 to MBanIPs.Lines.Count-1 do
begin
if MGetIP.Lines.Strings[0]=MBanIPs.Lines.Strings[i] then
begin
MLogik.Lines.Add('"'+MGetIP.Lines.Strings[0]+'"  =  "'+MBanIPs.Lines.Strings[i]+'"');
LOGIKA:=TRUE;
end
else
begin
MLogik.Lines.Add('"'+MGetIP.Lines.Strings[0]+'" <> "'+MBanIPs.Lines.Strings[i]+'"');
end;
end;

if LOGIKA then begin
ShowMessage('Попался'); //Бан
Exit;
end else
ShowMessage('Чист'); //Нет бана
end;
Тут приводился пример бана в посте #75, но я что-то не понял.
Куда надо поместить
Код:
ServerSocket.Socket.Connections[i].Lock
ServerSocket.Socket.Connections[i].Unlock
И как реализовать: при коннекте нового юзера в Memo1 вывести его ник + IP? И как сделать, чтобы Caption формы не трогался чатом (не менялся)?

Последний раз редактировалось Shouldercannon; 28.04.2009 в 12:03.
Shouldercannon вне форума Ответить с цитированием
Старый 28.04.2009, 08:42   #106
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

По поводу смайликов, разобраля я с тем кодом, всё без ошибки выполняется, нажимаю к примеру image6, в RxRichEdit вставляется код картинки из Image6 :
{rtf1{pictdibitmap28000000130000001 50000000100180000000000EC0400000000 0000000000000000000000000000FFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FF000000FFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFF4F4F4DCDCD CD0D0D0D0D0D0D0D0D0DCDCDCF4F4F4FFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000 000FFFFFFFFFFFFFFFFFFFFFFFFF4F4F4DB DBDBB8B8B88888887070707070707070708 88888B8B8B8DCDCDCF4F4F4FFFFFFFFFFFF FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFF FF4F4F4C3C3C37D858D3D648C0A86DB0471 D10065CB0471D10A86DB3D648C7D858DC3C 3C3F3F3F3FFFFFFFFFFFFFFFFFF000000FF FFFFFFFFFFF4F4F4C3C3C35876930983D90 C8BDD14A6EB1ABBF51EC7FB1ABBF514A6EB 0C8BDD0983D95B7590C2C2C2F3F3F3FFFFF FFFFFFF000000FFFFFFFFFFFFDCDCDC637F 9A087ED715A9ED1EC9FC1EC9FC1EC9FC1EC 9FC1EC9FC1EC9FC1EC9FC15A9ED0983D963 7F9ADBDBDBFFFFFFFFFFFF000000FFFFFFF 4F4F4A9B1B90983D915A9ED1EC9FC1EC9FC 0000000004B52E33FF0004B50000001CC7F B1EC9FC15A9ED0983D9A9B1B9F4F4F4FFFF FF000000FFFFFFDCDCDC537AA20C8BDD1EC 9FC1EC9FC00000000000000000000000000 00000000000000001CC7FB1EC9FC0C8BDD5 37AA2DCDCDCFFFFFF000000FFFFFFD0D0D0 0A86DB12A4EA1BC6FB00000085ACD4FFFFF FFFFFFFFFFFFFFFFFFFFFFFFF85ACD40000 001CC7FB12A4EA0986DBD0D0D0FFFFFF000 000FFFFFFD0D0D00370D11B95F6237BFD23 7BFD1E9FFB14BFF81BD4FE1BD4FE1BD4FE1 8C3F91E9FFB237BFC237BFD1B95F60370D1 D0D0D0FFFFFF000000FFFFFFD0D0D00064C B13BFF71E9FFB1E9FFB14BFF814C0F813BF F814BFF814C0F814C0F914BFF81E9FFB1E9 FFB14BEF70064CBD0D0D0FFFFFF000000FF FFFFDCDCDC026FD02EBAF320C0F80057C5F FFFFF000000139AE50FBBF7139AE5FFFFFF 0000000057C51BBEF71EB5F1026FD0DCDCD CFFFFFF000000FFFFFFF4F4F40480D957BA EE59CEF80057C5FFFFFF000000139AE53FC 7F7139AE5FFFFFF0000000057C553CCF842 B1EC0480D9F3F3F3FFFFFF000000FFFFFFF FFFFF85ACD43099E18CDBF90057C5FFFFFF FFFFFF139AE57DD7F9139AE5FFFFFFFFFFF F0057C594DDF92694DF85ACD4FFFFFFFFFF FF000000FFFFFFFFFFFFDFE7F00B80D86CC 3F0A9E4FB0057C50057C594DDF994DEF994 DDF90057C50057C5A8E3FB73C6F1077ED7E 0E8F1FFFFFFFFFFFF000000FFFFFFFFFFFF FFFFFFB2CDE81682D87AC8F1C6EDFCC2EBF CB0E6FBAFE5FBB0E6FBC2EBFCC6EDFC92D2 F41E86D9B4CEE9FFFFFFFFFFFFFFFFFF000 000FFFFFFFFFFFFFFFFFFFFFFFFB4CEE912 83D95DAEE7B2DEF7CCEDFBCCEEFCCCEDFBA 5D9F569B4E91384D9B4CEE9FFFFFFFFFFFF FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFF FFFFFFFFFFFFFEAF2FB90B7DF007DD7006D CF0064CB006DCF007DD790B7DFEAF2FBFFF FFFFFFFFFFFFFFFFFFFFFFFFFFF000000FF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFF000000FFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFF000000}}

Вопрос теперь другой, как теперь сделать чтобы RxRichEdit отображал этот код как картинку?
rzawm вне форума Ответить с цитированием
Старый 28.04.2009, 08:44   #107
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

Заранее всем благодарен.
rzawm вне форума Ответить с цитированием
Старый 28.04.2009, 09:39   #108
parinoff
 
Регистрация: 21.11.2008
Сообщений: 7
По умолчанию

че вы паритесь! используйте webbrowser для вывода смайлов=) с ним никакого гемороя)))
А когда смайлик только вставляется делайте его просто текстовим в рич едит.
parinoff вне форума Ответить с цитированием
Старый 28.04.2009, 10:18   #109
rzawm
Пользователь
 
Аватар для rzawm
 
Регистрация: 06.04.2009
Сообщений: 80
По умолчанию

Охото RxRichEdit, просто для себя охото добить его ибо на него столько времени потраченно. В дальнейшем может и веб браузер кину, но пока охото RxRichEdit добить.
rzawm вне форума Ответить с цитированием
Старый 28.04.2009, 15:24   #110
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Shouldercannon, в постах ранее есть про отображение ника и IP как узнать тоже есть. ShowColorMassage выводит в поле чата все, что имеет тип string. Для таблицы бана достаточно создать массив типа string, в него отправлять IP. При коннекте очередного клиента смотреть все не пустые записи в массиве и удалять только что созданный канал пользователя, если есть совпадение IP. Также нужно создать файл, в него записывать все содержимое массива бана, ...при запуске сервера, считывать данные в массив.

rzawm, честно, не знаю как работать с RxRichEdit, мне смайлов хватает таких: )) (( :\ 8)
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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