在Delphi 7中,chr等效于Unicode

use*_*591 2 delphi delphi-7

我需要在Delphi 7中初始化Widestring,但我不能使用chrANSI的函数

var
  ws : Widestring;
begin

 ws := chr($FFFF) + chr($FFFF) + chr($FFFF);

end;
Run Code Online (Sandbox Code Playgroud)

那我可以用什么?

谢谢

Dav*_*nan 10

我不确定有什么简单的方法可以做你想做的事.您可以使用简单的强制转换将a转换Word为a WideChar:

WideChar($FFFF)
Run Code Online (Sandbox Code Playgroud)

但你无法连接WideChar.所以这是一个编译器错误:

WideChar($FFFF) + WideChar($FFFF)
Run Code Online (Sandbox Code Playgroud)

您可以使用辅助函数来完成工作:

function InitialiseWideString(const chars: array of Word): WideString;
var
  i: Integer;
begin
  SetLength(Result, Length(chars));
  for i := 0 to high(chars) do
    Result[i+1] := WideChar(chars[i]);
end;
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样调用它:

ws := InitialiseWideString([$0054, $0069, $006D, $0065, $0020, $0074, $006F, 
  $0020, $0075, $0070, $0067, $0072, $0061, $0064, $0065]);
Run Code Online (Sandbox Code Playgroud)

  • 发现复活节彩蛋:"升级时间":-). (5认同)
  • 不错的,将它添加到公司核心库;) (2认同)