^

2.8.6 Zeichnen von Bildern

Dieser Abschnitt beschäftigt sich mit der Ausgabe von fertigen Grafiken, die zur Laufzeit weder erstellt noch verändert werden müssen. Die Ausgabe erfolgt dabei immer in das aktuelle Screen-Objekt. Dabei bezieht sich der Begriff "Picture" immer auf Grafiken, die in der Picture-List gespeichert sind (siehe Kapitel 2.8.6.2, Befehle DrawPicture, GetPictureInfo). Der Begriff "Image" bezieht sich immer auf Grafiken, die in externen Bilddateien (z.B. JPG, PCX, ICO) vorliegen. Dafür stehen die Befehle DrawImage und GetImageInfo zur Verfügung. Außerdem gibt es das Image-Objekt, das diese Bilder direkt (ohne die Verwendung eines Screen-Objekts) anzeigen kann und im Objekt-Handbuch beschrieben ist.

Die Routinen GetImageInfo, GetPictureInfo GetGStringInfo und GetBitmapInfo ermitteln Informationen über eine Grafik oder eine Grafikdatei in Form der folgenden Struktur:

STRUCT GraphicInfo
  sizeX as WORD
  sizeY as WORD
  bitsPerPixel as WORD
  numImages as WORD
End STRUCT
Bedeutung der einzelnen Felder:

    sizeX und sizeY: Abmessungen der Grafik in Pixeln

    bitsPerPixel: Farbtiefe

      1: Bitmap, monochrom (sw/ws)

      8: Bitmap, 256 Farben

      24: Bitmap, True Color

      0: Graphic String. Farbtiefe je nach Inhalt. Potentiell True Color

    numImages: Anzahl der Bilder. Kann bei Dateien (z.B. ICO) größer als 1 sein. Im Fehlerfall: Null.
Tritt beim Aufruf der oben genannten Routinen ein Fehler auf (z.B. Datei nicht gefunden, Bild in der Picture-List nicht vorhanden) gilt:
  • numImages ist auf Null gesetzt

  • die globale Variable fileError enthält einen Fehlercode. Im Erfolgsfall wird fileError auf Null gesetzt.
Beispiel
DIM info as GraphicInfo

  info = GetImageInfo (SP_TOP, "GWICON5.ICO")

  IF info.numImages = 0 THEN
    Print "Kein Bild gefunden. Fehlercode: ";ErrorText$(fileError)
  ELSE
    Print "Abmessungen: ";info.sizeX;"x";info.sizeY;"Pixel"
    Print "Bilder in der Datei:";info.numImages
  IF info.bitsPerPixel = 0 THEN
    Print "Typ: Graphic String"
  ELSE
    Print "Bitmap mit";info.bitsPerPixel;"Bit pro Pixel"
  END IF
  END IF

^

2.8.6.1 Zeichnen von Icons

DrawIcon

DrawIcon zeichnet ein Icon aus der Token-Database an die Position (x, y).


Syntax: DrawIcon "tchr" , manufID , x , y [, flags ]

"tchr": Tokenchars des Icons. Genau 4 Zeichen

manufID: ManufacturerID des Icons. Datentyp WORD

x: x-Position der linken oberen Ecke

y: y-Position der linken oberen Ecke

flags: Icon-Flags. Erlaubte Werte siehe Tabelle
Default (kein Flag gesetzt): Standard-Icon zeichnen

Gültige Werte für "flags":

Wird keines der Flags angegeben wird das "Standard" Icon (meist 48 x 30 Pixel, 16 Farben oder 256 Farben) verwendet.

Hinweise:

  • Ist die entsprechend den Flagbits angeforderte Kombination nicht vorhanden sucht das System ein "möglichst passendes" Icon aus. Das Flag "TOOL_ICON" hat dabei Vorrang vor allen anderen Flags.

  • Sollte zum gegebenen Token ("TCHR", manufID) kein grafisches Icon vorhanden sein wird ein Text verwendet.

  • Findet sich das Token nicht in der TokenDB zeigt R-BASIC ein Ersatzbild ("unbekanntes Icon").

  • R-BASIC Icons enthalten nur zwei Bilder: ein Standard- und ein Tool-Icon.
Beispiel: Zeichnen des GeoWrite Document Tool-Icons an die Position (100; 50)
DrawIcon "WDAT", 0, 100, 50, TOOL_ICON

CaptionIcon

