Minimizar Form
23/09/2013
0
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
Post mais votado
23/09/2013
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!!
Deivison Melo
Mais Posts
23/09/2013
Marcos Oliveira
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
23/09/2013
Fernando Kerber
mas usando "Show" o form nem chega abrir.
Grato até o momento.
23/09/2013
Fernando Kerber
Agradeço a ajuda!!
23/09/2013
Fernando Kerber
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!!
23/09/2013
Gustavo Bretas
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!
23/09/2013
Fernando Kerber
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!!
23/09/2013
Gustavo Bretas
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!
Clique aqui para fazer login e interagir na Comunidade :)