发布TDateTimePicker同时修改日期和时间的解决方案,欢迎测试(0分)

  • 主题发起人 主题发起人 203010
  • 开始时间 开始时间
2

203010

Unregistered / Unconfirmed
GUEST, unregistred user!
TCDateTimePicker = class(TDateTimePicker)
private
procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
end;

{ TCDateTimePicker }

function IsBlankSysTime(const ST: TSystemTime): Boolean;
type
TFast = array [0..3] of DWORD;
begin
Result := (TFast(ST)[0] or TFast(ST)[1] or TFast(ST)[2] or TFast(ST)[3]) = 0;
end;

procedure TCDateTimePicker.CNNotify(var Message: TWMNotify);
begin
with Message, NMHdr^ do
begin
Result := 0;
if (code = DTN_DATETIMECHANGE) and
(PNMDateTimeChange(NMHdr)^.dwFlags = GDT_VALID) and (not DroppedDown) and
(not (ShowCheckBox and IsBlankSysTime(PNMDateTimeChange(NMHdr)^.st))) then
DateTime := SystemTimeToDateTime(PNMDateTimeChange(NMHdr)^.st);
end;
inherited;
end;
请提出宝贵意见
 
是可以同时修改了
但是你怎么让它同时显示时间跟日期?
如果把Format设为'yyyy-mm-dd hh:mm:ss'的话
我这显示出来的是这样的: '2001-33-21 12:33:45',即两边的mm没有区分开来。
 
应该把Format设为'yyyy-MM-dd hh:mm:ss'
^^大写,这要与Windows区域设置的格式一致
 
应该设为'yyyy-mm-dd hh:nn:ss',分钟用nn
 
设为'yyyy-MM-dd hh:mm:ss'是正确的。
 
接受答案了.
 
后退
顶部