本帖最后由 L3nnon 于 2010-09-30 22:54:52 编辑

解决方案 »

  1.   

    意味着你通过属性来访问时,将触发Set方法,不过你的Date属性并没有发布,所以只有直接执行SetValue才能为fDate赋值为NewDate
      

  2.   

    可以解释简单些吗??
    不明白>.<;;
      

  3.   

    不用过多解释,你看看delphi的源码,随便找特Edit,然后看看他的属性Text的赋值就明白了
      

  4.   

    你意思是 :
    放置Edit先, 再通过Property 赋值是吗??
    如果用组合键 "Ctrl + Mouse Left Click" 可以吗??
      

  5.   

    "不过你的Date属性" <-- 这个Date 指源码里的哪个??
      

  6.   

    这个设计有问题,一般DateTime应该设计成不变的值对象。(在高版本中推荐使用Record来封装)
      

  7.   

    设计成类,需要手工管理生命周期;有Setter表示成员永远可变。这两个都是问题。如果使用Record的话,还可以重载运算符。
      

  8.   

    我觉得你说的问题是变量赋值兼容的问题。
    FDate是TDateTime类型的数据(实际上是一个浮点数),而作为参数的NewDate也是一个TDateTime类型的数据,所以
    FDate := NewDate 是相同数据类型的赋值,因此没问题。FDate: TDateTmie 这种定义,意味着定义一个TDateTime类型的变量,这个变量用来保存TDateTime类型的数据,FDate是变量的引用,TDateTime是变量类型,变量类型决定了变量所具有的能力,也就是他占多大内存,以什么方式去访问它等。
    一个TDateTime类型的变量,其占用内存的大小是8字节,在system单元中有TDateTime的定义
    type
      TDateTime = type Double
    也就是说,TDateTime本质上是一个Double类型的变量(注意,TDateTime不等同于Double)一个TDateTime类型的变量,其访问规则是:整数部分按照一定的规则保存年月日,小数部分按照一定的规则保存时分秒以及毫秒。单独访问一个TDateTime类型的变量中的 年 或者 月 或者 日 或者 时 分 秒 毫秒等,需要使用特定的函数,或者你知道其保存规则,也可以从中提取出来这些。变量以及变量的类型之间,简单比喻一下就是 人 和 你 之间的关系(你:人)其中,"人"是类型,"你" 是人类型的变量(当然了,说成是常量更贴切些,毕竟你只代表你,不可能把别人赋值给你,呵呵)。变量在实际的程序中,可能会占用他在定义的时候指定的空间大小(被分配内存的变量才占内存),变量被分配内存后,就可以保存某个值,这个值可以被改变(也就是给变量赋值,类似 FDate := NewDate)不知道我这么说你是否清楚,也不知道是否就是你想要问的问题的答案。但是不管怎么说,这些东西你应该清楚。如果你是因为不清楚上面我说的东西而发问,那么你还是看看书吧,程序设计什么的,越基础的越好,呵呵