como trabalhar com eventos ?

04/01/2007

0

tenho a seguinte duvida:

ex:
tenho uma TADOQuery que é criada em tempo de execução
  qry := TADOQuery.Create(self);
  try
    // codigo à ser executado
    ...
  finally
    FreeandNil(qry);
  end;


um metodo qualquer:
procedure MetodoQualque;
begin
  // ...
end;



[b:619ba90f53]duvida:[/b:619ba90f53]
como executar o metodo:´MetodoQualque´ no evento AfterPost da Query ´qyr´ em tempo de execução


Fabiano Góes

Fabiano Góes

Responder

Posts

04/01/2007

Renato.pavan

[quote:0d2e904909=´Fabiano Góes´]como executar o metodo:´MetodoQualque´ no evento AfterPost da Query ´qyr´ em tempo de execução[/quote:0d2e904909]

Basta vc criar seu ´MetodoQualquer´ com os mesmos parametros qdo o metodo é criado diretamente no AfterPost da query.
Exemplo
procedure MetodoQualquer(DataSet: TDataSet);
begin
   //
end;


Depois na sua query criada dinamicamente vc atribui ao afterPost a procedure ´´MetodoQualquer´.
Exemplo
qry := TADOQuery.Create(self); 
  try 
    qry.AfterPost := MetodoQualquer; 
  finally 
    FreeandNil(qry); 
  end; 


Espero ter ajudado em sua duvida.

[]´s

Renato


Responder

04/01/2007

Massuda

A procedure que trata um evento deve ser obrigatoriamente um método de uma classe, não pode ser um procedure ´solta´ na unit, como você fez. Normalmente, a procedure utilizada é um método de um form ou data module.


Responder

05/01/2007

Michael

Um breve comentário: ao se criar componentes em run-time, deve-se tomar cuidado na hora de escolher o seu [b:c80701acfe]Owner[/b:c80701acfe]. Se vc mesmo for destruí-lo, como no exemplo deste post, então use [b:c80701acfe]nil [/b:c80701acfe]no lugar de [b:c80701acfe]Self[/b:c80701acfe]. Do contrário, quando o objeto referenciado por [b:c80701acfe]Self [/b:c80701acfe]- neste caso, aparentemente o form - for destruído, ele tentará liberar o [b:c80701acfe]TQuery[/b:c80701acfe], inclusive enviado notificações para todos os componentes da sua lista interna, gerando um overhead desnecessário.

Regra: se vc mesmo cria e destroi, use [b:c80701acfe]nil [/b:c80701acfe]no construtor.

qry := TADOQuery.Create(nil);
try
  qry.AfterPost := MetodoQualquer;
  // Faz alguma coisa com qry
finally
  FreeandNil(qry);
end;


[]´s


Responder

20/04/2020

Douglas Carvalho

Queria aprender mais sobre comandos sql no delphi tipo apagar editar incluir salvar alguém pode me passar materiais relacionados a isso desde ja agradeço
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar