Difference between revisions of "Clipboard/de"

From Lazarus wiki
Jump to navigationJump to search
m
m (some typos)
Line 21: Line 21:
 
|CF_METAFILEPICT
 
|CF_METAFILEPICT
 
|3
 
|3
|Handle auf ein Windows Metafile-Grafik.
+
|Handle auf eine Windows Metafile-Grafik.
 
|-
 
|-
 
|CF_SYLK
 
|CF_SYLK
Line 45: Line 45:
 
|CF_PALETTE
 
|CF_PALETTE
 
|9
 
|9
|Handle auf einer Farbpalette.
+
|Handle auf eine Farbpalette.
 
|-
 
|-
 
|CF_PENDATA
 
|CF_PENDATA
 
|10
 
|10
|Wird im Zusammenhang mit den Stift Erweiterungen von Microsoft Windows verwendet.
+
|Wird im Zusammenhang mit den Stift-Erweiterungen von Microsoft Windows verwendet.
 
|-
 
|-
 
|CF_RIFF
 
|CF_RIFF
 
|11
 
|11
|Multimedia Daten (Audiodateien) im Resource Interchange Datei Format (= '''R'''esource '''I'''nterchange '''F'''ile '''F'''ormat).
+
|Multimediadaten (Audiodateien) im Resource Interchange Datei Format (= '''R'''esource '''I'''nterchange '''F'''ile '''F'''ormat).
 
|-
 
|-
 
|CF_WAVE
 
|CF_WAVE
Line 69: Line 69:
 
|CF_HDROP
 
|CF_HDROP
 
|15
 
|15
|Ein Handle auf eine Dateiliste, im Zusammenhang mit Darg-And-Drop.
+
|Ein Handle auf eine Dateiliste, im Zusammenhang mit Drag-And-Drop.
 
|-
 
|-
 
|CF_LOCALE
 
|CF_LOCALE
 
|16
 
|16
|Enthält einen numerischen Wert in dem das Gebietsschema (Sprachcode und Ländercode) hinterlegt sind. Diese Information dient dazu, die Zeichensatzcodierung im Zwischenablageformat CF_TEXT zu ermitteln. Das Betriebssystem verwendet die Codepage CF_LOCALE um Daten aus dem Zwischenablageformat CF_TEXT implizit in das Zwischenablageformat CF_UNICODETEXT konvertieren.
+
|Enthält einen numerischen Wert in dem das Gebietsschema (Sprachcode und Ländercode) hinterlegt sind. Diese Information dient dazu, die Zeichensatzcodierung im Zwischenablageformat CF_TEXT zu ermitteln. Das Betriebssystem verwendet die Codepage CF_LOCALE, um Daten aus dem Zwischenablageformat CF_TEXT implizit in das Zwischenablageformat CF_UNICODETEXT konvertieren.
 
|-
 
|-
 
|CF_OWNERDISPLAY
 
|CF_OWNERDISPLAY
Line 97: Line 97:
 
|CF_PRIVATEFIRST
 
|CF_PRIVATEFIRST
 
|512
 
|512
|Dient in der Zwischenablage dem setzen von privaten Datenformaten.
+
|Dient in der Zwischenablage dem Setzen von privaten Datenformaten.
 
|-
 
|-
 
|CF_PRIVATELAST
 
|CF_PRIVATELAST
 
|767
 
|767
|Dient in der Zwischenablage dem setzen von privaten Datenformaten.
+
|Dient in der Zwischenablage dem Setzen von privaten Datenformaten.
 
|-
 
|-
 
|CF_GDIOBJFIRST
 
|CF_GDIOBJFIRST
 
|768
 
|768
|Dient in der Zwischenablage dem setzen von privaten Datenformaten.
+
|Dient in der Zwischenablage dem Setzen von privaten Datenformaten.
 
|-
 
|-
 
|CF_GDIOBJLAST
 
|CF_GDIOBJLAST
 
|1023
 
|1023
|Dient in der Zwischenablage dem setzen von privaten Datenformaten.
+
|Dient in der Zwischenablage dem Setzen von privaten Datenformaten.
 
|-
 
|-
 
|CF_PICTURE
 
|CF_PICTURE
Line 138: Line 138:
 
<br>
 
<br>
 
=Leeren der Zwischenablage=
 
=Leeren der Zwischenablage=
Wenn das öffnen und das Schliessen der Zwischenablage wegbleiben wird der Code auch ausgeführt, ist aber schlechter Code.<br>
+
Wenn das Öffnen und das Schliessen der Zwischenablage wegbleiben, wird der Code auch ausgeführt. Dies ist aber schlechter Code.<br>
 
<syntaxhighlight>
 
<syntaxhighlight>
 
   ...
 
   ...
Line 202: Line 202:
 
     ReleaseDC(0, hdcBildschirm);
 
     ReleaseDC(0, hdcBildschirm);
 
     // kopiert den Screenshot in die Zwischenablage
 
     // kopiert den Screenshot in die Zwischenablage
     // dieser kann dann als als Picture oder als Bitmap
+
     // dieser kann dann als Picture oder als Bitmap
 
     // aus der Zwischenablage geholt werden
 
     // aus der Zwischenablage geholt werden
 
     Clipboard.Assign(picBild);
 
     Clipboard.Assign(picBild);

Revision as of 19:08, 6 July 2013

Deutsch (de) English (en) magyar (hu) русский (ru)


Dieser Artikel beschäftigt sich mit der Windowsprogrammierung.


Formate der Zwischenablage

Microsoft Formattypen der Zwischenablage

Der Inhalt der Windows-Zwischenablage kann unter anderem folgende Formate haben:

