一个相当难的问题:如何定义"可变类"(100分)

  • 主题发起人 主题发起人 YFLK
  • 开始时间 开始时间
Y

YFLK

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个想法,希望大家帮助实现:
类1 : Classe
.......
End ;{类1}
类2 : Classe
.......
End ;{类2}

主类 : Classe
参量1: Boolean ;
参量2: Integer ;
参量3: If 参量1 Then 类1 Else 类2 ;
End
{主类}
=======================
参量3能否实现这样的功能,或者是类似功能。
谢谢大家
 
主类 : Classe
参量1: Boolean ;
参量2: Integer ;
property3: 参量3 read getp3 write setp3
End
{主类}
function getp3()
begin
If 参量1 Then 类1 Else 类2 ;
end;
 
楼主请参考设计模式中的State 状态模式
 
一楼的方法可以考虑,但我想知道这种定义方式可否用于VCL控件中?
我太愚笨二楼说的设计模式我没学过,能否简单介绍一下,或者是电子书等
 
类1 : Classe
.......
End ;{类1}
类2 : Classe
.......
End ;{类2}

主类 : Classe
参量1: Boolean ;
参量2: Integer ;
参量3: Integer;
End
{主类}
procedure a;
begin
if 条件1 THEN
参量3 = 1
 ELSE 参量3=2;
end;
再根据参量3的状态值来建类。
这个就是state模式吧。。。

其实我感觉可以将那个变类定为TObject,反正所有的都可以上传给它。
到用的时候做下判断,
if 参量1 then
类1(Obj).Method....
else 类2(Obj).Method...;
 
是这样?!
“procedure a
....”并不是类,而且这样做在一个控件中好象也不行。
我就想让一个控件的属性根据另一个属性值而取不同的选择参数。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部