Fórum Duvidas sobre minimizar. #443602
21/05/2013
0
Estou rodando uma aplicação que tem uma tela principal aonde tem os botões de cadastro e afins, esta tela ocupa o monitor inteiro,
Então quando clico no botão cadastro ele abre uma janela menor, o que acontece hoje é que eu uso Form.show, então quando eu clico no fundo da tela que ocupa o monitor inteiro, a telinha de cadastro some, neste caso gostaria de saber se existe a possibilidade de clicar fora da tela, e o form minimizar, porém que ficasse naquele estilo minimizado por cima do menu iniciar, não quero usar Form.showmodal.
Só pra critério de informação uso, Delphi XE2 e Win7.
Sublixo.
Sublixo
Curtir tópico
+ 0Posts
22/05/2013
Tiago Soares
procedure OpenForm(FClass: TFormClass; var Instance);
begin
//ESSA PROCEDURE VAI SER RESPONSAVEL EM VERIFICAR SE O FORM QUE VOCE PEDIU PARA
//ABRIR JA ESTA ABERTO. SE JA ESTIVER ABERTO ELE EXIBE O FORM CASO CONTRARIO ELE CARREGA OUTRO NA MEMORIA
if Assigned(TForm(Instance)) then
begin //EXIBE CASO JA ESTEJA A MEMORIA
TForm(Instance).WindowState := wsNormal;
TForm(Instance).BringToFront;
end
else
begin//CRIA OUTRO CASO NAO ESTEJA NA MEMORIA
Application.CreateForm(FClass, Instance);
end;
TForm(Instance).Position := poScreenCenter;
TForm(Instance).Show;
end;
Gostei + 0
22/05/2013
Joel Rodrigues
Gostei + 0
22/05/2013
Sublixo
Nunca usei MDI.
Veja, no delphi 7 este código funcionava quando eu usava, quando eu usava no create do Form
SetWindowLong(Application.Handle,GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
porém, no Delphi XE2 não.
Gostei + 0
22/05/2013
Alisson Santos
Gostei + 0
22/05/2013
Sublixo
procedure OpenForm(FClass: TFormClass; var Instance);
begin
//ESSA PROCEDURE VAI SER RESPONSAVEL EM VERIFICAR SE O FORM QUE VOCE PEDIU PARA
//ABRIR JA ESTA ABERTO. SE JA ESTIVER ABERTO ELE EXIBE O FORM CASO CONTRARIO ELE CARREGA OUTRO NA MEMORIA
if Assigned(TForm(Instance)) then
begin //EXIBE CASO JA ESTEJA A MEMORIA
TForm(Instance).WindowState := wsNormal;
TForm(Instance).BringToFront;
end
else
begin//CRIA OUTRO CASO NAO ESTEJA NA MEMORIA
Application.CreateForm(FClass, Instance);
end;
TForm(Instance).Position := poScreenCenter;
TForm(Instance).Show;
end;
Gostei, ja estou usando!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)