比如这句话:
TNewHint(Application.Components[I]).Canvas.Font.Assign(FHintFont);
Assign起什么作用?

解决方案 »

  1.   

    assign(xxx),将xxx中与目标中所有相同的属性进行复制,就是将xxx中的所有属性(和目标共有的)复制到目标
      

  2.   

    这个语句使控件的Canvas的Font复制为FHintFont的值;对于对象,在Delphi中都是对象引用,相当于指针,如果你直接写
    Canvas.Font = FHintFont,那样的效果等于把Canvas中保存的指针指向FHintFont的对象;
    当然,前提是Canvas允许你对Font属性赋值,一般是不会运行的,因为如果上面那句执行了,原来的Font对象就没有机会释放了。另外,也可能在Font的Set方法中写下 FFont.Assign(Value);那么这两个语句就是等价的了Assign就是实现了对象的深拷贝,当然了拷贝的具体实现还是有对象自己提供的
      

  3.   

    TNewHint(Application.Components[I]).Canvas.Font.Assign(FHintFont);那么这一句是目标是什么??
    共同的属性又是什么?关注!!