"Andare a capo" in un oggetto di testo

Da Gambas-it.org - Wikipedia.

Per far andare a capo su una nuova riga il testo all'interno di un oggetto di testo, esistono vari modi:

- \n
- gb.NewLine
- chr(10)
- \x0A
- gb.Lf
- vettore_Byte.ToString() [Nota 1]


Esempio con una Label:

Public Sub Button1_Click()

 Dim bb As Byte[] = [10]

 Label1.Text = "Questa è la\nprova 1" & gb.NewLine & "prova 2" & Chr(10) & "prova 3\x0Aprova 4" & gb.Lf & "prova 5" & bb.ToString(0, 1) & "prova 6"

End

Il risultato nella Label sarà il seguente:

Questa è la
prova 1
prova 2
prova 3
prova 4
prova 5
prova 6


Ritorno a capo in un MessageBox

Per introdurre in generale nell'oggetto MessageBox il comando “a capo” in una riga, usare il carattere Chr(10):

Message.Info("Prima linea " & Chr$(10) & "Seconda Linea")

oppure il carattere escape \n

Message.Info("Prima linea\nSeconda Linea")

oppure il codice html <BR>

Message.Info("Prima linea<BR>Seconda Linea")

oppure gb.newline

Message.Info("Prima linea" & gb.newline & "Seconda Linea")

oppure il carattere escape esadecimale "\x0A":

Message.Info("Prima linea\x0ASeconda Linea")

oppure, volendo, è possibile utilizzare un vettore di tipo Byte[] contenente un valore uguale a 10

Dim bb As Byte[] = [&0A]

Message.Info("Prima linea" & bb.ToString() & "Seconda Linea")

Avremo sempre nella finestra del MessageBox:

Prima Linea
Seconda Linea

I suddetti comandi possono essere anche usati contestualmente, se il progetto ha attivati i componenti gb.gui o gb.gtk.

Se si intende, invece, utilizzare il componente gb.qt4, bisogna ricordare che i comandi "\n", "Chr$(10)" e "gb.newline" sono attualmente incompatibili con la presenza anche del codice html "<BR>".
Se infatti saranno utilizzati insieme:

Message.Info("Prima linea<BR>Seconda Linea\nTerza Linea")

si otterrà nella finestra del Message un risultato diverso da quello atteso:
Prima Linea
Seconda LineaTerza Linea


Si deve precisare che più in generale, con il componente gb.qt4 attivo, non è ammessa la compresenza di qualunque codice html con i predetti comandi per andare a capo: "\n", "Chr$(10)" e "gb.newline" .

Andare a capo negli oggetti di testo con proprietà che supportano il codice HTML

Invece, quando si usano le proprietà degli oggetti di testo che supportano il codice html, si deve utilizzare il codice <BR>. [Nota 2]

Esempio con una TextLabel:

Public Sub Button1_Click()

 TextLabel1.Text = "Questa è<BR>l'unica prova."

End

Nella TextLabel avremo:

Questa è
l'unica prova.


Così pure con la proprietà .RichText della TextEdit si utilizzerà il tag <BR> dell'HTML. Però se con la TextEdit si usa invece la proprietà .Text (che non supporta il protocollo HTML), si utilizzeranno nuovamente i comandi:

  • \n
  • Chr(10)
  • gb.NewLine
  • \x0A
  • gb.Lf
  • vettore_Byte.ToString()



Note

[1] Per andare a capo, potrà essere utilizzato anche il metodo .ToString() dei vettori di tipo Byte[] ovviamente con il valore 10.

[2] Vedi nota per il MessageBox.