POO
Preciso de um esclarecimento, pois tenho a seguinte interface:
IA: interface
//delclarações
end;
e duas classes que devem implementar esta interface:
TB = class(TInterfacedObject, IA)
.
.
.
end;
TC = class(TInterfacedObject, IA)
.
.
.
end;
Terei um objeto do tipo IA que poderá ser criado como sendo TB ou TC.
A minha dúvida é a seguinte: Como e onde eu declaro propriedades que sejam manipuladas por IA, TB e TC?
Prentendo usar um objeto do tipo IA da seguinte forma:
var
ObjetoIA: IA;
.
.
.
if algumacoisa then
ObjetoIA := TB.create
else
ObjetoIA := TC.create;
.
.
.
TB.propriedadeX := ´teste´;
.
.
.
showmessage(ObjetoIA.propriedadeX);
Desde já agradeço.
IA: interface
//delclarações
end;
e duas classes que devem implementar esta interface:
TB = class(TInterfacedObject, IA)
.
.
.
end;
TC = class(TInterfacedObject, IA)
.
.
.
end;
Terei um objeto do tipo IA que poderá ser criado como sendo TB ou TC.
A minha dúvida é a seguinte: Como e onde eu declaro propriedades que sejam manipuladas por IA, TB e TC?
Prentendo usar um objeto do tipo IA da seguinte forma:
var
ObjetoIA: IA;
.
.
.
if algumacoisa then
ObjetoIA := TB.create
else
ObjetoIA := TC.create;
.
.
.
TB.propriedadeX := ´teste´;
.
.
.
showmessage(ObjetoIA.propriedadeX);
Desde já agradeço.
Alex Maia
Curtidas 0
Respostas
Bystealth
30/10/2008
Vc pode criar property na interface, por exemplo:
As classes que implementarem esta interface deverão ter os métodos GetName e SetName e terão a propriedade Name.
IA = interface function GetName:string; procedure SetName(Value :string); property Name: string read GetName write SetName; end;
As classes que implementarem esta interface deverão ter os métodos GetName e SetName e terão a propriedade Name.
GOSTEI 0