从4.8.5版本升级到FastReport 4.10.1后,中文菜单有乱码,有的没有显示

从4.8.5版本升级到FastReport 4.10.1后,中文菜单有乱码,有的没有显示

菜单如下:
从4.8.5版本升级到FastReport 4.10.1后,中文菜单有乱码,有的没有显示

 

解决办法:

用delphi重新编译一个 frcc程序

program frcc;

{$APPTYPE CONSOLE}

uses
  SysUtils, Classes, StrUtils;

var
  xml: string;
  list: TStringList;
  i: Integer;
  fileName : string;
  lineWidth: integer;
  line: string;


begin
  try
    { TODO -oUser -cConsole Main : Insert code here }
    if ParamCount < 1 then
    begin
      Writeln('no input');
      Exit;
    end;
    xml := ParamStr(1);
    fileName := ExtractFileName(xml);
    fileName := Copy(fileName, 1, Length(fileName) - 4); //delete ext .xml
    list := TStringList.Create();
    list.LoadFromFile(xml, TEncoding.UTF8);
    xml := list.Text;
    list.Clear;
    list.Add('unit ' +    fileName + ';');
    list.Add('');
    list.Add('interface');
    list.Add('{$I frx.inc}');
    list.Add('implementation');
    list.Add('uses frxRes;');
    list.Add('const resXML =');
    xml := ReplaceText(xml, #13, '');
    xml := ReplaceText(xml, #10, '');
    i := 1;
    while True do
    begin
      if (i + 80) < (Length(xml) + 1) then
        lineWidth := 80
      else
        lineWidth := Length(xml) + 1 - i;
      if lineWidth = 0 then
        break;
      line := Copy(xml, i, lineWidth);
      list.Add(QuotedStr(line) + '+');
      i := i + lineWidth;
    end;
    list.Add(''''';');
    list.Add('initialization');
    list.Add('    frxResources.AddXML(Utf8Encode(resXML));');
    list.Add('');
    list.Add('end.');
    list.SaveToFile(ChangeFileExt(ParamStr(1), '.pas'), TEncoding.Default);
    list.Free;
  except
  on E: Exception do
    Writeln(E.ClassName, ': ', E.Message);
  end;
end.

你可能感兴趣的:(port)