Differenze tra le versioni di "Usare la ScrollView"

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 9: Riga 9:
 
  Private PictureBox1 As PictureBox
 
  Private PictureBox1 As PictureBox
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
    
 
    
 
   With Me
 
   With Me
Riga 22: Riga 22:
 
     .Y = (Me.H * 0.5) - (.H / 2)
 
     .Y = (Me.H * 0.5) - (.H / 2)
 
  <FONT Color=gray>' ''Viene attribuito un valore utile per far mostrare sia la "Scrollbar" verticale sia quella orizzontale:''</font>
 
  <FONT Color=gray>' ''Viene attribuito un valore utile per far mostrare sia la "Scrollbar" verticale sia quella orizzontale:''</font>
     .ScrollBar = <FONT Color=#B22222>Scroll.Both</font>
+
     .ScrollBar = <FONT Color=red>Scroll.Both</font>
 
   End With
 
   End With
 
   With PictureBox1 = New PictureBox(ScrollView1)
 
   With PictureBox1 = New PictureBox(ScrollView1)
Riga 30: Riga 30:
 
     .H = ScrollView1.H * 1.5
 
     .H = ScrollView1.H * 1.5
 
     .Border = Border.Plain
 
     .Border = Border.Plain
     .Image = Image.Load("<FONT Color=gray>/percorso/del/file/immagine</font>")
+
     .Image = Image.Load("<FONT Color=darkgreen>/percorso/del/file/immagine</font>")
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
 
   
 
   
  '''Public''' Sub ScrollView1_Scroll()  <FONT Color=gray>' ''Questo Evento viene sollevato, quando si agisce sulle bande laterali scorrevoli''</font>
+
   
 +
Public Sub ScrollView1_Scroll()  <FONT Color=gray>' ''Questo Evento viene sollevato, quando si agisce sulle bande laterali scorrevoli''</font>
 
    
 
    
 
   Me.Text = Cstr(ScrollView1.ScrollX) & "  " & Cstr(ScrollView1.Scrolly)
 
   Me.Text = Cstr(ScrollView1.ScrollX) & "  " & Cstr(ScrollView1.Scrolly)
 
    
 
    
  '''End'''
+
  End
 
Qualora, però, l'Oggetto, contenuto nella "ScrollView" - pur essendo di dimensioni inferiori alla "ScrollView" - sia posto a delle coordinate ".X" e ".Y" tali che esso debordi dalla superficie della "ScrollView", una o entrambe le bande laterali della "ScrollView" saranno mostrate.
 
Qualora, però, l'Oggetto, contenuto nella "ScrollView" - pur essendo di dimensioni inferiori alla "ScrollView" - sia posto a delle coordinate ".X" e ".Y" tali che esso debordi dalla superficie della "ScrollView", una o entrambe le bande laterali della "ScrollView" saranno mostrate.
 
  Private ScrollView1 As ScrollView
 
  Private ScrollView1 As ScrollView
 
  Private PictureBox1 As PictureBox
 
  Private PictureBox1 As PictureBox
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
    
 
    
 
   With Me
 
   With Me
Riga 56: Riga 57:
 
     .X = (Me.W * 0.5) - (.W / 2)
 
     .X = (Me.W * 0.5) - (.W / 2)
 
     .Y = (Me.H * 0.5) - (.H / 2)
 
     .Y = (Me.H * 0.5) - (.H / 2)
     .ScrollBar = Scroll.Both
+
     .ScrollBar = Scroll<FONT Color=red>.Both</font>
 
   End With
 
   End With
 
   With PictureBox1 = New PictureBox(ScrollView1)
 
   With PictureBox1 = New PictureBox(ScrollView1)
Riga 64: Riga 65:
 
     .H = ScrollView1.H * <FONT Color=#B22222>0.5</font>
 
     .H = ScrollView1.H * <FONT Color=#B22222>0.5</font>
 
     .Border = Border.Plain
 
     .Border = Border.Plain
     .Image = Image.Load("<FONT Color=gray>/percorso/del/file/immagine</font>")
+
     .Image = Image.Load("<FONT Color=darkgreen>/percorso/del/file/immagine</font>")
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
 +
 
   
 
   
  '''Public''' Sub ScrollView1_Scroll()
