Página 1 de 1

Redimensionamento automático

Enviado: 02 Dez 2020 11:24
por JoséQuintas
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?

Redimensionamento automático

Enviado: 02 Dez 2020 11:30
por asimoes

Redimensionamento automático

Enviado: 02 Dez 2020 15:53
por alxsts
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)

Redimensionamento automático

Enviado: 02 Dez 2020 18:06
por JoséQuintas
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

Redimensionamento automático

Enviado: 02 Dez 2020 19:07
por JoséQuintas
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.

Redimensionamento automático

Enviado: 02 Dez 2020 19:32
por JoséQuintas
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.