Benutzer-Werkzeuge

Webseiten-Werkzeuge


k20:k20.4:k20.4.2:start

20.4.2 Projekt 2 – Demonstrationsprogramm Clipboard Bilder

Das Projekt 2 demonstriert vorwiegend den Einsatz von Konstanten, Eigenschaften und Methoden der Klasse Clipboard:

B1

Abbildung 20.4.2.1: Demonstrationsprogramm Klasse Clipboard

Man kann Sie nur ermuntern, mit dem Programm heftig zu experimentieren. Dazu gehört auch das Einfügen selbst aufgenommener Screenshots zum Beispiel:

  • mit der Tasten-Kombination CTRL+Drucken-Taste oder
  • mit den Programmen Shutter oder
  • KSnapShot oder
  • mit dem Konsolenprogramm Gnome-ScreenShot mit „gnome-screenshot -w -b -c –delay=1“.

Für ein erstes Erproben sollten Sie die Button in der angegebenen Reihenfolge drücken und dabei die Anzeigen in den beiden Picture-Boxen sowie im Fenster-Titel beobachten. Den Button 6 sollten Sie dann mindestens 3x drücken.

Der Quelltext des Projekts 2 wird vollständig angegeben. Besondere Beachtung sollten Sie der Funktion DesktopGrab(iModus As Integer) schenken, die Ihnen die Möglichkeit gibt, Screenshots des Desktops oder des aktiven Top-Level-Fensters – also des Programm-Fensters – aufzunehmen und in einer Picturebox anzuzeigen. Für das Argument iModus=0 wird ein Screenshot des gesamten Desktops als Funktionswert (Datentyp Picture) zurückgegeben. Für alle anderen Modi iModus > 0 erhalten Sie einen Screenshot des Programmfensters.

Kompletter Quelltext für das Demonstrationsprogramm 'Clipboard Bilder':

' Gambas class file
' Es wird nur EIN Objekt im ClipBoard gespeichert.
 
Public Sub Form_Open()  
  FMain.Center
  FMain.Resizable = False
  If Clipboard.Type <> Clipboard.None Then ' Clipboard nicht leer?
     FMain.Caption = "ClipBoard MIME-Type: " & Clipboard.Formats[0]
  Endif ' ClipBoard.Format  
End ' Form_Open
 
Public Sub btnShowPicture_Click()
  PictureBox1.Picture = Picture.Load("Pictures/fraktal_1.jpg")
End ' btnShowPicture_Click()
 
Public Sub btnCopyPicture_Click()  
  If PictureBox1.Picture <> Null Then
     Clipboard.Copy(PictureBox1.Picture.Image)
     FMain.Caption = "ClipBoard MIME-Type: " & Clipboard.Formats[0]
  Endif ' PictureBox1.Picture <> Null ?
 
End ' btnCopyPicture_Click()
 
Public Sub btnPastePicture_Click()
  If Clipboard.Type = Clipboard.Image Then
     PictureBox2.Picture = Clipboard.Paste().Picture ' Klammer beachten → Funktion
   ' PictureBox2.Picture = Clipboard.Paste("image/tiff").Picture ' Option: Vorgabe MIME-Typ
     FMain.Caption = "ClipBoard MIME-Type: " & Clipboard.Formats[0]
  Endif ' Clipboard.Type = Clipboard.Image ?  
  txaFormats.Clear
End ' btnPastePicture_Click()
 
Public Sub btnScreenshotDesktop_Click()  
 
  PictureBox2.Picture = DesktopGrab(0) ' Screenshot vom Desktop
  Clipboard.Copy(PictureBox2.Picture.Image)
  FMain.Caption = "ClipBoard - Screenshot MIME-Type: " & Clipboard.Formats[0]
  txaFormats.Clear
 
End ' btnScreenshotDesktop_Click()  
 
Public Sub btnScreenshotTopLevelWindow_Click()   
 
  PictureBox2.Picture = DesktopGrab(1)
  Clipboard.Copy(PictureBox2.Picture.Image)
  FMain.Caption = "ClipBoard - Screenshot MIME-Type: " & Clipboard.Formats[0]
  txaFormats.Clear
 
End ' btnScreenshotCurrentWindow_Click()
 
Public Sub btnShowFormats_Click()
  Dim sElement As String
 
  txaFormats.Clear
  For Each sElement In Clipboard.Formats
      txaFormats.Insert(sElement & gb.NewLine)
  Next ' sElement
 
End ' btnShowFormats_Click()
 
Public Sub btnClear1_Click()
  PictureBox1.Picture = Null
  txaFormats.Clear
  PictureBox1.Refresh
End ' btnClear1_Click()
 
Public Sub btnClear2_Click()
  PictureBox2.Picture = Null
  txaFormats.Clear
  PictureBox2.Refresh
End ' btnClear2_Click()
 
Public Sub btnClearClipboard_Click()
  Clipboard.Clear
  FMain.Caption = "ClipBoard"
  txaFormats.Clear
End ' btnClearClipboard_Click()
 
Public Function DesktopGrab(iModus As Integer) As Picture
  Dim DTWindow As DesktopWindow
  Dim myDesktopPicture As Picture
 
  DTWindow = New DesktopWindow(Desktop.ActiveWindow) 
 
  If iModus = 0 Then 
     Me.Visible = False
       Wait 0.1
       myDesktopPicture = Desktop.Screenshot()
     Me.Visible = True
     Return myDesktopPicture
  Else
     Return Desktop.Screenshot(DTWindow.X, DTWindow.Y, DTWindow.W, DTWindow.H)  
  Endif ' iModus = 0 ?
 
End ' DesktopGrab(..)
 
Public Sub Form_Close()
  If Not (Clipboard.Type = Clipboard.None) Then Clipboard.Clear
  FMain.Close
End ' Form_Close()

Download

Wir verwenden Cookies, um unser Internetangebot optimal zu gestalten. Durch weitere Nutzung dieser Webseite stimmen Sie der Verwendung von Cookies zu. Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung
k20/k20.4/k20.4.2/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge