有关delphi类成员指定的问题?

乡村 2004-12-24 03:32:07
我在有些delphi经典示例中经常看到一个现象,我无法完全理解,所以想请教请教大家.
程序中声明了一个TServerSocket(stThreadBlocking)实例,当触发GetThread事件后在ClientExecute中同步执行在窗体的ListView中添加该线程.主要代码如下:
procedure TfrmMain.AddClient(Thread: TServerClientThread);
var
Item: TListItem;
begin
Item := ConnList.Items.Add;
Item.Caption := IntToStr(Thread.ClientSocket.LocalPort);
Item.SubItems.Add(Thread.ClientSocket.RemoteAddress);
if AShowHost.Checked then
begin
Item.SubItems.Add(Thread.ClientSocket.RemoteHost);
if Item.SubItems[1] = '' then Item.SubItems[1] := SHostUnknown;
end else
Item.SubItems.Add(SNotShown);
if Thread is TServSocketThread then
begin
Item.SubItems.Add(DateTimeToStr(TServSocketThread(Thread).LastActivity));
end;
Item.Data := Pointer(Thread);
UpdateStatus;
end;

代码中最后第五行为什么不用Thread.LastActivity来引用属性呢?
...全文
191 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
web700 2004-12-25
  • 打赏
  • 举报
回复
Thread is TServSocketThread
////// 看这句
zzlingaaa 2004-12-25
  • 打赏
  • 举报
回复
强制类型转换.
乡村 2004-12-25
  • 打赏
  • 举报
回复
不会吧,没人知道吗?
halfdream 2004-12-25
  • 打赏
  • 举报
回复
晕,TServSocketThread是用户定义的线程类,
LastActivity是这个线程类的用户定义属性..

而传入参数类型是TServerClientThread,
Thread: TServerClientThread

它自已是没有LastActivity属性..

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