Fórum Erro ao tentar um manipular um objeto de outro form #588579
07/11/2017
0
da um erro de acesso.
alguem sabe porque e como resolver?
Henrique Dias
Curtir tópico
+ 0Post mais votado
08/11/2017
a manipulação ocorre com sucesso desde que ela inicialize junto com a aplicação,
ou seja la no menu project - options o form deve estar no lado "auto-create forms".
porem meu form com os objetos a serem manipulados esta no lado "avaliable-forms
e eu chamo esse form daquela maneira mais simples:
var form1: Tform1; begin form1:=tform1.create(self); form.showmodal; end;
depois de criado se eu tentar manipular qualquer objeto desse form a partir de outro formulário , a fuction chamada para manipular os objetos, tem os objetos perdidos, e da um erro acecss violation.
Henrique Dias
Gostei + 1
Mais Posts
08/11/2017
Luiz Vichiatto
A declaração da procedure está declarada no private por acaso?
poste o código que está chamando
Gostei + 0
08/11/2017
Henrique Dias
Gostei + 0
09/11/2017
Natanael Ferreira
Para o seu caso, vejo 2 soluções.
1 - Deixar este form que você quer acessar de outro form, com a opção "avaliable-forms" (menu project - options).
2 - Criar este form com Show (ao invés de ShowModal), antes de tentar manipulá-lo.
Gostei + 1
09/11/2017
Henrique Dias
mas a segunda o erro persiste
Gostei + 0
10/11/2017
Natanael Ferreira
Para funcionar você não pode destruí-lo ao fechá-lo. Destrua ele apenas quando não for mais utilizar/acessar.
Gostei + 0
10/11/2017
Henrique Dias
então a situação e a seguinte: (aplicativo de controle de renda)
1° tela de login (de la chama a tela principal do aplicativo)
2°aplicativo aberto (o form 1 do exemplo, onde ha os objetos a serem manipulado)
3° vou fazer uma add de uma despesa e abro um 3° formulario (form 2)
4° preencho os dados e clico no botao que fará a gravação dos dado no BD e apos que chamara a função que sera responsável pela manipulação dos dados
neste ponto, a 2 forma sugerido por vc gera um erro de acesso
como pode ver o form 1 continua aberto, porem o foco esta no form 2 que chamou a função
tentei inúmeras formas e todas fracaças
porem a primeira forma funciona normalmete :
simplismente declarei a unit onde esta a função no uses e faço a chamada no fim da linha de codigo do botao
nao sei o porque do erro, mas refazendo um codigo paralelo ao que eu trabalhava notei essa diferença. assim escolhi uma alternatica,
nao é bem o que eu queria mas e o que no momento estou tento que optar como solução
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)