`
cfeers
  • 浏览: 135401 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

如何让控件在编译时,自动添加所需的单元

阅读更多

在开发控件的时候,常会类似碰到这样的情况:我某个方法或事件的参数的类型,并不在Delphi默认添加的单元中,如果此时直接编译,必然会报错。但是让用户逐个把所需的单元添加回来,又显然太麻烦了,甚至用户也不知道该添加哪些单元。有没有办法让它自动化一点,在编译时,让控件自动给单元添加所需的单元呢?答案是肯定的。
 首先引用DesignEditors和DesignIntf单元。然后在控件单元,编写一个继承自TSelectionEditor的类,例如说叫TMyUnitSelector吧。


type
TMyUnitSelector = class(TSelectionEditor)
public
procedure RequiresUnits(Proc: TGetStrProc); override;   // 覆盖此方法来添加所需的单元
end;
procedure TMyUnitSelector.RequiresUnits(Proc: TGetStrProc);
begin
  // 例如说,我要在编译时,控件能够自动给当前单元添加上DB和DBClient这两个单元
Proc('DB');
  Proc('DBClient');
end;


 最后在注册控件的Register过程中,加上一句就可以啦(假设控件类名叫TMyEdit)。


procedure Register;
begin
  RegisterComponents('Samples', [TMyEdit]);
  RegisterSelectionEditor(TMyEdit, TMyUnitSelector); // 让控件和SelectionEditor关联
end;
分享到:
评论

相关推荐

    DotNetTextBox所见即所得编辑器控件 v3.3.1

    2) 修正控件在非根目录调用的时候在设计模式中会出现控件找不到所需皮肤的BUG。 3) 修改web.config里functionfolder和skin的全局设置属性,提高路径的设置易用性。 4) 去掉DOC目录及其包括的所有帮助文件,...

    OrangeUI 1.74 D10.1&D10;.1.2&D10;.2.2 包含安装文档和DEMO, XE10.2编译通过

    17.列表ListView支持在设计时添加Item并能即时预览到效果,目前自带和别的控件都做不到的。 18.OrangeUI的用户目前已经超过200名,用户开发的APP也不下百个,不少都上架到AppStore,腾讯应用宝等市场。 19.每个...

    vcg(验证码控件)

    功能介绍:  为网页编程人员提供能够自动生成验证码图像并验证网页访问者输入的Web控件,具体功能如下: 1. 提供简单易用的设计时所见即所得的可视化设置方式,并且支持设计时验证码图像效果与特效属性设置...

    AutoPlay_Menu_Builder6.0.1328注册版

     显示网格在设计窗口上绘制点阵以形成网格对齐控件到网格自动对齐控件到临近的网格同时编辑所有选定控件的属性当选定多个控件时,使用属性编辑器修改所有控件的属性,或者仅修改第一个控件的属性网格大小设置网格...

    AutoPlay_Menu_Builder5.5.0.1328注册版

     显示网格在设计窗口上绘制点阵以形成网格对齐控件到网格自动对齐控件到临近的网格同时编辑所有选定控件的属性当选定多个控件时,使用属性编辑器修改所有控件的属性,或者仅修改第一个控件的属性网格大小设置网格...

    Visual C++ 编程资源大全(源码 控件)

    这个类是你所需的,下载一个回去试试,分析分析一定会有收获(85KB)<END><br>16,flat_comb.zip 你有没有想过在你的应用程序中加入"浮动"的组合框,就象Microsoft Office中的那样?用这个类就能轻松搞定(21KB)<END>...

    TabBars---VC6 IDE增强插件

    可以在图(15)所示的设置窗口中选择自动添加的注释信息。 十四 自动生成工程编译日志 “TabBars”提供生成编译日志的功能,会在dsp文件所在目录生成一个同名的log文件,内部记载项目的编译次数和每次编译的情况...

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    这个新版本增加了大量的新功能,减少了编写常见应用程序所需的代码量。 ASP.NET 2.0新增了50多个新服务器控件,类的数量也翻了一倍,其他许多方面也有很大的变化。本书介绍了ASP.NET 2.0中的每个新增特性和功能...

    vfp6.0系统免费下载

    ActiveDoc 类是一个非可视类,它的功能更类似于一种应用程序对象,用于处理在浏览器中运行已有的 Visual FoxPro 表单所需的事件。因此,不需要转换表单。另外还加入了一些新的属性,如表单的 ScrollBars 和 TitleBar...

    vocx组件.rar

    传输所需带宽 8KB 以下。每秒10帧。 6. 语音控件 包含调整喇叭、麦克风音量,设置对方IP地址。 音频codec(支持静音检测、jetter buffer、环境噪音降噪等、静音检测、自动增益控制等) g.729 annex A 8kbps g...

    RadASM 中文汉化版

    2、添加了用于RadASM关联汇编文件的图标(安装时需选择文件关联组件),安装后你可在安装目录下的Icon目录内使用你喜欢的图标来定制关联文件的显示图标(替换图标时请把你需要替换的图标更名为原目录下的对应图标名称)...

    ExtAspNet_v2.3.2_dll

    -部分ExtAspNet控件的设计时支持(会在后续版本中逐步完善)。 -v0.2beta2版本中关于PersistChildren(true)的描述有误,这个是设计时属性,和运行时是否保持状态没有关系。 -修正CheckBox控件的CheckedChanged...

    Delphi2010资源,delphi2010快捷键

    CTRL+J (弹出DELPHI语句提示窗口,选择所需语句将自动完成一条语句)代码模板 CTRL+K+E(F) 标识符变小(大)写 CTRL+K+O(N) 选中的变小(大)写 CTRL+O+U 切换选择块的大小写 SHIFT+鼠标左键 先选中任一控件,...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    ExtAspNet v2.2.1 ExtAspNet是一组专业的Asp.net控件库,拥有原生的AJAX支持和丰富的UI效果, 目标是创建没有JavaScript,没有... -在Page_Load中设置了哪些需要在AJAX中更新的Asp.net控件会在回发时保持状态,可以...

    Microsoft Internet Explorer 5程序设计

    无论是简单地向Web页中添加帮助,还是开发功能完备的Windows应用程序,您都可以在书中找到您所需要的详细指导和范例代码。 利用DHTML、DHTML对象模型和脚本语言开发Web页。只需使用DHTML和脚本语言就能编写独立的...

    ASP.net入门教程

    该框架还会在页处理生命周期中自动维护页及该页上控件的状态。有关更多信息,请参见 ASP.NET 网页概述。 使用 ASP.NET 页和控件框架还可以将常用的 UI 功能封装成易于使用且可重用的控件。控件只需编写一次,即可...

    易语言程序免安装版下载

    编译生成安装软件时已支持打包静态编译后的程序,但需事先静态编译出该程序。 4. 升级加密狗驱动程序,增加了对 Windows 7, Vista 等操作系统的支持。 5. 操作系统界面功能支持库(shell.fne)中的“执行()”命令...

    MFC的程序框架剖析

    MFC提供了一些默认的标准窗口类,我们只需要选择所需的窗口类就行。然后,调用AfxEndDeferRegisterClass 函数来注册窗口类 13、CMainFrame::PreCreateWindow函数 MFC程序具有两个窗口(框架窗口和视类窗口),在框架...

    ABFrameWork Help.chm

    当某一功能模块有更新时,只需将此模块拷贝到任何一台客户端,点击客户端的“上传本地程序”按钮,客户端就会将新的本地程序升级到服务器中,其它客户端在重启或重新打开这个模块时就会先从服务器下载新版本后再运行...

    C#微软培训资料

    2.2 公用语言运行时环境与公用语言规范.13 2.3 开 发 工 具 .17 2.4 小 结 .19 第三章 编写第一个应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 ...

Global site tag (gtag.js) - Google Analytics