Jump to content

Ajuste do form quando muda o Browse


buguito

Recommended Posts

Boa parte pessoal,

 

Estou iniciando no uniGUI, já procurei pra todo lado, vi q nos exemplos funcionam, mas não consigo colocar na minha aplicação.

 

Quando eu altero o tamanho do browse, gostaria que a minha aplicação também se auto organiza-se.

 

Somente ajustei a propriedade do form para maximizado.

 

Grato.

 

Julio Cesar

Link to comment
Share on other sites

  • 3 weeks later...

Talvez não fui claro na minha dúvida, 

 

Mas consegui o resultado utilizando o projeto Demo como partida para um novo projeto.

 

Se alguém souber quais propriedades devem ser alteradas, fico bastante agradecido.

 

Julio Cesar

Link to comment
Share on other sites

  • 2 weeks later...

Bom dia :)

 

Cara eu vi esse demo..

 

é só usar o evento onScreenResize :)

 

Eu coloquei o seguinte código nele e ficou muito legal..

 

UniLabel1.Caption:='Screen Size is = '+Format('%d x %d', [AWidth, AHeight]);
 
  MainForm.Top:= 25;
 
  MainForm.Left := 25;
 
 
  MainForm.Width:= AWidth - 50;
 
  MainForm.Height:= Aheight - 50;
 
 
Espero ter dado alguma luz..
 
Abraços 
 
Ricardo M.Souza
Link to comment
Share on other sites

Boa tarde...

O código acima realmente funciona... mas só no MAIN...

 

Tentei utilizar o mesmo código em outro form e o mesmo não funcionou... 

Na realidade colocando um break point nas linhas do evento ScreenResize, quando você faz o resize do browse, 

o evento nem é disparado...

Ainda não entendi o porque disso..

 

Abraços

 

Ricardo M.Souza

Link to comment
Share on other sites

Boa tarde,

 

Descobri posteriormente a propriedade que faz a mágica no Demo:

 

Unit ServerModule -> MainFormDisplayMode = mfPage

 

Funciona somente no form principal, se o projeto for baseado em Frames fica show, mas se usar um outro Form não dá certo.

 

Agradeço as dicas.

Link to comment
Share on other sites

Ricardo, testei a sua dica deu certo em todos os Forms aplicados.

 

Obrigado.

 

Desculpe, deu certo não, fiz o teste errado.

Exemplo: Inicie a aplicação com o browser menor que a área completa, depois vá aumentando aos pucos.

Link to comment
Share on other sites

Boa tarde buguito...

 

O evento onScreenResize so funciona do form main mesmo... Não sei se é bug ou é para fazer assim mesmo..

 

Eu tenho a tela MAIN que usei para a senha e apos ela tenho outro FORM (FO_Principal ) que quero que fique no centro do browse... No lado esquerdo coloco o menu (treeview) e no que restou da tela um painel (PN_Principal).

NÃO tenho outros forms.. somente FRAMES que ficaram CONTIDOS no PN_Principal.

Então o que eu fiz para manter o FO_Principal sempre no meio do browse foi o seguinte :

 

01) declarei uma variavel  no FO_Principal

Acima do implementation coloquei assim: 

var

  FF : TFo_Principal_Forms;
 
02) abaixo da diretiva {$R *.dfm} do Fo_Principal coloquei o seguinte codigo :
 
function Show_Fo_Principal_Forms: TFo_Principal_Forms;
begin
  FF:= TFo_Principal_Forms(UniMainModule.GetFormInstance(TFo_Principal_Forms));
  FF.ShowModal();
end;
 
{-------}
 
 
03) no FO_MAIN no evento onScreenResize  coloquei o seguinte codigo : 
  Left:=(AWidth-Width) div 2;
  Top:=(AHeight-Height) div 2;
 
  if faz then
     begin
       FF.Left:= (AWidth-FF.Width) div 2;
       FF.Top:= (AHeight-FF.Height) div 2;
       ff.UniLabel1.Text:= 'Screen Size is = '+Format('%d x %d', [AWidth, AHeight]);
     end;
 

04 ) Declarei a variavel FAZ Boolean no private do FO_MAIN e inicializei no oncreate dele como FALSE

 

05 ) Quando apertar o botao confirmar senha coloquei o seguinte codigo.:

 

       Faz:= True;
       TMainForm(UniMainModule.GetFormInstance(TMainForm)).Hide;
       Show_Fo_Principal_Forms;

 

 

Com isso o FO_PRINCIPA e o FO_MAIN SEMPRE ficam centralizados com o browse. :)

 

Qualquer coisa é so falar... :)

 

Abraços

 

Ricardo M.Souza

Link to comment
Share on other sites

  • 1 year later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...