Delphi TDateTimePicker问题;未能设置最小/最大范围";
我的一个应用程序的一些用户遇到了一个奇怪的问题,在启动时,他们遇到了datitimepickers的一个例外,它的预定最小/最大日期设置为1950年1月1日至2050年12月31日 应用程序引发的默认错误消息为 “读取time1时出错。最大值:设置日历最小/最大范围失败。” 嵌入调试器(madshi的madExcept)后,我在报告中看到: 读取time1.MaxDate时出错:“23:59:59”不是有效的日期,并且 时间。” 表单上的对象具有以下属性: 你知道会有什么问题吗 碰撞数据: 主螺纹(2b08美元):Delphi TDateTimePicker问题;未能设置最小/最大范围";,delphi,tdatetimepicker,Delphi,Tdatetimepicker,我的一个应用程序的一些用户遇到了一个奇怪的问题,在启动时,他们遇到了datitimepickers的一个例外,它的预定最小/最大日期设置为1950年1月1日至2050年12月31日 应用程序引发的默认错误消息为 “读取time1时出错。最大值:设置日历最小/最大范围失败。” 嵌入调试器(madshi的madExcept)后,我在报告中看到: 读取time1.MaxDate时出错:“23:59:59”不是有效的日期,并且 时间。” 表单上的对象具有以下属性: 你知道会有什么问题吗 碰撞数据: 主螺
>0051501b+0a7 app.exe系统。类别10430+5 HandleException
>00515255+1f5 app.exe System.Classes 10487+48 TReader.ReadProperty
>00514a65+015 app.exe System.Classes 10233+1 TReader.ReadDataInner
>00514a47+067 app.exe System.Classes 10226+11 TReader.ReadData
>0051de05+001 app.exe System.Classes 15947+0 TComponent.ReadState
>0057d017+02f app.exe Vcl.Controls 5567+3 TControl.ReadState
>00581481+025 app.exe Vcl.Controls 8434+3 TWinControl.ReadState
>005148bf+11f app.exe System.Classes 10187+23 TReader.ReadComponent
>00514ad9+089 app.exe System.Classes 10241+9 TReader.ReadDataInner
>00514a47+067 app.exe System.Classes 10226+11 TReader.ReadData
>0051de05+001 app.exe System.Classes 15947+0 TComponent.ReadState
>0057d017+02f app.exe Vcl.Controls 5567+3 TControl.ReadState
>00581481+025 app.exe Vcl.Controls 8434+3 TWinControl.ReadState
>00604c4c+028 app.exe Vcl.ExtCtrls 10464+3
>TCustomCategoryPanel.ReadState 005148bf+11f app.exe System.Classes
>10187+23 TReader.ReadComponent 00514ad9+089 app.exe System.Classes
>10241+9 TReader.ReadDataInner 00514a47+067 app.exe System.Classes
>10226+11 TReader.ReadData 0051de05+001 app.exe System.Classes 15947
>+0 TComponent.ReadState 0057d017+02f app.exe Vcl.控制5567+3 TControl.ReadState 00581481+025 app.exe Vcl.控制8434+3 TWinControl.ReadState 005c8523+00b app.exe Vcl.ComCtrls 6207+1
>TTabSheet.ReadState 005148bf+11f app.exe系统类10187+23
>TReader.ReadComponent 00514ad9+089 app.exe System.Classes 10241+9
>TReader.ReadDataInner 00514a47+067 app.exe System.Classes 10226+11
>TReader.ReadData 0051de05+001 app.exe系统类15947+0
>TComponent.ReadState 0057d017+02f app.exe Vcl.控件5567+3
>TControl.ReadState 00581481+025 app.exe Vcl.Controls 8434+3
>TWinControl.ReadState 005148bf+11f app.exe系统类10187+23
>TReader.ReadComponent 00514ad9+089 app.exe System.Classes 10241+9
>TReader.ReadDataInner 00514a18+038 app.exe System.Classes 10220+5
>TReader.ReadData 0051de05+001 app.exe系统类15947+0
>TComponent.ReadState 0057d017+02f app.exe Vcl.控件5567+3
>TControl.ReadState 00581481+025 app.exe Vcl.Controls 8434+3
>TWinControl.ReadState 0064f15d+06d app.exe Vcl.表格3836+11
>TCustomForm.ReadState 005159d7+1d7 app.exe系统。类10667+37
>TReader.ReadRootComponent 005109c6+032 app.exe System.Classes 8269
>+3 TStream.ReadComponent 0050a37f+057 app.exe系统。类3834+7 InternalReadComponents 0050bcbb+05f app.exe系统。类3891+4 InitComponent 0050bd49+061 app.exe系统。类3903+6 InitInheritedComponent 0064e982+0c6 app.exe Vcl。表单3592+17
>TCustomForm.Create 006593da+076 app.exe Vcl.Forms 10407+13
>TApplication.CreateForm 008e146e+cce app.exe app 342+211
>初始化74e9919d+00c KERNEL32.DLL
>BaseThreadInitThunk
>
>主线程($2b08),内部异常级别1:
>>>EConvertError,“23:59:59”不是有效的日期和时间0044d219+019 app.exe System.SysUtils 5387+1 ConvertErrorFmt 00453b74+02c app.exe System.SysUtils 19596+2 StrToDateTime 005dd4e1+0f5 app.exe
>Vcl.ComCtrls 27328+6 TCommonCalendar.SetMaxDate 004e873d+06d
>app.exe System.TypInfo 2238+8
>{System.TypInfo}TPropSet.SetProc 004e729a+066 app.exe
>System.TypeInfo 3185+3 SetFloatProp 005155ff+18b app.exe
>System.Classes 10567+25 TReader.ReadPropValue 005151f6+196 app.exe
>System.Classes 10476+37 TReader.ReadProperty 00514a65+015 app.exe
>System.Classes 10233+1 TReader.ReadDataInner 00514a47+067 app.exe
>System.Classes 10226+11 TReader.ReadData 0051de05+001 app.exe
>System.Classes 15947+0 TComponent.ReadState 0057d017+02f app.exe
>Vcl.Controls 5567+3 TControl.ReadState 00581481+025 app.exe
>Vcl.Controls 8434+3 TWinControl.ReadState 005148bf+11f app.exe
>System.Classes 10187+23 TReader.ReadComponent 00514ad9+089 app.exe
>System.Classes 10241+9 TReader.ReadDataInner 00514a47+067 app.exe
>System.Classes 10226+11 TReader.ReadData 0051de05+001 app.exe
>System.Classes 15947+0 TComponent.ReadState 0057d017+02f app.exe
>Vcl.Controls 5567+3 TControl.ReadState 00581481+025 app.exe
>Vcl.Controls 8434+3 TWinControl.ReadState 00604c4c+028 app.exe
>Vcl.ExtCtrls 10464+3 TCustomCategoryPanel.ReadState 005148bf
>+11f app.exe系统。Classes 10187+23 TReader.ReadComponent 00514ad9+089 app.exe系统。Classes 10241+9 TReader.ReadDataInner 00514a47+067 app.exe系统。Classes 10226+11 TReader.ReadData 0051de05+001 app.exe系统。Classes 15947+0 TComponent.ReadState 0057d017+02f
>app.exe Vcl.Controls 5567+3 TControl.ReadState 00581481+025
>app.exe Vcl.Controls 8434+3 TWinControl.ReadState 005c8523+00b
>app.exe Vcl.ComCtrls 6207+1 TTabSheet.ReadState 005148bf+11f
>app.exe System.Classes 10187+23 TReader.ReadComponent 00514ad9+089
>app.exe System.Classes 10241+9 TReader.ReadDataInner 00514a47+067
>app.exe System.Classes 10226+11 TReader.ReadData 0051de05+001
>app.exe System.Classes 15947+0 TComponent.ReadState 0057d017+02
Date = 39773.494141041670000000
Format = 'MMM yyyy'
Time = 39773.494141041670000000
MaxDate = 55153.999988425920000000
MinDate = 18264.000000000000000000
> 0051501b +0a7 app.exe System.Classes 10430 +5 HandleException
> 00515255 +1f5 app.exe System.Classes 10487 +48 TReader.ReadProperty
> 00514a65 +015 app.exe System.Classes 10233 +1 TReader.ReadDataInner
> 00514a47 +067 app.exe System.Classes 10226 +11 TReader.ReadData
> 0051de05 +001 app.exe System.Classes 15947 +0 TComponent.ReadState
> 0057d017 +02f app.exe Vcl.Controls 5567 +3 TControl.ReadState
> 00581481 +025 app.exe Vcl.Controls 8434 +3 TWinControl.ReadState
> 005148bf +11f app.exe System.Classes 10187 +23 TReader.ReadComponent
> 00514ad9 +089 app.exe System.Classes 10241 +9 TReader.ReadDataInner
> 00514a47 +067 app.exe System.Classes 10226 +11 TReader.ReadData
> 0051de05 +001 app.exe System.Classes 15947 +0 TComponent.ReadState
> 0057d017 +02f app.exe Vcl.Controls 5567 +3 TControl.ReadState
> 00581481 +025 app.exe Vcl.Controls 8434 +3 TWinControl.ReadState
> 00604c4c +028 app.exe Vcl.ExtCtrls 10464 +3
> TCustomCategoryPanel.ReadState 005148bf +11f app.exe System.Classes
> 10187 +23 TReader.ReadComponent 00514ad9 +089 app.exe System.Classes
> 10241 +9 TReader.ReadDataInner 00514a47 +067 app.exe System.Classes
> 10226 +11 TReader.ReadData 0051de05 +001 app.exe System.Classes 15947
> +0 TComponent.ReadState 0057d017 +02f app.exe Vcl.Controls 5567 +3 TControl.ReadState 00581481 +025 app.exe Vcl.Controls 8434 +3 TWinControl.ReadState 005c8523 +00b app.exe Vcl.ComCtrls 6207 +1
> TTabSheet.ReadState 005148bf +11f app.exe System.Classes 10187 +23
> TReader.ReadComponent 00514ad9 +089 app.exe System.Classes 10241 +9
> TReader.ReadDataInner 00514a47 +067 app.exe System.Classes 10226 +11
> TReader.ReadData 0051de05 +001 app.exe System.Classes 15947 +0
> TComponent.ReadState 0057d017 +02f app.exe Vcl.Controls 5567 +3
> TControl.ReadState 00581481 +025 app.exe Vcl.Controls 8434 +3
> TWinControl.ReadState 005148bf +11f app.exe System.Classes 10187 +23
> TReader.ReadComponent 00514ad9 +089 app.exe System.Classes 10241 +9
> TReader.ReadDataInner 00514a18 +038 app.exe System.Classes 10220 +5
> TReader.ReadData 0051de05 +001 app.exe System.Classes 15947 +0
> TComponent.ReadState 0057d017 +02f app.exe Vcl.Controls 5567 +3
> TControl.ReadState 00581481 +025 app.exe Vcl.Controls 8434 +3
> TWinControl.ReadState 0064f15d +06d app.exe Vcl.Forms 3836 +11
> TCustomForm.ReadState 005159d7 +1d7 app.exe System.Classes 10667 +37
> TReader.ReadRootComponent 005109c6 +032 app.exe System.Classes 8269
> +3 TStream.ReadComponent 0050a37f +057 app.exe System.Classes 3834 +7 InternalReadComponentRes 0050bcbb +05f app.exe System.Classes 3891 +4 InitComponent 0050bd49 +061 app.exe System.Classes 3903 +6 InitInheritedComponent 0064e982 +0c6 app.exe Vcl.Forms 3592 +17
> TCustomForm.Create 006593da +076 app.exe Vcl.Forms 10407 +13
> TApplication.CreateForm 008e146e +cce app.exe app 342 +211
> initialization 74e9919d +00c KERNEL32.DLL
> BaseThreadInitThunk
>
> main thread ($2b08), inner exception level 1:
> >> EConvertError, '23:59:59' is not a valid date and time 0044d219 +019 app.exe System.SysUtils 5387 +1 ConvertErrorFmt 00453b74 +02c app.exe System.SysUtils 19596 +2 StrToDateTime 005dd4e1 +0f5 app.exe
> Vcl.ComCtrls 27328 +6 TCommonCalendar.SetMaxDate 004e873d +06d
> app.exe System.TypInfo 2238 +8
> {System.TypInfo}TPropSet<System.Double>.SetProc 004e729a +066 app.exe
> System.TypInfo 3185 +3 SetFloatProp 005155ff +18b app.exe
> System.Classes 10567 +25 TReader.ReadPropValue 005151f6 +196 app.exe
> System.Classes 10476 +37 TReader.ReadProperty 00514a65 +015 app.exe
> System.Classes 10233 +1 TReader.ReadDataInner 00514a47 +067 app.exe
> System.Classes 10226 +11 TReader.ReadData 0051de05 +001 app.exe
> System.Classes 15947 +0 TComponent.ReadState 0057d017 +02f app.exe
> Vcl.Controls 5567 +3 TControl.ReadState 00581481 +025 app.exe
> Vcl.Controls 8434 +3 TWinControl.ReadState 005148bf +11f app.exe
> System.Classes 10187 +23 TReader.ReadComponent 00514ad9 +089 app.exe
> System.Classes 10241 +9 TReader.ReadDataInner 00514a47 +067 app.exe
> System.Classes 10226 +11 TReader.ReadData 0051de05 +001 app.exe
> System.Classes 15947 +0 TComponent.ReadState 0057d017 +02f app.exe
> Vcl.Controls 5567 +3 TControl.ReadState 00581481 +025 app.exe
> Vcl.Controls 8434 +3 TWinControl.ReadState 00604c4c +028 app.exe
> Vcl.ExtCtrls 10464 +3 TCustomCategoryPanel.ReadState 005148bf
> +11f app.exe System.Classes 10187 +23 TReader.ReadComponent 00514ad9 +089 app.exe System.Classes 10241 +9 TReader.ReadDataInner 00514a47 +067 app.exe System.Classes 10226 +11 TReader.ReadData 0051de05 +001 app.exe System.Classes 15947 +0 TComponent.ReadState 0057d017 +02f
> app.exe Vcl.Controls 5567 +3 TControl.ReadState 00581481 +025
> app.exe Vcl.Controls 8434 +3 TWinControl.ReadState 005c8523 +00b
> app.exe Vcl.ComCtrls 6207 +1 TTabSheet.ReadState 005148bf +11f
> app.exe System.Classes 10187 +23 TReader.ReadComponent 00514ad9 +089
> app.exe System.Classes 10241 +9 TReader.ReadDataInner 00514a47 +067
> app.exe System.Classes 10226 +11 TReader.ReadData 0051de05 +001
> app.exe System.Classes 15947 +0 TComponent.ReadState 0057d017 +02f
> app.exe Vcl.Controls 5567 +3 TControl.ReadState 00581481 +025
> app.exe Vcl.Controls 8434 +3 TWinControl.ReadState 005148bf +11f
> app.exe System.Classes 10187 +23 TReader.ReadComponent 00514ad9 +089
> app.exe System.Classes 10241 +9 TReader.ReadDataInner 00514a18 +038
> app.exe System.Classes 10220 +5 TReader.ReadData 0051de05 +001
> app.exe System.Classes 15947 +0 TComponent.ReadState 0057d017 +02f
> app.exe Vcl.Controls 5567 +3 TControl.ReadState 00581481 +025
> app.exe Vcl.Controls 8434 +3 TWinControl.ReadState 0064f15d +06d
> app.exe Vcl.Forms 3836 +11 TCustomForm.ReadState 005159d7 +1d7
> app.exe System.Classes 10667 +37 TReader.ReadRootComponent 005109c6
> +032 app.exe System.Classes 8269 +3 TStream.ReadComponent 0050a37f +057 app.exe System.Classes 3834 +7 InternalReadComponentRes 0050bcbb +05f app.exe System.Classes 3891 +4 InitComponent
> 0050bd49 +061 app.exe System.Classes 3903 +6
> InitInheritedComponent 0064e982 +0c6 app.exe Vcl.Forms 3592
> +17 TCustomForm.Create 006593da +076 app.exe Vcl.Forms 10407 +13 TApplication.CreateForm 008e146e +cce app.exe app 342 +211 initialization 74e9919d +00c KERNEL32.DLL
> BaseThreadInitThunk
>> EConvertError, '23:59:59' is not a valid date and time 0044d219 +019 app.exe
System.SysUtils 5387 +1 ConvertErrorFmt 00453b74 +02c app.exe
System.SysUtils 19596 +2 StrToDateTime 005dd4e1 +0f5 app.exe
Vcl.ComCtrls 27328 +6 TCommonCalendar.SetMaxDate 004e873d +06d app.exe
procedure TCommonCalendar.SetMaxDate(Value: TDate);
begin
if (FMinDate <> 0.0) and (Value < FMinDate) then
raise CalExceptionClass.CreateFmt(SDateTimeMin, [DateToStr(FMinDate)]);
if FMaxDate <> Value then
begin
Value := Trunc(Value);
Value := Value + StrToDateTime('23:59:59'); // <-- HERE
SetRange(FMinDate, Value);
FMaxDate := Value;
end;
end;
procedure TCommonCalendar.SetMaxDate(Value: TDate);
begin
if (FMinDate <> 0.0) and (Value < FMinDate) then
raise CalExceptionClass.CreateFmt(SDateTimeMin, [DateToStr(FMinDate)]);
if FMaxDate <> Value then
begin
SetRange(FMinDate, Value);
FMaxDate := Value;
end;
end;
Value := Value + EncodeTime(23, 59, 59, 0);
ReplaceTime(Value, EncodeTime(23, 59, 59, 0));
var
TS: Char;
TS := FormatSettings.TimeSeparator;
FormatSettings.TimeSeparator := ':';
try
DateTimePicker1.MaxDate := ...;
finally
FormatSettings.TimeSeparator := TS;
end;
myCalendar.MinDate:= myMinDate;
myCalendar.MinDate:= TDateTime(myMinDate);