Konstante Wert Beschreibung
CF_TEXT 1 Unformatierter Ansi-Text (UTF-8).
CF_BITMAP 2 Handle auf eine Windows Bitmap-Grafik.
CF_METAFILEPICT 3 Handle auf eine Windows Metafile-Grafik.
CF_SYLK 4 Handle auf einen Microsoft Symbolic-Link.
CF_DIF 5 Handle auf ein Software Arts "Data Interchange Format".
CF_TIFF 6 Handle auf eine Tagged-Image File Format.
CF_OEMTEXT 7 Mit dem OEM-Zeichensatz formatierter Text. (Dieser Zeichensatz wird z. B. von PC-Dos und MS-Dos verwendet.)
CF_DIB 8 Handle auf eine Windows Bitmap-Grafik.
CF_PALETTE 9 Handle auf eine Farbpalette.
CF_PENDATA 10 Wird im Zusammenhang mit den Stift-Erweiterungen von Microsoft Windows verwendet.
CF_RIFF 11 Multimediadaten (Audiodateien) im Resource Interchange Datei Format (= Resource Interchange File Format).
CF_WAVE 12 Audiodaten in einem der Standard-Wave-Formate wie 11 kHz oder 22 kHz PCM.
CF_UNICODETEXT 13 Text im Unicode-Text-Format (UTF-16).
CF_ENHMETAFILE 14 Ein Handle auf eine erweiterte Metadatei (HENHMETAFILE).
CF_HDROP 15 Ein Handle auf eine Dateiliste, im Zusammenhang mit Drag-And-Drop.
CF_LOCALE 16 Enthält einen numerischen Wert in dem das Gebietsschema (Sprachcode und Ländercode) hinterlegt sind. Diese Information dient dazu, die Zeichensatzcodierung im Zwischenablageformat CF_TEXT zu ermitteln. Das Betriebssystem verwendet die Codepage CF_LOCALE, um Daten aus dem Zwischenablageformat CF_TEXT implizit in das Zwischenablageformat CF_UNICODETEXT konvertieren.
CF_OWNERDISPLAY 128 Owner Display Format.
CF_DSPTEXT 129 Text, dessen Anzeigeformat mit einem eigenen Format verbunden ist (CF_PRIVATEFIRST, CF_PRIVATELAST).
CF_DSPBITMAP 130 Bitmap, deren Anzeigeformat mit einem eigenen Format verbunden ist (CF_PRIVATEFIRST, CF_PRIVATELAST).
CF_DSPMETAFILEPICT 131 Zwischendatei, deren Anzeigeformat mit einem eigenen Format verbunden ist (CF_PRIVATEFIRST, CF_PRIVATELAST).
CF_DSPENHMETAFILE 142 Erweiterte Zwischendatei, deren Anzeigeformat mit einem eigenen Format verbunden ist (CF_PRIVATEFIRST, CF_PRIVATELAST).
CF_PRIVATEFIRST 512 Dient in der Zwischenablage dem Setzen von privaten Datenformaten.
CF_PRIVATELAST 767 Dient in der Zwischenablage dem Setzen von privaten Datenformaten.
CF_GDIOBJFIRST 768 Dient in der Zwischenablage dem Setzen von privaten Datenformaten.
CF_GDIOBJLAST 1023 Dient in der Zwischenablage dem Setzen von privaten Datenformaten.
CF_PICTURE 49674 Handle auf ein Objekt vom Datentyp TPicture.
CF_OBJECT 49685 Handle auf ein beliebiges Objekt.


Einbinden der Unit Clipbrd

Für den Zugriff auf die Zwischenablage wird die Unit Clipbrd benötigt.

  ...
uses
  Clipbrd, ...;
  ...


Das Format der Zwischenablage abfragen

Im Beispiel wird abgefragt, ob der Inhalt der Zwischenablage Textformat hat.

  ...
  If Clipboard.HasFormat(CF_TEXT) then ...
  ...


Leeren der Zwischenablage

Wenn das Öffnen und das Schliessen der Zwischenablage wegbleiben, wird der Code auch ausgeführt. Dies ist aber schlechter Code.

  ...
  Clipboard.Clear; // Leert die Zwischenablage
  ...


Arbeiten mit Texten ohne Textformatierung

Holt den Inhalt der Zwischenablage als unformatierten Text:

  ...
Procedure subProzedur1;
var
  strPuffer: string;

begin
  ...
  strPuffer := Clipboard.AsText;
  ...
end;
  ...


Kopiert den Inhalt eines Strings in die Zwischenablage:

  ...
procedure subProzedur2;
var
  strPuffer: string;

begin
  ...
  strPuffer := 'Hallo Welt';
  Clipboard.AsText := strPuffer;
  ...
end;
  ...


Einen Screenshot erstellen und in die Zwischenablage kopieren

  ...
uses
  Clipbrd, Graphics, Windows, SysUtils, ...;
  ...

procedure subProzedur3;
var
  picBild: TPicture;
  hdcBildschirm: HDC;

begin

  try
    // erstellt das Objekt picBild
    picBild := TPicture.Create;

    // erstellt den Screenshot und übergibt die Adresse des Screenshots
    hdcBildschirm := GetDC(0);
    // kopiert den Inhalt ab Adresse hdcBildschirm nach picBild
    picBild.Bitmap.LoadFromDevice(hdcBildschirm);
    // Freigabe von DC
    ReleaseDC(0, hdcBildschirm);
    // kopiert den Screenshot in die Zwischenablage
    // dieser kann dann als Picture oder als Bitmap
    // aus der Zwischenablage geholt werden
    Clipboard.Assign(picBild);
  finally
    // gibt die lokale Variable picBild wieder frei
    FreeandNil(picBild);
  end;

end;
  ...