时间: 2021-07-31 作者:daque
摘 要:不须要窜改源代码或在元件面板中备案派生元件就能为部 要害字:delphi delphi3000 本领 派生 接受&n 类 别:object pascal 有没有方法不须要窜改源代码或安置派生元件就能减少新的本领和属性? 减少新的本领和属性 --------------------------------- 偶尔咱们要为已有的元件减少新的本领和属性(或变换已有属性的可视性)。一个本领是窜改元件,但这表示着对它的package从新编写翻译,并且即使要其它人也编写翻译咱们的运用步调,就要把咱们的变化从新颁布,如许对方就很烦恼。偶尔咱们不许如许做,由于咱们大概没有源代码。如许的话。最佳对元件举行派生,并介入新的属性和本领。比方: type teditx = class(tedit) public function getforecolor: tcolor; procedure setforecolor(color: tcolor); property forecolor: tcolor read getforecolor write setforecolor; end; 那些本领不妨按下例的本领实行。 function teditx.getforecolor: tcolor; begin result := font.color; end; procedure teditx.setforecolor(color: tcolor); begin font.color := color; end; 强迫变换成新类 ------------------------ 咱们无需安置新元件或把它备案到元件面板中或在运用步调中代替已有的控件(如许会因小失大)。差异任何功夫只有咱们须要考察新属性和本领,咱们不妨把东西强迫变换(如edit1)成咱们的新类,比方: teditx(edit1).forecolor := clred; 或 teditx(edit1).setforecolor(clred); 劝告:惟有在新类中介入新的属性和静态本领时本领把它强迫变换成派生类,但不许减少新的字域和新的虚本领或动静本领,固然表面上你不妨重载已有的虚本领。其余,已有属性的看来性不妨变换,就象"考察湮没属性"文中解说的inplaceeditor例子。