Fórum Sobreposição de evento do ClientDataSet #238554
18/06/2004
0
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!
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
Curtir tópico
+ 0
Responder
Posts
19/06/2004
Bon Jovi
Nesse caso basta vc dar override no método virtual DoAfterPost:
.......... public procedure DoAfterPost; override; .......... procedure TSeuClientDataSet.DoAfterPost; begin inherited; ShowMessage(´seu comando´); end;
Responder
Gostei + 0
20/06/2004
Paulomad
É isso mesmo!
Muito obrigado!
Muito obrigado!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)