FastReport 4.13.1 中文菜单显示不全或者乱码解决方法

FastReport 4.13.1 中文菜单显示不全或者乱码解决方法

FastReport 4.13.1 中文菜单显示不全或者乱码解决方法:

可以自己编译一个frcc.exe,替换Res目录下的,然后再recompile即可。   delphi xe3测试界面都正常。

用delphi xe3建立一个console工程,名称为frcc,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
program  frcc;
{$APPTYPE CONSOLE}
uses
     SysUtils,
     Classes,
     StrUtils;
var
     xml: string ;
     list: TStringList;
     i: Integer ;
     fileName : string ;
     lineWidth: integer ;
     line: string ;
begin
     try
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 .

你可能感兴趣的:(FastReport 4.13.1 中文菜单显示不全或者乱码解决方法)