自定义构件,能否实现这个功能?(100分)

  • 主题发起人 主题发起人 e518
  • 开始时间 开始时间
E

e518

Unregistered / Unconfirmed
GUEST, unregistred user!
自定义构件,能否实现这个功能?

内有两个属性 FValue1,FValue2,Fvalue1是一个枚举类型,如Fvalue1=(sint,sreal,sstr),
Fvalue2的类型由FValue1决定,如FVALUE1选择SINT时,FVALUE2只能接受整数的输入,
FVALUE1选择SREAL时,只能接受FLOAT型的输入。
 
这个容易呀,只需要判断一下就了。
 
如果是程序判断,我会,可是在构件中,当用户使用时,FVALUE1及FVALUE2是出现在属性
框中,FVALUE1最终显示是一下拉列表,而FVALUE2是一文本框,它用于接受用户的输入的
呀。
 
这个问题我觉得象函数及过程的重载(overload)方法,但这个是变量……
 
Fvalue2:variant
property Value2:Variant read GetValue2 write SetValue2;
read和write都通过函数,而不是直接通过FValue2,read、write的时候可以判断FValue1
SetValue1函数里面也可以修改FValue2的类型
 
type
TShapeList = (Rectangle, Triangle, Circle, Ellipse, Other);
TFigure = record
case TShapeList of
Rectangle: (Height, Width: Real);
Triangle: (Side1, Side2, Angle: Real);
Circle: (Radius: Real);
Ellipse, Other: ();
end;
 
不论什么,一概当字符串来处理,用的时候再转换
 
不管怎样实现,实质上都应该用pipi.的variant。
variant可以接受任何类型数据。

至于你想排除掉不符要求的数据,只要在FValue2的SetValue2里面判断一下,抛出一个
异常即可。
 

Similar threads

后退
顶部