我希望编写一个日期编辑控件,最好使用日期/时间选择器,将其格式设置存储在控件本身上,这样就可以在运行时独立于其他控件定义它们。
我已经将TcxCustomDateEdit作为基础并覆盖了各种方法来处理输入和输出但是现在我遇到了弹出日历,它使用SysUtils中的变量显示所有月份和日期名称。
我需要能够使用特定的格式设置(包括月份和日期名称)而不是系统区域设置
我有什么想法可以解决这个问题吗?
修改
我在TcxDateEdit的弹出窗口中包含了下面的2张图片。
ShortDateFormat:顶栏中的日期
ShortDayNames:日历中每天的第一个字母
LongMonthNames:当月的箭头之间的月份名称,MonthListPopup中的月份名称列表。
TimeSeparator:应控制TimeEdit中的:
,但不能。{/ p>
这些都是TFormatSettings的一部分,我想在单独的控制级别控制它们。
答案 0 :(得分:0)
啊哈,我现在明白你想要达到的目标。 Delphi的dateEdit使用标准Delphi的ShortDateFormat来格式化值。我将从重写TcxCustomDateEditProperties.PrepareDisplayValue,TcxCustomDateEditProperties.InternalPrepareEditValue和TcxCustomDateEditProperties.ValidateDisplayValue方法开始。
答案 1 :(得分:0)
写了一个新的弹出日历
TMyPopupCalendar = class(TcxPopupCalendar);
和一个新的列表框
TRegionalPopupListBox = class(TcxMonthListBox)
并在日期编辑控件中覆盖CreateCalendar
和GetCalendarClass