var
cds:TCopyDataStruct;
data:DataInfoTB;
begin
// SendMessage(ProcHandle,WM_CopyData,Handle,LongInt(@SendDataRec));
cds.dwData:=0;
cds.cbData:=sizeof(data);
cds.lpData:=@data;
/////////////////////// thread ///////////////////////////////////
var
DataTB : DataInfoTB;
procedure TRecvThread.Execute;
begin
while not Terminated do
if WaitForSingleObject(FEvent.Handle,WaitTime*4)=Wait_Object_0 then
begin
PInsDataRec:=Pointer(FMessage.LParam);
Case PInsDataRec.dwData of
InsData:
begin
DataTable:=DataInfoTB(PInsDataRec.lpData^);
DealData;
if RefreshAlarm then
PostMessage(FrmData.Handle,RecvMessage,0,0);
end;
end;
end;
end;
procedure TRecvThread.RecvAllMessage(var Mess: TMessage);
begin
with Mess do
begin
if Msg=WM_CopyData then
begin
FMessage:=Mess;
FEvent.SetEvent;
end else
Result := DefWindowProc(FWinHandle, Msg, WParam, LParam);
end;
end;
///////////////定义///////////////////
type DataInfo = record
ddr : Word;
DataTime : TDateTime;
SolveData: array [1..6] of Double;
end;
type DataInfoTB = array [1..5] of DataInfo;