一个消息提示托盘程序的开发历程(采用socket技术,附源代码)一[3]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 lcllcl987 的 blog

在tary上单击鼠标右键弹出菜单popmenu1;按下程序窗口的最小化按钮,程序最小化后隐藏任务栏上的标题栏;双击tary将会恢复程序最小化;
而且,tary图标以1000毫秒(1秒)的速度变换。够简单了吧?!

四:数据库中的一条记录,如何打包发送到客户端?
我们把数据库中的一条记录,放在一个结构体中,然后把该结构体send出去。
下面是一个简单的例子:
.h
struct tuserinfo
{
    int  no;                  //用户组别
    char usrid[20];           //用户帐号
};

.cpp
void __fastcall tform1::button1click(tobject *sender)
{    tuserinfo *tst = new tuserinfo[2];
    tst[0].no=1;
    tst[1].no=2;
    string tmp = "正常";
    memcpy(tst[0].usrid,tmp.c_str(),tmp.length()+1);
    tmp = "不正常";
    memcpy(tst[1].usrid,tmp.c_str(),tmp.length()+1);
    clientsocket1->socket->sendbuf(tst,24);
    delete tst;}
void __fastcall tform1::serversocket1clientread(tobject *sender,
      tcustomwinsocket *socket)
{
    tuserinfo *tst = new tuserinfo[2];
    socket->receivebuf(tst,24);
    showmessage(tst[0].usrid);
    showmessage(tst[1].usrid);
}
上面的例子很简单,可以实现struct的发送,但存在一个小问题:
如果要传2条记录,必须sendbuf(tst,24*2);那么接受的时候必须receivebuf(tst,24*2);
而我发的条数是不确定的,时多时少,有什么办法可以我发多少,客户就接多少?
其实也简单解决:
每次只发一个struct,用for循环发出去就可以了。

通过了以上的一二三四的技术准备,消息提示工具的具体实现就很明朗了,只是工作量的问题了。
在消息提示工具中,我采用ado访问数据库。

本文关键:一个消息提示托盘程序的开发历程(采用socket技术,附源代码)一
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top