delphi使用消息传递字符串有三种方式可以实现:
1、直接传递,但只能传递给同进程的窗口,无法实现跨进程的消息传递
传递消息:
var
Str: String;
begin
Str := 'some string';
PostMessage(Handle, 0, 0, Integer(Str));
end;
接收消息:
var
Str: String;
begin
Str := String(Msg.LParam);
ShowMessage(Str);
end;
2、如果线程之间传递可以使用PostThreadMessage传递,PostThreadMessage是该函数将一个消息放入(寄送)到指定线程的消息队列里,不等待线程处理消息就返回。
传递消息:
Procedure TThread1.Execute;
var
sMes:String;
pMes:^String;
iTemp:Integer;
begin
sMes:=’Test’;
New(pMes);
pMes^:=sMes;
PostThreadMessage(thread2.ThreadID,WM_StartRecording,Integer(pMes),0);
iTemp:=111;
PostThreadMessage(thread2.ThreadID,WM_OriginalData,iTemp,0);
end;
接收消息:
procedure TThread2.