还真有点难度,我当初是这样做的。
const
WM_RECVDATA = WM_USER + 101 ;
type
PData =^Tdata;
TData = record
int Data1;
end;
procedure class.test;
var
Data : pData;
begin
new(data);
SendMessage(Handle,wm_recvdata,0,integer(data);
dispose(data);
end;
procedure RecvData(var msg:TMessage);msg wm_recvdata;
procedure class2.RecvData(var msg:Tmessage);
var
Data : pdata;
begin
Data := pdata(msg.lparam);
if assigned(data) then
begin
//操作data
end;
end;
不过一般是用一个threadlist 类来传输数据。
//将Data 存入threadlist
//发送sendmessage wm_recvdata
//处理data的释放或合放入缓冲
因为是sendmessage 是处理完成在继续。所以这样写。
如果是postmessage 则
//申请或者从缓冲中获取data
//数据处理
//存入 threadlist
//postmessage
//接收
//取Data
//处理Data
//释放或者放入缓冲