CaptionIcon weist einem Objekt ein Icon aus der Token-Database als grafische "Aufschrift" zu. CaptionIcon ist im Kapitel 3.1 (Die Objektbeschriftung) des Objekthandbuchs beschrieben.

^

2.8.6.2 Verwendung der "Picture-List"

Die Picture-List ist eine komfortable Möglichkeit Grafiken im der Codedatei selbst unterzubringen und sie zur Laufzeit zu zeichnen. Beim Erstellen Ihres Programms laden Sie über das R-BASIC Menü "Extras" - "Picture-List" Bilder aus einer externen Quelle in die Picture-List. Die Bilder werden dann über ihren Namen angesprochen.

Sie können diese Bilder mit dem Befehl DrawPicture auf den Screen zeichnen oder mit der Anweisung CaptionPicture (sowohl im UI-Code als auch zur Laufzeit) als grafische Aufschrift für Objekte verwenden.

Als Quellen stehen Ihnen zur Verfügung:

  • Externe Bilddateien (z.B. ICO, PCX, JPG).

  • Das Clipboard. Insbesondere können Sie über diesen Weg mit GeoDraw selbst gezeichnete Grafiken in Ihr BASIC Programm einbinden.

  • Vom Iconeditor "exportierte" Bilder. Der Iconeditor kann Icon-Bilder in eine VM-Datei schreiben (Menü "Icon" - "Schreibe in Datei"), die von der Picture-List eingelesen werden können.
Wenn sie viele, insbesondere größere Bilder in die Picture-List laden sollten Sie der Gesamtgröße ihrer Codedatei etwas Aufmerksamkeit schenken. Erfahrungsgemäß wird GEOS bei Dateigrößen von mehreren 10 Megabyte instabil. Wenn Sie diesbezüglich Probleme haben können Sie Teile ihrer Picture-List in eine Library auslagern.

DrawPicture

DrawPicture zeichnet eine Grafik aus der Picture-List an die Koordinaten x, y. DrawPicture setzt es die globale Variable fileError - entweder auf Null (das Bild wurde gefunden) oder auf einen Fehlerwert (das Bild wurde nicht gefunden).
Syntax: DrawPicture "name" , x , y

"name": Name des Bildes in der Picture-List

x: x-Position der linken oberen Ecke

y: y-Position der linken oberen Ecke


Wenn DrawPicture im Code einer Library gerufen wird bezieht sich der Name des Bildes auf die Picture-List der Library. Das ermöglicht es unter anderem Bilder in die Picture-List von Libraries auszulagern.

Beispiel: Zeichnen eines Bildes an die Position (50; 100)

DrawPicture "Mann", 50, 100
Tipp: Wenn der Compiler den Namen des Bildes in der Picture-List ermitteln kann (d.h. der Name steht wie im Beispiel im Klartext da und wird nicht durch den Aufruf von Stringfunktionen wie Left$ "berechnet") wird der Namens sofort in die interne Nummer des Bildes umgerechnet. Damit muss das Bild zur Laufzeit nicht mehr gesucht werden und es wird viel schneller gezeichnet.

GetPictureInfo

GetPictureInfo liest die Grafikinformationen eines Bildes aus der Picture-List aus. GetPictureInfo setzt die globale Variable fileError (Null oder Fehlercode).
Syntax: info = GetPictureInfo ( "name" )

info: Variable vom Strukturtyp GraphicInfo

"name": Name der Grafik in der Picture-List


Beispiel:
DIM info as GraphicInfo
  info = GetPictureInfo ( "Down Arrow" )
  Print "Abmessungen: ";info.sizeX;"x";info.sizeY;"Pixel"
Beispiel: Zeichnen eines Bildes zentriert an die Position (50; 100)
DIM info as GraphicInfo
DIM x, y
  info = GetPictureInfo ( "Down Arrow" )
  x = 50 - info.sizeX/2;
  y = 100 - info.sizeY/2
  DrawPicture "Down Arrow", x, y

CaptionPicture

CaptionPicture weist einem Objekt ein Bild aus der Picture-List als grafische "Aufschrift" zu. CaptionPicture ist im Kapitel 3.1 (Die Objektbeschriftung) des Objekthandbuchs beschrieben.

^

2.8.6.3 Externe Bilddateien

Sie können Bilder aus externen Bilddateien zur Laufzeit direkt auf den Screen von R-BASIC zeichnen. Die Routine DrawImage übernimmt dabei alle notwendigen Schritte, vom Öffnen der Datei über das Einlesen und Konvertieren in eine GEOS-kompatibles Format bis zum Zeichnen auf auf den Schirm und das abschließende Schließen der Bilddatei.

