汉化 Delphi6.0 的报表预览器

类别:Delphi 点击:0 评论:0 推荐:

    Delphi 语言以其高效、简单和强大的功能受到广大程序员的推崇。但是,直到最近推出的6.0版,由于它们都是英文版,所以用 Delphi开发数据库应用程序时,其报表预览控件在界面上显示的提示信息全都是英文字符,这对于开发中文界面的程序,显得很不协调。
    笔者经过分析发现,Delphi6.0 在进行报表预览时,调用了窗体文件 Qrprev.dfm,该文件位于 \Program Files\Borland\Delphi6\Lib文件夹下。报表预览器上的工具条、按钮等控件全部在该文件中定义!找到了问题的关键所在,解决起来就比较简单了。用 Delphi6.0 打开Qrprev.dfm 文件,会发现其中定义了一个 TQRStandardPreview 对象类,在该类下,又定义了状态条(TStatusBar)、工具条(TToolBar)、预览窗体(TQRPreview)和图形列表(TImageList)四个类。我们就是要对工具条上按钮的 Caption、Hint和状态条上的Panels 的英文提示进行汉化。
    文后所附程序清单标明了笔者所做的修改,其中语句前标有一个 * 号的是笔者所做的汉化修改,标有两个 * 号的是笔者为了支持中文字体和美化界面而加的语句。程序中不能加注 // 和 {} 注释语句(当然也不能保留语句前的 * 号)。如果你愿意,还可以给工具条上再定义一些按钮,甚至添加一幅图片。
    当然了,应用这种方法,您还可以对 Delphi 的其它系统资源进行汉化,使您编制的软件界面更加友好,更符合中文用户的操作要求。

//Qrprev.dfm 文件的内容:
   object QRStandardPreview: TQRStandardPreview
   Left = 229
   Top = 191
   Width = 652
   Height = 579
*  Caption = '"西安电子科技大学电达科技公司"报表预览器'
   Color = clBtnFace
** Font.Charset = GB2312_CHARSET
** Font.Height = -12
** Font.Name = '宋体'
   ParentFont = True
   KeyPreview = True
   OldCreateOrder = True
   Position = poScreenCenter
   ShowHint = True
   OnClose = FormClose
   OnCreate = FormCreate
   OnKeyDown = FormKeyDown
   OnResize = FormResize
   PixelsPerInch = 96
*  TextHeight = 12
   object StatusBar: TStatusBar
   Left = 0
   Top = 533
   Width = 644
   Height = 19
   Panels = <
   item
   Alignment = taRightJustify
   Text = '0%'
   Width = 40
   end
   item
*  Text = '页'
   Width = 50
   end>
   SimplePanel = False
   end
   object ToolBar1: TToolBar
   Left = 0
   Top = 0
   Width = 644
   AutoSize = True
   BorderWidth = 2
   Flat = True
   Images = Images
   TabOrder = 1
** ShowCaptions = True
   object ToolButton1: TToolButton
   Left = 0
   Top = 0
   Width = 8
   Caption = 'ToolButton1'
   ImageIndex = 12
   Style = tbsDivider
   end
   object ZoomFit: TToolButton
   Left = 8
   Top = 0
** AutoSize = True
*  Hint = '缩 小'
*  Caption = '缩小'
   Grouped = True
   ImageIndex = 0
   Style = tbsCheck
   OnClick = ZoomToFitClick
   end
   object Zoom100: TToolButton
   Left = 31
   Top = 0
** AutoSize = True
*  Hint = '满屏100%显示'
*  Caption = '满屏'
   Grouped = True
   ImageIndex = 1
   Style = tbsCheck
   OnClick = ZoomTo100Click
   end
   object ZoomToWidth: TToolButton
   Left = 54
   Top = 0
** AutoSize = True
*  Hint = '适应屏幕宽度'
*  Caption = '等宽'
   Grouped = True
   ImageIndex = 2
   Style = tbsCheck
   OnClick = ZoomToWidthClick
   end
   object Separator1: TToolButton
   Left = 77
   Top = 0
   Width = 8
   Caption = 'Separator1'
   ImageIndex = 3
   Style = tbsDivider
   end
   object FirstPage: TToolButton
   Left = 85
   Top = 0
** AutoSize = True
*  Hint = '第一页'
*  Caption = '首页'
   ImageIndex = 3
   OnClick = FirstPageClick
   end
   object PreviousPage: TToolButton
   Left = 108
   Top = 0
** AutoSize = True
*  Hint = '上一页'
*  Caption = '前页'
   ImageIndex = 4
   OnClick = PrevPageClick
   end
   object ToolButton2: TToolButton
   Left = 131
   Top = 0
** AutoSize = True
*  Hint = '下一页'
*  Caption = '后页'
   ImageIndex = 5
   OnClick = NextPageClick
   end
   object LastPage: TToolButton
   Left = 154
   Top = 0
** AutoSize = True
*  Hint = '最后一页'
*  Caption = '末页'
   ImageIndex = 6
   OnClick = LastPageClick
   end
   object Separator2: TToolButton
   Left = 177
   Top = 0
   Width = 8
   Caption = 'Separator2'
   ImageIndex = 7
   Style = tbsDivider
   end
   object PrintSetup: TToolButton
   Left = 185
   Top = 0
** AutoSize = True
*  Hint = '打印机设置'
*  Caption = '设置'
   Enabled = False
   ImageIndex = 7
   OnClick = PrintSetupClick
   end
   object Print: TToolButton
   Left = 208
   Top = 0
** AutoSize= True
*  Hint = '打印'
*  Caption = '打印'
   Enabled = False
   ImageIndex = 8
   OnClick = PrintClick
   end
   object Separator3: TToolButton
   Left = 231
   Top = 0
   Width = 8
   Caption = 'Separator3'
   ImageIndex = 9
   Style = tbsDivider
   end
   object SaveReport: TToolButton
   Left = 239
   Top = 0
** AutoSize = True
*  Hint = '保存到文件'
*  Caption = '保存'
   ImageIndex = 10
   OnClick = SaveClick
   end
   object LoadReport: TToolButton
   Left = 262
   Top = 0
** AutoSize = True
*  Hint = '从文件装载'
*  Caption = '装载'
   ImageIndex = 9
   OnClick = LoadClick
   end
   object Separator4: TToolButton
   Left = 285
   Top = 0
   Width = 8
   Caption = 'Separator4'
   ImageIndex = 11
   Style = tbsDivider
   end
   object ExitButton: TSpeedButton
   Left = 293
   Top = 0
   Width = 50
   Height = 22
   Caption = '关闭'
   OnClick = ExitClick
   end
   end
   object QRPreview: TQRPreview
   Left = 0
   Top = 32
   Width = 622
   Height = 501
   HorzScrollBar.Tracking = True
   VertScrollBar.Tracking = True
   Align = alClient
   TabOrder = 2
   OnPageAvailable = QRPreviewPageAvailable
   OnProgressUpdate = QRPreviewProgressUpdate
   PageNumber = 1
   Zoom = 100
   end
   object Images: TImageList
   Left = 54
   Top = 42
   Bitmap = {494C0101……} // 省略
   end
   end

              张庆 [email protected] QQ:9365822 
                       http://soft.why100000.com

本文地址:http://com.8s8s.com/it/it5240.htm