Thread로 메시지를 PostThreadMessage로 이용하는 보내는 메시지는 잘 받는데, 문제는 이 메시지를 보낼때 데이타도 같이 보내고 싶거던요...
근데 데이타가 정수가 아니라 구조체 인데... 이걸 어떻게 넘기고 받는 쪽에서는 어떻게 받아야 하나요?
여러 고수님들의 좋은 의견 부탁드립니다...
type
TMyRecord = record
tCol, tRow: Byte;
tMsg: array[0..9] of Byte;
end;
...
....
procedure TForm1.SendMessage;
var
rdRec: ^TMyRecord;
begin
..
New(rdRec)
rdRec^.tCol := 1;
rdRec^.tRow := 2;
..
PostThreadMessage(MyThread.ThreadID, WM_MY_MSG, 0,
LParam(@rdRec));
^요기에 파라미터로 해당 데이타의 포인터로 메시지를 보내면... 받는
쪽에서는... 어떻게...해야할지...
...
end;
제 생각에는 보내는 쪽에서 메모리를 생성해서 메모리에 대한 포인터를 파라미터로 전달하면 받는 쪽에서 해당 메모리의 포인터를 참조한후 해당 포인터의 메모리를 해제 하면 될것 같은데... 잘되지가 안네요....
type
PrdRec = ^TMyRecord;
TMyRecord = record
tCol, tRow: Byte;
tMsg: array[0..9] of Byte;
end;
procedure TForm1.SendMessage;
var
rdRec: PrdRec;
begin
......
PostThreadMessage(MyThread.ThreadID, WM_MY_MSG, 0,
LParam( Integer(rdRec) ) );
......
end;
보낼때처럼 받을 때도 레코드포인터로 형변환하세요...
var
rdRec: PrdRec;
begin
rdRec := PrdRec(Msg.LParam);
......
Dispose(rdRec);
end;
^^ 항상 즐코하세요...