说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何简单地把几个标准组件的组合封装成一个可以安装的新组件?

编辑:说三道四文库 发布时间:2017-11-23 03:35
HTML文档下载 WORD文档下载 PDF文档下载
我看到参考书都是在CPP文件里写代码,创建子组件,用代码安排布局。有没有象PB那样的对象画板,可以显示地安排子组件的布局和初始属性?我想要运行时生成TabSheet,每个TabSheet上都是几个Edit,Split,Statusbar的组合。
不要告诉我用“Create Componet Template”。
自然是采用类的聚合
比如:
//---------------------------------------------------------------------------
#ifndef PictureSelectorH
#define PictureSelectorH
//---------------------------------------------------------------------------
#include <SysUtils.hpp>
#include <Controls.hpp>
#include <Classes.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
const String Strings[] = {
  "handshak.bmp",
  "factory.bmp",
  "chemical.bmp",
  "shipping.bmp",
  "finance.bmp"
};

class PACKAGE TUnlPictureSelector : public TWinControl
{
private:
  TComboBox* FComboBox;
  TImage* FImage;
protected:
  void __fastcall ComboBoxClick(TObject* Sender);
  virtual void __fastcall CreateWnd();
public:
  __fastcall TUnlPictureSelector(TComponent* Owner);
};
//---------------------------------------------------------------------------
#endif


//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "PictureSelector.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
//

static inline void ValidCtrCheck(TUnlPictureSelector *)
{
  new TUnlPictureSelector(NULL);
}
//---------------------------------------------------------------------------
__fastcall TUnlPictureSelector::TUnlPictureSelector(TComponent* Owner)
  : TWinControl(Owner)
{
  Width = 240;
  Height = 205;
  FComboBox = new TComboBox(this);
  FComboBox->Left = 0;
  FComboBox->Top = 0;
  FComboBox->Width = 150;
  FComboBox->Style = csDropDownList;
  FComboBox->OnClick = ComboBoxClick;
  FComboBox->Parent = this;
  FImage = new TImage(this);
  FImage->Left = 0;
  FImage->Top = FComboBox->Height;
  FImage->Width = Width;
  FImage->Height = Height - FComboBox->Height;
  FImage->Parent = this;
}
//---------------------------------------------------------------------------
void __fastcall TUnlPictureSelector::CreateWnd()
{
  TWinControl::CreateWnd();
  if (!ComponentState.Contains(csDesigning)) {
    for (int i=0;i<6;i++)
      FComboBox->Items->Add(Strings[i]);
    FComboBox->ItemIndex = 0;
    ComboBoxClick(0);
  }
}

void __fastcall TUnlPictureSelector::ComboBoxClick(TObject* Sender)
{
  int index = FComboBox->Items->IndexOf(FComboBox->Text);
  FImage->Picture->LoadFromFile(Strings[index]);
}
//---------------------------------------------------------------------------


