社区
VCL组件使用和开发
帖子详情
自制组件中,如何限制对象属性在设计期时下拉列表里的显示?
Libran
2003-06-22 01:14:57
例如,编辑TPageControl的ActivePage属性时,打开下拉列表,里面只会显示所有属于当前PageControl对象的TabSheet列表;而对于其它PageControl里的TabSheet,虽然同样是TTabSheet类,就不会显示出来。
请教该怎么实现?
...全文
149
5
打赏
收藏
自制组件中,如何限制对象属性在设计期时下拉列表里的显示?
例如,编辑TPageControl的ActivePage属性时,打开下拉列表,里面只会显示所有属于当前PageControl对象的TabSheet列表;而对于其它PageControl里的TabSheet,虽然同样是TTabSheet类,就不会显示出来。 请教该怎么实现?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
runnerrunning
2003-06-23
打赏
举报
回复
up
kingcaiyao
2003-06-22
打赏
举报
回复
上面写的是类似TDataField一样的属性,该属性用于获得所有字段名称。
kingcaiyao
2003-06-22
打赏
举报
回复
属性编辑器肯定是要写的,不过先要判断一下各个TabSheet与PageControl的从属关系,也就是要用到Parent属性。写属性编辑器很简单,以什么样的属性编辑器类作为父类进行继承,这要看你的要求(你的问题中不一定要用TEnumPropertyEditor类)。在头文件定义一个属性编辑器类,在.cpp文件对它进行注册,一般属性编辑器的实现方法都是内联函数,比如说:
class TDataOfFieldProperty:public TStringProperty
{
public:
TPropertyAttributes __fastcall GetAttributes()
{
return TPropertyAttributes()<<paValueList;
}
void __fastcall GetValues(TGetStrProc Proc)
{
Proc("None");
TStrings *pList=new TStringList();;
TKingKing *pDCBX=dynamic_cast<TKingKing*>(GetComponent(0));
if(pDCBX)
{
if(pDCBX->DataSource)
{
TDataSet *pDataSet=pDCBX->DataSource->DataSet;
if(pDataSet)
{
pDataSet->GetFieldNames(pList);
for(int i=0;i<pList->Count;i++)
{
Proc(pList->Strings[i]);
}
}
}
}
delete pList;
}
};
.cpp文件中对其进行注册:
namespace Tkingking
{
.............................................
RegisterPropertyEditor(AnsiStringInfo(),__classid(TKingKing),"DataField",__classid(TDataOfFieldProperty));
}
Siney
2003-06-22
打赏
举报
回复
你需要从在特性编辑器的基类,根据你的要求你应该继承自TEnumProperty,实现其中的几个方法:GetAttributes,GetValue,SetValue等,然后注册特性编辑器:
RegisterPropertyEditor
extern PACKAGE void __fastcall RegisterPropertyEditor(Typinfo::
PTypeInfo PropertyType, System::TMetaClass* ComponentClass, const
AnsiString PropertyName, System::TMetaClass* EditorClass);
具体请参看help topic,和一些元件设计的书籍。
Lewolf
2003-06-22
打赏
举报
回复
编写属性编辑器,属性编辑器肯定是在当前的PageControl中查找TabSheet的,TabSheet的Parent就是容纳其的PageControl,也就是在PageControl中根据Child中的对象来决定现实的内容,这个你要看看属性编辑器部分的内容,帮助上有介绍,C++ Builder中也有例子。
反思_Android 列表分页
组件
Paging的
设计
与实现:系统概述
刷新数据源流程Paging分页
组件
的
设计
中
,DataSource是一个非常重要的模块。顾名思义,
中
的Key对应数据加载的条件,Value对应数据集的实际类型, 针对不同场景,Paging的
设计
者提供了三种不同类型的DataSource接下来...
C#基础教程
l 版本支持:系统
中
的
组件
或动态联接库可能要升级,由于这些
组件
或动态联接库都要在注册表
中
注册,由此可能带来一系列问题,例如,安装新程序时自动安装新
组件
替换旧
组件
,有可能使某些必须使用旧
组件
才可以运行的...
TowardsDataScience 博客
中
文翻译 2022(四百零五)
回归预测一个连续的数值变量。一升汽油的价格道琼斯工业指数的价值...*分类变量就像一个
下拉列表
框,包含可供选择的值列表。这些值可以是数字或文本,尽管它们通常以文本开头。一周
中
的几天衬衫尺码(小号、
中
号、大号)
delphi控件使用
重要
属性
items.* 举例,界面
设计
如下左,执行结果如下右: 代码为 procedure TForm1.Button1Click(Sender: TObject); begin edit1.Text := listbox1.Items.CommaText; edit2.Tex
VCL组件使用和开发
604
社区成员
13,457
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章