-1

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ỷ」と表示されます。関数をそれに変更するとどうなるかわかりません(私はデルファイの初心者です)

4

1 に答える 1