DrawImage

DrawImage zeichnet eine Grafik. Die Grafik wird aus einer externen Datei gelesen. Sollte die Datei mehr als ein Bild enthalten (z.B. *.GIF, *.ICO) können Sie mit dem Parameter pictNum bestimmen, welches Bild ausgelesen wird. Das erste Bild hat immer die Nummer Null.


Syntax: DrawImage [stdPath,], "Path+File" , x y , [, pictNum]

stdPath: Optional: Standardpfad Konstante, z.B. SP_TOP

"Path+File": Dateiname, Pfade sind zulässig

x: x-Position der linken oberen Ecke

y: y-Position der linken oberen Ecke

pictNum: Optional: Nummer des Bildes in der Datei


  • Wird kein Standardpfad angegeben wird die Datei im aktuellen Verzeichnis gesucht.

  • Unterstützte Dateiformate: JPG, BMP, ICO, PCX, GIF, TGA, RLE, DIB, SCR (BreadBox SplashScreen), FLC, FLI sowie GEOS Hintergrunddateien

  • Die externe Datei wird zur Laufzeit geöffnet, d.h. sie muss unbedingt in das R-App Paket aufgenommen werden oder es muss auf andere Weise sichergestellt sein, dass sie existiert.

  • Wird pictNum nicht angegeben so wird immer das erste Bild ausgelesen.

  • Die globale Variable fileError wird gesetzt - entweder auf Null (das Bild wurde gefunden) oder auf einen Fehlerwert (die Datei wurde nicht gefunden oder sie enthält kein Bild).
Beispiele:
DrawImage SP_TOP, "GWICON5.ICO", 0, 0
DrawImage "BILDER\\SUNSET.JPG", 100, 100
DrawImage SP_DOCUMENT, "R-BASIC\\BILD2.PCX" 0, 20

GetImageInfo

GetImageInfo liest die Grafikinformationen aus einer Datei aus. Wird kein Standardpfad angegeben wird die Datei im aktuellen Verzeichnis gesucht. Der Dateiname darf einen Pfadanteil enthalten. GetImageInfo setzt die globale Variable fileError (Null oder Fehlercode).

Unterstützte Dateiformate: Siehe DrawImage


Syntax: info = GetImageInfo ( [stdPath, ] "Path+File" )

info: Variable vom Strukturtyp GraphicInfo

stdPath: Optional: Standardpfad Konstante, z.B. SP_TOP

"Path+File": Dateiname, Pfade sind zulässig


Beispiele:
DIM info as GraphicInfo

info = GetImageInfo (SP_TOP, "GWICON5.ICO")
info = GetImageInfo ("BILDER\\SUNSET.JPG")
info = GetImageInfo (SP_DOCUMENT, "R-BASIC\\BILD2.PCX")
Beispiel: Zeichnen eines Bildes zentriert an die Position (50; 100)
DIM info as GraphicInfo
DIM x, y
  info = GetImageInfo ( "BILDER\\SUNSET.JPG" )
  x = 50 - info.sizeX/2;
  y = 100 - info.sizeY/2
  DrawImage "BILDER\\SUNSET.JPG", x, y

CaptionImage

CaptionImage weist einem Objekt ein Bild aus einer externen Bilddatei als grafische "Aufschrift" zu. CaptionImage ist im Kapitel 3.1 (Die Objektbeschriftung) des Objekthandbuchs beschrieben.


^

2.8.6.4 Bitmaps und Bitmap Handles

Bitmaps werden üblicher Weise von einem BitmapContent verwaltet. Die meisten Informationen zu Bitmaps finden Sie daher auch bei der Beschreibung des BitmapContent-Objekts im Objekthandbuch. Es gibt jedoch auch die Möglichkeit Bitmaps über ein Handle anzusprechen. Mit dieser Thematik beschäftigt sich dieses Kapitel.

Das Konzept der Bitmap Handles (eine Variable vom Typ HANDLE, die eine Bitmap referenziert) dient zum Austausch einer Bitmap-Grafik zwischen verschiedenen Komponenten eines BASIC Programms. Insbesondere kann eine Bitmap mit der Routine DrawBitmap in andere Objekte, z.B. eine andere Bitmap, ein beliebiges anders Screen-Objekt oder in einen Graphic String gezeichnet werden. Einige R-BASIC Libraries bieten die Möglichkeit, Bitmaps in einer externen Datendatei zu speichern oder von dort zu laden. Das folgende Bild gibt eine Übersicht über die Möglichkeiten.

