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

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

编辑:说三道四文库 发布时间:2017-07-28 07:10
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,不用程序一条一条写。不过看来没这摸好的事。你写的方法我会,只是,不知“类的聚合”是什么意思?
就是组合类的意思
VB复制Excel表到另外一个Excel中 Java实现生成网站快照缩略图片 php实现生成网站快照缩略图片 C#实现生成网站快照缩略图片 VB比较两个Excel表格的内容 VB实现Excel按列或行排序 VB删除EXCEL表格指定行 用vb.net写的验证码识别代码 VB删除EXCEL表格指定列 Oracle数据库Windows 2003环境自动备份批处理 VB通过ADODB连接EXCEL表格文件读取数据 使用VBScript卸载软件 Discuz X2用户注册过程SQL Android手机参数表 用jQuery改变图片(image src) 用std::atomic實現簡單的讀寫鎖 ChinaPay网上支付网关.NET开发 VOB生成IFO文件用nero刻录DVD详解 15款开源Android游戏引擎(安卓免费游戏引擎) 将MVC ASPX转换到Razor视图 Word设置目录简明教程 asp.net mvc页面javascript代码中如何使用razor Discuz X论坛数据表结构:用户数据表pre_common_member boost在windows平台下自带超强 IOCP 的ASIO Boost下载和编译安装简明指引 Windows和Linux环境中Boost下载安装编译配置使用指南 Android开发技巧:Android常用类库说明 Android开发技巧:Android 文件系统 Android开发技巧:Android应用程序架构 ASP.NET MVC Razor 输出没有编码的HTML字符串 ASP.NET MVC 3 Razor 在head里包含js文件 熟悉memfile的朋友请进 php调VB程序?着急! vb 访问另一台sql server 的问题? 谁有flashmx,dreamwerver mx,firework mx 的注册吗。有100分 很急的问题? 断点无效?? 想给自己买一个数码相机做新年礼物!但对选中的品牌不是很熟!请师哥师姐给点建议!!! 如何对视图连接的表进行数据插入?? 谁会替用户负责?用“小灵通”还是小心为妙 做过考勤管理的请进………… 简单问题,麻烦各位高手!!! 请问delphi5中有没有delphi6中的object treeview功能 哪有关于网络安全方面的资料? 三层MIS中的中间件怎么用COM或EJB来实现. 请问哪里的个人主页控件支持JSP? 再次请教一个有关DataGrid不能显示而令人头晕的问题(在线等待)! 做过考勤管理的请进………… 在ASP.NET中怎样实现语句加入引用? 请问下面这个问题应该怎么解决最好?关于处理网页中的数据的 使用VB6自带的Sample中自动化示例应用程序时的一个问题 那位高手知道怎样实现曲线分析图... 一个简单SESSION 问题,请解决。在线等,没分了不好意思. 为什么在asp中使用ADODb的Connection对象的方法时不能使用事务处理 ====寂寞啊!谁帮介绍一个女孩啊(15-18)岁的!!万分感谢!==== 高分请教大虾,关于搜索的问题?。。。。 100分请教一个简单的问题?? runtime在JAVA中解释应该是什么意思? SCO上的ORACLE7建库?SOS 大家来看看,超级Bug?用DBExpress连接MSSQL,执行存储不能返回值,谁能解决,200分 高分请教,谢谢了/。。。。 我在程序中使用了MSXML,可是在干净的win98下无法运行,请问需要安装什么? 救急: SQL server的数据恢复 关于分辨率的问题。 在vb.net中能做dll吗?请大家可参与 下面的函数怎样声明? 能直接用alter语句修改某个字段的类型和长度吗? 如何做pci 插卡? 关于datalist绑定问题 我的前途???欢迎大家发表意见! 急求 如何测试asp ■■■■为防止下一场水园恶战,水源马甲联盟再次公开马甲id 密码■■■■ 自定义对象的实例怎么在ViewState里保存 把資料漚出成txt,doc,xls格式的文件,在漚出過程中,但是漚出成xls(Office2000)正常,officexp就出現亂碼? citrix数据引擎是什么? 刚刚我和她分手了 在數據窗口中怎樣打印jpg文件 为什么我的pws安装时提示需要winsock32?? 如何在grid表格或临时表里实现累加 请教一个四舍五入的问题? 各位老鳥,請問怎樣用ADO控件連接到一個Excel文件 oracle8i存储过程怎么写? 俄罗斯银行或免去部分远东地区洪灾灾民普京关注远东洪灾赔偿事宜 银行或免去美国加州大火持续肆虐 政府出动无人机美议员称奥巴马仍在权衡对叙化武事件应日本企业慰劳加班员工 聘15位女经理俄媒称至少12个北约成员国拒参与对叙美国将于30日公布叙化武事件销密版情美国11岁神童上大学 5岁以做微积分西方盟友纷纷准备对叙动武 默克尔“处俄副外长与中国驻俄大使就叙利亚局势进新西兰窃贼扮“乳牛”超市偷牛排 警方中国针灸方法治疗巴西鳄鱼驼背问题 疗联合国叙化武调查即将结束 潘基文缩短美国多位军官质疑美攻叙计划 担心产生日媒指日本各电视台无礼行为或致东京申德媒推测联合国调查小组离叙后 叙或遭俄媒称至少12个北约成员国拒参与对叙刀尖上的芭蕾舞 西班牙舞者穿菜刀鞋跳美国加州大火持续肆虐 政府出动无人机美议员称奥巴马仍在权衡对叙化武事件应叙利亚反对派称政府军已将导弹转至安全合肥劳动维权十大案例今发布合肥林业园林局“换将”小伙子,你这是要闹哪样?他,用一辈子践行爱的箴言4万元货款迟迟收不到不文明的“任性”游客少了数说五一“盘活”一段优美的休闲时光市人大代表将向原选举单位述职驻安徽省卫计委纪检组通报五起违法违纪中科院赴尼泊尔专家组解译多处山体滑坡海南开展西、中沙群岛综合执法监测科考两名境外逃犯被大连警方劝返 累计诈骗香港建造业研究应用科技以减省人手正确理解如期全面建成小康社会伊利方舟首次扬帆海外 跨国交流儿童安原标题:阿拉伯航空客机受爆炸警告 迫中国网友问印度总理:“Are you太行山“绝壁公路”遭遇大堵车新西兰南岛发生6.0级地震 无人伤亡留学生亲历巴尔的摩“骚乱”
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