一个关于Delphi控件编写的问题(100分)

  • 主题发起人 主题发起人 jjRzs
  • 开始时间 开始时间
J

jjRzs

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi中安装自己写的控件时,在目标窗体中都只引入一个控件单元,但我在事件中用到了常量单元中的类型,因此我希望在拖出控件时也自动在目标窗体中引入常量单元,请问高手该如何做?
 
我记得如果是在事件里有的,应该是会自动带出来的吧
 
应该是自动添加吧.......我没还没遇到过不自动添加的情况.....-_-!
 
你自己重新定义个不就行了
 
为什么要弄成常量,属性可以吗
 
不自动引入 程序编译也是正常的
 
不引入单元,程序编译错误,提示类型没有定义。手动添加引入是有用的,但我想让它自动引入,这样他人使用时就不会莫名其妙的出现类型没定义了。
 
用属性吧property
 
除非定義在自己單元,要麼只有手工引用了,delphi就是這麼處理的.
 
当控件生成后,再从DELPHI里设置就可以。
在下次加入控件时单元就自动引入了。
 
请问怎么设置?
 
定义常量也可以。
 
请问dephi自定义控件如何打包(制作成安装包)啊?
 
楼上的大多没听懂,呵呵!你的这个问题好像没什么办法,fastrepot遇到这种问题也是在那个单元里自定义了一个没用的控件,加载这个控件到窗体,才得以自动添加此单元.其实delphi本身也有很多单元不会自己加载,只不过因为有帮助,我们通过帮助知道应该引用那个单元而已.若你的控件自己使用自己主义就是了,别人使用给个好的帮助说明也是一样,反正给别人使用你总是要给别人帮助说明的了.
 
这个问题只有一个办法解决:
unit unit1;
tslControl=class(Tcontrol);
<以下是常数列表>

unit unit2;
tMyClass=class(tslControl)
<以下是你控件的申明>
————————————————————————————————

这样,你把TMyClass放在form上时,两个unit就都会加到form里面去了。
 
对!楼上的方法可行...
不过顺便说一句,在
unit unit1;
tslControl=class(Tcontrol);
<以下是常数列表>
中,tslControl=class(Tcontrol);代码段似乎可以不要的...
 
谢谢大家的参与,还有一个问题也顺便提一下:
我想在自己开发的控件的属性设置中给用户提供特定属性类型的“属性编辑器”,请问该如何做?(就像Delphi菜单控件中的菜单编辑器一样可以让用户输入特定属性信息。)
 
关于属性编辑器的文章我也找到很多,讲解基本一致,但如果我想使用Delphi已有的控件的“属性编辑器”却没有文章有讲到;比如我想在自己的组件中使用TMenuItem类型属性,使我的组件能像TMainMenu组件一样编辑其Items属性,我用的是Delphi7,里面没有找到关于注册TMenuItem类型属性编辑器的代码。但我找到两个包vcldesigner70.bpl和vcldesigner.dcp,发现里面有TMenuItemProperty和TMenuEditor这两个类的声明,于是我在自己的包中引入了vcldesigner.dcp包然后试图重新注册这个类到我的组件类属性或者派生新类注册,结果都失败了,提示“访问包vcldesigner70.bpl时,某某地址不可读(我的是英文版,翻译的可能不太准确)”不知为何?
 
后退
顶部