Página 1 de 1

alterar resolução de tela c/minigui (1024x768 / 800x600)

Enviado: 14 Fev 2008 22:36
por luiz antonio da silva
Olá pessoal !

Alguém sabe ou tem alguma fórmula, para qd alterar a resolução do monitor, a tela do programa e seus objetos, acompanhe a nova resolução ?

por exemplo:
Uma tela criada com toda a extensão da resolução 1024x768 com a minigui, qd alterada para 800x600, estoura a tela (fica objetos fora da visão).....criei via programa, uma maneira de contornar isso, mas gostaria de saber se tem como resolver de outra maneira.........tipo um manifest....

valeu.

Enviado: 14 Fev 2008 23:57
por sygecom
Luiz, desculpa o pitaco, mas acho que isso não é uma boa idéia, imagine a seguinte situação, os usuarios com resolução em 1024 com varias janelas aberta, IE, MSN, EXCEL e outros, derepente o cara entra no seu sistema e a resolusão muda, isso vai dar bagunça ou talvez desconforto para alternar entre seu sistema e outros utilitarios.

Mesmo assim, se quiser se não me engano nos samples da minigui tem exemplo.

Enviado: 15 Fev 2008 00:44
por luiz antonio da silva
obrigado por responder sygecom, mas não é isso que quero.....vou tentar me explicar........quero montar uma tela que fique com os objetos praticamente inalterados em qualquer resolução, e não deixar fixado uma resolução padrão........como mensionado, criei via programa mesmo uma solução, mas gostaria de saber se tem outros meios......

obrigado.

Enviado: 15 Fev 2008 01:29
por luiz antonio da silva
Explicando na prática...rsrs

Código: Selecionar todos

#INCLUDE "MINIGUI.CH"

func main 
Define Window form1; 
at 0,0 ; 
width 1017 ; 
height 238 ; 
title "TESTE"; 
main 

@ 015,006 LABEL oLABEL01; 
VALUE "TESTE"; 
WIDTH 064; 
HEIGHT 022; 
TRANSPARENT 

@ 017,076 TEXTBOX oTEXT01; 
VALUE ""; 
WIDTH 865; 
HEIGHT 024 

@ 013,950 BUTTONEX oBOTAO01; 
CAPTION "&OK"; 
WIDTH 062; 
HEIGHT 025; 
ACTION FORM1.RELEASE 

Endo Window 
Center Window Form1 
Activate Window Form1 
Retu 
Compile o fonte acima e execute em resolução 800x600, com certeza parte do TEXTBOX e o BOTÃO não poderão ser vistos.....agora

Código: Selecionar todos

#INCLUDE "MINIGUI.CH"

FUNC MAIN()
WD:=GetDesktopWidth()
HD:=GetDesktopHeight()

   DEFINE WINDOW Form1;
          AT     238,007;
          WIDTH  ((WD*99.32)/100);
          HEIGHT ((HD*12.24)/100);
          TITLE  "Form1";
          MAIN

          @ ((HD* 1.69)/100),((WD*92.77)/100) BUTTON    oBUT001 CAPTION "&OK"          WIDTH ((WD* 6.05)/100) HEIGHT ((HD* 3.26)/100) ACTION NIL 
          @ ((HD* 1.82)/100),((WD* 7.42)/100) TEXTBOX   oGET001 VALUE   ""             WIDTH ((WD*84.47)/100) HEIGHT ((HD* 3.13)/100)
          @ ((HD* 1.95)/100),((WD* 0.59)/100) LABEL     oLAB001 VALUE   "TESTE"        WIDTH ((WD* 6.25)/100) HEIGHT ((HD* 2.86)/100) TRANSPARENT

   END WINDOW
   CENTER   WINDOW Form1
   ACTIVATE WINDOW Form1

RETURN
compile este exemplo, execute nas resoluções 1024x768 e 800x600....

parece complicado, mas montei tb um programinha que converte o arquivo XML criado pela HMGIDE em PRG já com os cálculos montados...rs

valeu

Enviado: 15 Fev 2008 08:49
por software_facil
Prezado,

Sempre que quiser construir um aplicativo, que se adeque a qualquer resolução de tela, basta fazê-lo baseado em 800x600, pois ninguém hoje em dia utiliza resolução menor que esta.
O que não dá certo, é vc se basear em uma resolução maior para construir o aplicativo, e querer encolher depois, não dá certo mesmo.
Quanto a sua dúvida de como programar para que tudo se encaixe perfeitamente, basta vc usar, como disse antes, 800x600 como base, e utilizar getdesktopwidth() e getdesktopheight() para montar as telas que necessitam usar toda a extensão de tela, por exemplo a tela principal, e ancorar os botões, janelas, e outros elementos, a partir das bordas das janelas para dentro.

Abraços

Enviado: 15 Fev 2008 16:17
por luiz antonio da silva
software_facil escreveu:Prezado,

Sempre que quiser construir um aplicativo, que se adeque a qualquer resolução de tela, basta fazê-lo baseado em 800x600, pois ninguém hoje em dia utiliza resolução menor que esta.
O que não dá certo, é vc se basear em uma resolução maior para construir o aplicativo, e querer encolher depois, não dá certo mesmo.
Quanto a sua dúvida de como programar para que tudo se encaixe perfeitamente, basta vc usar, como disse antes, 800x600 como base, e utilizar getdesktopwidth() e getdesktopheight() para montar as telas que necessitam usar toda a extensão de tela, por exemplo a tela principal, e ancorar os botões, janelas, e outros elementos, a partir das bordas das janelas para dentro.

Abraços
O exemplo acima (o que tá com o include fora de lugar..rs) funciona belezinha.

Obrigado pela dica.

Enviado: 08 Mar 2008 18:59
por Stanis Luksys
Olha, eu acho que entendi o que vc ta querendo...

Eu ja usei este recurso, basta você criar uma função que redimensiona todos os objetos e colocar nos eventos oninit, onpaint, onmaximize... enfim, todos executados quando a tela é redesenhada.

Mas olha, se tiver muitos controles, fica muito ruim.

Falou...