使DevExpress日期控件正确显示

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 andykwok 的 blog

使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.

本文关键:DevExpress,日期控件,DELPHI
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top