Topic: Подобие чата

Здравствуйте! Возможно ли сделать подобие чата (обмен сообщениями между пользователями) где автоматом создаются приватные каналы?

Re: Подобие чата

Ну если в рукопашную городить то мне видится вариант с созданием временной таблицы на сервере и через проверку на новые записи с периодом например  5 сек смотреть есть ли сообщения для текущего юзера .

...Не знаю чем вам не нравится вагон уже готовых месенджеров

Re: Подобие чата

iacovlogica wrote:

Ну если в рукопашную городить то мне видится вариант с созданием временной таблицы на сервере и через проверку на новые записи с периодом например  5 сек смотреть есть ли сообщения для текущего юзера .

...Не знаю чем вам не нравится вагон уже готовых месенджеров

Интересует реализация этого именно в MVD

Re: Подобие чата

Сделал для вас проект с примером. Можете выбрать кому отправить сообщение, если не будет выбран получатель, сообщение получат все пользователи.

Post's attachments

Attachment icon Chat private.zip 40.25 kb, 411 downloads since 2018-02-23 

Dmitry.

Re: Подобие чата

DriveSoft wrote:

Сделал для вас проект с примером. Можете выбрать кому отправить сообщение, если не будет выбран получатель, сообщение получат все пользователи.

Спасибо большое!

Re: Подобие чата

В MySQL ругается на строку

Form1.TableGrid1.dbFilter := '((id_users='+IntToStr(idUser)+') or (id_users1='+IntToStr(idUser)+') or (id_users1 IS NULL)) and (date(datetime) > date(''now'', ''-3 days''))';

Re: Подобие чата

DriveSoft wrote:

Сделал для вас проект с примером. Можете выбрать кому отправить сообщение, если не будет выбран получатель, сообщение получат все пользователи.

Дмитрий спасибо за интересное добавление. А есть вариант уведомления получателя?

надо идти вперёд....

8 (edited by iacovlogica 2018-02-26 16:03:33)

Re: Подобие чата

если просто сообщение показать , то добавил строки  5,40,56,57
....на данный костяк "Чата" можно навесить все на что только фантазии хватит вплоть до айфоноподобного вида со смайликами ))). (канвас Вам в помощь, ну и наличие времени )

Post's attachments

Attachment icon Chat private.7z 35.97 kb, 393 downloads since 2018-02-26 

Re: Подобие чата

iacovlogica wrote:

если просто сообщение показать , то добавил строки  5,40,56,57
....на данный костяк "Чата" можно навесить все на что только фантазии хватит вплоть до айфоноподобного вида со смайликами ))). (канвас Вам в помощь, ну и наличие времени )

Спасибо за пример, только есть парочка НО... Сообщение появляется и у получающего и у отправляющего, зачем отправляющему-вопрос. И вариант уведомления актуален не столько когда чат открыт(окно с чатом) а когда окно чата закрыто! Когда окно активно и так всё видно. Тут возможно даже более интересен вариант не появления текста, а некий динь-динь при приходе сообщения, и этот звуковой сигнал получающий слышит находясь в любом окне приложения.

надо идти вперёд....

Re: Подобие чата

Можно и так wink

Post's attachments

Attachment icon Chat private.7z 352.03 kb, 392 downloads since 2018-02-27 

Re: Подобие чата

iacovlogica wrote:

Можно и так wink

Спасибо! И если можно последняя просьба/пример. Если чат находиться не на главной форме Form1, а на какой нибудь frmChat. Как при наличии главной Form1 (и многих других) сделать так, что бы оповещение о получении приходило и при нахождении в других формах (форма frmChat не открыта)?

надо идти вперёд....

Re: Подобие чата

kovalenko wrote:
iacovlogica wrote:

Можно и так wink

Спасибо! И если можно последняя просьба/пример. Если чат находиться не на главной форме Form1, а на какой нибудь frmChat. Как при наличии главной Form1 (и многих других) сделать так, что бы оповещение о получении приходило и при нахождении в других формах (форма frmChat не открыта)?

А то сидит Вася работает (вносит данные какие нибудь в базу), ему пишет Петя и пока Вася не откроет чат (или его об этом не попросит Петя), Вася будет как-то не в курсе что ему кто-то что-то пишет)))

надо идти вперёд....

13 (edited by iacovlogica 2018-02-27 07:49:58)

Re: Подобие чата

