Fórum Dúvida sobre Form #320040

26/04/2006

0

Sou iniciante em delphi..a duvida eh a seguinte:

Tenho um form principal e através de um Menu, gostaria de ao clicar sobre este abrir um outro form. Coloquei na Procedure--> ´ Form2.Show; ´ , mas não funciona.. O que pode ser? estou no delphi 7


Ynsor

Ynsor

Responder

Posts

26/04/2006

Cristiano Alves

Bom meu amigo há varias maneiras de se criar e abrir um Form. Dependendo da Sua utilização.

Pra começar sempre crie os forms quando for realmente usa-los.

O Delphi por padrão cria todos os forms quando sua aplicação é iniciada.

Pra mudar isso faça o seguinte:

Va em PROJECT/OPTIONS

Todos os form que estão no Auto-Create (Exceto o Form Principal) passe para Avaliable Forms.

Pronto quando quiser abrir um form faça assim:

[b:fc603733d3]1º - Formulários Modais[i:fc603733d3] (quando vc usado ShowModal - significa que nehum form pode ser aberto até que esse seja fechado)[/i:fc603733d3][/b:fc603733d3]

procedure TFMenu1.Clientes1Click(Sender: TObject);
begin
Form2 := TForm2.Create(nil); //Criando form
try
Form2.ShowModal; //Abrindo Form
finally
Form2.release; //Liberando form da memória depois de usado
end;
end;


[b:fc603733d3]2º - Formulários Não Modais[/b:fc603733d3]

procedure TFMenu1.Clientes1Click(Sender: TObject);
begin
Form2 := TForm2.Create(Application);
Form2.Show;
end;


Responder

Gostei + 0

26/04/2006

Paullsoftware

vc pode tentar assim:

FormXX := TFormXX.create ( application );
try
  FormXX.ShowModal
finally
  FormXX.Release;
  FormXX := nil;
end;


espero ter ajudado :wink:


Responder

Gostei + 0

27/04/2006

Cristiano Alves

Paulo

au criar um formulário passando como ´dono´ AOwer Aplication como vc faz, está dizendo ao DELPHI que a APLICAÇÃO será responsável por destruir o Form Até ai tudo bem.

Mas não faz sentido vc logo depois de utilizar destruir
[b:1ca4db7ddd]finally
FormXX.Release;
FormXX := nil;
end;[/b:1ca4db7ddd]

Em outras palavras vc está dando uma ordem ao Aplicativo e em seguida Cumprindo a ordem. (Não se seu fui claro). Isso pode causa Exceçoes na aplicação. E não tenho certeza mas pode comprometer o desempenho.

Sempre que for utilizar forms Modais é uma boa prática cria-los passando como AOwner [b:1ca4db7ddd]NIL[/b:1ca4db7ddd] assim vc está dizendo que [b:1ca4db7ddd]Você[/b:1ca4db7ddd] será o responsável por destruir o [b:1ca4db7ddd]FORM[/b:1ca4db7ddd]

Form1 := TFormXX.create (nil);
try
Form1.ShowModal;
finally
Form1.Release;
end;


Responder

Gostei + 0

27/04/2006

Paullsoftware

certo pois eu sempre usei esse código para criar forms...
try
Application.CreateForm(Tformx,Formx);
Fromx.ShowModal;
Finally
Frmx.Release;
Fromx:=Nil;
end;


e nunca deu problema comigo :wink:


Responder

Gostei + 0

27/04/2006

Ynsor

Não sei bem o q era, mas refiz o Form e deu certo

´ formPrincipal.Show; ´


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar