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

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

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

Mensagem por luiz antonio da silva »

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 276 vezes
HMG 3.4.4 - SQL SERVER - ORACLE
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

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

Mensagem por NiltonGM »

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.
Nilton Medeiros
nilton@sistrom.com.br
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

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

Mensagem por microvolution »

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?
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem por JoséQuintas »

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

Código: Selecionar todos

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....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem por JoséQuintas »

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

Código: Selecionar todos

               IF hwnd,_HMG_SYSDATA[4][K] > 0

Código: Selecionar todos

IF 5, 4 > 3
   ? "os dois são maiores"
ENDIF
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

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

Mensagem por microvolution »

show show
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

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

Mensagem por microvolution »

gente acabei de testar!
que perfeição do AUTO ajuste viu!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
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

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

Mensagem por luiz antonio da silva »

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 - SQL SERVER - ORACLE
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

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

Mensagem por asimoes »

Offtopic: Voltando ao assunto, achei curioso isso:

Compila, mas dá o seguinte erro na execução: Erro nos parƒmetros: =

Código: Selecionar todos

IF 5, 4 = .T.
   ? "Estranho"
ENDIF
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem por JoséQuintas »

Tá comparando número com verdadeiro/falso.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

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

Mensagem por asimoes »

Sim,

Isso eu entendo perfeitamente, o que não poderia acontecer é a compilação, enfim, esse tipo de erro pode passar por distração.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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

Mensagem por JoséQuintas »

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

Código: Selecionar todos

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'
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
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

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

Mensagem por luiz antonio da silva »

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 195 vezes
HMG 3.4.4 - SQL SERVER - ORACLE
Responder