使DevExpress日期控件正确显示

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

使DevExpress日期控件正确显示

===========================================

作者:Andy Kwok

电邮:andykwok@163.com

语言:DELPHI 5

环境:Windows 2000 Personal简体中文

===========================================

使DevExpress日期控件正确显示

TdxGridDatePopup是DevExpress组件中日期显示的一个组件,DevExperss是一个很强大的控件,但在中文Windows中,日期控件会出现一个问

题:无论星期几都只是显示“星”字。

原因:

出现这个问题并不是DevExpress公司的程序代码有问题,只是不同的语言版本中,系统提供的日期函数中返回的格式或文字有所不同。

DevExpress公司是用ShortDayNames数组取得星期几的。

ShortDayNames: array[1..7] of string;

ShortDayNames是一个String数组,共有七个元素,分别对应星期一到七的字符串,在英文Windows中,它的值为[‘Sunday’,‘Monday’...],在中

文Windows中,它的值为[‘星期一‘,‘星期二‘...]。

DevExpress是想返回英文的第一个字母,如Sunday,返回的是S,所以她用了S := {$IFDEF

DELPHI3}WideString{$ENDIF}(ShortDayNames[J])[1]来取得,但在中文Windows中,就会返回”星“,问题就出在这里。

修改方法:

打开{Programe Files}Developer Express IncExpressInplaceEditorsDelphi 5SourcedxGrDate.pas,查找

S := {$IFDEF DELPHI3}WideString{$ENDIF}(ShortDayNames[J])[1],

然后修改为

S := {$IFDEF DELPHI3}WideString{$ENDIF}(ShortDayNames[J])[3]。

重新编译dxGrDate.pas(你可以把dxGrDate.pas加到一个Project中,重新编译你的Project,dxGrDate.pas就会重新编译),然后把相关的dxGrDate.Dcu复制到..\LIB下。

问题就会解决了。

附:

ShortDayNames 的英文说明。

ShortDayNames - Array of strings containing short day names. The ddd

format specifier in a format string passed to FormatDate causes a short

day name to be substituted. The default values are fecthed from the

LOCALE_SABBREVDAYNAME system locale entries.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航