Newsgroup: it.comp.lang.visual-basic
Titolo: Tasto INVIO

Ho un controllo TextBox, impostato a Multiline = True. Lo utilizzo per
scrivere ad esempio delle note.
Debbo stampare il testo contenuto in questo controllo e dovrei andare a
cercare, se possibile, gli invii presenti nel testo digitato. Questo perchè
altrimenti se viene scritto il testo di continuo, poi all'atto della stampa,
il testo potrebbe superare il margine destro senza andare a capo.
Potendo contare il numero degli invi presenti (utilizzando ovviamente un
carattere proporzionale), potrei contare i caratteri tra un invio e l'altro
e se questi caratteri sono superiori al numero dei caratteri massimo per
riga effettuerò un troncamento.
Come posso identificare questo carattere nel testo digitato nel controllo
TextBox?
Oppure avete un'altra soluzione migliore, a me al momento non ne vengono
altre.
Grazie infinite in anticipo.

 controllo TextBox?
Nella stringa contenuta in Textbox.text dovresti trovare la coppia di
caratteri chr(13) e chr(10) in corrispondenza di dove è stato premuto invio.
Salutoni
Sergio

 ha scritto nel messaggio
news:b8tfqq$d8ukp$1...@ID-173193.news.dfncis.de...


     MsgBox "Caratteri Invio n°" & c
Carissimo roberto, ti invito a riflettere sul fatto che un carattere non
sarà mai uguale a due caratteri.
Prova a studiare la funzione split
dim a as variant
a = split(me.txtnota.text, vbcrlf)
e guarda da quanti elementi è costituito il vettore restituito:
msgbox ubound(a)
Salutoni
Sergio

 funziona!!!!
Se rileggi il codice che hai scritto vedrai che suona come:
"Se UN carattere in posizione x e' uguale a DUE caratteri allora..."
che naturalmente non puo' mai verificarsi.
Per fare un conteggio di caratteri invio puoi semplicemente sostituire con
If Mid(Me.txtNota.Text, j, 1) = vbCr 'cioe' 13, il primo della coppia
in generale, per il tuo problema di stampa, puoi provare con la funzione
Split, che usato con il parametro opportuno scompone il testo in un array
con i vari paragrafi, che puoi quindi stampare singolarmente.
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

[Luca Dormio] scrisse:
(snip)
Spiacente, sono arrivato prima io ;-)
Salutoni
Sergio

 Spiacente, sono arrivato prima io ;-)
LOL :-)
Comunque in entrambi i casi, se l'andata a capo è stata fatta per
word-wrapping anziche inserendo (manualmente o da codice)
un Invio, la riga non viene spezzata... io preferisco leggere il testo
contenuto nella TextBox direttamente come è visualizzato, riga
per riga con la SendMessage.
Bye, G.

 per riga con la SendMessage.
Signor pescatore dei miei stivali (;-) ), le ricordo che il nostro op ha
esplicitamente parlato del tasto invio, ed in tal ottica gli è stato
risposto.
Sul modo barbaro da lei utilizzato per andare a leggere i contenuti delle
text box multirighe, avrei poi molto da ridire...
Scherzi a parte....
Io preferisco leggere le righe separate dai ritorni a capo espliciti, poi,
se per esigenze di stampa sono troppo lunghe, spezzo ulteriormente. Di quali
e quanti sono i word wrap della text box non mi interesso assolutamente.
Salutoni
Sergio

 e quanti sono i word wrap della text box non mi interesso assolutamente.
Certo, esigenze diverse, soluzioni diverse :-). Io preferisco sfruttare
il word wrap fatto dalla textbox, e così evito di dovermi rifare gli stessi
calcoli già fatti dal sistema.
Bye, G.

 stessi calcoli già fatti dal sistema.
Perchè parti dal presupposto (probabilmente da te imposto) che le dimensioni
dell'input coincidano con quelle dell'output. Di solito, se mi accorgo di
queste cose, e non sono in un momento di pigrizia totale, tendo ad evitare
questi legami.
Salutoni
Sergio

 [Paperino] scrisse:

Pensa che in un caso ho fatto il contrario, tempo fa... a seconda
dello spazio di stampa disponibile in pagina, ridimensionavo la
TextBox, poi stampavo quello che la TB visualizzava ;-).
Che poi è il consiglio che arriva dalla MS a proposito del bug
della RichTextBox...
Un Paperino che tira fuori gli scheletri dall'armadio.

 Un Paperino che tira fuori gli scheletri dall'armadio.
Uhm... quale scheletro?
Me lo dici tu o devo andare di google?
Salutoni
Sergio

 la "variabile indipendente" non modifica il concetto.
Beh, _quel_ caso specifico doveva essere proprio fatto così,
era uno dei requisiti. In generale sono d'accordo con te.
Bye, G.

 era uno dei requisiti. In generale sono d'accordo con te.
scusate se cerco di sterzare il 3ad un po OT ^_^;
sapete che farebbe il gigetto vostro ? (dai prendetemi come mascotte visto
che il wodkino e' sparito)
io leggerei la stringa, gli tolgo i vbcrlf (non tutti , solo le singole
occorrenze in modo da tenere e gestire gli spazi tra righe) e poi all'atto
dela stampa passo la stringa e spezzo in base all'uotput , si sa che nelle
Tbox multiline a volte si usa l'ivio a volte ci si accontenta del wordwrap !
Che me dite ?
-- 
<Gigio2K>
Sito Comune
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

 Che me dite ?
Che se uno ci vuole mettere apposta degli invii per andare a capo,
così glielo impedisci. :-P
Bye, G.

 cosě glielo impedisci. :-P
bhe bisogna andare in contro a compromessi , io toglierei solo 1 [cr][lf]
per volta quindi se uno mi inserisce 2 invii di fila io tolgo solo il primo
lasciando il secondo per andare a capo cmq ...
Poi bisogna vedere chi ha la priorita' , se l'output , la maschera di input
, l'utilizzatore ecc...
Se nella app c'e' poco spazio per rappresentare l'uotput su stampa col tuo
metodo come faresti ? Ti tocca dimensionare il textbox di inserimento +
grande del form con le scroll bar oppure allargare la form per far spazio
alla textbox ... bho ! Ci saranno minimo un centinaio di strade diverse per
altrettanti bisogni diversi !
