Differenze tra le versioni di "Ottenere una schermata ("screenshot") con Gambas"

Da Gambas-it.org - Wikipedia.
(Nuova pagina: Per effettuare una schermata, ossia uno ''screenshot'', mediante il solo codice Gambas, si dovrà utilizzare l'omonimo metodo ''.Screenshot'' della classe ''Desktop''. Si dovrà impos...)
 
Riga 13: Riga 13:
 
     PictureBox1.Picture = pc
 
     PictureBox1.Picture = pc
 
   
 
   
 +
'''End'''
 +
 +
 +
 +
Mostriamo ora un esempio più complesso: determineremo con lo spostamento del mouse l'area della schermata da mostrare nella ''PictureBox''.
 +
Private pn As Panel
 +
Private xIniz As Integer
 +
Private yIniz As Integer
 +
Private pc As Picture
 +
 +
 +
'''Public''' Sub Form_MouseDown()
 +
 +
<FONT color=#006400>' ''Se non c'è una schermata nella "PictureBox", viene distrutta:''</font>
 +
  If Not IsNull(pc) Then
 +
    PictureBox1.Picture.Clear
 +
  Endif
 +
 
 +
<FONT color=#006400>' ''Per definire, anche visivamente, l'area utilizzeremo un "Panel":''</font>
 +
  pn = New Panel(Me)
 +
 
 +
<FONT color=#006400>' ''Raccogliamo le coordinate iniziali del mouse nel momento del clic:''</font>
 +
  xIniz = Mouse.X
 +
  yIniz = Mouse.Y
 +
 +
'''End'''
 +
 +
 +
'''Public''' Sub Form_MouseMove()
 +
 +
  With pn
 +
    .Border = Border.Sunken
 +
    .Width = Mouse.X - xIniz
 +
    .Height = Mouse.Y - yIniz
 +
    .X = xIniz  <FONT color=#006400>' ''le coordinate di partenza sono quelle impostate...''</font>
 +
    .Y = yIniz  <FONT color=#006400>' ''...con il MouseDown.''</font>
 +
  End With
 +
 +
'''End'''
 +
 +
 +
'''Public''' Sub Form_MouseUp()
 +
 
 +
<FONT color=#006400>' ''Effettuiamo la schermata (ossia lo "screenshot") dell'area individuata dal "Panel" dimensionato con lo spostamento del mouse:''</font>
 +
  With pn
 +
    pc = Desktop.Screenshot(.X, .Y, .W, .H)
 +
  End With
 +
 +
<FONT color=#006400>' ''Mostriamo la picture della schermata nella "PictureBox" posta sul form:''</font>
 +
  PictureBox1.Picture = pc
 +
 
 +
  pn.Delete
 +
 
 +
 
 
  '''End'''
 
  '''End'''

Versione delle 09:06, 8 set 2012

Per effettuare una schermata, ossia uno screenshot, mediante il solo codice Gambas, si dovrà utilizzare l'omonimo metodo .Screenshot della classe Desktop.

Si dovrà impostare nel progetto anche il componente gb.desktop.

Public Sub Button1_Click()

 Dim pc As Picture

' Individuiamo il riquadro interessato dallo screenshot secondo i soliti parametri: X, Y, Width, Height.
' Assegnamo, quindi, la schermata in una variabile di tipo "Picture"...:
   pc = Desktop.Screenshot(100, 100, 100, 100)
  
' ...che caricheremo in una "PictureBox" per mostrarla:
   PictureBox1.Picture = pc

End


Mostriamo ora un esempio più complesso: determineremo con lo spostamento del mouse l'area della schermata da mostrare nella PictureBox.

Private pn As Panel
Private xIniz As Integer
Private yIniz As Integer
Private pc As Picture


Public Sub Form_MouseDown()

' Se non c'è una schermata nella "PictureBox", viene distrutta:
 If Not IsNull(pc) Then
   PictureBox1.Picture.Clear
 Endif
 
' Per definire, anche visivamente, l'area utilizzeremo un "Panel":
  pn = New Panel(Me)
  
' Raccogliamo le coordinate iniziali del mouse nel momento del clic:
  xIniz = Mouse.X
  yIniz = Mouse.Y

End


Public Sub Form_MouseMove()

  With pn
   .Border = Border.Sunken
   .Width = Mouse.X - xIniz
   .Height = Mouse.Y - yIniz
   .X = xIniz  ' le coordinate di partenza sono quelle impostate...
   .Y = yIniz  ' ...con il MouseDown.
  End With

End


Public Sub Form_MouseUp()
 
' Effettuiamo la schermata (ossia lo "screenshot") dell'area individuata dal "Panel" dimensionato con lo spostamento del mouse:
 With pn
   pc = Desktop.Screenshot(.X, .Y, .W, .H)
 End With

' Mostriamo la picture della schermata nella "PictureBox" posta sul form:
 PictureBox1.Picture = pc
 
 pn.Delete
 
 
End