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