用C++Builder 6编写VCL控件

用C++Builder 6编写VCL控件用C++Builder6编写VCL控件warton2002.12西安  如今天使用Borland的开发工具的程序员越来越多了,许多程序员开始从VC++,BC++等工具转向C++Builder(以下简称BCB 即BorlandC++Builder)和Delphi。要使用这两种开发工具,你就要用到VCL(VisualComponentLibrary可视化控件库)。关

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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用C++Builder 6编写VCL控件

                           1-2 建立一个新的Package

2.       新建一个组件。单击Package窗口上的Add按钮,如图1-3所示。用C++Builder 6编写VCL控件

1-3 Package 窗口

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

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

用C++Builder 6编写VCL控件1-4新建一个组件

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

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

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

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

 

(未完待续)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192833.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 编程小白的博客日记[通俗易懂]

    编程小白的博客日记[通俗易懂]编程小白的博客日记2018-11-9星期五晴最近放假,一天下来好像什么都没干,不过今天去看了《毒液》,还是非常好看的,最皮我毒液!今天在网上看到一篇文章,是关于在python中使用you-get来下载网上的视频和音乐之类的,先打开cmd安装you-get,之后再打开一个cmd,输入you-get-o地址,然后就能下载视频了,不过如果这个视频在原…

    2022年6月9日
    34
  • c语言和python区别,python和c语言的区别是什么

    c语言和python区别,python和c语言的区别是什么Python 可以说是目前最火的语言之一了 人工智能的兴起让 Python 一夜之间变得家喻户晓 Python 号称目前最最简单易学的语言 现在有不少高校开始将 Python 作为大一新生的入门语言 本萌新也刚开始接触 Python 发现 Python 与其他语言确实有很大的区别 Python 是由 C 语言实现的 因此想把 Python 与 C 语言做一个简单的比较 1 语言类型 Python 是一种基于解释器的语言 解释器会逐行

    2025年6月24日
    5
  • 航天信息金税盘接口 js 调用

    航天信息金税盘接口 js 调用航天信息金税盘接口js调用背景最近项目要求与单机版的金税盘接口进行对接,在这里简单记录一下自己的开发经验,希望可以帮助到有需要的人PS:接口使用js对接,仅支持ie浏览器。前置条件在进行开发时候需要有一些前置条件ie浏览器开启activeX控件设置–>Internet选项–>安全–>自定义级别把activeX…

    2022年4月30日
    74
  • 3D游戏建模真的很累吗?前景怎么样?需要什么基础?[通俗易懂]

    3D游戏建模真的很累吗?前景怎么样?需要什么基础?[通俗易懂]所有行业都是一样的,没有什么容易的,只不过这一行是偏向于技术的,一个有好的建模师月薪10k+是很常见的,这个需要有自己刻苦学习的成果。游戏建模前景在游戏模型行业,你基本不用担心找不到工作,因为游戏模型师人才缺口非常大。举个例子:游戏制作公司的人员配比大多数是这样的:比如100人的三维制作组,可能有60人在做模型贴图,10个人在K动画。只要你保证技能在手,一定是抢手的人才。在几年前游戏建模这个行业不仅仅缺人才,甚至连新手都非常稀缺,那个时候公司愿意招聘实习生,培养他们然后给公司干活,但是工资一定不

    2022年5月12日
    46
  • 2022.1 pycharm激活码-激活码分享

    (2022.1 pycharm激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月31日
    2.5K
  • php三个数从大到小排列_单分支if语句和双分支

    php三个数从大到小排列_单分支if语句和双分支<?php$a = rand(100,999);$b = rand(100,999);$c = rand(100,999);echo “a=”.”$a”.”<br>”;echo “b=”.”$b”.”<br>”;echo “c=”.”$c”.”<br>”;if(($a > $b ) && ($a > …

    2022年8月18日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号