我在 Delphi 10.2上使用fastreport 5.4.6,但fastreport在显示格式函数时出现错误。
创建带有文本的备忘录= [Format(' % s','nghn t '])] nghn t
它将显示“nghn t?nghn 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 nghn t”])]
将显示“m t nghn t "。我不知道会发生什么,如果我改变功能,(我是一个初学者在 Delphi )。
1条答案
按热度按时间blpfk2vs1#
已修复。FR 5.6.2工作正常。fs_isysrtti.pas来自5.6.2:
字符串
fs_itools.pas来自5.6.2:
型