Differenze tra le versioni di "Usare la ScrollArea"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
Per utilizzare un oggetto '''''ScrollArea''''' bisogna tenere presente alcuni accorgimenti:
 
Per utilizzare un oggetto '''''ScrollArea''''' bisogna tenere presente alcuni accorgimenti:
  
1) definire con il Metodo "''.ResizeContents( )''" l'area del contenuto che sarà disegnato nella ''ScrollArea''.
+
1) definire con il Metodo "''.ResizeContents( )'' " l'area del contenuto che sarà disegnato nella ''ScrollArea''.
  
2) considerare i valori delle proprietà "''.ScrollX''" e "''.ScrollY''" quando si disegna dentro il gestore dell'evento ''_Draw( )'' (almeno per le cose che devono spostarsi con le barre di spostamento). Quando la ''ScrollArea'' disegna, questo Oggetto deve usare le proprietà "''.ScrollX''" e "''.ScrollY''" per conoscere quanto si deve spostare ciò che viene disegnato dentro il gestore dell'evento ''_Draw( )''. Insomma, mediante le proprietà "''.ScrollX''" e "''.ScrollY''" si definiscono le coordinate in cui si inizia a disegnare nella ''ScrollArea''.
+
2) considerare i valori delle proprietà "''.ScrollX'' " e "''.ScrollY'' " quando si disegna dentro il gestore dell'evento "_Draw()" (almeno per le cose che devono spostarsi con le barre di spostamento). Quando la "ScrollArea" disegna, questo Oggetto deve usare le proprietà "''.ScrollX'' " e "''.ScrollY'' " per conoscere quanto si deve spostare ciò che viene disegnato dentro il gestore dell'evento "_Draw()". Insomma, mediante le proprietà "''.ScrollX'' " e "''.ScrollY'' " si definiscono le coordinate in cui si inizia a disegnare nella "ScrollArea".
  
  

Versione delle 09:59, 23 ott 2021

Per utilizzare un oggetto ScrollArea bisogna tenere presente alcuni accorgimenti:

1) definire con il Metodo ".ResizeContents( ) " l'area del contenuto che sarà disegnato nella ScrollArea.

2) considerare i valori delle proprietà ".ScrollX " e ".ScrollY " quando si disegna dentro il gestore dell'evento "_Draw()" (almeno per le cose che devono spostarsi con le barre di spostamento). Quando la "ScrollArea" disegna, questo Oggetto deve usare le proprietà ".ScrollX " e ".ScrollY " per conoscere quanto si deve spostare ciò che viene disegnato dentro il gestore dell'evento "_Draw()". Insomma, mediante le proprietà ".ScrollX " e ".ScrollY " si definiscono le coordinate in cui si inizia a disegnare nella "ScrollArea".


Mostriamo un esempio pratico:

Public Sub Form_Open()
 
 With ScrollArea1
   .ResizeContents(ScrollArea1.W, ScrollArea1.H + 200)
   .ScrollBar = Scroll.Vertical
   .Background = Color.Lighter(Color.Yellow)
 End With
  
End
 
 
Public Sub ScrollArea1_Draw()
 
 With Paint
   .Brush = Paint.Color(Color.Blue)
   .LineWidth = 3.5
   .Ellipse(50, ScrollArea1.ScrollY, 200, 200)   ' oppure con il valore negativo: (..., - ScrollArea1.ScrollY, ...)
   .Stroke
   .End
 End With
 
End


In quest'altro esempio, cliccando sulla "ScrollArea", si disegnerà ogni volta un nuovo cerchio, che così apparirà posto al di sopra dell'immagine caricata.

Private im As Image
Private x As Short
Private y As Short


Public Sub Form_Open()
 
 im = Image.Load("/percorso/del/file/immagine")
 
 ScrollArea1.ResizeContents(im.W, im.H)
 
End

Public Sub ScrollArea1_Draw()
   
 With Paint
   .DrawImage(im, -ScrollArea1.ScrollX, -ScrollArea1.ScrollY)
   .Brush = Paint.Color(Color.Red)
   .LineWidth = 3.0
   .Translate(-ScrollArea1.ScrollX, -ScrollArea1.ScrollY)
   .Ellipse(x - 5, y - 5, 10, 10) 
   .Stroke
   .End
 End With
  
End

Public Sub ScrollArea1_MouseDown()

 x = Mouse.X + ScrollArea1.ScrollX
 y = Mouse.Y + ScrollArea1.ScrollY
 
 ScrollArea1.Refresh
  
End