使DevExpress日期控件正确显示
敬业的IT人
互联网
佚名
2008-1-4 16:54:17
使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.
作者Blog:http://blog.csdn.net/andykwok/
===========================================
作者: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.
作者Blog:http://blog.csdn.net/andykwok/
- 最新文章
- 在Delphi中读取另一台计算机的屏幕[01-04]
- 能够处理任何数据库字段的Panel[01-04]
- 在Delphi中自己建立交叉表[01-04]
- Delphi第三方控件全面评比介绍(玉笛书生)[01-04]
- 纸牌控件的编写(中)[01-04]
- 两种Delphi实现Singleton模式方法[01-04]
- 相关文章