+
  Public Sub ScrollView1_Scroll()
 
    
 
    
 
   Me.Text = Cstr(ScrollView1.ScrollX) & "  " & Cstr(ScrollView1.Scrolly)
 
   Me.Text = Cstr(ScrollView1.ScrollX) & "  " & Cstr(ScrollView1.Scrolly)
 
    
 
    
  '''End'''
+
  End
 
===Comportamento delle bande laterali scorrevoli quando la "ScrollView" contiene più Oggetti grafici===
 
===Comportamento delle bande laterali scorrevoli quando la "ScrollView" contiene più Oggetti grafici===
 
Nel caso in cui vi siano due o più oggetti grafici, contenuti nella "ScrollView", se gli Oggetti sono di dimensioni minori della "ScrollView", allora le bande laterali scorrevoli non appariranno.
 
Nel caso in cui vi siano due o più oggetti grafici, contenuti nella "ScrollView", se gli Oggetti sono di dimensioni minori della "ScrollView", allora le bande laterali scorrevoli non appariranno.
Riga 81: Riga 83:
 
  Private PictureBox2 As PictureBox
 
  Private PictureBox2 As PictureBox
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
    
 
    
 
   With Me
 
   With Me
Riga 93: Riga 95:
 
     .X = (Me.W * 0.5) - (.W / 2)
 
     .X = (Me.W * 0.5) - (.W / 2)
 
     .Y = (Me.H * 0.5) - (.H / 2)
 
     .Y = (Me.H * 0.5) - (.H / 2)
     .ScrollBar = Scroll.Both
+
     .ScrollBar = Scroll<FONT Color=red>.Both</font>
 
   End With
 
   End With
 
   With PictureBox1 = New PictureBox(ScrollView1)
 
   With PictureBox1 = New PictureBox(ScrollView1)
Riga 109: Riga 111:
 
     .H = ScrollView1.H * <FONT Color=#B22222>0.3</font>
 
     .H = ScrollView1.H * <FONT Color=#B22222>0.3</font>
 
     .Border = Border.Plain
 
     .Border = Border.Plain
     .Image = Image.Load("<FONT Color=gray>/percorso/del/file/immagine</font>")
+
     .Image = Image.Load("<FONT Color=darkgreen>/percorso/del/file/immagine</font>")
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
 +
 
   
 
   
  '''Public''' Sub ScrollView1_Scroll()
+
  Public Sub ScrollView1_Scroll()
 
    
 
    
 
   Me.Text = Cstr(ScrollView1.ScrollX) & "  " & Cstr(ScrollView1.Scrolly)
 
   Me.Text = Cstr(ScrollView1.ScrollX) & "  " & Cstr(ScrollView1.Scrolly)
 
    
 
    
  '''End'''
+
  End
 
Ovviamente le bande laterali scorrevoli appariranno anche se un Oggetto grafico, contenuto nella "GridView", sia di dimensioni superiori alla "GridView" medesima.
 
Ovviamente le bande laterali scorrevoli appariranno anche se un Oggetto grafico, contenuto nella "GridView", sia di dimensioni superiori alla "GridView" medesima.

Versione attuale delle 05:10, 26 lug 2024

La ScrollView è un "Contenitore", come una sorta di "Panel", la cui superficie può scorrere grazie alla presenza di due bande: verticale e orizzontale. E' possibile anche usare una sola banda scorrevole o nessuna.
Per far mostrare le bande laterali ("Scrollbar "), è necessario assegnare un valore opportuno alla Proprietà ".ScrollBar" della Classe "ScrollView".

Comportamento delle bande laterali scorrevoli quando la "ScrollView" contiene un solo Oggetto grafico

Se l'Oggetto grafico, contenuto nella "ScrollView" ha una dimensione eguale o inferiore (ossia entrambe le Proprietà ".W" e ".Y" inferiore a quelle della "ScrollView"), le bande laterali scorrevoli della "ScrollView" non saranno mostrate.
Le bande laterali scorrevoli saranno mostrate, se il valore delle due predette Proprietà ".W" e ".Y" sono superiore a quelle della "ScrollView".
Mostriamo un esempio mediante una "PictureBox" avente dimensioni superiori alla "ScrollView" che le fa da Contenitore (ossia da Oggetto "Padre "):

Private ScrollView1 As ScrollView
Private PictureBox1 As PictureBox