Wie im Bild zu sehen gibt es sechs Möglichkeiten an ein Bitmap-Handle zu kommen:

  1. Das BitmapContent-Objekt stellt die Methode GetBitmapHandle bereit. Diese Methode liefert ein Handle, das direkt die Bitmap im BitmapContent-Objekt referenziert. Das heißt, die Bitmap wird nicht kopiert! Sie müssen die Kopie mit der Routine FreeBitmap wieder freigeben!

  2. Die Routine CropBitmap (siehe Kästchen "Sonstiges" im Bild oben) kopiert einen Ausschnitt oder die gesamte Bitmap in eine neue.

  3. Die Methode CopyBitmap kopiert die Bitmap eines BitmapContent Objekts und liefert das Handle auf die Kopie. Sie müssen die Kopie mit der Routine FreeBitmap wieder freigeben!

  4. Die Routine ClipboardGetBitmap legt eine Kopie einer im Clipboard befindlichen Bitmap an und liefert das Handle auf diese Kopie. Sie müssen eine so angelegte Bitmap mit der Routine FreeBitmap wieder freigeben!

  5. Die Routine ReadBitmapFromFile liest eine Bitmap aus einer Bilddatei. Sie müssen eine so angelegte Bitmap mit der Routine FreeBitmap wieder freigeben!

  6. Einige Libraries sind in der Lage, Bitmaps in einer Datei zu speichern. Diese Libraries liefern Routinen mit, um auf die Bitmaps in der Datei zuzugreifen. Im Bild oben sind die VMFiles Library (VMLoadBitmap) und die ResourceFile Library (ResFileLoadBitmap) angegeben. Auch diese Routinen liefern eine Referenz auf die in der Datei befindliche Bitmap, die Bitmap wird nicht kopiert.

DrawBitmap

DrawBitmap zeichnet den Bitmap Grafik an die Position x, y.
Syntax: DrawBitmap <han> , x , y [, noFix ]

<han>: Handle, das die Bitmap referenziert.

x, y: Zeichenposition in Pixeln.
Die linke obere Ecke der Bitmap wird an diese Position gezeichnet.

noFix: FALSE: 8 Bit Bitmap fix anwenden (default)
TRUE: 8 Bit Bitmap nicht fix anwenden (siehe unten)


Bugs ...

Das GEOS System (mindestens bis Version 4.1.3) crasht, wenn folgende Bedingungen gleichzeitig zutreffen:
  • der Screen ist eine 8 Bit Bitmap (mit oder ohne Transparenz)

  • und es soll eine Bitmap mit Maske (monchrome, 8 Bit oder 24 Bit) gezeichnet werden

  • und die x-Koordinate ist negativ
R-BASIC löst dieses Problem, indem es im oben genannten Fall die zu zeichnende Bitmap vorher beschneidet und dann so zeichnet, als gäbe es dieses Problem nicht.

Wenn Sie den Parameter noFix (TRUE) angeben, wendet R-BASIC diesen Fix nicht an. Das kann z.B. in folgenden Situationen sinnvoll sein:

  • Sie haben ein verschobenes Koordinatensystem (siehe Anweisung ScreenSetTranslation) und sind sicher, dass die Bitmap trotz negativer x-Koordinate nicht über den linken Rand hinausragt.

  • Sie haben eine neuere GEOS-Version, die den Bug gefixt hat.

... und Features?

Wenn Sie mit DrawBitmap eine monochrome Bitmap in eine andere Bitmap drawen, ist das Ergebnis etwas seltsam. Je nach Situation wird die Bitmap beispielsweise transparent gezeichnet, obwohl sie gar keine Maske hat, oder die Bitmapdaten landen in der Maske der Zielbitmap. Ist das nun ein Bug oder ein Feature?

CropBitmap

CropBitmap (engl. to crop: etwas zuschneiden) kopiert einen Ausschnitt einer Bitmap. Der Ausschnitt wird durch die übergebenen Koordinaten bestimmt. Es ist zulässig, dass die Koordinaten einen Bereich beschreiben, der teilweise außerhalb der Bitmap liegt. CropBitmap behandelt alle "Koordinatenfehler" korrekt.

