Varias janelas abertas

Delphi

23/11/2015

Boa Tarde,

É uma perguntinha besta, mas como eu faço para deixar o meu software com varias telas?

É que quando eu abro um form ou outro fecha.

Queria que ficasse os forms que eu abrisse.

Estou chamando o form assim:

   if FormLocEscala = Nil Then
      FormLocEscala := TFormLocEscala.Create(Application);
   FormLocEscala.Show;


as propriedades do formprincipal e dos outros estão conforme figura em anexo:

Já fiz isso e outro programa mas agora nesse não estou conseguindo.
Dirceu Morais

Dirceu Morais

Curtidas 1

Respostas

Douglas

Douglas

23/11/2015

Olá Dirceu, tudo bem?

O anexo da imagem não apareceu no post. Não está chamando o formulário, pois no primeiro instante não foi atribuído nada ao teu objeto.

Bem, experimente substituir o seu código por esse abaixo:

if not (FormLocEscala = Nil) Then
   FormLocEscala := TFormLocEscala.Create(Application);
FormLocEscala.Show;


Depois me diga o resultado.

Bons Códigos!
GOSTEI 0
Josafar Silva

Josafar Silva

23/11/2015

Há muito distribuo os meus sistemas em Delphi, abrindo, minimizando várias telas ao mesmo tempo sem qualquer problema.
1) No form principal, incluo uma TAction List onde: na ação update da abertura de determinado formulário, testo se o usuário tem poderes para tal. Caso sim, na ação execute do form, por exemplo, um cadastro de Centro de Custo, escrevo o seguinte código:
frm:= TfrmCCusto.Create(Self)
try
frmCCusto.Show;
finally
end;

2) Para controlar a abertura de várias telas ao mesmo tempo, minimizando-as caso necessário, incluo no form(pai) do qual descendem os forms(filhos) um contador (que chamo de "fecha form" que no create é incrementado e no closeform é decrementado. Se o usuário, ao tentar fechar o sistema não houver fechado todas as telas, receberá uma mensagem:
"há formulários abertos", o que é verificado no form principal que testa se "fecha form" = 0.
GOSTEI 0
Dirceu Morais

Dirceu Morais

23/11/2015

Não deu certo. :(

Eu geralmente uso assim:


Nas propriedades do formprincipal em formstyle := fsMDIForm
Nos demais form eu coloco o formstyle := fsMDIChild

Ai eu chamo os forms assim:
if FormLocEscala = Nil Then
   FormLocEscala := TFormLocEscala.Create(Application);
FormLocEscala.Show;
GOSTEI 0
Josafar Silva

Josafar Silva

23/11/2015

Nos meus sistemas, tanto o form principal quanto os demais o formstyle := fsNormal e tudo funciona perfeitamente.
GOSTEI 0
Ricardo Araujo

Ricardo Araujo

23/11/2015

já tentou colocar assim para criar varias janelas :

Form4 := TForm4.Create(Application);
Form4.Show;


assim voce criar varias janelas, no formulário form4 terá que colocar no evento onclose :
action := caFree;
Form4 := nil;

depois de fazer tudo isto terá que fazer mais uma coisa segue imagem abaixo:
[img]http://arquivo.devmedia.com.br/forum/imagem/171323-20151216-234215.png[/img]

Espero tenho ajudado.
GOSTEI 0
POSTAR