Differenze tra le versioni di "Scritta scorrevole"

Da Gambas-it.org - Wikipedia.
 
(13 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Riportiamo qui alcuni esempi per ottenere una scritta scorrevole.
+
Riportiamo qui alcuni esempi per ottenere una scritta scorrevole. <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
  
  
 
==Con le funzioni di Gambas==
 
==Con le funzioni di Gambas==
 
'''1°''' esempio (prevede la presenza dell'oggetto speciale ''Timer''):
 
'''1°''' esempio (prevede la presenza dell'oggetto speciale ''Timer''):
 
+
  Private Titolo As String = "Questa e' una stringa scorrevole"
  Titolo As String
+
 
   
 
   
 +
Public Sub Button1_Click()
 
   
 
   
'''Public''' Sub Button1_Click()
+
  Titolo &= String(TextBox1.W \ TextBox1.Font.TextWidth(" "), " ")
 
   
 
   
Titolo = String(30, " ") & "Questa e' una stringa scorrevole"
+
  Timer1.Delay = 100
Timer1.Enabled = True
+
  Timer1.Start
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub Timer1_Timer()
+
  Public Sub Timer1_Timer()
 
   
 
   
 
  Titolo = Mid(Titolo, 2) & Left(Titolo, 1)
 
  Titolo = Mid(Titolo, 2) & Left(Titolo, 1)
Riga 22: Riga 23:
 
  TextBox1.Text = Titolo
 
  TextBox1.Text = Titolo
 
   
 
   
  '''End'''
+
  End
La velocità di scorrimento della scritta è determinata dalla proprietà ''.Delay'' del ''Timer''.
+
La velocità di scorrimento della scritta è determinata dalla Proprietà ".Delay" del ''Timer''.
  
  
'''2°''' esempio (prevede la presenza dell'oggetto speciale ''Timer''): |[[#Note|1]]|
+
'''2°''' esempio:
 
+
  Private scorre As String = "Questa stringa scorre"
  da_scorrere As String = "Questa stringa scorre"
+
  Private c As Short
  i As Integer = 0
+
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
   Me.Center
+
   Timer1.Delay = 100
 
   Timer1.Start
 
   Timer1.Start
 
   
 
   
  '''End'''
+
  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()
 
   
 
   
'''Public''' Sub Form_Close()
+
  With Tempus = New Timer As "Tempus"
 +
    .Delay = 50
 +
    .Start
 +
  End With
 
   
 
   
  Timer1.Stop
+
End
 
   
 
   
  '''End'''
+
  Public Sub Tempus_Timer()
 
   
 
   
 +
  Inc c
 +
  Label1.Text = Mid(TESTO, c, Label1.W)
 +
  If c > Len(TESTO) Then c = 0
 
   
 
   
  '''Public''' Sub Timer1_Timer()
+
  End
 +
 
 +
 
 +
'''3°''' esempio (testo che scorre nella console dell'IDE di Gambas):
 +
Public Sub Main()
 
   
 
   
   Inc i
+
   Dim scorre As String = "Questa stringa scorre"
   Label1.Text = Mid(da_scorrere, i, 10)
+
   Dim i, n As Integer
 
   
 
   
  '''End'''
+
  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
  
  
Riga 57: Riga 107:
 
==Con il codice html==
 
==Con il codice html==
 
Si potrà utilizzare anche il codice html per ottenere una scritta scorrevole. Si attiverà il componente ''gb.qt4webkit'', e conseguentemente si farà uso di una ''WebView'', e si adopererà nel codice la sua proprietà ''HTML''. Il comando html che permetterà di avere una scritta scorrevole è &lt;MARQUEE&gt;:
 
Si potrà utilizzare anche il codice html per ottenere una scritta scorrevole. Si attiverà il componente ''gb.qt4webkit'', e conseguentemente si farà uso di una ''WebView'', e si adopererà nel codice la sua proprietà ''HTML''. Il comando html che permetterà di avere una scritta scorrevole è &lt;MARQUEE&gt;:
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
  WebView1.HTML = "&lt;MARQUEE&gt;Scritta scorrevole"
+
  WebView1.HTML = "&lt;MARQUEE&gt;Scritta scorrevole"
 
   
 
   
  '''End'''
+
  End
  
 
===Alcune proprietà del comando &lt;MARQUEE&gt;===
 
===Alcune proprietà del comando &lt;MARQUEE&gt;===
Riga 67: Riga 117:
 
====BGCOLOR====
 
====BGCOLOR====
 
L'attributo ''bgcolor'' definisce il colore dello sfondo lungo il quale scorre il testo:
 
L'attributo ''bgcolor'' definisce il colore dello sfondo lungo il quale scorre il testo:
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
  WebView1.HTML = "&lt;MARQUEE bgcolor=#FFFF00&gt;Scritta scorrevole"
+
  WebView1.HTML = "&lt;MARQUEE bgcolor=#FFFF00&gt;Scritta scorrevole"
 
   
 
   
  '''End'''
+
  End
  
 
====WIDTH e HEIGHT====
 
====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 asoluti, invece, viene espresa in pixel.
 
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 asoluti, invece, viene espresa in pixel.
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
  WebView1.HTML = "&lt;MARQUEE bgcolor=#FFFF00 width=80% height=30%&gt;Scritta scorrevole"
+
  WebView1.HTML = "&lt;MARQUEE bgcolor=#FFFF00 width=80% height=30%&gt;Scritta scorrevole"
 
   
 
   
  '''End'''
+
  End
  
 
====BEHAVIOR====
 
====BEHAVIOR====
Riga 85: Riga 135:
  
 
Di default lo scorrimento avviene da destra verso sinistra. Con il valore ''scroll direction=left'' lo scorrimento avviene, invce, da sinistra verso destra:
 
Di default lo scorrimento avviene da destra verso sinistra. Con il valore ''scroll direction=left'' lo scorrimento avviene, invce, da sinistra verso destra:
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
  WebView1.HTML = "&lt;MARQUEE behavior=scroll direction=left&gt;Scritta scorrevole"
+
  WebView1.HTML = "&lt;MARQUEE behavior=scroll direction=left&gt;Scritta scorrevole"
 
   
 
   
  '''End'''
+
  End
  
 
====SCROLLAMOUNT e SCROLLDELAY====
 
====SCROLLAMOUNT e SCROLLDELAY====
Riga 95: Riga 145:
  
 
''Scrollamount'' indica quanti pixel alla volta si spostano: più è alto il numero, maggiore sarà la velocità.
 
''Scrollamount'' indica quanti pixel alla volta si spostano: più è alto il numero, maggiore sarà la velocità.
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
  WebView1.HTML = "&lt;MARQUEE scrollamount=100&gt;Scritta scorrevole"
+
  WebView1.HTML = "&lt;MARQUEE scrollamount=100&gt;Scritta scorrevole"
 
   
 
   
  '''End'''
+
  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:
+
''Scrolldelay'' indica il numero di millisecondi tra uno scatto e l'altro dello scorrimento del testo: <SPAN Style="text-decoration:underline">minore è il valore dei millisecondi, maggiore sarà la velocità di scorrimento</span>:
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
  WebView1.HTML = "&lt;MARQUEE scrolldelay=10&gt;Scritta scorrevole"
+
  WebView1.HTML = "&lt;MARQUEE scrolldelay=500&gt;Scritta scorrevole"
 
   
 
   
  '''End'''
+
  End
 
 
 
 
  
  
----
 
  
==Note==
+
=Note=
[1] Questo algoritmo è stato proposto dall'utente ''Ceskho'' del Forum Gambas-it.org.
+
[1] Per lo scorrimento su una DrawingArea vedere la seguente pagina: [[Far scorrere un testo in una DrawingArea]]

Versione attuale delle 23:50, 13 set 2023

Riportiamo qui alcuni esempi per ottenere una scritta scorrevole. [nota 1]


Con le funzioni di Gambas

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.


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


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 attiverà il componente gb.qt4webkit, e conseguentemente si farà uso di una WebView, e si adopererà nel codice la sua proprietà HTML. Il comando html che permetterà di avere una scritta scorrevole è <MARQUEE>:

Public Sub Form_Open()

 WebView1.HTML = "<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.HTML = "<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 asoluti, invece, viene espresa in pixel.

Public Sub Form_Open()

 WebView1.HTML = "<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, invce, da sinistra verso destra:

Public Sub Form_Open()

 WebView1.HTML = "<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.HTML = "<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.HTML = "<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