inherited em function
o inherited não pode ser utilizado nas funções??
eu tinha em um form padrao um procedimento virtual que eu declarava nos herdados e colocava o override.
resolvi mudar para uma function, mas no código onde tinha inherited ocorre um erro.
pq não é permitido utilizar inherited nas function´s?
eu tinha em um form padrao um procedimento virtual que eu declarava nos herdados e colocava o override.
resolvi mudar para uma function, mas no código onde tinha inherited ocorre um erro.
pq não é permitido utilizar inherited nas function´s?
Raserafim
Curtidas 0
Respostas
Marco Salles
23/09/2006
acredito que sim Raserafim . desde que voce forneça explicitamente os paramentros
assim
assim
function Tfilho.MeuMetodo(p:Paramentrros): string;
begin
inherited MeuMetodo(p);
end;
GOSTEI 0
Cesar Romero
23/09/2006
o inherited clama o mesmo método da classe superior com os mesmos parâmetros, se você mudou para uma função, então você está fazendo um overload (polimorfismo), para chamar a procedure da classe superior vc deve passar a assinatura na chamada, como Marco Salles sugeriu.
[]s
[]s
GOSTEI 0
Raserafim
23/09/2006
humm, entendi.
valeu cesarliws, valeu marco salles,
depois vou fazer o teste
valeu cesarliws, valeu marco salles,
depois vou fazer o teste
GOSTEI 0
Michael
23/09/2006
Complementando a resposta do colega [b:eca2d6de8d]Marcos Salles[/b:eca2d6de8d], vc deve atribuir o valor de retorno de [b:eca2d6de8d]inherited [/b:eca2d6de8d]à variável [b:eca2d6de8d]Result [/b:eca2d6de8d](ou outra qualquer) na sua nova função:
[]´s
function TFilho.MeuMetodo(P: Parametro): string; begin Result := inherited MeuMetodo(P); // Faz alguma coisa com Result end;
[]´s
GOSTEI 0