Minimizar Form

Delphi

23/09/2013

Bom Dia Galera!!!
Eu tenho um projeto onde contem uma aplicação(Menu) e 10 forms nela.
Eu não consigo minimizar separadamente um form do Menu, se eu habilitar a opção de minimizar no form, ao executa-la ele minimiza no canto inferior esquerdo da tela e não habilita o menu, teria algum jeito de minimizar um form e habilitar o Menu??

Agradeço até o momento!!
Fernando Kerber

Fernando Kerber

Curtidas 0

Melhor post

Deivison Melo

Deivison Melo

23/09/2013

O que você está querendo não é uma aplicação MDI ou SDI não?

Se o show ao invés do showmodal não chega a abrir, provavelmente o seu método de abertura de formulários era showmodal e depois vc já libera da memória dando um freeandnil e ai ele mostra abrindo e já fecha.

Pesquise sobre MDI e SDI e veja se uma das forma se adequará ao que está querendo!

Abração e bons códigos!!
GOSTEI 1

Mais Respostas

Marcos Oliveira

Marcos Oliveira

23/09/2013

Fernando, bom dia!
Por acaso você está usando o "ShowModal" para mostrar o form? Porque se estiver, não vai ser possível fazer o que você quer.
Tente dar apenas um "Show", e me fale se vai dar certo.

Att,

Marcos
GOSTEI 0
Fernando Kerber

Fernando Kerber

23/09/2013

Realmente estou usando "ShowModal"
mas usando "Show" o form nem chega abrir.

Grato até o momento.
GOSTEI 0
Fernando Kerber

Fernando Kerber

23/09/2013

Isso mesmo Deivison estou usando no "Try" o "ShowModal" e no "Finally" estou executando o ".Free", já estou lendo sobre MDI e SDI, quando souber como resolver eu posto aqui.
Agradeço a ajuda!!
GOSTEI 0
Fernando Kerber

Fernando Kerber

23/09/2013

Galera seguinte,
A propriedade FormStyle dos Forms estão como fsNormal coloquei de vários jeitos, fsMDIform, fsMDIChild, mas ainda deixei fsNormal, consegui minimizar o form e liberar o Menu, tirei o Try Finally e coloquei apenas Show em vez e ShowModal, ao minimizar eu posso abrir outro modulo no menu, agora o problema é que ele não minimiza na barra de tarefas, eu não sei se tem como fazer, mas se alguém souber vai me ajudar um monte!!!!

Obrigado!!
GOSTEI 1
Gustavo Bretas

Gustavo Bretas

23/09/2013

E ae Fernando, tranquilo?

Quando o vc minimiza o Formulário, a propriedade WindowState muda para wsMinimized, então para vc maximizar a tela, só alterar a propriedade WindowState para wsMaximized, ou wsNormal

  if not Assigned(Form2) then
  begin
    Form2 := TForm2.Create(Self);
    Form2.Show;
  end
  else
    Form2.WindowState := wsNormal;


Mas tem um ponto não abordado na sua dúvida que quero levantar. Quando deixa de usar ShowModal e liberar o formulário da memória assim que o formulário é fechado, como vc fazia, vc deve tomar alguns cuidados para não manter lixo na memória. Nesse caso, no evento OnClose do formulário, coloque a ação para liberar o formulário, recomendo que vc tenha um formulário "pai", para que no futuro quando for criar outros formulários, vc não tenha que se preocupar com liberar eles da memória.

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;


Espero ter ajudado!
GOSTEI 0
Fernando Kerber

Fernando Kerber

23/09/2013

Dai Bretas,

Primeiramente muito obrigado por me lembrar desse pequeno detalhe de limpar a memoria, kkkkk
esse código não deu certo, na verdade acho que não é bem isso, o que eu quero é apenas minimizar na barra de tarefas, o formulário já esta minimizando mas não esta ficando no barra de tarefas.

Ainda estou a busca.

Muito Obrigado pela dica Bretas!!
GOSTEI 0
Fernando Kerber

Fernando Kerber

23/09/2013

Não deu ainda
GOSTEI 0
Gustavo Bretas

Gustavo Bretas

23/09/2013

É, eu não tinha entendido bem o que vc quer, desculpa!

A muito tempo atrás, quando eu trabalhava em uma empresa que mantinha alguns formulários em DLL, quando abria os formulários da DLL a janela "ia" para a barra de tarefas. Acredito que seja por conta do contexto diferente, não sei explicar o conceito!

Faça esse teste, coloque o formulário que vc quer em um DLL e faça a chamada, pra ver no que dá!

Boa sorte!
GOSTEI 0
POSTAR