Differenze tra le versioni di "Scritta scorrevole"
(Nuova pagina: Gli esempi qui riportati sono estratti da interventi di vari iscritti al Forum riguardanti il medesimo argomento. 1° esempio (prevede la presenza dell'oggetto speciale ''Timer''): ...) |
|||
(25 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | + | Riportiamo qui alcuni esempi per ottenere una scritta scorrevole. <SUP>[[[#Note|nota 1]]]</sup> | |
− | |||
− | + | ==Con le funzioni di Gambas== | |
− | Titolo As String | + | '''1°''' esempio (prevede la presenza dell'oggetto speciale ''Timer''): |
+ | Private Titolo As String = "Questa e' una stringa scorrevole" | ||
+ | |||
+ | Public Sub Button1_Click() | ||
− | + | Titolo &= String(TextBox1.W \ TextBox1.Font.TextWidth(" "), " ") | |
− | + | Timer1.Delay = 100 | |
− | + | Timer1.Start | |
− | + | End | |
− | + | Public Sub Timer1_Timer() | |
Titolo = Mid(Titolo, 2) & Left(Titolo, 1) | Titolo = Mid(Titolo, 2) & Left(Titolo, 1) | ||
Riga 21: | Riga 23: | ||
TextBox1.Text = Titolo | TextBox1.Text = Titolo | ||
− | '''End''' | + | End |
+ | La velocità di scorrimento della scritta è determinata dalla Proprietà ".Delay" del ''Timer''. | ||
+ | |||
+ | |||
+ | '''2°''' esempio: | ||
+ | Private scorre As String = "Questa stringa scorre" | ||
+ | Private c As Short | ||
+ | |||
+ | |||
+ | Public Sub Form_Open() | ||
+ | |||
+ | Timer1.Delay = 100 | ||
+ | Timer1.Start | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub Timer1_Timer() | ||
+ | |||
+ | Inc c | ||
+ | Label1.Text = Mid(scorre, c, Label1.W) | ||
+ | If c > Len(scorre) Then c = 0 | ||
+ | |||
+ | End | ||
+ | oppure lungo tutto il Controllo di testo utilizzato: | ||
+ | Private Label1 As Label | ||
+ | Private TESTO As String = <FONT Color=darkorange>Space</font>(100) & "Testo che scorre" | ||
+ | Private Tempus As Timer | ||
+ | Private c As Short | ||
+ | |||
+ | Public Sub _new() | ||
+ | |||
+ | With Me | ||
+ | .W = 300 | ||
+ | .H = 100 | ||
+ | .Arrangement = Arrange.Fill | ||
+ | End With | ||
+ | Label1 = New Label(Me) | ||
+ | |||
+ | End | ||
+ | |||
+ | Public Sub Form_Open() | ||
+ | |||
+ | With Tempus = New Timer As "Tempus" | ||
+ | .Delay = 50 | ||
+ | .Start | ||
+ | End With | ||
+ | |||
+ | End | ||
+ | |||
+ | Public Sub Tempus_Timer() | ||
+ | |||
+ | Inc c | ||
+ | Label1.Text = Mid(TESTO, c, Label1.W) | ||
+ | If c > Len(TESTO) Then c = 0 | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | '''3°''' esempio (testo che scorre nella console dell'IDE di Gambas): | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim scorre As String = "Questa stringa scorre" | ||
+ | Dim i, n As Integer | ||
+ | |||
+ | Do | ||
+ | Inc i | ||
+ | If i > String.Len(scorre) + 1 Then Inc n | ||
+ | If n = String.Len(scorre) + 1 Then | ||
+ | i = 0 | ||
+ | n = 0 | ||
+ | Else | ||
+ | Write Mid(String$(String.Len(scorre), " ") & scorre, i, String.Len(scorre)) & String$(n, " ") & "\r" | ||
+ | Flush | ||
+ | Endif | ||
+ | Wait 0.1 | ||
+ | Loop | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | |||
+ | ==Con il codice html== | ||
+ | Si potrà utilizzare anche il codice html per ottenere una scritta scorrevole. | ||
+ | <BR>Si dovranno attivare i Componenti ''gb.qt5'' e ''gb.qt5.webview'', oppure i Componenti ''gb.qt6'' e ''gb.qt6.webview''. | ||
+ | <BR>Conseguentemente si farà uso di una ''WebView'', adoperando nel codice il suo Metodo ".SetHtml()". | ||
+ | <BR>Il comando html che permetterà di avere una scritta scorrevole è <MARQUEE>. | ||
+ | Public Sub Form_Open() | ||
+ | |||
+ | WebView1.SetHtml("<MARQUEE>Scritta scorrevole") | ||
+ | |||
+ | End | ||
+ | |||
+ | ===Alcune proprietà del comando <MARQUEE>=== | ||
+ | Il comando <MARQUEE> possiede una serie di proprietà che consentono di caratterizzare l'effetto scorrevole di un testo: | ||
+ | ====BGCOLOR==== | ||
+ | L'attributo ''bgcolor'' definisce il colore dello sfondo lungo il quale scorre il testo: | ||
+ | Public Sub Form_Open() | ||
+ | |||
+ | WebView1.SetHtml("<MARQUEE bgcolor=#FFFF00>Scritta scorrevole") | ||
+ | |||
+ | End | ||
+ | |||
+ | ====WIDTH e HEIGHT==== | ||
+ | L'attributo ''width'' definisce la lunghezza dello sfondo, lungo il quale scorre il testo, mentre ''height'' ne definisce la larghezza. Se la definizione della lunghezza o della larghezza dello sfondo è basata rispetto alla lunghezza o alla larghezza del suo contenitore (nel nostro caso la ''WebView''), la dimensione viene espressa in percentuale. In termini assoluti, invece, viene espressa in pixel. | ||
+ | Public Sub Form_Open() | ||
+ | |||
+ | WebView1.SetHtml("<MARQUEE bgcolor=#FFFF00 width=80% height=30%>Scritta scorrevole") | ||
+ | |||
+ | End | ||
+ | |||
+ | ====BEHAVIOR==== | ||
+ | La proprietà ''behavior'' unitamente ad alcuni valori determina la modalità di scorrimento del testo. | ||
+ | |||
+ | Di default lo scorrimento avviene da destra verso sinistra. Con il valore ''scroll direction=left'' lo scorrimento avviene, invece, da sinistra verso destra: | ||
+ | Public Sub Form_Open() | ||
+ | |||
+ | WebView1.SetHtml("<MARQUEE behavior=scroll direction=left>Scritta scorrevole") | ||
+ | |||
+ | End | ||
+ | |||
+ | ====SCROLLAMOUNT e SCROLLDELAY==== | ||
+ | Gli attributi ''scrollamount'' e ''scrolldelay'' controllano la velocità dello scorrimento della scritta. | ||
+ | |||
+ | ''Scrollamount'' indica quanti pixel alla volta si spostano: più è alto il numero, maggiore sarà la velocità. | ||
+ | Public Sub Form_Open() | ||
+ | |||
+ | WebView1.SetHtml("<MARQUEE scrollamount=100>Scritta scorrevole") | ||
+ | |||
+ | End | ||
+ | ''Scrolldelay'' indica il numero di millisecondi tra uno scatto e l'altro dello scorrimento del testo: <U>minore è il valore dei millisecondi, maggiore sarà la velocità di scorrimento</u>: | ||
+ | Public Sub Form_Open() | ||
+ | |||
+ | WebView1.SetHtml("<MARQUEE scrolldelay=500>Scritta scorrevole") | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | |||
+ | =Note= | ||
+ | [1] Per lo scorrimento su una DrawingArea vedere la seguente pagina: [[Far scorrere un testo in una DrawingArea]] |
Versione attuale delle 17:20, 1 nov 2024
Riportiamo qui alcuni esempi per ottenere una scritta scorrevole. [nota 1]
Indice
Con le funzioni di Gambas
1° esempio (prevede la presenza dell'oggetto speciale Timer):
Private Titolo As String = "Questa e' una stringa scorrevole" Public Sub Button1_Click() Titolo &= String(TextBox1.W \ TextBox1.Font.TextWidth(" "), " ") Timer1.Delay = 100 Timer1.Start End Public Sub Timer1_Timer() Titolo = Mid(Titolo, 2) & Left(Titolo, 1) TextBox1.Text = Titolo End
La velocità di scorrimento della scritta è determinata dalla Proprietà ".Delay" del Timer.
2° esempio:
Private scorre As String = "Questa stringa scorre" Private c As Short Public Sub Form_Open() Timer1.Delay = 100 Timer1.Start End Public Sub Timer1_Timer() Inc c Label1.Text = Mid(scorre, c, Label1.W) If c > Len(scorre) Then c = 0 End
oppure lungo tutto il Controllo di testo utilizzato:
Private Label1 As Label Private TESTO As String = Space(100) & "Testo che scorre" Private Tempus As Timer Private c As Short Public Sub _new() With Me .W = 300 .H = 100 .Arrangement = Arrange.Fill End With Label1 = New Label(Me) End Public Sub Form_Open() With Tempus = New Timer As "Tempus" .Delay = 50 .Start End With End Public Sub Tempus_Timer() Inc c Label1.Text = Mid(TESTO, c, Label1.W) If c > Len(TESTO) Then c = 0 End
3° esempio (testo che scorre nella console dell'IDE di Gambas):
Public Sub Main() Dim scorre As String = "Questa stringa scorre" Dim i, n As Integer Do Inc i If i > String.Len(scorre) + 1 Then Inc n If n = String.Len(scorre) + 1 Then i = 0 n = 0 Else Write Mid(String$(String.Len(scorre), " ") & scorre, i, String.Len(scorre)) & String$(n, " ") & "\r" Flush Endif Wait 0.1 Loop End
Con il codice html
Si potrà utilizzare anche il codice html per ottenere una scritta scorrevole.
Si dovranno attivare i Componenti gb.qt5 e gb.qt5.webview, oppure i Componenti gb.qt6 e gb.qt6.webview.
Conseguentemente si farà uso di una WebView, adoperando nel codice il suo Metodo ".SetHtml()".
Il comando html che permetterà di avere una scritta scorrevole è <MARQUEE>.
Public Sub Form_Open() WebView1.SetHtml("<MARQUEE>Scritta scorrevole") End
Alcune proprietà del comando <MARQUEE>
Il comando <MARQUEE> possiede una serie di proprietà che consentono di caratterizzare l'effetto scorrevole di un testo:
BGCOLOR
L'attributo bgcolor definisce il colore dello sfondo lungo il quale scorre il testo:
Public Sub Form_Open() WebView1.SetHtml("<MARQUEE bgcolor=#FFFF00>Scritta scorrevole") End
WIDTH e HEIGHT
L'attributo width definisce la lunghezza dello sfondo, lungo il quale scorre il testo, mentre height ne definisce la larghezza. Se la definizione della lunghezza o della larghezza dello sfondo è basata rispetto alla lunghezza o alla larghezza del suo contenitore (nel nostro caso la WebView), la dimensione viene espressa in percentuale. In termini assoluti, invece, viene espressa in pixel.
Public Sub Form_Open() WebView1.SetHtml("<MARQUEE bgcolor=#FFFF00 width=80% height=30%>Scritta scorrevole") End
BEHAVIOR
La proprietà behavior unitamente ad alcuni valori determina la modalità di scorrimento del testo.
Di default lo scorrimento avviene da destra verso sinistra. Con il valore scroll direction=left lo scorrimento avviene, invece, da sinistra verso destra:
Public Sub Form_Open() WebView1.SetHtml("<MARQUEE behavior=scroll direction=left>Scritta scorrevole") End
SCROLLAMOUNT e SCROLLDELAY
Gli attributi scrollamount e scrolldelay controllano la velocità dello scorrimento della scritta.
Scrollamount indica quanti pixel alla volta si spostano: più è alto il numero, maggiore sarà la velocità.
Public Sub Form_Open() WebView1.SetHtml("<MARQUEE scrollamount=100>Scritta scorrevole") End
Scrolldelay indica il numero di millisecondi tra uno scatto e l'altro dello scorrimento del testo: minore è il valore dei millisecondi, maggiore sarà la velocità di scorrimento:
Public Sub Form_Open() WebView1.SetHtml("<MARQUEE scrolldelay=500>Scritta scorrevole") End
Note
[1] Per lo scorrimento su una DrawingArea vedere la seguente pagina: Far scorrere un testo in una DrawingArea