delphi的消息参数问题 刚从C转过来,真是郁闷!假设,我定义了一个结构体TRec.发消息时,我想将一个TRec变量a作为消息的lParam参数传递出去.收消息时,再从lParam参数获取变量a的相关数据.就像在C++中那样.请问: 该如何衬布 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 eg.TCopyDataStruct = packed record dwData: DWORD; cbData: DWORD; lpData: Pointer;end; procedure SendData(const copyDataStruct: TCopyDataStruct) ;var receiverHandle : THandle; res : integer;begin receiverHandle := FindWindow(PChar('TReceiverMainForm'),PChar('ReceiverMainForm')) ; if receiverHandle = 0 then begin ShowMessage('CopyData Receiver NOT found!') ; Exit; end; res := SendMessage(receiverHandle, WM_COPYDATA, Integer(Handle), Integer(@copyDataStruct)) ;end; unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, SPComm, StdCtrls;Const WM_MSG=WM_USER+100;type PMyRec = ^MyRec; MyRec = Record id: integer; name: char; end; TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } procedure MyMessage(var msg:TMessage);message WM_MSG; public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.MyMessage(var msg: TMessage);var p: PMyRec;begin case msg.Msg of WM_MSG: begin p:= PMyRec(msg.lParam); showmessage(inttostr(p^.id)); end; end;end;procedure TForm1.Button1Click(Sender: TObject);var rec: MyRec;begin rec.id:=100; rec.name:='A'; Sendmessage(handle,WM_MSG,0,Integer(@rec));end;end. 开发连锁店软件一般会采用什么技术? 招聘兼职报表制作人员 想上一个fsStayOnTop窗体始终显示在另一个fsStayOnTop窗体上面 如何将数值写入相关字段??? 如何暂停(挂起)一个程序的运行? 谁有FastReport V2.5注册版,在线送分... 谁会用OUTLOOK的群发功能,我想把一封信和一个附件发给很多人,应该怎么做? 关于动态创建计算字段!200分进者有分 有谁知道画双代号网络图?? TRUE,FALSE数据在GRID中的显示问题? 数据库连接 如何访问局域网的Access数据库?
TCopyDataStruct = packed record
dwData: DWORD;
cbData: DWORD;
lpData: Pointer;
end;
procedure SendData(const copyDataStruct: TCopyDataStruct) ;
var
receiverHandle : THandle;
res : integer;
begin
receiverHandle := FindWindow(PChar('TReceiverMainForm'),PChar('ReceiverMainForm')) ;
if receiverHandle = 0 then
begin
ShowMessage('CopyData Receiver NOT found!') ;
Exit;
end; res := SendMessage(receiverHandle, WM_COPYDATA, Integer(Handle), Integer(@copyDataStruct)) ;
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, SPComm, StdCtrls;
Const
WM_MSG=WM_USER+100;
type
PMyRec = ^MyRec;
MyRec = Record
id: integer;
name: char;
end;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure MyMessage(var msg:TMessage);message WM_MSG;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.MyMessage(var msg: TMessage);
var
p: PMyRec;
begin
case msg.Msg of
WM_MSG: begin
p:= PMyRec(msg.lParam);
showmessage(inttostr(p^.id));
end;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
var
rec: MyRec;
begin
rec.id:=100;
rec.name:='A';
Sendmessage(handle,WM_MSG,0,Integer(@rec));
end;end.