Delphi 10.2 で fastreport 5.4.6 を使用していますが、Unicode 引数を使用して Format 関数を表示すると fastreport にエラーが発生します。ここにエラーがあります
テキスト = [Format('%s' , ['nghìntỷ'])] でメモを作成</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;
変更後
[Format('%s' , ['một nghìn tỷ'])]
「một nghìn tỷ」と表示されます。関数をそれに変更するとどうなるかわかりません(私はデルファイの初心者です)