zoukankan      html  css  js  c++  java
  • FastReport for Delphi2010 中文菜单显示不全或者乱码解决方法

    中文菜单不能正确显示是由于它自带的资源编译器太老,和Delphi2010自带的TEncoding.UTF8不匹配造成的.此资源编译器frcc主要就是将资源文件*.xml中的资源编码后生成相应的.pas文件,没干啥高深的活。
    以下是网友自建的Frcc程序,可以正常显示中文了.

    可以自己编译一个frcc.exe,替换Res目录下的,然后再recompile即可。  delphi 2010(update5)测试界面都正常。
    用delphi 2010建立一个console工程,名称为frcc,代码如下:
    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.

  • 相关阅读:
    为STARUML写的自动生成文档脚本 分类: 开发工具 2015-07-28 10:27 9人阅读 评论(0) 收藏
    StartUML自动生成代码 分类: 开发工具 2015-07-28 10:26 11人阅读 评论(0) 收藏
    使用无连接的数据报(UDP)进行通信 分类: Java 2015-07-27 20:59 13人阅读 评论(0) 收藏
    在线HTTP POST/GET接口测试工具
    完全卸载Oracle 11g
    Spring自动事物代理
    Spring的事物处理(转)
    如何写出高性能的SQL语句(转)
    JAVA读取xml(转)
    FineReport的使用
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/1841574.html
Copyright © 2011-2022 走看看