Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Miss

mrOk .... erro rotina

Recommended Posts

Boa tarde pessoal... to fazendo o seguinte:

 

procedure TfrmRelat01.btnProcClick(Sender: TObject);beginif frmGrupo = nil then	begin	frmGrupo:= TfrmGrupo.Create(Application);	frmGrupo.PreencheGrupo;	frmGrupo.btnEnviar.Visible:= true;	if frmGrupo.ShowModal = mrOk then		begin		txtIdGrupo.Text:= frmGrupo.qryID_GRUPOPRODUTOS.Text;		txtGrupo.Text:= frmGrupo.qryNOMEGRUPOPRODUTOS.Text;		frmGrupo:= nil;		frmGrupo.Free;		end;	end;end;

no Evento onClose do frmGrupo tem issu:

 

frmGrupo:= nil;Action:= caFree;

na execucao da violacao de memoria ... q sera?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá...

 

Cara, se tu tem um

 

frmGrupo:= nil;  Action:= caFree;
no teu OnClose do frmGrupo, tu não vai conseguir acessar nada nele depois de fechar o frmGrupo. Provavelmente o erro está dando nestas linhas:

 

txtIdGrupo.Text:= frmGrupo.qryID_GRUPOPRODUTOS.Text;  txtGrupo.Text:= frmGrupo.qryNOMEGRUPOPRODUTOS.Text;
Então, limpe o evento do OnClose do frmGrupo, e deixe seu código como o original do botão

procedure TfrmRelat01.btnProcClick(Sender: TObject);beginif frmGrupo = nil then	begin	frmGrupo:= TfrmGrupo.Create(Application);	frmGrupo.PreencheGrupo;	frmGrupo.btnEnviar.Visible:= true;	if frmGrupo.ShowModal = mrOk then		begin		txtIdGrupo.Text:= frmGrupo.qryID_GRUPOPRODUTOS.Text;		txtGrupo.Text:= frmGrupo.qryNOMEGRUPOPRODUTOS.Text;		frmGrupo:= nil;		frmGrupo.Free;		end;	end;end;
...que provavelmente vai funcionar ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tade a todos...

vlw a ajuda de todos

 

Vinicius Callegaro o erro ocorreu exatamente na linha q você me passo

 

axo q eu vo ter q dar o comando := nil e Action:= caFree no final do codigo msm ....

 

tenho o habito de por esse codigo no onClose pra evitar servico de todo tempo fika dando esses comandos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu costumo utilizar o FreeAndNil. Seu código do botão ficaria assim:

 

procedure TfrmRelat01.btnProcClick(Sender: TObject);beginif frmGrupo = nil then	begin	frmGrupo:= TfrmGrupo.Create(Application);	frmGrupo.PreencheGrupo;	frmGrupo.btnEnviar.Visible:= true;	if frmGrupo.ShowModal = mrOk then		begin		txtIdGrupo.Text:= frmGrupo.qryID_GRUPOPRODUTOS.Text;		txtGrupo.Text:= frmGrupo.qryNOMEGRUPOPRODUTOS.Text;		FreeAndNil(frmGrupo);		end;	end;end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.