Public Sub Form_Open()
 
 With Me
   .W = Screen.AvailableWidth * 0.7
   .H = Screen.AvailableHeight * 0.8
   .Center
 End With
 With ScrollView1 = New ScrollView(Me) As "ScrollView1"
   .W = Me.W * 0.5
   .H = Me.H * 0.5
   .X = (Me.W * 0.5) - (.W / 2)
   .Y = (Me.H * 0.5) - (.H / 2)
' Viene attribuito un valore utile per far mostrare sia la "Scrollbar" verticale sia quella orizzontale:
   .ScrollBar = Scroll.Both
 End With
 With PictureBox1 = New PictureBox(ScrollView1)
   .X = 0
   .Y = 0
   .W = ScrollView1.W * 1.5
   .H = ScrollView1.H * 1.5
   .Border = Border.Plain
   .Image = Image.Load("/percorso/del/file/immagine")
 End With
 
End


Public Sub ScrollView1_Scroll()   ' Questo Evento viene sollevato, quando si agisce sulle bande laterali scorrevoli
 
 Me.Text = Cstr(ScrollView1.ScrollX) & "   " & Cstr(ScrollView1.Scrolly)
 
End

Qualora, però, l'Oggetto, contenuto nella "ScrollView" - pur essendo di dimensioni inferiori alla "ScrollView" - sia posto a delle coordinate ".X" e ".Y" tali che esso debordi dalla superficie della "ScrollView", una o entrambe le bande laterali della "ScrollView" saranno mostrate.

Private ScrollView1 As ScrollView
Private PictureBox1 As PictureBox

Public Sub Form_Open()
 
 With Me
   .W = Screen.AvailableWidth * 0.7
   .H = Screen.AvailableHeight * 0.8
   .Center
 End With
 With ScrollView1 = New ScrollView(Me) As "ScrollView1"
   .W = Me.W * 0.5
   .H = Me.H * 0.5
   .X = (Me.W * 0.5) - (.W / 2)
   .Y = (Me.H * 0.5) - (.H / 2)
   .ScrollBar = Scroll.Both
 End With
 With PictureBox1 = New PictureBox(ScrollView1)
   .X = 300
   .Y = 200
   .W = ScrollView1.W * 0.5
   .H = ScrollView1.H * 0.5
   .Border = Border.Plain
   .Image = Image.Load("/percorso/del/file/immagine")
 End With
 
End


Public Sub ScrollView1_Scroll()
 
 Me.Text = Cstr(ScrollView1.ScrollX) & "   " & Cstr(ScrollView1.Scrolly)
 
End

Comportamento delle bande laterali scorrevoli quando la "ScrollView" contiene più Oggetti grafici

Nel caso in cui vi siano due o più oggetti grafici, contenuti nella "ScrollView", se gli Oggetti sono di dimensioni minori della "ScrollView", allora le bande laterali scorrevoli non appariranno.
Se anche solo un Oggetto, contenuto nella "ScrollView", deborda da uno o più lati della "ScrollView", allora le bande laterali scorrevoli appariranno.

Private ScrollView1 As ScrollView
Private PictureBox1 As PictureBox
Private PictureBox2 As PictureBox

Public Sub Form_Open()
 
 With Me
   .W = Screen.AvailableWidth * 0.7
   .H = Screen.AvailableHeight * 0.8
   .Center
 End With
 With ScrollView1 = New ScrollView(Me) As "ScrollView1"
   .W = Me.W * 0.5
   .H = Me.H * 0.5
   .X = (Me.W * 0.5) - (.W / 2)
   .Y = (Me.H * 0.5) - (.H / 2)
   .ScrollBar = Scroll.Both
 End With
 With PictureBox1 = New PictureBox(ScrollView1)
   .X = 300
   .Y = 200
   .W = ScrollView1.W * 0.5
   .H = ScrollView1.H * 0.5
   .Border = Border.Plain
   .Image = Image.Load("/percorso/del/file/immagine")
 End With
 With PictureBox2 = New PictureBox(ScrollView1)
   .X = 600
   .Y = 300
   .W = ScrollView1.W * 0.3
   .H = ScrollView1.H * 0.3
   .Border = Border.Plain
   .Image = Image.Load("/percorso/del/file/immagine")
 End With
 
End


Public Sub ScrollView1_Scroll()
 
 Me.Text = Cstr(ScrollView1.ScrollX) & "   " & Cstr(ScrollView1.Scrolly)
 
End

Ovviamente le bande laterali scorrevoli appariranno anche se un Oggetto grafico, contenuto nella "GridView", sia di dimensioni superiori alla "GridView" medesima.