• 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Ridimensionare una GUI correttamente con caratteri grandi
#1
Avete mai avuto il problema di rispettare la correttezza e le proporzioni delle vostre GUI quando l'utente ha impostato una dimensione dei caratteri > 100% in Windows? Questo avviene quando si usano risoluzioni elevate su monitor che non sono sufficientemente grandi, oppure se l'utente ci vede male! Capita molto spesso, ultimamente, con i portatili: tutti gli schermi sono almeno in FHD, salvo poi avere dimensione di 15" e quindi la dimensione dei caratteri è impostata almeno al 120% se non al 150%, altrimenti i caratteri sarebbero troppi piccoli. Ma torniamo al problema.

La proprietà Scaled dell form è ovviamente già impostata a True. Così facendo va tutto meravigliosamente bene quando è Delphi a sistemare le cose (uso la CE di Rio 10.3, prima con D2010 non avveniva un corretto ridimensionamento dei caratteri e questi venivano renderizzati sfocati). Quindi al momento della creazione dei controlli (form compreseE) ci pensa Delphi. Il problema è quando vogliamo, sempre a run-time, modificare la posizione dei controlli oppure la dimensione degli stessi, anche le form, ad es. aggiungendo 100 px in altezza. A quel punto se sommo 100 (Self.Height := Self.Height + 100) funziona quando i caratteri sono impostati al 100%, ma se sono a dimensioni maggiori ecco che la form si ingrandisce sì, ma non abbastanza, come se a 100 dovessi aggiungere un fattore moltiplicativo, che però non so come calcolare per far sì che sia giusto in ogni situazione, a qualunque impostazione dei caratteri impostata.

Ci dev'essere una proporzione da applicare per ottenere il numero di pixel corretto da sommare… Se con caratteri 100% voglio aggiungere 100 px, con caratteri 120% devo forse aggiungere 120px? A intuito, matematicamente, sembrerebbe di sì… Quindi la proporzione sembrerebbe essere:

100 (% dimensione caratteri) : 100 (pixel in questa modalità) = 120 (% dimensione caratteri) : x (pixel da utilizzare a run-time)


Ma come faccio a conoscere 120 ? Cioè la % impostata dall'utente in Windows? Questo è il dilemma. Huh
  Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)