Clipper On Line • Ver Tópico - Resolução de tela: como definir/contextualizar do seu soft?

Resolução de tela: como definir/contextualizar do seu soft?

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Resolução de tela: como definir/contextualizar do seu soft?

Mensagempor Dr.Microso » 11 Dez 2009 10:17

Colegas, saudações!

Meu aplicativo (feito em FW 2.4) possui uma interface que vai muito bem até a resolução de 800x600, porém, em resoluções maiores...

- Há como definir uma resolução de vídeo em que gostaria que seu aplicativo opere (por exemplo, sempre em 640x480), e mantê-la alheia ao do OS?
- Há alguma função que retorne a resolução de vídeo do usuário?

Grato.
"O que domina aos outros é forte; o que domina a si mesmo é poderoso." [ Lao-Tsé - séc VII AC]
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
Avatar de usuário

Dr.Microso
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 173
Data de registro: 12 Jan 2009 20:26
Cidade/Estado: Belo Horizonte, MG
Curtiu: 119 vezes
Mens.Curtidas: 5 vezes

Re: Resolução de tela: como definir/contextualizar do seu soft?

Mensagempor Vander » 11 Dez 2009 21:18

Olá;

nResHoriz := oWnd:nHorzRes() // retorna a resolucao horizontal
nResVert := oWnd:nVertRes() // retorna a resolucao vertical

Vander
HbMake v1.17
xHarbour build 0.99.70 Intl. (SimpLex)
Borland C++ 5.5.1
fivewin 6.12 (FREE)
Workshop 4.5
MEdit
Avatar de usuário

Vander
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 212
Data de registro: 23 Jul 2004 01:43
Cidade/Estado: João Monlevade - MG
Curtiu: 0 vez
Mens.Curtidas: 6 vezes

Re: Resolução de tela: como definir/contextualizar do seu soft?

Mensagempor rochinha » 01 Fev 2010 23:06

Amiguinho,

Em meu sistema faço assim:
...
   ResLargura := GetSysMetrics(0)   
   ResAltura  := GetSysMetrics(1)
   Resolucao  := alltrim(str(ResLargura))+'x'+alltrim(str(ResAltura))
   do case
      case Resolucao = "640x480"
           ? "Resolucao Impropria para trabalho"
           quit
      case Resolucao = "800x600"
           ResLargura := 800   
           ResAltura  := 600
      case Resolucao = "1024x768"
           ResLargura := 1024 // 800
           ResAltura  :=  768 // 600
      case Resolucao = "1280x1024"
           ResLargura := 1280 // 1024
           ResAltura  := 1024 // 768
   endcase
...


Após esta verificação, caso queira recuperar a ultima posição salva, use:
...
   TelaMTopo      := Val(VerifyINI( "PROGRAMA"  , "COORDT", "000"            , cPath+"seu.ini" ))
   TelaMEsque     := Val(VerifyINI( "PROGRAMA"  , "COORDL", "000"            , cPath+"seu.ini" ))
   ResAltura      := Val(VerifyINI( "PROGRAMA"  , "COORDH", str(ResAltura)   , cPath+"seu.ini" ))
   ResLargura     := Val(VerifyINI( "PROGRAMA"  , "COORDW", str(ResLargura)  , cPath+"seu.ini" ))
   ResAltura      := ResAltura  - TelaMTopo
   ResLargura     := ResLargura - TelaMEsque
...


Para abrir a janela principal, acrescente:
...
   ACTIVATE WINDOW oWnd MAXIMIZED VALID SalvaCoordenadas(oWnd) ; // Salva ultima coordenada antes de sair
                   oWnd:Move( TelaMTopo,TelaMEsque,ResLargura,ResAltura, .t. ) ; // Aqui a tela é reajustada
                   ON RESIZE SalvaCoordenadas(oWnd)  // Salva coordenadas após alterar posições da janela
...


Para que tudo funcione de forma adequada, acrescente as funções:
...
function SalvaCoordenadas(oWnd)
   VerifyINI( "PROGRAMA", "COORDT", GetWndRect(oWnd:hWnd)[1], cPath+"seu.ini", .t. )
   VerifyINI( "PROGRAMA", "COORDL", GetWndRect(oWnd:hWnd)[2], cPath+"seu.ini", .t. )
   VerifyINI( "PROGRAMA", "COORDH", GetWndRect(oWnd:hWnd)[3], cPath+"seu.ini", .t. )
   VerifyINI( "PROGRAMA", "COORDW", GetWndRect(oWnd:hWnd)[4], cPath+"seu.ini", .t. )
   return nil

function VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ )
   oIni := TIni():New( _inifile_ )
   if _grava_ = .t.
      oIni:Set( _section_, _entry_, _var_ )
   endif
   return oIni:Get( _section_, _entry_, _var_, _var_ )
...
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Re: Resolução de tela: como definir/contextualizar do seu soft?

Mensagempor Dr.Microso » 03 Fev 2010 10:39

Colegas, salve!

Legal Vander, não conhecia ainda este recurso.

Muito interessante o código Rochinha, bem funcional.
(bakana este seu novo avatar) .

Grato pela ajuda.
"O que domina aos outros é forte; o que domina a si mesmo é poderoso." [ Lao-Tsé - séc VII AC]
"É tipo uma Alquimia... Porções de código viram soluções que mutam-se fisicamente em sorrisos e outros, como o notebook que uso para escrever estas linhas..." dr.microso@hotmail.com
Avatar de usuário

Dr.Microso
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 173
Data de registro: 12 Jan 2009 20:26
Cidade/Estado: Belo Horizonte, MG
Curtiu: 119 vezes
Mens.Curtidas: 5 vezes




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 9 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