组件的数组属性怎么让它能下拉?

tomp 2006-05-29 05:39:07
我做的一个超弱智控件:
unit test;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ShellAPI;
type
TRMode=(A,B,C,D);
Tnum=1..3;
const
min=tnum(1);
max=tnum(3);
nor=tnum(2);
type
Ttry= class(TComponent)
private
Ctnum:Tnum;
Cmode:trmode;
procedure maketry(pvalue:Tnum);
procedure setmode(pValue: tRmode);
published
property num:Tnum read Ctnum write maketry;
property mode:tRmode read Cmode write setmode;
end;
procedure Register;
implementation
procedure Register;
begin
registercomponents('TOMP',[Ttry]);
end;
{ Ttry }
procedure Ttry.maketry(pvalue: Tnum);
begin
end;
procedure Ttry.setmode(pValue: tRmode);
begin
end;
end.

为什么属性mode可以让你选择‘ABCD’,而num不能象mode那样出现下拉菜单呢?
我看Tcolor类也是这样做的,大家帮帮忙吧。
...全文
107 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
netfly 2007-03-20
  • 打赏
  • 举报
回复
需要写一个属性编辑器, 你讲的TCOLOR也是这样,只不过它已经有了.
具体代码你可以看看Dsgnintf

TColorProperty = class(TIntegerProperty)
public
function GetAttributes: TPropertyAttributes; override;
function GetValue: string; override;
procedure GetValues(Proc: TGetStrProc); override;
procedure SetValue(const Value: string); override;

procedure ListMeasureWidth(const Value: string; ACanvas: TCanvas;
var AWidth: Integer); override;
procedure ListDrawValue(const Value: string; ACanvas: TCanvas;
const ARect: TRect; ASelected: Boolean); override;
procedure PropDrawValue(ACanvas: TCanvas; const ARect: TRect;
ASelected: Boolean); override;
end;
cnhxjtoa 2007-03-20
  • 打赏
  • 举报
回复

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