Fórum Problema com ponteiro e Application.MainForm #276044
07/04/2005
0
Dentro do meu MainForm tenho o seguinte :
private FFteste: ^TForm2;
e no create o seguinte :
procedure TfrmMain.FormCreate(Sender: TObject); begin FFteste:=@Form2; Application.CreateForm(TForm2,FFteste^); end;
quando faço isso o form2 é criado blz,porém ele aparece e o form principal naum , ou seja, o form2 acaba se tornando o MainForm da minha aplicação.Alguém sabe me dizer o pq ?
Alexandre_sbo
Curtir tópico
+ 0Posts
07/04/2005
Yallebr
Tente assim
Formulario := TFormulario.Create(nil).
Essa forma
Application.CreateForm(TForm2,FFteste^);
Realmente é para criar o form principal.
Obejto := Classe.Create seria o correto.
Gostei + 0
07/04/2005
Massuda
procedure TfrmMain.FormCreate(Sender: TObject); begin Application.CreateForm(TForm2, Form2); FFteste:=@Form2; end;
Gostei + 0
07/04/2005
Alexandre_sbo
é assim eu tenho o dmconexaoPadrao,FrmMainPadrao e FrmLoginPadrao,
Dai faço uma herança dos Ficando dmConexao,FrmMain,frmLogin....
Dai no create no frmmain antes inherited, e seto uma variavel login:=@frmlogin
dai no create do frmmainPadrao eu quero criar o frmlogin e fazer algumas coisa com ele .....
Gostei + 0
07/04/2005
Alexandre_sbo
{cria classe de configuração}
Configuracoes:=TConfiguracoes.Create;
with frmSplash,Configuracoes.Geral do
begin
{checa se a applicação já existe}
ChecaApplicationTitle;
{cria tela de splash}
frmSplash := TfrmSplash.Create(Application);
try
frmSplash.Show;
frmSplash.Update;
AtualizaGauge(Gauge,1,30);
{Cria Dm de Conexao}
Application.CreateForm(TDmConexaoPadrao,Conexao^);
AtualizaGauge(Gauge,31,60);
with Conexao^ do
begin
{Conecta no banco com usuario sysdba para Carregar Configurações iniciais}
Conectar(UsuarioRoot,SenhaRoot);
AtualizaGauge(Gauge,61,80);
{seta usuario root para user control}
ControleUsuario:=TControleUsuario.Create(IBOUserControl,MailUserControl,Database,UsuarioRoot,SenhaRoot);
{caso o controle de usuario seja por empresa arruma o titulo da applicação para o usercontrol}
if FControlePorEmpresa then
IBOUserControl.ApplicationID:=Application.Title + IntToStr(Empresa.Codigo);
CarregaConfPadrao(CampoImagem,cds,self.img);
AtualizaGauge(Gauge,81,90);
{cria tela de login --> ela deve ser chamada de frmLogin e ser registrada no initialization do main herdado}
Application.CreateForm(TComponentClass(GetClass(´TfrmLogin´)),Login^);
AtualizaGauge(Gauge,91,100);
Empresa.Codigo:=EmpresaPadrao;
end; { <-- with }
{atualiza envio de e-mail}
ConfigMadExcept.updateSubject(Conexao^.UsuarioRoot,ClienteAgsi);
{seta caption}
Self.Caption:=´Menu - ´+Application.Title;
finally
frmSplash.Free;
end;
end; { <-- with }
Gostei + 0
07/04/2005
Massuda
No seu caso, como está o código que cria sua janela principal (TfrmMain) no .DPR?
Gostei + 0
07/04/2005
Alexandre_sbo
e esta acontecendo isso que vc disse mesmo...ele está assumindo o primeiro form criado....
Gostei + 0
07/04/2005
Massuda
begin Application.Initialize; Application.CreateForm(TfrmMain, frmMain); Application.Run; Application.Terminate; end.
Gostei + 0
07/04/2005
Alexandre_sbo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)