![]() |
Ridimensionare una GUI correttamente con caratteri grandi - Versione stampabile +- Forum Delphi Club Italia (https://delphiclubitalia.it/forum) +-- Forum: Parliamo di Delphi (https://delphiclubitalia.it/forum/forumdisplay.php?fid=1) +--- Forum: Sviluppo VCL (https://delphiclubitalia.it/forum/forumdisplay.php?fid=13) +--- Discussione: Ridimensionare una GUI correttamente con caratteri grandi (/showthread.php?tid=292) |
Ridimensionare una GUI correttamente con caratteri grandi - Silver Black - 01-14-2019 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. ![]() |