|
#1
|
|||
|
|||
ПМ аля qip,icq...
Есть чат со списком пользователей ,хочу сделать пм(приватную переписку) в отдельное окно(вкладку аля квип с вкладками) в заголовке которого стоит ник того, с кем общаемся(аля квип ,много разных вкладок с кем мы общаемся)...
В общем ,как это реализовывается по моему : Присылается сообщение\выделяется в переменную 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; |
#2
|
|||
|
|||
help
|
#3
|
||||
|
||||
что-то мне не нравиться вот эта строчка :
Код:
for i:=0 to pagecontrol.pagecount -1 do if pagecontrol.pages [i].caption <> s then Это неправильно! Надо что-нить такое: Код:
for i:=0 to pagecontrol.pagecount -1 do if pagecontrol.pages [i].caption = s then num:=num+1; if num=0 then .... num переменная которая хранит кол. вкладок с именем s , если таких нету то создаем ее Последний раз редактировалось friz, 05.01.2010 в 13:27. |