Clipper On Line • Ver Tópico - alterar resolução de tela c/minigui (1024x768 / 800x600)

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

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

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

Mensagempor luiz antonio da silva » 14 Fev 2008 21:36

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
luiz antonio da silva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

Mensagempor sygecom » 14 Fev 2008 22:57

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
leonardodemachado@hotmail.com

Faça você também sua doação esse fórum é uma lenda viva: http://www.pctoledo.com.br/doacao
Avatar de usuário

sygecom
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 7006
Data de registro: 21 Jul 2006 10:12
Cidade/Estado: Alvorada-RS
Curtiu: 1 vez
Mens.Curtidas: 130 vezes

Mensagempor luiz antonio da silva » 14 Fev 2008 23:44

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
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

Mensagempor luiz antonio da silva » 15 Fev 2008 00:29

Explicando na prática...rsrs
#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
#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
luiz antonio da silva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

Mensagempor software_facil » 15 Fev 2008 07:49

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
Avatar de usuário

software_facil
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 211
Data de registro: 23 Fev 2005 12:19
Cidade/Estado: Curitiba/PR
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor luiz antonio da silva » 15 Fev 2008 15:17

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
luiz antonio da silva
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 21 Nov 2006 21:12
Cidade/Estado: serrana-sp
Curtiu: 13 vezes
Mens.Curtidas: 10 vezes

Mensagempor Stanis Luksys » 08 Mar 2008 18:59

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.
Avatar de usuário

Stanis Luksys
Colaborador

Colaborador
 
Mensagens: 1329
Data de registro: 18 Jun 2005 03:04
Cidade/Estado: São Paulo
Curtiu: 0 vez
Mens.Curtidas: 2 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro