Visual Graph图形开发技术入门(三) 点击:475 | 回复:0



utji

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:14帖 | 0回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2005年6月02日
发表于:2005-06-29 11:14:00
楼主
为了便于了解Visual Graph的工作原理,我们必须了解Delphi的面向对象开发技术。因为在某些方面,Visual Graph几乎完全吸收了Delphi的技术特点。 假定我们在Delphi中建立了下面的类TmyClass: type TmyClass = class private function GetText : string; procedure SetText( s : string ); public Id : Integer; published property Text : string read GetText write SetText; end; 这里,Id是一个公有变量,Text是一个属性,它有取值和赋值两个函数,当我们要读Text属性的值时,系统就去执行GetText函数,并返回其结果。而当我们对Text赋值的时候,系统就把这个值作为参数去执行SetText函数,达到某种目的。当我们对Id进行赋值的时候,除了改变这个值,不会产生任何其他结果,但是属性却不一样,我们通过写属性,可以实现任何需要的变化,这就是属性的强大之处。 其实,公有变量也是一种特殊的属性,它有自己缺省的读值、赋值方案,但是,和属性相比还是有一点很大的不同,通常,属性是可以存储的,公有变量则不可以。 在Visual Graph图形系统中,由于用户经常需要在图形上面添加自定义数据并且存储,这样我们就提出了“一类属性”的概念,内部结构和公有变量相同,但是却可以存储。不仅可以象其他属性那样显示在属性列表中,而且在文档中保存的格式也和其他属性没有任何差别。例如下面的一个矩形: <shape name="Rect1" myprop="1" pattern="1"/> pattern是矩形的固定属性,myprop是一类自定义属性,它们在存储和访问时没有任何差别。 Visual Graph的二类属性相当于Delphi的属性,它也需要定义一个取值函数和一个赋值函数。 与Delphi不同的地方在于,Visual Graph程序中的变量类型都不是显式的,而都是隐含的。比如下面的程序: private function GetText() return “Label” end function 将来读取Text属性的时候,系统将认为Text属性是字符串型。 private function GetText() return 123 end function 将来读取Text属性的时候,系统将认为Text属性是数字型 。 www.Visual-Graph.com


热门招聘
相关主题

官方公众号

智造工程师