sendMessage (Edit1.handle,WM_KEYDOWN,65,0);

解决方案 »

  1.   

    sendmessage(self.handle, WM_CLOSE, 0, 0);
      

  2.   

    sendMessage (handle,WM_CLOSE,0,0);
      

  3.   

    lyhold:
       我现在有一个记录
              type
                   user_recoder=recoder
                      a1:integer;
                      a2:string;
                   end;
        假定我定义了一个wm_error_str用户消息;
        在发送消息时我编程假定如下:
        var j_recoder:user_recoder;
            j_recoder.a1=1;
            j_recoder.a2:='abc';
         sendmessage(form1.handle,wm_error_str,0,intege(@j_recoder)) 问题是我在wm_error_str指定的procedure中如何把j_recoder取出来???
      

  4.   

    你发的自定义消息,我对这个方面也不是很了解,关注。
    我的网站  www.longteng.org我的OICQ:5008022
      

  5.   

    procedure WMErrorStr(var Message: TMesasge); message WM_Error_str;
    begin
      showmessage(user_recorder(message.lparam).a2)
    end;
    这样可以吗?
      

  6.   

    hjd_cw()
        不行,因为我们以到的message.lparam是一个地址,它是一个整数
        现在是如何将这个指向该记录的地址变成一个记录变量
                  谢谢你帮帮想想办法
      

  7.   

    那你把message.lparam转成指针,再用 user_recorder 格式化,应该可以吧。
     newhou() 说的也可以。
    copyMemory(j_recorder,message.lparam,sizeof(j_recoder));
      

  8.   

    在同一进程可以把记录的地址发送给接受窗口,如果是不同进程用WM_COPYDATA
      

  9.   

    hjd_cw :
        如何将message.lparam转成指针?
      

  10.   

    警告:R最好使用全局变量。
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;const
      CM_MY_MESSAGE=WM_USER + $100;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        procedure CMMyMessage(var Msg:TMessage);message CM_MY_MESSAGE;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}
    type
      TMyRecord=record
        A:integer;
        b:String[5];
      end;procedure TForm1.CMMyMessage(var Msg: TMessage);
    var
      PR:^TMyRecord;
    begin
      PR:=Pointer(Msg.lParam);
      Caption:=Format('%d,%s',[PR^.A,PR^.B]);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      R:TMyRecord;
    begin
      R.A :=5;
      R.b :='Test';
      SendMessage(Handle,CM_MY_MESSAGE,0,Integer(@R));
    end;end.
      

  11.   

    Kingron:
        谢谢你,同时有感谢 hjd_cw;问题解决了,我马上给分
      

  12.   

    Kingron:
       对不起,我不知如何给分,教教,谢谢!
      

  13.   

    这就是自定义消息,佩服Kingron:收藏
    !!!!