使DevExpress日期控件正确显示 (转)

本文介绍了解决DevExpress日期控件在中文Windows环境下只显示“星”字的问题。通过修改源代码中的字符索引,使得星期名称能够正确显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使DevExpress日期控件正确显示 (转)[@more@]使DevExpress日期 控件正确显示
===========================================
作者:Andy Kwok
电邮: Mailto:andykwok@163.com">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}W ideString{$ENDIF}(ShortDayNames[J])[1]来取得,但在中文Windows中,就会返回”星“,问题就出在这里。

修改方法:
打开{Programe Files}Developer Express IncExpressInplaceEditorsDelphi 5 sourcedxGrDate.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.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-993958/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-993958/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值