原文章见:
http://expert.csdn.net/Expert/topic/1871/1871908.xml?temp=.6358301
下面的是这篇文章的拷贝~~如果解决问题~马上给加分结贴~~~~~~~~~谢谢了~如果有什么不明白的,还可以提出来,我将详细解答~
第一个问题:
var thetime:TTime;
   TheTime:=strtotime(ListName[3][i]);其中ListName[3][i]中的值是 23:23:23上面这行代码在同一个timer1.timer事件里面~但是在两种不同的情况下,虽然是同一个事件里面,在不同情况下,居然会出错~第一种可以正确执行的情况是:什么都不做,让他自动自动timer激发,就什么事都不会发生~
第二种情况执行出错:就是在我进行了一些其他操作后,再激发timer事件的时候,同样一个:23:23:23的时间类型数据,他执行上面代码就出错了~说1899-12-31 23:23:23 不是一个有效的日期数据类型~~~~~~~~~~~我真是急晕了~~怎么想也想不出原因~~(为什么实质上两种并不互相影响的情况会导致其中一种情况出错~~~~~~~~~那位仁兄知道怎么回事的,还请赤脚~~~~~~~

解决方案 »

  1.   

    TDate = type TDateTime;  TTime = type TDateTime;
    这是Delphi里面的定义,23:23:23 只有时间,没有日期,所以Delphi就默认为1899-12-30,但StrToTime转换这个时间就会出错,面StrToDateTime就不会出错
      

  2.   

    我现在做的是一个与ftp有关的咚咚~~我现在就是在做把一个下载事务加到下载列表~(下载列表是保存在数据库中的)我现在问题是:情况一:
    如果在程序中不添加下载事务(让程序下载我在数据库中已经静态添加过的事务的时候,我的程序就可以好好执行,而且也可以执行下载事务,完成下载)情况二:
    但是如果我在程序中,添加了新的事务,虽然说该事务可以完成添加(数据库中已经发现添加了,而且在程序单步执行的时候也发现这个事务也已经保存到了待下载队列ListNmae[][]数组中,出错也就是在添加新事务后,在执行上面那段strtotime就出错了)我之所以说这种错误不会出现,是因为不论是情况一,情况二,都会执行strtotime这个函数,
    但是为什么情况一就可以正确执行,情况二就不行了呢???