Clipper On Line • Ver Tópico - Redimensionamento automático

Redimensionamento automático

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Redimensionamento automático

Mensagempor JoséQuintas » 02 Dez 2020 11:24

No caso da GTWVG, o tamanho do fonte é a referência pra redimensionamento automático.
É que conforme altera o tamanho da janela, o tamanho do fonte é proporcional.
Então basta usar font.width e font.height

Existe alguma referência na hwgui que poderia ser usada?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Redimensionamento automático

Mensagempor asimoes » 02 Dez 2020 11:30

â–º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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Redimensionamento automático

Mensagempor alxsts » 02 Dez 2020 15:53

Olá!

Tanto Dialogs como Windows HwGUI possuem o método ON SIZE. Tente colocar um code block neste método que troque a fonte (A fonte. O fonte, para mim, é o código fonte de um programa)
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Redimensionamento automático

Mensagempor JoséQuintas » 02 Dez 2020 18:06

Seria um esquema parecido como ANCHOR.

Eu não tinha pensado nisso, mas.... se fizer o resize automático.... quem fez rotina de resize pode ter problemas....

Não tem como não dizer isso, mas... parecido com GTWVG !
Fica super-hyper-moleza.
Quem quiser pode comprovar

1) Precisa DOIS números, fator de altura e fator largura

Bom... ao redimensionar, mover, etc. a Main avisa todas as filhas pra se repintarem... e assim por diante.
Nessa hora, é só repassar o fator de conversão
A janela pode usar ( tamanho * fator ) ao invés de apenas o tamanho.
Se for 1, não muda nada, se for outro valor, vai ser proporcional.
Pronto. resolvido totalmente o redimensionamento automático.
Totalmente MESMO.

2) O que falta: os dois números do fator.

Podemos fazer igual console/GTWVG, ou igual GUI, tanto faz.

Vamos fazer igual GUI primeiro, partindo do tamanho do desktop e da janela.

Digamos de 1024 X 768 pra 1920 X 1080, numa tela 3840 x 2160
A main começa considerando como referência pra largura 0.266 (1024 / 3840 ), a o novo tamanho vai ser 0.5 ( 1920 / 3840 )
0.5 / 0.266, Isso dá um fator de conversão de 1.879 pra largura

Agora igual console, considerando 25 linhas.
1024 / 25 = 40.96 pixels pra altura do fonte
1920 / 25 = 76.80 pixels pra altura do fonte
76.80 / 40.96 = 1.875

vamos a prova:

1024 x 1.879 = 1924
1024 x 1.875 = 1920

os dois cálculos podem ser considerados iguais, variação de 4 pixels, mas por coincidência, por caracteres ficou exatamente certo.
E seria a mesma coisa pra largura.

A Main precisa "se lembrar" do tamanho anterior, comparar com o atual e repassar para as filhas o fator de conversão.
Ou as filhas pegam diretamente da janela mãe.
E as filhas podem sempre usar tamanho * fator, desde sempre, sem o usuário precisar fazer mais nada.

Ta aí... redimensionamento automático, usando apenas linhas x colunas e tamanho do fonte !!!
Quando eu digo que a resposta tá no Harbour, vocês não acreditam... kkkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Redimensionamento automático

Mensagempor JoséQuintas » 02 Dez 2020 19:07

Pensando bem..... talvez...
Porque o fator de conversão precisaria ser usado pra TUDO SEMPRE.

No caso do console, SEMPRE usa o font.size e font.width pra tudo.
A GT lembra do tamanho da janela em caracteres, e tem lá salvo.
No caso da GUI.... ela terá que sempre lembrar dos valores originais, e usar convertido nas rotinas Windows.

Resta a opção de, após o resize completo, a Main resetar o valor pra 1, pra começar tudo de novo a partir do novo tamanho.

Mais prático fazer igual console de vez, ter dois valores: o referência e o verdadeiro.
No resize, usa o referência para o cálculo, atualizando o verdadeiro, antes de qualquer outra operação.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Redimensionamento automático

Mensagempor JoséQuintas » 02 Dez 2020 19:32

Ajudem a pensar... talvez dê sim, quase isso que mencionei.

A mãe redimensiona, e repassa o fator para as filhas. a mãe vai precisar lembrar o anterior e atual.
As filhas ao receberem o fator, se redimensionam, repassam pras suas filhas e resetam o valor.
O próprio fator acaba sendo o sinal de que precisa redimensionar primeiro.
redimensionou, volta pra 1.
Nem precisa lembrar do original, porque recebeu o fator tá no original, e após o cálculo não interessa mais o anterior, e nem o fator.

Por um instante me veio a dúvida se isso funciona minimizado....
Mas se tá minimizado, o usuário não está mexendo na janela... kkkkk

Ah sim... os comentários eram pra fazer o resize inicial, aqui estou falando sobre o resize permanente, durante toda vida útil do aplicativo.

Nesse caso, melhor ter o referência, de repente usuário reduz a janela pra 10 pixels, e depois disso nenhuma conta vai consertar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para HwGui

Quem está online

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