我需要构造一个字符串并通过发送它PostMessage
,即。
FileName := String_1 + String_2 + String_3;
PostMessage(FWndHandle, WM_BLA_BLA, NotifyData^.Action, LParam(FileName));
但有些东西不起作用。另外,FileName 是一个 PChar。代码如下所示:
var
FileName : PChar;
Directory_Str : String;
AnotherString : String;
begin
// Get memory for filename and fill it with data
GetMem(FileName, NotifyData^.FileNameLength + SizeOf(WideChar));
Move(NotifyData^.FileName, Pointer(FileName)^, NotifyData^.FileNameLength);
PWord(Cardinal(FileName) + NotifyData^.FileNameLength)^ := 0;
// TODO: Contact string before sending message
// FileName := AnotherString + Directory_Str + FileName;
PostMessage(FWndHandle, WM_BLA_BLA, NotifyData^.Action, LParam(FileName));
...
end;
现在我需要FileName
在调用之前联系另一个字符串到变量PostMessage
,即。
FileName := AnotherString + Directory_Str + FileName;
PostMessage(FWndHandle, WM_BLA_BLA, NotifyData^.Action, LParam(FileName));
如果 FileName 是一个字符串,这将起作用,但这里不是这种情况。
任何人都知道如何用 PChar 做到这一点?我尝试了这些方法,有时会奏效,但最后总是会出现问题:
StrPCopy(FileName, FDirectory + String(FileName));
或者
FileName := PChar(AnotherString + Directory_Str + FileName);