如题。。消息??  还是什么?请写些代码好懂,谢谢!

解决方案 »

  1.   

    这个好说,事件本质是处理消息,然后调用函数。
    你继承这个类,在里面写上消息处理,并且定义一个过程对象类型。用该类型定义一个变量,再写一个published变量,关联这个变量,就可以了。
      

  2.   

    过程对象类型是不是
    procedure XXX() of object  ??还是?
      

  3.   

    事件是外部的硬件操作,而操作系统将这个事件解释成消息的格式,然后传给应用程序,
    应用程序通过对消息的处理来达到响应事件的目的,所以你所说的写事件其实是针对消息的
    处理函数,当然这个消息可以自己定义,也可能使用操作系统或者编程工具如DELPHI提供的
    消息,至于消息关联的处理函数,只是一个普通的函数后面加一个message msgID 说明这是一个消息处理函数,并指明msgID 为自己定义的消息号。
    例如:
    TMyMsg = record   // 消息的结构体
      msgNum :cardinal;
      msgText:shortstring;
      end;
    //在窗体中定义一个消息处理函数
    //我是在Form1中定义的
    procedure MyMsg(var message);message 2000;// 消息号为2000的消息处理函数,自己可以随便指定procedure TForm1.MyMsg(var message);
    begin
      ShowMessage('hello');
    end;
    procedure TForm1.Buttton1Click(Sender: TObject);
    var msg: TMyMsg;
    begin
      msg.msgNum := 2000;// 指定消息号
      self.Dispatch(msg);// 产生一个消息号为2000的消息,
    end;
    单击BUTTON1 就会出现一个显示hello的消息框当然也可能用属性的形式,声明一个过程属性,然后将一个消息处理函数
    传给这个属性,不过只要明白消息处理的本质,其它的只是应用而已,
    当然内部的处理远没有这么简单,楼主想弄明白到底是怎么回事,
    看看操作系统的内容