AlphaControls 控件 TsDateEdit使用年月(yyyy-MM)格式数据
使用AlphaControls控件后,Delphi原TDateTimePicker控件不支持换肤,必须用TsDataEdit取代。
TsDataEdit与TDateTimePicker二者,在使用上基本相同。但是,TsDataEdit控件无Format属性,不能使用格式化“yyyy-MM”。这样,当需要“yyyy年MM月”格式的日期值时,出现问题。
解决办法:使用TsEdit,作为过渡(转换),年月的选择,还是由TsDataEdit获取,让TsDataEdit最小化,由TsEdit显示结果:
在From中,需要在OnShow事件中,对日期控件例如:TsEdit,TsDateEdit的Date值初化。
sEdit1.Text:=FormatdateTime('yyyy-MM',Now);
sDateEdit1.OnChange:=nil;
sDateEdit1.Date:=Now;
sDateEdit1.OnChange:=sDateEdit1Change;
TsDateEdit事件:
sEdit1.Text:=FormatdateTime('yyyy-MM',sDateEdit1.Date);
注意:
经过实践,在使用“年月”时,可以将TDateEdit的宽度设置为76, 这样,TDateEdit仅显示年月,隐藏了“日”。还是可以使用的。但是,不能与其它控件宽度保持一致了。
但是,sDataEdit.Text显示的还是10个字符,左右移动显示 2022-06-06。严格意义上是不可取的(应回避)。