这个过程如何调用(50分)

  • 主题发起人 主题发起人 wp231957
  • 开始时间 开始时间
W

wp231957

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure tform1.wmcopydata(var m:tmessage);<br>const msg =$1357;<br>begin<br> &nbsp;if pcopydatastruct(m.LParam).dwData =msg then begin<br> &nbsp; &nbsp;showmessage(pchar(pcopydatastruct(m.lparam).lpData ));<br> &nbsp;end;<br>end;<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br> &nbsp;wmcopydata(WM_COPYDATA); //我这样调用出错<br>//提示为<br>//[Error] rec.pas(56): Types of actual and formal var parameters must be identical<br>end;
 
WM_COPYDATA 又不是Tmessage类型,只不过是个常数,当然出错了
 
那该怎么调用
 
procedure TForm1.Button1Click(Sender: TObject);<br>var<br> &nbsp; msg:tmessage;<br>begin<br> &nbsp;wmcopydata(msg); //我这样调用出错<br><br>end;
 
可能是你没有先声明吧。给你个例看看<br> 用户是否可以关闭操作系统是通过对WM_QueryEndSession的处理来实现的,为此首先需要在程序中添加WM_QueryEndSession消息处理的声明:<br><br><br><br> procedure QueryEndSession(var Msg:TMessage);Message WM_QueryEndSession; <br><br><br>它的响应代码如下:<br><br><br><br>  procedure TForm1.QueryEndSession(var Msg:TMessage);<br><br> begin<br>  Msg.Result:=0;<br> end; <br><br> 当用户关闭操作系统时,操作系统会发布一个WM_QueryEndSession消息,这时就会激活本实例程序中的QueryEndSession过程,程序通过设置消息的返回值为0,就会禁止用户关闭操作系统,反之如果设置消息的返回值为1,就会允许用户关闭操作系统。<br><br><br><br><br><br> 程序代码如下:<br>unit Unit1;<br> interface<br><br>uses<br><br><br><br>Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs;<br><br><br><br>type<br>TForm1 = class(TForm)<br>private<br>{ Private declarations }<br><br>procedure QueryEndSession(var Msg:TMessage);Message WM_QueryEndSession;<br><br>public<br><br>{ Public declarations }<br><br><br><br>end;<br>var<br><br><br><br>Form1: TForm1;<br><br><br><br>implementation<br><br><br><br>{$R *.dfm}<br><br><br><br>procedure TForm1.QueryEndSession(var Msg:TMessage);<br><br>&lt;begin<br><br>Msg.Result:=0;<br><br>end;<br><br> end. <br><br> 保存文件,然后按F9键运行程序。只要本程序在正常运行,用户就无法关闭操作系统
 
谢谢<br>来自:aizhuzhu, 时间:2006-10-16 10:26:49, ID:3597458<br>可能是你没有先声明吧。给你个例看看<br> 用户是否可以关闭操作系统是通过对WM_QueryEndSession的处理来实现的,为此首先需要在程序中添加WM_QueryEndSession消息处理的声明:<br><br>能给我一个WM_COPYDATA的范例吗
 
pcopydatastruct(m.LParam).dwData =msg then begin<br>改为<br>pcopydatastruct(@m)^.dwData....
 
...u &nbsp;p...
 
穷死了,要分
 
后退
顶部