Fórum Problemas com CreateForm no FireMonkey! #411370
10/01/2012
0
Utilizando a vcl nunca tive problema com o seguinte código:
Application.CreateForm(Tform1, Form1);
Porém quando faço isso em uma aplicação firemonkey, e em seguida tento acessar o formulário, da erro de violação de acesso, como se o form n tivesse sido criado, se eu deixo o form ser criado junto com a inicialização da aplicação funciona, porém qnd eu limpo da memória e tento executar o código - Application.CreateForm(TForm1, Form1) - para instanciar novamente na memória o formulário acontece a mesmo erro de acesso.
Ou seja, só consigo acessar o form se for criado pela criação automática do delphi, teria que deixar todos os forms da aplicação serem iniciados junto com delphi e não dar free em nenhum durante a execução do programa pois n consigo instancia-los novamente em runtime...
Lembrando que quando crio uma aplicação vcl no XE2 mesmo isso n acontece, tudo funciona normalmente, gostaria de saber se alguém já passou por isso, ou se é um problema do firemonkey sei lá...
Desde já o meu muito obrigado!
obs: Meu primeiro post, então se fiz alguma coisa errada, perdão!
Application.CreateForm(Tform1, Form1);
Porém quando faço isso em uma aplicação firemonkey, e em seguida tento acessar o formulário, da erro de violação de acesso, como se o form n tivesse sido criado, se eu deixo o form ser criado junto com a inicialização da aplicação funciona, porém qnd eu limpo da memória e tento executar o código - Application.CreateForm(TForm1, Form1) - para instanciar novamente na memória o formulário acontece a mesmo erro de acesso.
Ou seja, só consigo acessar o form se for criado pela criação automática do delphi, teria que deixar todos os forms da aplicação serem iniciados junto com delphi e não dar free em nenhum durante a execução do programa pois n consigo instancia-los novamente em runtime...
Lembrando que quando crio uma aplicação vcl no XE2 mesmo isso n acontece, tudo funciona normalmente, gostaria de saber se alguém já passou por isso, ou se é um problema do firemonkey sei lá...
Desde já o meu muito obrigado!
obs: Meu primeiro post, então se fiz alguma coisa errada, perdão!
Glauber Silva
Curtir tópico
+ 0
Responder
Post mais votado
09/03/2012
Boa noite,
Pois bem, eu estava com este mesmo problema, e após dar uma analisada nos códigos do firemonkey criei um método simples para resolver este empecilho.
TSuaClasse.SeuMetodoCreateForm(InstanceClass: TComponentClass; var Reference);
if TForm(Referencia) = nil then
begin
Application.CreateForm(InstanceClass, Reference);
Application.RealCreateForms;
TForm(Referencia).Show;
end
else...
Espero ter sido útil.
Abraço.
Diego Ricardo Cossa.
Pois bem, eu estava com este mesmo problema, e após dar uma analisada nos códigos do firemonkey criei um método simples para resolver este empecilho.
TSuaClasse.SeuMetodoCreateForm(InstanceClass: TComponentClass; var Reference);
if TForm(Referencia) = nil then
begin
Application.CreateForm(InstanceClass, Reference);
Application.RealCreateForms;
TForm(Referencia).Show;
end
else...
Espero ter sido útil.
Abraço.
Diego Ricardo Cossa.
Diego Cossa
Responder
Gostei + 1
Mais Posts
10/01/2012
Glauber Silva
Bom, consegui resolver o prblema criando o form de outra forma:
Form1 := TForm1.Create(nil);
Porém, gostaria de saber pq n deu certo utilizando application.CreateForm
Se alguém souber, me avise!
Vlw
Form1 := TForm1.Create(nil);
Porém, gostaria de saber pq n deu certo utilizando application.CreateForm
Se alguém souber, me avise!
Vlw
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)