其实我的意思是可视化安排布局,比如里面封装一个StatusBar,用属性编辑器可以方便地分割Panel,不用程序一条一条写。不过看来没这摸好的事。你写的方法我会,只是,不知“类的聚合”是什么意思?
就是组合类的意思
应用数据分析新标准:Flurry增应用崩溃分析功能 Twitter被黑客入侵,25万用户信息可能被窃 16亿美元超级计算机项目助力解读人脑 卡巴斯基发现新型Android恶意软件 可入侵Windows 谷歌发布基于B-Tree的C++模板库 开源产品系列:高性能Web框架Zend Framework LiFi是否会取代WiFi? 1月浏览器排行:IE10突破1% Chrome连续3月下滑 Wine让Android也能运行Windows软件 Cory Ondrejka,是这位工程师拯救了Facebook! 三星争夺企业市场的三大痛点与对策 Xcode更新至4.6 支持iOS 6.1 工程师揭秘:NVIDIA如何锻造Android掌机 VMware掌控Puppet 老用户会被锁定吗? 试图领导创新:三星创新中心11亿美元建基金 基于WebRTC Chrome与Firefox实现视频通话 将OpenStack私有云部署到Hadoop MapReduce环境 Web设计师必备的10款最佳排版工具 诺基亚CEO谈平板计划 Android为候选系统 244亿美元!戴尔公司正式完成私有化 对抗苹果 Facebook或推Find My Friends应用 前谷歌工程团队负责人:如何打造一个完美的产品 好消息!Google Drive可存储共享JavaScript等网站 Android Rivers:用Kotlin语言写出的新闻应用 辞旧迎新 老牌游戏开发商的移动进化之路 iSuppli:硬盘市场持续萎缩 大数据应用成重要市场 全球最大校园Hackathon:失败后,你能学到什么? 走进Evasi0n,越狱黑客如何拿到iOS权限 提升服务扩展性和冗余的八个编码方向 分析数据预测未来?数据挖掘绝不是大公司的专利 揭秘LinkedIn数据科学家如何工作 请解释一下控件的工作原理,ActiveX控件和*.ocx文件是一回事吗?如果我有一个VB调用相关控件的系统,我要转成ASP的B/S结构,应该怎么做? 关于bho的问题 ,, at指令的问题,高手看过来! 对侯捷所译C++ Primer题解中,第208页10.5(c)题答案分析的疑问?(函数模板) Windows 2000下找不到samba服务器,高手指点! AD和額外域控制器的角色轉換 两个问题? 请教大家如何从另外一个程序往一个dx的游戏上写字?? asp程序取sql存储过程返回参数的问题 初学c++,请教 加权平均分 如何快速的判断文件是否存在? 问一个软件!!! 98的提示符下加载哪个命令可以出现中文? 关于C的疑惑 asp程序取sql存储过程返回参数的问题 精品:数据库-表字段类型的写法!! 谁知道一般网站的在线人数统计功能是如何实现的? 如何处理float型的长度问题? 请大家帮忙这个存储过程该怎样设计?呵呵,不好意思!第一次发贴发错了^_^ 在线请教,找错 请高手门帮我解决一个问题! 请问如何把一个form的关闭按钮屏蔽掉而只留下标题栏? 高手::::请教一个简单的问题???? 还是.net连oracle的问题 急救!VB访问Linux服务器上的Oracle8i的问题 如何在没有安装.net的机子上运行C#程序阿?? 在模板实参推演中,数组的长度是如何得知的呢??? asp作提交表单 自动发到指定邮箱里。 急哭了!在线等待!!!!!! 为何我的sql服务管理器停止不了,一直为“正在停止”,而一旦停止了却又启动不起来? 怎样调用IE的一些功能??? 求教,急! 初学asp,问个简单的问题吧:怎么样知道客户端的时间? strus的配置和使用,我用jdevelop, ADO+MSSQL对DataSet中Record定位 欢迎讨论,关于水晶报表实现:折线图,或者柱形图问题 在线求助:如何读取B端操作系统信息和浏览器信息? 系統用戶使用權限的設計 combox 问题 急寻MAYA编程高手 服务器端有一个很大的XML(10M)文件,怎样从client端读取? CMainFrame 的窗口句柄怎么得到 从数据库读出文本如何保持原来格式 ? 在winform中,请教关于combobox的一个小问题 Stream Write error??????????? 存储过程的and和or连用 谁有新浪或网易等的短信网关接口? 请问如何在水晶报表里面定义一个全局变量?谢谢 如何配置SMTP服务 使用触发器时想到的 为什么要实现双接口 古代弓箭的故事今天就要,不要三国 谁能给我发一篇题目叫《月光下的遐想》的作文? 什么心所向,这是一个成语 所向?成语成语所向? 色心所向是由哪个成语改编的 东鳞X爪,X心所向,朝令X改,中的字组成成语或词组 已知a=1999x+2000,b=1999x+2001,c=1999x+2002.求多项式a平方+b平方+c平方-ab-bc-ac的值. 奥本海姆书上40页原话:“对于线性系统来说,叠加性质的一个直接结果就是:在全部时间为零的输入,其输出应恒为零,即零输入产生零输出.”请问怎么理解啊?线性系统一定是零输入产生零输 英语翻译从起飞的一刻起,我最大的期望就是给游客们带来最优质的服务,用我真诚的笑容带给游客不一样的感受,我会努力的作一名出色的空乘员,在美丽的天空中留下最美好的回忆. 《背影》的作者是—— ,他是------、------、-------、------.主要作品诗文集《 》,散文集《 》《 》等.《我儿子一家》的作者是-----,女诗人,原名-------.作品诗集《 》,《 》. 什么是线性表示 黎巴嫩商人因内线交易获1400万欧元奥斯卡影后赞与英王子跳舞“比亲热还爽韩国双胞胎整形“扭转命运” 戽斗脸变黎巴嫩商人因内线交易获1400万欧元法国征收75%富人税致LV老板移民 日议员提议给安倍出席国会次数设上限美媒:美情报机构曾针对俄中进行情报收报告称加拿大恐无法完成2020年减碳日本欲以“和食”申遗为契机吸引更多外瑞金创建“共和国摇篮”5A级景区 投马英九:过去5年实践九二共识内涵 未一唱一做一桌一椅美到极致“粉碎性”倒塌敲响房产质量警钟吃是一种自大哭有什么用清明节多景区人满为患 众生囧相郭台铭愿赴议场探望反服贸学生 不想给浙江一男子在工地坠下被钢筋刺穿美军三体科幻濒海舰内部曝光 无人直升女司机被乘客猛揪头发 忍痛流泪路边停美强硬制裁遭俄嘲笑 终止空间站合作对李宗伟:今年若不受伤 才会坚持战里约
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