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

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

luiz antonio da silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 161
Registrado em: 21 Nov 2006 22:12
Localização: serrana-sp

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

Mensagem 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.
HMG 3.4.4 - SQL SERVER - ORACLE
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem 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.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
luiz antonio da silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 161
Registrado em: 21 Nov 2006 22:12
Localização: serrana-sp

Mensagem 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.
HMG 3.4.4 - SQL SERVER - ORACLE
luiz antonio da silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 161
Registrado em: 21 Nov 2006 22:12
Localização: serrana-sp

Mensagem 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
HMG 3.4.4 - SQL SERVER - ORACLE
Avatar do usuário
software_facil
Usuário Nível 3
Usuário Nível 3
Mensagens: 211
Registrado em: 23 Fev 2005 12:19
Localização: Curitiba/PR
Contato:

Mensagem 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
messenger : software_facil@hotmail.com
luiz antonio da silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 161
Registrado em: 21 Nov 2006 22:12
Localização: serrana-sp

Mensagem 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.
HMG 3.4.4 - SQL SERVER - ORACLE
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem 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...
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Responder