Newsgroup: it.comp.appl.access
Titolo: check se testo inserito è tutto visibile in text box

Casella di testo associata a un campo con 2000 caratteri nel quale sono 
inserite delle note.
 
Nella form la casella mostra una decina di righe.
Il cliente mi dice "vorrei capire se oltre le 10 righe visibili c'è del 
altro testo, SENZA dover cliccare nella casella e scrollare il testo"
 
La domanda è quindi: c'è modo di capire se il testo visibile nella 
casella è tutto o se c'è altro non visibile?
 
Un idea che mi viene è quella di usare un font a spaziatura fissa
sapendo quanti caratteri mi stanno in larghezza e sapendo quante righe 
in altezza con due divisioni otterrei il n° di righe del testo da 
confrontare con quelle massime della casella di testo.
Dovrei inoltre contare quanti . seguiti da a capo per gestire righe 
spezzate. Temo che se però uno modifica la dimensione caratteri in 
windows vada tutto in malora
 
altre idee/soluzioni?
BFS

 
 
l'unica che mi viene in mente è di mettere il focus nel campo in questione 
(p.e. all'apertura) in modo che venga visualizzata la barra di scorrimento 
se il testo va oltre il limite
 
meno tecnico è di dimensionare la casella in modo che l'ultima riga 
visualizzata sia tagliata a metà ;) ma resta il dubbio se fosse un "doppio 
a capo" (e non ci si accorge)
 
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........


Quella del Font a spaziatura fissa è sicuramente la soluzione più rapida, purtroppo non sarà sempre perfetta, ma credo che potrai sbagliare di 1 Riga al massimo... ed io la riterrei accettabile.
 
La soluzione tecnicamente più tecnica richiede un barile di API con cui ricavare lo spazio occupato dal TESTO in H e L, dove tu hai L probabilmente fissa e ricavi H in Pixels e poi converti in TWIPS, quindi se Twips(Font)>Twips(TextBox) allora hai altra roba da vedere... riesci anche a sapere quante righe in più volendo.
Questo approccio è pesante, io lo avevo usato per fare il RESIZE automatico delle TextBox svariati anni fa, trovi eventualmente buona parte del codice nei Demo di Lebans, ma .
 
Esistono tuttavia 2 metodi migliori in termini di complessità:
1) Membro Nascosto [WizHook], quì il Link più chiaro da testare
http://www.mvp-access.es/juanmafan/wizhook/twipsfromfont.htm
 
 
magari ti è utile anche questo:
 
https://www.accessforums.net/showthread.php?t=75572&page=5
 
 
2) Usare un Report, che, contrariamente alla Form, consente di determinare la dimensione del Testo, purtroppo devi aprire in modalità Hidden il report passare il testo ed il FONT TYPE/SIZE/BOLD ecc... e con
TextHeight e TextWidth trovi le dimensioni, in sostanza se imposti il FONT del Report Runtime come il Font da analizzare poi usanto le proprietà indicate sai la Larghezza e l'Altezza...
 
Quì trovi l'esempio:
https://docs.microsoft.com/en-us/office/vba/api/access.report.textheight
 
 
Prova a verificare se, queste 2 ultime soluzioni possono essere meglio della tua prima, secondo me non ne vale la pena... ma magari ha un senso.
 
@Alex

 
 
c'è di mezzo lo zoom dei caratteri impostati via windows e la 
risoluzione..non è affidabile come soluzione
 
BFS


grazie provo a studiarmi la cosa
 
BFS