Gambas-it

Gambas3 => Programmazione => Topic aperto da: kicco - 19 Maggio 2016, 14:53:48

Titolo: [Risolto] Come limitare la lunghezza testo in una TextArea?
Inserito da: kicco - 19 Maggio 2016, 14:53:48
 :ciao:
Sto impiegando una TextArea per scrivere delle stringhe che, impiegando TextArea.Pos=0, pongo  in cima al testo.
Vorrei tenere solo le ultime 5 stringhe scartando le più vecchie (quelle in fondo al testo).
Avete idea di come posso fare?
 :ciao:
Titolo: Re:Come limitare la lunghezza testo in una TextArea?
Inserito da: vuott - 19 Maggio 2016, 15:16:57
Vorrei tenere solo le ultime 5 stringhe
Come distingui concettualmente nel tuo programma una stringa da un'altra ? Dal carattare "nuova riga a capo", oppure dal ritorno automatico a capo della stringa per la sua dimensione che supera la larghezza della TextArea ?
Titolo: Re:Come limitare la lunghezza testo in una TextArea?
Inserito da: kicco - 19 Maggio 2016, 16:00:11
Citazione
Come distingui concettualmente nel tuo programma una stringa da un'altra ?
Scrivo in questa modo:

TextArea1.text = Date & "  " & Time &  Chr(10) & TextArea1.text
TextArea1.Pos=0

 :ciao:
Titolo: Re:Come limitare la lunghezza testo in una TextArea?
Inserito da: vuott - 19 Maggio 2016, 16:41:39
...questo avviene all'interno dell'evento _Change() ?
Titolo: Re:Come limitare la lunghezza testo in una TextArea?
Inserito da: kicco - 19 Maggio 2016, 16:52:24
Citazione
...questo avviene all'interno dell'evento _Change() ?
no, perlomeno al momento no!
Sto monitorando dei dati su una seriale. Semplicemente in concomitanza con un tipo di evento particolare scrivo il dato in una TextArea (magari potrei usare un altro oggetto), ma per l'appunto vorrei mantenere memoria degli ultimi eventi.
 :ciao:
Titolo: Re:Come limitare la lunghezza testo in una TextArea?
Inserito da: vuott - 19 Maggio 2016, 17:05:09
Puoi usare una variabile vettoriale di tipo String[ ].

Faccio un esempio breve e semplicissimo:
Codice: [Seleziona]
Private ss As New String[]      ' Deve essere Globale !  '


Public Sub Button1_Click()

' Cancella il testo sinora presente nella "TextArea":'
    TextArea1.Clear
   
' Inserisce il nuovo testo all'interno del primo elemento (indice 0) del vettore di tipo String[ ].
' Inoltre, convertendo il risultato della funzione "Time" con la funzione "CStr()", ottieni anche un dettaglio al millisecondo !'
    ss.Add(CStr(Date) & "  " & CStr(Time) & Chr(10) & TextArea1.text, 0)
   
' Se sono state inserite oltre 5 stringhe, allora viene eliminata quella più vecchia,
' ossia quella posta nel 6° elemento (indice 5) della variabile vettoriale:
    If ss.Count > 5 Then ss.Remove(5, 1)

' Unisce in un'unica stringa le distinte stringhe poste nei 5 elementi del vettore.
' E' anche uno stratagemma (...ricordalo !) per ottenere il ritorno di una Stringa da un vettore di tipo String[ ].
' Mostra il risultato all'interno della "TextArea":
    TextArea1.text = ss.Join(Null, Null)

' Ci posizioniamo nuovamente in alto a sinistra della TextArea:'
    TextArea1.Pos = 0

End
Titolo: Re:Come limitare la lunghezza testo in una TextArea?
Inserito da: kicco - 19 Maggio 2016, 17:58:01
 :-*
Sei un mitooo, sei un mitooo!
 :) :) :) :) :) :) :) :)
Titolo: Re:Come limitare la lunghezza testo in una TextArea?
Inserito da: vuott - 19 Maggio 2016, 18:06:34
Sei un mitooo, sei un mitooo!
No, è che dovreste pensare un po' di più alle potenzialità dell'oggetto "vettore" in Gambas.   (http://forum.ubuntu-it.org/images/smilies/whistle.gif)
Titolo: Re:[Risolto] Come limitare la lunghezza testo in una TextArea?
Inserito da: kicco - 19 Maggio 2016, 19:47:09
 :-[