Italian Sapere la larghezza e l'altezza di un testo con un certo font

Vasmar

Member
Licensed User
Buonasera a tutti. 🙂
Sono nuovo in B4X ma ho una discreta esperienza in VB6.
Ho un problema sul quale mi sbatto da giorni, anche (confesso) cercando l'aiuto di IA.
Senza risultati apprezzabili. 😣
Come dice il titolo, avrei bisogno di una funzione alla quale passare un controllo (Button o Label o EditText) e sapere quali sono la larghezza e l'altezza massime di un testo, per farcelo entrare. Tutto ciò allo scopo di fare una routine per adattare la grandezza del testo alle dimensioni del controllo. Semplice, no?
Ebbene sembra che non ci sia un modo (funzionante) di farlo per un intervallo di font da 6 a 72.
Pensavo che, dato un font e un testo, fosse facile sapere quanto occupano in larghezza e altezza.
Aiuto! Dove devo andare a cercare? Cosa devo fare?
Grazie per i suggerimenti 🙏
 

Sagenut

Expert
Licensed User
Longtime User
Ti serve il B4XCanvas.
Ti lascio un esempio.
 

Attachments

  • TextSize.zip
    14 KB · Views: 41

Vasmar

Member
Licensed User
Accidenti, bastavano poche righe. Ho passato ore con Chatgpt e poi con Claude senza risultato. Grazie ancora.
Mi dice (dai log) "Larghezza testo 127". Sono pixel, immagino
Così mi dice quanto è larga e alta la scritta con quel font, perfetto, ma ora come faccio a sapere quali sono la larghezza e l'altezza giuste per quel certo controllo? In maniera che, se troppo grande, diminuisco il font e riprovo fino ad uscirne per dimensioni ok o per minimo raggiunto
 

Sagenut

Expert
Licensed User
Longtime User
Ho passato ore con Chatgpt e poi con Claude senza risultato.
A volte una chiacchierata con i membri del forum è ancora una buona scelta.
Se mai finiremo ognuno a sviluppare in silenzio con la propria IA di fiducia...... Sai che spasso.
Ma forse è lo scenario ideale per tanti professionisti.
 

Vasmar

Member
Licensed User
o_O
Sul tuo programma è tutto regolare. Ho provato a inserire quelle istruzioni sul mio programma ma segnala errore su Label1.Font (membro sconosciuto)
Se digito Label1. mi propone parole chiave diverse da quelle che propone nel tuo programma, e non c'è Font.
Poi ho visto che nel tuo programma Label1 è definita come B4XView (mentre su Designer è definita come Label 😳).
Nel codice devo definire Button, Label e EditText come B4View?
Perché? Qual è la differenza?
Dentro a Label.Font c'è il nome del font, per diminuire progressivamente la dimensione del testo agisco su Label1.TextSize?
Capisco che sono domande da principiante, 🤷‍♀️ ma per ora questo sono.
Grazie 🙏
 
Top