Fórum Criação de componentes #256195

27/10/2004

0

:D Olá galerinha
Bem estou tentando criar um componente esdado da classe TClientDataSet e nele estava tentando fazer uma modificação no evento beforeopen.

protected
{ Protected declarations }
procedure BeforeOpen(DataSet: TDataSet);override;

fiz esta declaração programei todo o evento quando fui compilar me foi exibida a mensagem.
Methodo ´BeforeOpen´ not found in Base Class.
Bem eu sei que este metodo é nativo da classe TDataSet mas isso siguinifica que eu não poderia modifica-lo deste meu componente ... para fazer isto o que eu teria de fazer?
:?: Como capturar o metodo before open num clientdataset?


Mitsalito

Mitsalito

Responder

Posts

27/10/2004

Afarias

BeforeOpen não é um Método mas um Evento.

Neste caso vc pode sobrescrever o método protegido DoBeforeOpen (responsável pela chamada do Evento) q originalmente nada mas é que::

procedure TDataSet.DoBeforeOpen;
begin
  if Assigned(FBeforeOpen) then FBeforeOpen(Self);
end;


desta feita vc pode fazer::

protected 
   procedure DoBeforeOpen;override; 
{...}


e então re-implementar o método como desejar::

procedure TClasseTal.DoBeforeOpen;
begin
  {...}
  inherited;
  {...}
end;




T+


Responder

Gostei + 0

27/10/2004

Alexandresbo2

Amigo naum testei....mas Pelo que olhei na unit Db vc tem que declarar Como DoBeforeOpen e naum BeforeOpen


Responder

Gostei + 0

27/10/2004

Mitsalito

Muito Obrigado pelas duas respostas vcs dois são genios ... não só me ensinaram a fazer, como me ensinaram a da proxima onde devo procurar.
obrigadão.
Valeulll..... :P


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar