Access Violation no showModal.
Galaera alguem saberia oq pode ser quando chamo um form como showmodal ele dar access violation?
detalhe, isso acontece quando é chamado na segunda vez, na primeira chamada esta ocorrendo tudo tranquilo.
detalhe, isso acontece quando é chamado na segunda vez, na primeira chamada esta ocorrendo tudo tranquilo.
Zumbi
Curtidas 0
Respostas
Crash
14/10/2005
muito provavelmente... vc está distruindo o formulario que vc esta usando o showmodal na hora q ele se fecha. Na primeira vez nao da o erro porque ele deve estar sendo criado no inicio da aplicacao... mais depois q vc chama e fecha a janela, ele se destroi.... faca o seguinte:
remova o formulario da auto-criacao.... e depois coloque o seguinte codigo:
t+
remova o formulario da auto-criacao.... e depois coloque o seguinte codigo:
Form1 := TForm1.Create(Application); Form1.ShowModal; Form1.Free;
t+
GOSTEI 0
Zumbi
14/10/2005
kra, tentei tirar da auto-criação, mas não funcionou
a forma que eu estou tentando fazer isso é a seguinte:
e no form busca produto no duploclick do grid eu tenho o seguinte:
a forma que eu estou tentando fazer isso é a seguinte:
if frmBuscaProduto.ShowModal = mrOk then begin qrycodigoprod.Value := frmBuscaProduto.CodigoProd; end; frmBuscaProduto.Free;
e no form busca produto no duploclick do grid eu tenho o seguinte:
ModalResult := mrOK;
GOSTEI 0
Massuda
14/10/2005
...isso acontece quando é chamado na segunda vez, na primeira chamada esta ocorrendo tudo tranquilo.
Pelo código que você postou e pelo fato desse form estar sendo auto-criado, na primeira vez o form existe, mas quando executa...frmBuscaProduto.Free;
...o form é destruído. Logo, na segunda vez, o form não existe mais e daí dá o acess violation.Faça como o CrasH sugeriu...
var Form: TfrmBuscaProduto; ... Form := TfrmBuscaProduto.Create(nil); if Form.ShowModal = mrOk then begin qrycodigoprod.Value := Form.CodigoProd; end; Form.Free;
GOSTEI 0
Armando.boza
14/10/2005
cara, eu tive o mesmo problema a tempos atras e depois de muito pesquisar no forum comsegui solucionar.
Eu faço assim agora:
Tire o form da auto-criação
Para chamar o form use desta maneira:
Pronto, nunca mais tive este problema com os forms .. que diga-se de passagem é um saco hein ... kkkkk
Eu faço assim agora:
Tire o form da auto-criação
Para chamar o form use desta maneira:
FRMExemplo := TFRMExemplo.create(application); try FRMExemplo.showmodal; finally FRMExemplo.release; FRMExemplo := nil; end;
Pronto, nunca mais tive este problema com os forms .. que diga-se de passagem é um saco hein ... kkkkk
GOSTEI 0
Zumbi
14/10/2005
Galera, é isso ai mesmo. funcionou vejam como ficou o codigo:
Vlw pela força!
var AbreForm: TfrmBuscaProduto; begin AbreForm := TfrmBuscaProduto.Create(nil); try if AbreForm.ShowModal = mrOk then begin qrycodigoprod.Value := AbreForm.CodigoProd; end; finally AbreForm.Free; end; end;
Vlw pela força!
GOSTEI 0