Fórum Ponteiros de Eventos x Interfaces #231867
12/05/2004
0
//interface de mapeamento
IAdaptadorDeEventos = interface
[´{D40B150D-8E97-4FF2-B405-81CE35917A3A}´]
procedure AfterUpdateRecord(Sender: TObject; SourceDS: TDataSet;
DeltaDS: TCustomClientDataSet; UpdateKind: TUpdateKind);
procedure BeforeUpdateRecord(Sender: TObject; SourceDS: TDataSet;
DeltaDS: TCustomClientDataSet; UpdateKind: TUpdateKind; var Applied: Boolean);
procedure OnUpdateData(Sender: TObject; DataSet: TCustomClientDataSet);
procedure OnUpdateError(Sender: TObject; DataSet: TCustomClientDataSet;
E: EUpdateError; UpdateKind: TUpdateKind; var Response: TResolverResponse);
procedure AfterApplyUpdates(Sender: TObject; var OwnerData: OleVariant);
procedure BeforeApplyUpdates(Sender: TObject; var OwnerData: OleVariant);
end;
//classe que mapeia seus eventos
function TCustomProvedorPacotes.AplicaAtualizacoes(Delta: OleVariant;
Adaptador: TCustomAdaptadorDeEventos): OleVariant;
var ErrorCount : integer;
begin
with FProvider do
begin
//Mapeia os métodos do adaptador nos eventos do provider
BeforeUpdateRecord := Adaptador. BeforeUpdateRecord; //erro aqui
AfterUpdateRecord := Adaptador.AfterUpdateRecord;
OnUpdateData := Adaptador.OnUpdateData;
OnUpdateError := Adaptador.OnUpdateError;
BeforeApplyUpdates := Adaptador.BeforeApplyUpdates;
AfterApplyUpdates := Adaptador.AfterApplyUpdates;
//aplica as atualizações e retorna o pacote atualizado
Result := ApplyUpdates(Delta,0,ErrorCount);
end;
end;Será que alguém pode me explicar porque não posso usar as interfaces nesse caso ?
Qualquer ajuda será bem vinda.
obrigado.
Ruben
Curtir tópico
+ 0Posts
12/05/2004
Comodelphi
Gostei + 0
12/05/2004
Comodelphi
Gostei + 0
13/05/2004
Beppe
2) Mapear para que fim?
Gostei + 0
13/05/2004
Ruben
Não estou usando DataSnap, nem mexendo em nenhuma type lybrary
Em uma das classes da minha biblioteca, eu tenho um método que vai executar um applyupdates em um provider(que está no mesmo projeto),
outro parâmetro desse método é um objeto interfaceado , cujos métodos eu desejo chamar a partir dos eventos desse mesmo provider.
Como esse objeto interfaceado pode ser de mais de um tipo, eu tô usando a interface ao invés da classe. No entanto, isso não compila, então eu troquei a interface por uma classe abstrata.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)