Come si può fare a vedere la larghezza dei caratteri?
Ho provato a scriverli un una label e poi prendere la proprietà
width , ma non si riesce perché sono sempre uguali.
Grazie
Tommaso
> Avrei bisogno di fonts di caratteri a larghezza fissa,
> sapete dirmi dove posso trovarne o quali sono?
Spero che sia chiaro che "a larghezza fissa", o monospaziati (monospaced)
si riferisce al fatto che ogni carattere occupa in larghezza lo stesso
spazio.
Sono monospaced, per esempio: i Courier, i Monotype, i Terminal, i System,
tra quelli installati con Windows.
> Come si può fare a vedere la larghezza dei caratteri?
> Ho provato a scriverli un una label e poi prendere la proprietà
> width , ma non si riesce perché sono sempre uguali.
La larghezza del carettere dipende dalla FontSize impostata. Nulla a che
vedere con la Width, che è la larghezza della Label.
--
Dr. Atlantis
Aggiungerei Andale, che viene con IE, se non ricordo male (nel caso
serva, guglare per "web core fonts") e Lucida Console, che mi pare
sia solo su W2K.
>> Come si può fare a vedere la larghezza dei caratteri?
>> Ho provato a scriverli un una label e poi prendere la proprietà
>> width , ma non si riesce perché sono sempre uguali.
> La larghezza del carettere dipende dalla FontSize impostata. Nulla a che
> vedere con la Width, che è la larghezza della Label.
Aggiungerei due particolari che all'OP potrebbero interessare:
il primo è che con una CommonDialog è possibile selezionare
solo le font monospaziate usando il flag cdlCFFixedPitchOnly
CommonDialog1.Flags = cdlCFBoth Or cdlCFFixedPitchOnly
CommonDialog1.ShowFont
l'altro è che può verificare la larghezza in stampa o in video
di una stringa con la proprietà .StringWidth della Printer,
di un form o di una PictureBox.
Bye, G.
Scusa ma cosa c'entra la fontsize.
Per una font e per un dato fontsize io chiedo che la ',' sia uguale
alla'O' e a tutti gli altri caratteri della stessa font ossia occupino
tutti la stessa larghezza, è chiaro che se cambio il fontsize avrò
larghezze diverse ma sempre tutte uguali per tutti i caratteri.
Non so se mi sono spiegato bene.
Alla luce di questo chiarimento la risposta è sempre la stessa?
ciao, Tommaso
>
> --
> Dr. Atlantis
Ho fatto una routine di formattazione del testo da stampare, e il
linea di massima funziona, la c'è qualche piccola differenza crdo
dovuta alla difefrente larghezza dei vari caratteri, ma sempre della
stessa font e della stessa fontasize è ovvio.
> Bye, G.
> Scusa ma cosa c'entra la fontsize.
> Per una font e per un dato fontsize io chiedo che la ',' sia uguale
> alla'O' e a tutti gli altri caratteri della stessa font ossia occupino
> tutti la stessa larghezza, è chiaro che se cambio il fontsize avrò
> larghezze diverse ma sempre tutte uguali per tutti i caratteri.
> Non so se mi sono spiegato bene.
>
> Alla luce di questo chiarimento la risposta è sempre la stessa
La tua domanda era: "Come si può fare a vedere la larghezza dei caratteri?"
Quella è la risposta. La FontSize determina larghezza ed altezza dei
caratteri.
Se vuoi sapere qual è la larghezza di un carattere con una nota FontSize,
puoi scrivere usare QUEL carattere come parametro stringa del metodo
TextWidth di un PictureBox impostando correttamente la FontSize. Se il
font è monospaziato, sarà uguale per qualsiasi carattere.
Il metodo funziona con le stringhe per sapere quale sarà la larghezza
della stringa stampata, nell'unità di misura determinata da ScaleMode. Il
tasto F1 darà molti altri dettagli.
--
Dr. Atlantis
OK, ho capito.
grazie.
Un altro problemino:
Una stringa di testo misura px 3900 da inserire esattamente in uno
spazio di px 4000.
Se un carattere vuoto misura px 45 ne inserisco 2 tra le parole
e il testo diventa di px 3990
per avere una giustificazione corretta devo ampliare il tetso di 10 px
come posso fare?
ciao
tommaso