对DateTimePicher控件,为什么在键盘输入年份时会出现“Access violation at address 8456B459. Write of

  • 主题发起人 主题发起人 zouming
  • 开始时间 开始时间
Z

zouming

Unregistered / Unconfirmed
GUEST, unregistred user!
对DateTimePicher控件,为什么在键盘输入年份时会出现“Access violation at address 8456B459. Write of address 833CE7E8.”(50分)<br />对DateTimePicher控件,为什么在键盘输入年份时会出现“Access violation at address 8456B459. Write of address 833CE7E8.”
如何解决?
 
我曾经也遇到过这样的问题,原因可能是:
关于DateTimePicher输入程序出错,比如赋值类型不匹配;
试试下面的写法:
param[0].asdatetime:=DateTimePicher1.Datetime;(已做简化)
 
我仅是在输入年份时按一下数字键,就弹出如上的错误框,why?
 
可能是要Param[0].ASDateTime:=StrToDateTime(FormatDateTime('',DateTimePicker1.DateTime);
 
请问:
你是每次都遇到这种问题还是偶尔有一次碰到?
要是后一种的话,我可以告诉你那不是你的问题,那是Delphi的问题,你重新打开Delphi
或重新开机就会变好。
要是每次都是这问题,可能还是Delphi的问题,你需要重装Delphi。

我的水平有限,不足之处请多指点。
 
我是偶尔碰到。
 
这个问题是老版本vcl的问题的.
原来公布过解决办法的.不过delphi5以后的版本没有这个问题的.不知道你用什么版本?
 
我用delphi3,delphi3速度比较快,所以一直在用,在delphi3 、delphi4下如何编程解决这个问题?
 
我以前在cb3下使用时的解决办法.你自己看看改成delphi的吧
当datetimepicker为下拉形式时下拉弹出选择器时就会出错,
这是d5/cb5以下版本存在的bug.与你的程序无关.


__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
NMDATETIMECHANGE dtc;
SYSTEMTIME now;
GetSystemTime(&amp;now);
dtc.nmhdr.hwndFrom = dtp->Handle;
dtc.nmhdr.idFrom = NULL;
dtc.nmhdr.code = DTN_DATETIMECHANGE;
dtc.dwFlags = GDT_VALID;
dtc.st = now;
dtp->Perform(WM_NOTIFY, NULL, (int)&amp;dtc);
}
 
如何转成delphi3中的,部分类型如何声明?
 
accept answer
 
多人接受答案了。
 
后退
顶部