Ir para conteúdo
Fórum Script Brasil
  • 0

Erro ao atribuir um metodo a um evento


DanielR

Pergunta

Bom dia todos

Bem tenho que um relatorio base e o mesmo cria um ClietDataSet em tempo de execução, preciso definir que apos a abertura do ClientDataSet (AfterOpen) um metodo seja carregado.

Fiz assim (mas ta dando o seguinte erro: left side cannot be assigned to'):

procedure TfrmBaseReport.doAbreDados;

begin

cdsDados.AfterOpen(cdsDados) := depoisDeAbrir; // o erro esta nesta linha

cdsDados.Close;

cdsDados.Data := dadosole;

cdsDados.Open;

cdsDados.RecordCount;

end;

procedure TfrmBaseReport.DepoisDeAbrirCds;

begin

// falta fazer o código

end;

Desde já agradeço.

Valeu!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Fiz assim (mas ta dando o seguinte erro: left side cannot be assigned to):

erro : lado esquerdo não pode ser nomeado

cdsDados.AfterOpen(cdsDados) := depoisDeAbrir; // o erro esta nesta linha

se isso for uma procedure ou function, voce deve procurar verificar as regras para a chamada das mesmas, veja no help do delphi, pois dessa maneira esta incorreto.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Olá DanielR, boa tarde!

A declaração abaixo está correta, então nem preciso comentar.

procedure TfrmBaseReport.doAbreDados;

begin

cdsDados.AfterOpen(cdsDados) := depoisDeAbrir; // o erro esta nesta linha

cdsDados.Close;

cdsDados.Data := dadosole;

cdsDados.Open;

cdsDados.RecordCount;

end;

A coisa está errada na declaração "procedure TfrmBaseReport.DepoisDeAbrirCds", pois quando você tem um método que será atribuído a um evento, este método recebe o Objeto por parâmetro, ou seja, você deverá declarar conforme segue:

procedure TfrmBaseReport.DepoisDeAbrirCds(Sender: TObject);

begin

// falta fazer o código

end;

Desta forma não irá ocorrer o erro que você menciona;

Quando for tratar o objeto na Procedure, procure usar TypeCast, ou seja, faça referência na seguinte forma:

- TClientDataSet(Sender).Open;

- TClientDataSet(Sender).Close;

- ...

Espero ter ajudado!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...