Fórum Duvidas sobre minimizar. #443602

21/05/2013

0

Galera vamos ao seguinte cenário...

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

Sublixo

Responder

Posts

22/05/2013

Tiago Soares

Como colocar na barra Iniciar, mas para não criar outra instancia da janela eu uso essa procedure

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;
Responder

Gostei + 0

22/05/2013

Joel Rodrigues

Usar MDI é uma opção? Por que se for, os forms MDI Childs ficam minimizados "no pé" do form pai.
Responder

Gostei + 0

22/05/2013

Sublixo

Usar MDI é uma opção? Por que se for, os forms MDI Childs ficam minimizados "no pé" do form pai.


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.
Responder

Gostei + 0

22/05/2013

Alisson Santos

Para um melhor controle é legal utilizar o form MDI pois não precisa ficar fazendo códigos e mais códigos para esse controle.
Responder

Gostei + 0

22/05/2013

Sublixo

Como colocar na barra Iniciar, mas para não criar outra instancia da janela eu uso essa procedure

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!
Responder

Gostei + 0

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

Aceitar