文字列を作成して 経由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);