CropBitmap liefert ein Handle auf die Kopie. Dieses Handle muss mit FreeBitmap wieder freigegeben werden. Im Fehlerfall (der durch die angegeben Koordinaten Ausschnitt liegt komplett außerhalb der Bitmap) liefert CropBitmap ein NullHandle.

CropBitmap kann verwendet werden, um die ganze Bitmap zu kopieren. Geben Sie dazu einen Ausschnitt an, der sicher größer ist, als die zu kopierende Bitmap.


Syntax: <han> = CropBitmapInfo ( bmpHan , x0, y0, x1, y1 )

bmpHan: Handle auf die vorhandene Bitmap

x0, y0: linke obere Ecke des zu kopierenden Ausschnitts

x1, y1: rechte untere Ecke des zu kopierenden Ausschnitts


Die Größe der neuen Bitmap ist (falls die Koordinaten nicht außerhalb der Bitmap liegen):
    xSize = x1 - x0 + 1
    ySize = y1 - y0 + 1
Liegt ein Koordinatenpaar außerhalb der Bitmap, so ist der kopierte Ausschnitt kleiner.

Beispiele:

' In den folgenden Beispielen gilt:
DIM bmpHan, newHan as HANDLE
' bmpHan soll eine Bitmap referenzieren
' Kopieren eines 50 x 150 Pixel großen Ausschnitts
newHan = CropBitmap ( bmphan, 0, 0, 49, 150 )
' Negative Koordinaten sind zulässig
' Der kopierte Ausschnitt ist 64 x 16 Pixel groß
newHan = CropBitmap ( bmpHan, -7, -100, 63, 15 )
' Kopieren der kompletten Bitmap.
' x1 und y1 liegen sicher außerhalb der Bitmap
newHan = CropBitmap ( bmpHan, 0, 0, 1E6, 1E6 )

GetBitmapInfo

GetBitmapInfo liest die Grafikinformationen einer Bitmap, die durch ein Bitmap-Handle referenziert wird, aus. Die Struktur GraphicInfo wurde weiter oben beschrieben.
Syntax: info = GetBitmapInfo ( bmpHan )

info: Variable vom Strukturtyp GraphicInfo

bmpHan: Handle auf die Bitmap


Beispiel:
DIM info as GraphicInfo
DIM bmpHan as Handle

bmpHan = BitmapObj.GetBitmapHandle  ' Bitmap wird nicht kopiert

info = GetBitmapInfo ( bmpHan )
Print "Abmessungen: ";info.sizeX;"x";info.sizeY;"Pixel"

ReadBitmapFromFile

ReadBitmapFromFile liest eine Bitmapgrafik aus einer Datei. Die Datei wird geöffnet, die Bilddaten werden kopiert und anschließend wird die Datei wieder geschlossen. ReadBitmapFromFile liefert das Handle auf die gelesene Bitmap. Das Handle muss mit FreeBitmap wieder freigegeben werden. Die globale Variable fileError wird gesetzt (Null oder Fehlercode). Im Fehlerfall liefert ReadBitmapFromFile ein NullHandle.
Syntax: <han> = ReadBitmapFromFile ( fileName$ [, pictNum] )

<han>: Variable vom Typ Handle

fileName$: Name der Datei mit dem Bild (Pfadanteil erlaubt).

pictNum: Nummer des Bildes, falls die Datei mehr als ein Bild enthält.

Default: 1 (erstes Bild lesen)


ReadBitmapFromFile unterstützt die folgenden Dateiformate: BMP, RLE, DIB, ICO, PCX, GIF, FLI, FLC, JPG, TGA, SCR (BreadBox SplashScreen).

Tipp: Mit Routine ReadGStringFromFile können Sie das Bild aus einer GEOS Hintergrunddatei auslesen.

Tipp: Die Routine GetImageInfo liefert detaillierte Informationen über die Bilddatei.

Der folgende Code liest eine PCX-Datei und nutzt ein BitmapContent-Objekt, um die Grafik anzuzeigen. Das BitmapContent Objekt legt sich eine Kopie der Bilddaten an, so dass wir das Handle mit FreeBitmap wieder freigeben können.

SUB LoadAndShowImage()
DIM h as HANDLE
  h = ReadBitmapFromFile ( "WOLKEN.PCX" )
  IF fileError THEN RETURN
  MyBitmapContent.NewBitmapFormHandle h  ' Kopiert die Daten
  FreeBitmap h                           ' gibt die Bitmapdaten wieder frei.
End SUB

WriteBitmapToFile

