我有一个想法,希望大家帮助实现:
类1 : Classe
.......
End ;{类1}
类2 : Classe
.......
End ;{类2} 主类 : Classe
参量1: Boolean ;
参量2: Integer ;
参量3: If 参量1 Then 类1 Else 类2 ;
End ; {主类}
=======================
参量3能否实现这样的功能,或者是类似功能。希望能达到这样的目的:
XXX.主类.参量3 <---- 是"类1"
YYY.主类.参量3 <---- 是"类2"谢谢大家
类1 : Classe
.......
End ;{类1}
类2 : Classe
.......
End ;{类2} 主类 : Classe
参量1: Boolean ;
参量2: Integer ;
参量3: If 参量1 Then 类1 Else 类2 ;
End ; {主类}
=======================
参量3能否实现这样的功能,或者是类似功能。希望能达到这样的目的:
XXX.主类.参量3 <---- 是"类1"
YYY.主类.参量3 <---- 是"类2"谢谢大家
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; TClass1 = class
end; TClass2 = class
end; TClass3 = class
private
FIsClass1: Boolean;
FMyClass: TClass;
procedure SetMyClass(const Value: TClass);
function GetMyClass(): TClass;
public
property MyClass: TClass read GetMyClass write SetMyClass; //用属性来取
constructor Create(aIsClass1: Boolean);
end;var
Form1: TForm1;implementation{$R *.dfm}{ TClass1 }constructor TClass3.Create(aIsClass1: Boolean);
begin
FIsClass1 := aIsClass1;
end;function TClass3.GetMyClass: TClass;
begin
if FIsClass1 then
Result := TClass1
else
Result := TClass2;
end;procedure TClass3.SetMyClass(const Value: TClass);
begin
FMyClass := Value;
end;procedure TForm1.Button1Click(Sender: TObject);
var
tmpObj1, tmpObj2: TClass3;
begin
tmpObj1 := TClass3.Create(True);
ShowMessage(tmpObj1.MyClass.ClassName); //tmpObj1.MyClass 就是你想要的类.
tmpObj1.Free; tmpObj1 := TClass3.Create(False);
ShowMessage(tmpObj1.MyClass.ClassName); //tmpObj1.MyClass 就是你想要的类.
tmpObj1.Free;
end;
TClassBase = class
end; TClass1 = class(TClassBase)
end; TClass2 = class(TClassBase)
end;procedure TForm1.Button1Click(Sender: TObject);
var
base: TClassBase;
begin
base := TClass1.Create;
ShowMessage(base.ClassName); // Base.ClassType 就是你想要的类.
base.Free; base := TClass2.Create;
ShowMessage(base.ClassName); // Base.ClassType 就是你想要的类.
base.Free;
end;