Criar função no form herdado, que já existe no FormPai

Delphi

12/11/2007

Olá amigos,

Utilizo um formulário de consulta padrão. Nele, não ligado a nenhum componente, tenho uma função chamada SelecDados, que a chamo em diferentes partes deste FormPai de Consultas.

Em uma consulta específica, usando como herança esse FormPai, quero que essa função faça alguma coisa diferente.

Como faço para que no novo form, eu possa alterar seu comportamento?

Nos eventos é tranquilo, pois sempre que quero alterar utilizo:
if DeterminadaSituacao then 
   FacaIsso
else
   inherited;


Mas em uma função que não está ligada a eventos, não descobri como fazer.

Agradeço a atenção.

Mario


Aldus

Aldus

Curtidas 0

Respostas

Mayron Cachina

Mayron Cachina

12/11/2007

vc pode reescrever o método...
exemplo, vc tem o método Soma() no form pai e vc quer um método que vc passe os parametros, vc pode fazer o Somar(a:integer,b:integer)
entendeu?


GOSTEI 0
Aldus

Aldus

12/11/2007

Olá Mayron,
Na verdada, a função genérica que está no formpai é um select com múltiplas opções, e quero no form novo, criar um select totalmente diferente do formpai, não dá pra passar parâmetro, até porque vou utilizar dados da aplicação atual, que não são vistos pelo formpai.

Obrigado


GOSTEI 0
Dbergkamps10

Dbergkamps10

12/11/2007

Ola,

não consegui entender o seu problema. Porém, tente ao adicionar o form, marcar a opção Copy, ao invés de inherited. Isso talvez pode ajudar, pq assim vc conseguira alterar o source.

Att
DAlton


GOSTEI 0
Rodc

Rodc

12/11/2007

Bem vindo à orientação à objetos!!!!

Declare a função que você quer sobrescrever com ´override´ que as chamadas feitas na função da filha não vão mais chamar a função da classe pai.

Declaração no pai:
    procedure Soma();

Declaração no filho:
   procedure Soma(); override;

Caso você queira chamar a função do pai, e não o filho, use o inherited.

Implementação no filho:
procedure Soma();
begin
    inherited;  // executa a função do pai que está sendo sobrescrita
    // funções referentes ao filho
end;



GOSTEI 0
Aldus

Aldus

12/11/2007

Bom dia, era isso mesmo que eu queria, funcionou bleza.

Obrigado pela atenção.


GOSTEI 0
POSTAR