我在 Delphi 10.2 上使用了 fastreport 5.4.6,但是当使用 unicode args 显示 Format 函数时,fastreport 出现错误。这是错误
使用文本创建备忘录 = [Format('%s' , ['nghìn tỷ'])] nghìn tỷ</p>
它将显示“nghìn t? nghìn tỷ”
如何修复它。请帮我。
编辑 我在 fastreport 的 fs_itools.pas 中更改函数 VariantToVarRec
procedure VariantToVarRec(v: Variant; var ar: TVarRecArray);
var
...
varOleStr, varString:
begin
// ar[i].VType := vtString;
// New(ar[i].VString);
//{$IFDEF Delphi12}
// ar[i].VString^ := AnsiString(v[i]);
//{$ELSE}
// ar[i].VString^ := v[i];
//{$ENDIF}
ar[i].VType := vtUnicodeString;
ar[i].VString := pointer(UnicodeString(v[i]));
end;
{$IFDEF Delphi12}
varUString:
begin
ar[i].VType := vtUnicodeString;
New(ar[i].VUnicodeString);
PUnicodeString(ar[i].VUnicodeString)^ := v[i];
end;
{$ENDIF}
...
end;
改变后
[格式('%s' , ['một nghìn tỷ'])]
将显示“một nghìn tỷ”。我不知道如果我改变功能会发生什么(我是delphi的新手)