WriteBitmapToFile schreibt eine Bitmap, die durch ein Handle referenziert wird, im BMP-Format in eine Datei. Der Dateiname sollte deshalb auf BMP enden. Falls die Datei bereits existiert, wird sie überschrieben. WriteBitmapToFile setzt die globale Variable fileError (Null oder Fehlercode).
Syntax: WriteBitmapToFile <han> , fileName$

<han>: Handle, das eine Bitmap referenziert.

fileName$: Name der anzulegenden Datei (Pfadanteil erlaubt).


WriteBitmapToFile berücksichtigt eine eventuell vorhandene Maske. Transparente Pixel werden auf die Farbe Weiß bzw. auf den Index 255 (das entspricht in der Standardpalette ebenfalls Weiß) gesetzt. Eine vorhandene Palette wird ebenfalls berücksichtigt.

Der folgende Code schreibt die Bitmap eines BitmapContent Objekts in eine Datei. Weil die Methode GetBitmapHandle nur das Handle liefert, die Daten aber nicht kopiert, dürfen wir das Handle NICHT mit FreeBitmap freigeben.

SUB WriteImageToFile ( )
DIM h as Handle
  h = MyBitmapContent.GetBitmapHandle
  WriteBitmapToFile h, "BILD1.BMP"
End SUB

SaveBitmapAsBackground

SaveBitmapAsBackground schreibt eine Bitmap, die durch ein Handle referenziert wird, als GEOS Hintergrunddatei. Falls die Datei bereits existiert, wird sie überschrieben. WriteBitmapAsBackground setzt die globale Variable fileError (Null oder Fehlercode).
Syntax: SaveBitmapAsBackground <han> , fileName$

<han>: Handle, das eine Bitmap referenziert.

fileName$: Name der anzulegenden Datei (Pfadanteil erlaubt).



FreeBitmap

FreeBitmap gibt das Handle und die komplette Bitmap wieder frei. Der von Bitmap belegte Speicherplatz wird freigegeben. FreeBitmap darf nur auf Handles angewendet werden, von ClipboardGetBitmap, ReadBitmapFromFile, CropBitmap oder der Methode CopyBitmap belegt wurden!
Syntax: FreeBitmap <han>

<han>: Handle, das die Bitmap referenziert.


Tipp: Um sicherzustellen, dass das System nicht crasht, falls das Handle irrtümlich noch einmal mit DrawBitmap verwendet wird, können Sie es nach dem Freigeben durch FreeBitmap () mit der Anweisung "han = NullHandle()" löschen. DrawBitmap gibt dann nur eine entsprechende Fehlermeldung aus.

ClipboardGetBitmap

ClipboardGetBitmap holt eine Bitmap aus der Zwischenablage. Die Bitmap kann sofort mit DrawBitmap gezeichnet werden. Das von ClipboardGetBitmap gelieferte Handle muss mit FreeBitmap wieder freigegeben werden.
Syntax: <han> = ClipboardGetBitmap( )
Wird keine Bitmap im Clipboard gefunden, so liefert ClipboardGetBitmap ein NullHandle. ClipboardGetBitmap setzt die globale Variable clipboardError (Null oder Fehlercode). Sie können vorher mit ClipboardTest prüfen, ob sich eine Bitmap im Clipboard befindet.

Beispiel:

DIM bmpHan AS HANDLE

  IF ClipboardTest (0, 7) THEN! manufID = 0, format = 7
    bmpHan = ClipboardGetBitmap()
  End IF

  <....>
  z.B. DrawBitmap bmpHan, 0, 0

  FreeBitmap bmpHan  ' Nicht vergessen

ClipboardPutBitmap

ClipboardPutBitmap kopiert einen Bitmap, die durch ein Bitmap-Handle referenziert wird, in die Zwischenablage. Von dort kann sie in andere Applikationen eingeklebt oder von anderen R-BASIC Objekten gelesen werden.
Syntax: ClipboardPutBitmap <han>

<han>: Handle, das eine Bitmap referenziert.


Beachten Sie, dass Sie eine Bitmap, die sich in einem BitmapContent-Objekt befindet, auch direkt mit der Methode ClpCopy in die Zwischenablage kopieren können.

Beispiel. Wir nehmen an, dass die Routine FindABitmapHandle ein Bitmap-Handle zurückgibt.

DIM bmpHan AS HANDLE
  bmpHan = FindABitmapHandle()
  ClipboardPutBitmap bmpHan

^

Weiter...