Оно так ,по идее, и работает , так как висит это дело на таймере .
Попробуйте .
....разумеется при старте программы надо это все запустить

Re: Подобие чата

iacovlogica wrote:

Оно так ,по идее, и работает , так как висит это дело на таймере .
Попробуйте .

Тогда вопрос (только вникаю)))

Timer := TTimer.Create(Form1);
     Timer.Interval := 5000;
     Timer.Enabled := True;
     Timer.OnTimer := @OnTimer;

 
Здесь Timer := TTimer.Create(Form1) указывается форма где находиться данный скрипт, или где находиться чат?
Можете скинуть прямо сюда (если не сложно) текст скрипта, с учётом что Form1 это общая стартовая(главная) форма, а сам чат находиться на форме frmChat?

надо идти вперёд....

Re: Подобие чата

Как то так ...

Post's attachments

Attachment icon Chat private.7z 352.21 kb, 389 downloads since 2018-02-27 

16 (edited by iacovlogica 2018-02-27 09:52:18)

Re: Подобие чата

да по поводу
Timer := TTimer.Create(Form1);
....на пример  у Вас есть машина (программа) и понадобились вам туда часы . У Вас так же есть 3Д принтер (конструктор) .
Вы выбираете в 3Д принтере чертеж часов ( TTimer )  и даёте команду напечатать часы по имеющимся чертежам ( .Create ) и поместить эти часы на переднюю панель ( Form1 ) .
Если не поместить часы в машину то их в машине не будет ))) .
Так как часы невидны  снаружи машины то их можно поместить и в другое место например в бардачек ( Chat ), они и там прекрасно будут тикать .

....сильно не пинайте как смог так и объяснил big_smile

Re: Подобие чата

iacovlogica wrote:

да по поводу
Timer := TTimer.Create(Form1);
....на пример  у Вас есть машина (программа) и понадобились вам туда часы . У Вас так же есть 3Д принтер (конструктор) .
Вы выбираете в 3Д принтере чертеж часов ( TTimer )  и даёте команду напечатать часы по имеющимся чертежам ( .Create ) и поместить эти часы на переднюю панель ( Form1 ) .
Если не поместить часы в машину то их в машине не будет ))) .
Так как часы невидны  снаружи машины то их можно поместить и в другое место например в бардачек ( Chat ), они и там прекрасно будут тикать .

....сильно не пинайте как смог так и объяснил big_smile

))) Спасибо!

надо идти вперёд....

Re: Подобие чата

iacovlogica wrote:

Как то так ...

А можно обратиться ещё с просьбой (вкусняшкой)))) а можно как-то в последний ваш вариант чата всунуть индикатор тех, кто сейчас подключен? Знать, кому можно писать в чате а кому если только по почте? И как я понимаю если убрать Timer.Free; то получающий при входу в программу получит уведомление о том, что ему есть сообщение?

надо идти вперёд....

Re: Подобие чата

Есть отдельный пример, как реализовать список, кто онлайн.
http://myvisualdatabase.com/forum/misc. … download=1

Dmitry.

Re: Подобие чата

DriveSoft wrote:

Есть отдельный пример, как реализовать список, кто онлайн.
http://myvisualdatabase.com/forum/misc. … download=1

Спасибо!!! Прикрутил))))

надо идти вперёд....

Re: Подобие чата

DriveSoft wrote:

Есть отдельный пример, как реализовать список, кто онлайн.
http://myvisualdatabase.com/forum/misc. … download=1

Дмитрий а можно вопросик в догонку вашего примера. Можно пользователю (админу) отключать выбранных активных пользователей? Я понимаю, что если человек работает а его "шарахнули" енто не совсем зер гут, но пример самой возможности можно?

надо идти вперёд....

Re: Подобие чата

Что вы понимаете под отключать? Запретить писать? читать? или все вместе?

Dmitry.

Re: Подобие чата

DriveSoft wrote:

Что вы понимаете под отключать? Запретить писать? читать? или все вместе?

Нет, иметь возможность выбрать пользователя и отключить "выкинуть" его из базы/программы (пригодиться в случае срочного обновления).

надо идти вперёд....

Re: Подобие чата

Можете просто удалить пользователя.

Dmitry.

Re: Подобие чата

DriveSoft wrote:

Можете просто удалить пользователя.

ЭЭЭЭ мне надо как админу отключить его временно от базы, удалить его совсем? это жёстко. Или что вы имели ввиду?

надо идти вперёд....