Sobreposição de evento do ClientDataSet

Delphi

18/06/2004

Estou criando um componente descendendo do TClientDataSet para que no evento AfterPost ele execute uma tarefa pre-determinada, para isso fiz o seguinte:

type
TMeuClientDataSet = class(TClientDataSet)
private
{ Private declarations }
FOnAfterPost: TDataSetNotifyEvent;
procedure AfterPost(DataSet: TDataSet);
protected
{ Protected declarations }
property OnAfterPost: TDataSetNotifyEvent read FOnAfterPost write FOnAfterPost;
public
{ Public declarations }
published
{ Published declarations }
end;
...
procedure TMeuClientDataSet.AfterPost(DataSet: TDataSet);
begin
if Assigned(FOnAfterPost) then
FOnAfterPost(DataSet);
ShowMessage(´Meu comando´);
end;

O que está acontecendo é que após editar e ´postar´ um registro ele não dispara esse AfterPost.

É possível fazer isso? O que fiz de errado?
Se alguem fez o mesmo para outro evento em até mesmo outro componente como o TTable poderá me ser útil.
Obrigado!


Paulomad

Paulomad

Curtidas 0

Respostas

Bon Jovi

Bon Jovi

18/06/2004

Nesse caso basta vc dar override no método virtual DoAfterPost:

..........

  public
    procedure DoAfterPost; override;

..........

procedure TSeuClientDataSet.DoAfterPost;
begin
  inherited;
  ShowMessage(´seu comando´); 
end;



GOSTEI 0
Paulomad

Paulomad

18/06/2004

É isso mesmo!
Muito obrigado!


GOSTEI 0
POSTAR