DELPHI 的 {$M +} 和{$M -}  
官方Delphi 学习QQ群: 682628230(三千人)
频道

DELPHI 的 {$M +} 和{$M -}


DELPHI 的 {$M +} 和{$M -}
在TPersistent的声明中多了M编译开关,当{$M +} 与{$TYPEINFO ON} 作用是一样的, 而{$M -} 与{$TYPEINFO OFF}
相同。当一个类在{$M +} 和{$M -}间声明时,程序编译器将为类生成与RTTI(Runtime Type Information)相关的代码来完成
类的published的属性,方法和事件的存储工作。并且该类子类的published属性,方法和事件也具有存取特性。如果一个类
或祖先类都没有在{$M +} 和{$M -}间声明时,则该类不能有published的实行,事件和方法。

例如 System.Classes 中的

{$M+}

 TPersistent = class(TObject)
 private
   procedure AssignError(Source: TPersistent);
 protected
   procedure AssignTo(Dest: TPersistent); virtual;
   procedure DefineProperties(Filer: TFiler); virtual;
   function GetOwner: TPersistent; dynamic;
 public
   destructor Destroy; override;
   procedure Assign(Source: TPersistent); virtual;
   function GetNamePath: string; dynamic;
 end;

{$M-}


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.055168867111206 seconds