![]() |
|
#1
|
|||
|
|||
![]() Есть чат со списком пользователей ,хочу сделать пм(приватную переписку) в отдельное окно(вкладку аля квип с вкладками) в заголовке которого стоит ник того, с кем общаемся(аля квип ,много разных вкладок с кем мы общаемся)...
В общем ,как это реализовывается по моему : Присылается сообщение\выделяется в переменную s имя того ,от кого это сообщение\сравнивается значение заголовка tabsheet с значением переменной s\если такой tabsheet существует ,то конкретно в нем записывается сообщение и ведеться диалог\иначе если tabsheet ,заголовок которого равен значению переменной s, нету,то динамически создается tabsheet в заголовке которого значение переменной s ,тут же динамически создаеться мемо(для отображения переписки),едита(для ввода сообщения),и кнопки "Отправить"(Для отправки сообщения)... ВОт куски кода: Код:
var s,r:string; i:string; mem:tmemo; sht:ttabsheet; but:tbutton; edt:tedit; begin s:=socket.receivetext; PageControl := TPageControl.Create(Self); PageControl.Parent := Self; for i:=0 to pagecontrol.pagecount -1 do if pagecontrol.pages [i].caption <> s then begin tabsheet:=ttabsheet.Create(self); tabsheet.caption:=s; tabsheet.PageControl:=pagecontrol; end else { ЗДЕСЬ ПИШЕМ СООБЩЕНИЯ В МЕМО ,ТОГО ТАБШИТА ,ЗАГОЛОВОК КОТОРОГО РАВЕН ЗНАЧЕНИЮ ПЕРЕМЕННОЙ S } end; |