procedure Ttcpthread.addonline;
var
userdata: Ruserdata;
begin
IdTCPClient.ReadBuffer(userdata, sizeof(userdata));
EnterCriticalSection(CS);
setlength(online, high(online) + 2);
online[high(online)] := userdata;
//更新显示
with onlineview.Items.Add do
begin
Caption := userdata.username;
imageindex := userdata.whatdoing;
subitems.Add(userdata.email);
end;
LeaveCriticalsection(CS);
end
var
userdata: Ruserdata;
begin
IdTCPClient.ReadBuffer(userdata, sizeof(userdata));
EnterCriticalSection(CS);
setlength(online, high(online) + 2);
online[high(online)] := userdata;
//更新显示
with onlineview.Items.Add do
begin
Caption := userdata.username;
imageindex := userdata.whatdoing;
subitems.Add(userdata.email);
end;
LeaveCriticalsection(CS);
end
解决方案 »
- 关于ACCESS数据字段为MEMO的显示问题
- 我想做一个效果,不知道怎么弄? 就是获得鼠标位值的信息。比如 像右键弹出菜单那样的效果,但我项显示的是表单,它姚显示的时候,位置随
- 金山快译在 Win2003中不能用怎么办 ? Win2003的声卡驱动哪的下啊?
- 自己写的函数单元怎样在窗体中调用
- 有南京的朋友吗?很希望和大家交个朋友,更希望能在一起交流技术上的问题!
- 请问怎样用串口发送十六进制数?
- 如何实现20位卡号(string)的递增???
- (大侠帮忙)如何取得网上邻居中的所有计算机,并将保存到LISTBOX中?急
- 今日与朋友讨论如何让程序自动删除,自己找到一个简单的方法,拿出来与大家分享一下!
- 用socketConnetion怎么连啊
- 数据库信息加密解密问题?
- TThreadList相关问题,急。。。。在线等
var
userdata: Ruserdata; //定义数据类型
begin
IdTCPClient.ReadBuffer(userdata, sizeof(userdata)); 读取userdate数据岛indy控件中
EnterCriticalSection(CS); //进入保护临界状态,就是其他线程不能访问
setlength(online, high(online) + 2); 设置online数组数据个数加2,就是可以多存放两个
online[high(online)] := userdata; 把userdate赋值给online数据最大下标的那个
//更新显示
with onlineview.Items.Add do //在listview中显示数据
begin
Caption := userdata.username; //第一列显示userdata结构体重的username字段
imageindex := userdata.whatdoing; //设置图标索引值为结构体中的whatdoing子都
subitems.Add(userdata.email); //添加第二列为结构体中email字段
end;
LeaveCriticalsection(CS); //离开保护状态
end
EnterCriticalSection(CS); //进入多线程临界区,防止重复进入
setlength(online, high(online) + 2); //设置公共变量缓冲区大小
online[high(online)] := userdata; //把读取的数据进行 传递给公共变量
//更新显示
with onlineview.Items.Add do //显示到View 控件上
begin
Caption := userdata.username; 名字
imageindex := userdata.whatdoing; 图片
subitems.Add(userdata.email);
end;
LeaveCriticalsection(CS); //释放临界区