Autore Topic: [Risolto] Come limitare la lunghezza testo in una TextArea?  (Letto 446 volte)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
 :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:
« Ultima modifica: 19 Maggio 2016, 17:58:26 da kicco »
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Come limitare la lunghezza testo in una TextArea?
« Risposta #1 il: 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 ?
« Ultima modifica: 19 Maggio 2016, 15:18:26 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Come limitare la lunghezza testo in una TextArea?
« Risposta #2 il: 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:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Come limitare la lunghezza testo in una TextArea?
« Risposta #3 il: 19 Maggio 2016, 16:41:39 »
...questo avviene all'interno dell'evento _Change() ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Come limitare la lunghezza testo in una TextArea?
« Risposta #4 il: 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:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Come limitare la lunghezza testo in una TextArea?
« Risposta #5 il: 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
« Ultima modifica: 19 Maggio 2016, 17:26:38 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:Come limitare la lunghezza testo in una TextArea?
« Risposta #6 il: 19 Maggio 2016, 17:58:01 »
 :-*
Sei un mitooo, sei un mitooo!
 :) :) :) :) :) :) :) :)
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Come limitare la lunghezza testo in una TextArea?
« Risposta #7 il: 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.   
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re:[Risolto] Come limitare la lunghezza testo in una TextArea?
« Risposta #8 il: 19 Maggio 2016, 19:47:09 »
 :-[
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)