摘要载入中… 请稍等…
内容载入中… 请稍等…
| ◎→ | 本类最新 |
|
远程程序运行状态的简单监控 在IE上增添一个按钮 在Delphi中实现ASP编程 在Delphi程序中应用IE浏览器控件 在DELPHI程序中拨号上网 用Delphi编写ASP的ActiveX服务器 用Delphi编写CGI程序返回图象 |
|
| ◎→相关资源 | |
| C语言入门视频教程 C#编程WinForm入门视频 Asp.net入门视频教程下载 VC++编程视频教程下载 VB窗体文章 HTML入门教程 Deiphi实例教程 Deiphi窗体文章 Deiphi数据库编程 Deiphi网络编程 Deiphi图形图象文章 Deiphi系统文件 | |
| ◎→ | 热门资源 |
| 屏蔽“任务管理器” Delphi开发旅游景点微机售票系统 Delphi开发旅游景点微机售票系统 Delphi编写后台监控软件 实战Delphi数据网格色彩特效 可以下载整个目录的简单实现 Delphi下汉字输入法的编程及使用 |
|
//请对比上篇文章的同名实现
procedure TClientMainForm.Timer1Timer(Sender: TObject);
var
TempStrings:TStrings;
i:integer;
ToStartPos,ToEndPos:integer;
FromWho,ToWho,TempName:string;
begin
try
if ChatServer.Server.ReadReady(RoomID)=1 then
begin
TempStrings:=TStringList.Create;
SetOleStrings(TempStrings,ChatServer.Server.ReadFrom(RoomID));
if FReadStartPos>19 then
if (FClearBufferTag=0-ChatServer.Server.TestClearBufferTag(RoomID)) then
begin
FReadStartPos:=0;
FClearBufferTag:=ChatServer.Server.TestClearBufferTag(RoomID);
end;
for i:=FReadStartPos to TempStrings.Count-1 do
begin
if RightStr(TempStrings[i],11)='SecretSpeak' then
//可以看到实现悄悄话无非是在说话内容的最后加了一个特殊的标示SecretSpeak
begin
//这一段程序从字符串中解析出说话的对象
ToStartPos:=pos(' 悄悄的对 ',TempStrings[i]);
FromWho:=Copy(TempStrings[i],1,ToStartPos-1);//谁说的
ToStartPos:=ToStartPos+10;
ToEndPos:=pos(' 说:',TempStrings[i]);
ToWho:=Copy(TempStrings[i],ToStartPos,ToEndPos-ToStartPos);//说给谁
////////////////////////////////////////////////////////////////////////////////////////////////////
if (ToWho='所有人') or (ToWho=UserName) or (FromWho=UserName) then
//是自己说的,或自己应该看到的,或是说给所有人的悄悄话都有权看到
begin
Memo1.Lines.Add(Copy(TempStrings[i],1,length(TempStrings[i])-11));
Memo1.Lines.Add('');
end;
end
else //不该看到的内容
begin
Memo1.Lines.Add(TempStrings[i]);
Memo1.Lines.Add('');
end;
end;
FReadStartPos:=TempStrings.Count;
end;
//刷新在线人员列表
Listbox1.Clear;
SetOleStrings(ListBox1.Items,ChatServer.Server.RoomUserList(RoomID));
//刷新说话对象列表
TempName:=SpeakToCBx.Text;
SpeakToCBx.Clear;
SpeakToCBx.Items.Assign(ListBox1.Items);
SpeakToCBx.Items.Insert(0,'所有人');
for i:=0 to SpeakToCBx.Items.Count-1 do
begin
if SpeakToCBx.Items[i]=TempName then Break;
end;
if i>SpeakToCBx.Items.Count-1 then i:=0;
SpeakToCBx.ItemIndex:=i;
//////////////////////////////////////////////////////////////////
except //异常处理<
[1]| 芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们 |