Differenze tra le versioni di "Ottenere una schermata ("screenshot") con Gambas"
Da Gambas-it.org - Wikipedia.
Riga 56: | Riga 56: | ||
'''Public''' Sub Form_MouseUp() | '''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> | + | <FONT color=#006400>' ''Effettuiamo la schermata (ossia lo "screenshot") dell'area individuata dal "Panel" dimensionato con lo spostamento del mouse.'' |
+ | ''L'area interessata, dunque, avrà le medesime coordinate di quel "Panel":''</font> | ||
With pn | With pn | ||
pc = Desktop.Screenshot(.X, .Y, .W, .H) | pc = Desktop.Screenshot(.X, .Y, .W, .H) |
Versione delle 08:13, 8 set 2012
Per effettuare una schermata, ossia uno screenshot, di un'area 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.Plain .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. L'area interessata, dunque, avrà le medesime coordinate di quel "Panel": 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