Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
ric_rio2 Aprendiz
Registrado: Segunda-Feira, 1 de Outubro de 2018 Mensagens: 108
|
Enviada: Sex Out 25, 2019 1:09 pm Assunto: Criar afterPost em runtime |
|
|
Boa tarde..
Estou meio enrolado para criar o evento afterpost (tQuery) em runtime.
Minha ideia é criar uma function que retorne um objeto do Tipo TQuery.
Ficaria assim..:
Código: | Function Cria_Query_DB(pNome : String) : TQuery;
begin
Result:= Tquery.Create(Nil);
Result.Name:= pNome;
Result.DatabaseName := DMS_ALIAS;
Result.RequestLive:= True;
Result.AfterPost:= ???????
Result.Close;
Result.Sql.Clear;
end; |
Mas não estou conseguindo criar o evento e passa-lo para o Result.afterPost.
O evento ficaria assim..:
Código: | Procedure AfterPost_Query(DataSet : TDataSet);
begin
DBISaveChanges((DataSet As TQuery).Handle);
end; |
Quando eu tento fazer..:
Result.AfterPost:= AfterPost_Query();
Não sei o que colocar dentro das chaves.. na realidade nem sei se estou passando corretamente o evento para o Result.AfterPost..
Algum dos senhores poderia dar uma luz??
Desde já agradeço a atenção de todos
Abraços. |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Out 25, 2019 2:21 pm Assunto: |
|
|
Boa tarde,
Para atribuir ao evento você precisa criar um método, que seria uma procedure (ou function) associada a uma classe. Ex:
Código: | type
TForm1 = class(TForm)
// ...
private
{ Private declarations }
Procedure AfterPost_Query(DataSet : TDataSet);
end;
Procedure TForm1.AfterPost_Query(DataSet : TDataSet);
begin
DBISaveChanges((DataSet As TQuery).Handle);
end;
Result.AfterPost:= Form1.AfterPost_Query; |
Se preferir você pode criar uma classe com um "class method", sendo que dessa forma não é necessário instanciar um objeto. Ex:
Código: | TMinhaClasse = class
private
class procedure AfterPost(DataSet: TDataSet);
end;
class procedure TMinhaClasse.AfterPost(DataSet: TDataSet);
begin
DBISaveChanges((DataSet As TQuery).Handle);
end;
Result.AfterPost := TMinhaClasse.AfterPost; |
Espero que ajude
_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos-residencial |
|
Voltar ao Topo |
|
|
ric_rio2 Aprendiz
Registrado: Segunda-Feira, 1 de Outubro de 2018 Mensagens: 108
|
Enviada: Sex Out 25, 2019 6:01 pm Assunto: |
|
|
Boa tarde imex
Cara..
Valeu mesmo..
Estava tentando do primeiro modo que tu falou mas não estava indo.. Não sei porque..
Ai fiz do segundo modo que tu demonstrou e foi de boa..
TMinhaClasse = class etc..
Valeu mesmo |
|
Voltar ao Topo |
|
|
|