用C++Builder 6编写VCL控件

原创 2003年03月27日 11:11:00

C++Builder 6编写VCL控件

warton 2002.12西安

   如今天使用Borland的开发工具的程序员越来越多了,许多程序员开始从VC++,BC++等工具转向C++Builder(以下简称BCB  Borland C++Builder) Delphi。要使用这两种开发工具,你就要用到VCL(Visual Component Library 可视化控件库)。关于编写VCLDelphi的书籍和资料相当多,但是要使用C++来写,资料就少得多了。

如何用C++语言来编写VCL控件是许多学习和使用BCB的程序员很关心的话题。如何编写呢?下面,我将编写VCL的思想和方法做一简单介绍,并给出一个简单的示例,以便让广大C++爱好者能熟悉和使用BCB来更好地编写程序。

首先,给出一个VCL的继承关系和结构图(TForm为例)

TObject

|

TPersistent

|

TComponentt

|

TControl

|

TWinControo

|

TScrollingWinControl

|

TCustomForm

|

TForm

从上面的图中可以看出:TObject 是所有派生类的父类,面TComponent是所有可视化组件的父类,TWinControl是所有窗口类组件的父类。只有从TWinControl继承的组件才具有 Handle属性。由于BCBDelphi使用相同的类库VCL,所以关于组件继承方面的知识,程序员可以参考Delphi的书籍。然而用C++编写VCL就与使用Pascal(Delphi 中使用Object Pascal)编写有相当大的区别了。

VCL有一个大概的了解之后,咱还需要明白一些事情:用C++写的VCL类还是一个C++类,但是它与标准的C++类有一些区别。其中最重要的是VCL组件不具有多继承性。从TForm的继承关系图中我们可以看出这一点。

下面我们先做一个示例,简单讲述一下使用BCB来编写VCL的步骤:

1.              建立一个组件包:Package。在C++BuilderFile菜单中选择New选项,随后在弹出的New Items窗口中Package图标,单击OK,如图 1-2所示。然后将Package保存为MyComponent.bpk

                           1-2 建立一个新的Package

2.       新建一个组件。单击Package窗口上的Add按钮,如图1-3所示。

1-3 Package 窗口

3.       在弹出的Add窗口中选择New Component页,如图1-4所示。

选择继承于TPanel,将Class Name命名为:UserControl,Palette Page改为User,随后确定。

1-4新建一个组件

经过上面的步骤,一个简单的Package就已经可以安装在BCB的控件面板上了。现在你只需要单击Package窗口的Compile按钮编译之后,单击Install按钮就可以将这个组件安装到一个标签为MyPalette上了。

BCB的控件面板上打开My标签,你将可以看到一个图标和Panel一样的图标,它就是TMyComponent类安装后的表现形式。到现在为止,一个简单的控件已经可以使用了。但是它没有什么特殊的功能,它只是简单地继承了TPanel控件,并且TMyComponent的所有属性和事件都是TPanel的,我并没有给它定义新的属性,方法和事件。也就是说,现在TMyCommponentTPanel基本上完全一样(从功能上讲)

控件写到这,你是不是已经觉得用BCB写控件很简单?不错,简单点几下鼠标就可以写一个控件,的确太简单了。但是这只是开始,困难的还在后面。

下面,分别从编写方法,属性,事件三方面来讲述编写一个完整的VCL控件的方法。

 

(未完待续)

 

C++ builder 自定义控件

在我们开发过程因为软件的需要 很多的系统控件满足不了我们的需求,这个时候就需要我们通过自定义的控件来完成任务 一 自定义控件: 1 新建一个包 File->New->Package 2 再包中点击右键...
  • u010442009
  • u010442009
  • 2014年12月25日 18:26
  • 1077

关于VCL的编写 (一) 怎样编写自己的VCL控件

怎样编写自己的VCL控件       用过Delphi的朋友们,大概对Delphi的最喜欢Delphi的不是他的强类型的pascal语法,而是强大的VCL控件,本人就是一位VCL控件的爱好者。    ...
  • dreamnan
  • dreamnan
  • 2004年09月15日 13:07
  • 2237

C++BUILDER 下开发语音源码,转载

XP上可以安装Speech SDK5.11.将sapi.dll导入到C++Builder:Component->Import Component->Import a Type Library->Add...
  • jyc1228
  • jyc1228
  • 2011年07月26日 12:03
  • 964

用C++Builder 建立数据库VCL使用经验

随着数据库的广泛应用,数据库编程已经成为程序设计中发展迅猛的一支。C++ Builder在数据库开发方面具有的强大功能是无可比拟的,你甚至可以不写一行程序就生成漂亮的数据库程序。  下面对C++Bui...
  • chensheng913
  • chensheng913
  • 2004年06月27日 16:41
  • 6159

发布 Victor 串口控件 1.5.0.6 VCL/FMX for C++ Builder 5 ~ 10.2 Tokyo 全系列版本

发布 Victor 串口控件 1.5.0.6 VCL/FMX for C++ Builder 5 ~ 10.2 Tokyo 全系列版本 http://www.cppfans.com/vcl/...
  • ybchen
  • ybchen
  • 2017年06月03日 16:06
  • 254

在Borland C++ Builder6中写DLL初步入门

在BORLAND C++ BUILDER6 写DLL初步实验. 虽然简单, 但是基本弄清了点眉目: 主要步骤: 1 写一个DLL   2 写一个APP来调用DLL   1. 写一个DLL FI...
  • gsnet
  • gsnet
  • 2013年02月26日 15:58
  • 870

安装和使用VCLSkin美肤插件

delphi7中安装vclskin美肤插件,delphi7开发的程序默认界面单一,使用vclskin后,只需要拖拽,就可以轻松美化程序的界面。 工具/原料 delphi7 v...
  • liujiayu2
  • liujiayu2
  • 2017年04月12日 16:22
  • 604

C++ Builder 带VCL 的DLL

建立DLL工程 编写DLL 文件的出口函数 带VCL的程序与普通程序不同之处为在调用函数进行FORM 定义,否则会出现,“Access Vio…”内存溢出报错。 操作 参考:http://docwi...
  • swanwei
  • swanwei
  • 2017年12月20日 17:55
  • 31

超实用CAD控件CAD VCL发布v12,支持Embarcadero®RAD Studio 10.2 Tokyo丨附下载

CAD VCL是一个高品质多功能且含源码的控件,它提供了几个强大的类用于为您的Delphi/C++Builder应用程序创建AutoCAD DXF, CGM, Hewlett-Packard PL...
  • Harriet666
  • Harriet666
  • 2017年06月16日 15:47
  • 829

C++ Builder高手进阶 (三)用BCB设计DBTreeView组件(小结)

 用BCB设计DBTreeView组件小结续二的最后一个函数,你是不是感到很纳闷:这个函数到底是用来干什么的呢?下面听我慢慢道来:我使用这个函数主要是用来实现定制属性编辑器。细心的读者一定还记得,我设...
  • nxyc_twz
  • nxyc_twz
  • 2003年01月29日 13:57
  • 1346
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用C++Builder 6编写VCL控件
举报原因:
原因补充:

(最多只允许输入30个字)