Clipper On Line • Ver Tópico - HMG 3.4.4 - Auto Ajuste de várias telas e componentes
Mudar para estilo Clássico
Projeto MiniGui - Biblioteca visual para Harbour/xHarbour
Postar uma resposta

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

13 Ago 2017 15:56

Boa Tarde !

Precisei do recurso de ajustar tela e componentes no sistema que estamos desenvolvendo na empresa que trabalho, recorri ao velho e bom forum, mas o que encontrei foram exemplos para uma unica tela (claro que poderia ser retrabalhado para mais...rs) com tal problema reiniciei um projeto aqui do forum de autoria do Pablo, cheguei no resultado ainda não é 100% o que esperava mas tá funcionando, espero que seja de valia para outros.

Abraço.
Luiz
Anexos
testes.zip
Projeto com HMG 3.4.4 UNICODE/ANSI
(37.93 KiB) Baixado 250 vezes

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

25 Jan 2018 13:55

Luiz, ficou muito bom, eu fiz isso uma fez na tela principal para se adequar a uma tela de 15" notebook e de monitores de 23" ou maiores, dá um trabalho da preula.

Abraços.

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

31 Jan 2018 20:19

luiz antonio da silva escreveu:espero que seja de valia para outros.

OLÁ Luiz, não testei ainda, mas, vou testar o mais breve possível, mas, uma pergunta "tola": a compilação é via IDE/HMG?

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

31 Jan 2018 21:28

Legal.
Uma rotina que dá pra usar um recurso que só o Harbour tem !!!
Já testei aqui e funciona.

Código:
For EACH cType, cName, nNumber IN _HMG_SYSDATA[ 1 ], _HMG_SYSDATA[ 2 ], _HMG_SYSDATA[ 4 ]
   k := cType:__EnumIndex
   IF nNumber = NWIND
      If cName<>"Message" .AND. cType <> "STATUSBAR" .AND. LEN(cName) > 0 .AND. ;
            !Empty( cName ) .And. !( cType $ "MENU,HOTKEY,TOOLBAR,MESSAGEBAR,ITEMMESSAGE,TIMER" )
         _ctrl:= nNumber
         IF getproperty(hwnd,cName,"FONTsize")=0
            _fnt:=(100/hd_ini)*10
         ELSE
            _fnt:=(100/hd_ini)*getproperty(hwnd,cName,"FONTsize")
         ENDIF
         _row:=(100/hd_ini)*getproperty(hwnd,cName,"row")
         _col:=(100/wd_ini)*getproperty(hwnd,cName,"col")
         _wid:=(100/wd_ini)*getproperty(hwnd,cName,"width")
         _hei:=(100/hd_ini)*getproperty(hwnd,cName,"height")

         RT:=AScan(_metrics, { |x| x[2] == k })
         if rt==0
            AADD(_METRICS,{ hwnd,k,_fnt,_row,_col,_wid,_hei,_ctrl,cName})
         endif
      ENDIF
    Endif
Next


Só achei estranho não aceitar cType:__EnumIndex direto no codeblock....

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

31 Jan 2018 21:43

e descobri coisa nova no fonte, não sei se foi proposital

Código:
               IF hwnd,_HMG_SYSDATA[4][K] > 0


Código:
IF 5, 4 > 3
   ? "os dois são maiores"
ENDIF

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

01 Fev 2018 19:31

show show

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

13 Fev 2018 20:48

gente acabei de testar!
que perfeição do AUTO ajuste viu!

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

21 Fev 2018 08:17

Bom dia !

Que bom que gostaram, foi preciso usar uma OG (Orientação a Gambiarra...kkkk) pois ainda não sei quais são ou se tem algum _HMG_SYSDATA que me retornaria os controles de uma tela específica dentre várias ativas...mas vamos que vamos...rsrs

* Alguém teria uma lista dos _HMG_SYSDATA e sua funcionalidade ?

Abraço.
Luiz

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

21 Fev 2018 11:05

Offtopic: Voltando ao assunto, achei curioso isso:

Compila, mas dá o seguinte erro na execução: Erro nos parƒmetros: =
Código:
IF 5, 4 = .T.
   ? "Estranho"
ENDIF

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

21 Fev 2018 11:08

Tá comparando número com verdadeiro/falso.

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

21 Fev 2018 11:19

Sim,

Isso eu entendo perfeitamente, o que não poderia acontecer é a compilação, enfim, esse tipo de erro pode passar por distração.

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

21 Fev 2018 11:21

Correção:
Só aceita com -w0 -es0
Xi... perigoso isso.....

Código:
PROCEDURE Main

   IF 3, 4 = 5
      ? "= 5"
   ENDIF
   IF 3, 4 != 5
      ? "!= 5"
   ENDIF
   IF 3, 4 > 2
      ? "> 2"
   ENDIF
   IF 3, 4 > 5
      ? "> 5"
   ENDIF
   IF 5, 4 > 3
      ? "teste"
   ENDIF

   RETURN


-w0 -es0

d:\temp>test

!= 5
> 2


-w3 -es2

Compiling 'test.prg'...
test.prg(3) Warning W0027 Meaningless use of expression 'Numeric'
test.prg(6) Warning W0027 Meaningless use of expression 'Numeric'
test.prg(9) Warning W0027 Meaningless use of expression 'Numeric'
test.prg(12) Warning W0027 Meaningless use of expression 'Numeric'
test.prg(15) Warning W0027 Meaningless use of expression 'Numeric'

HMG 3.4.4 - Auto Ajuste de várias telas e componentes

11 Jul 2018 23:07

Boa Noite !

Terminei algumas atualizações para o Auto-Ajuste, peguei algumas informações da pasta samples e adaptei para tentar simplificar.

segue o exemplo com as telas do primeiro modelo.
Anexos
testes.rar
Auto-Ajuste simplificado
(1.25 MiB) Baixado 180 vezes
Postar uma resposta