Difference between revisions of "Clipboard/de"

From Lazarus wiki
Jump to navigationJump to search
m
Line 4: Line 4:
 
Dieser Artikel beschäftigt sich mit der Windowsprogrammierung.<br>
 
Dieser Artikel beschäftigt sich mit der Windowsprogrammierung.<br>
 
__TOC__
 
__TOC__
<br>
 
=Einbinden der Unit Clipbrd=
 
Für den Zugriff auf die Zwischenablage wird die Unit '''Clipbrd''' benötigt.<br>
 
<syntaxhighlight>
 
 
  ...
 
 
uses
 
  Clipbrd, ...;
 
 
  ...
 
 
</syntaxhighlight>
 
 
<br>
 
<br>
 
=Formate der Zwischenablage=
 
=Formate der Zwischenablage=
Line 133: Line 120:
 
|}
 
|}
 
<br>
 
<br>
 
+
=Einbinden der Unit Clipbrd=
 +
Für den Zugriff auf die Zwischenablage wird die Unit '''Clipbrd''' benötigt.<br>
 +
<syntaxhighlight>
 +
  ...
 +
uses
 +
  Clipbrd, ...;
 +
  ...
 +
</syntaxhighlight>
 +
<br>
 
==Das Format der Zwischenablage abfragen==
 
==Das Format der Zwischenablage abfragen==
 
Im Beispiel wird abgefragt, ob der Inhalt der Zwischenablage Textformat hat.
 
Im Beispiel wird abgefragt, ob der Inhalt der Zwischenablage Textformat hat.
 
<syntaxhighlight>
 
<syntaxhighlight>
 
 
   ...
 
   ...
 
 
   If Clipboard.HasFormat(CF_TEXT) then ...
 
   If Clipboard.HasFormat(CF_TEXT) then ...
 
 
   ...
 
   ...
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
Line 149: Line 140:
 
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, ist aber schlechter Code.<br>
 
<syntaxhighlight>
 
<syntaxhighlight>
 
 
   ...
 
   ...
 
 
   Clipboard.Clear; // Leert die Zwischenablage
 
   Clipboard.Clear; // Leert die Zwischenablage
 
 
   ...
 
   ...
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
Line 161: Line 148:
 
Holt den Inhalt der Zwischenablage als unformatierten Text:<br>
 
Holt den Inhalt der Zwischenablage als unformatierten Text:<br>
 
<syntaxhighlight>
 
<syntaxhighlight>
 
 
   ...
 
   ...
 
 
Procedure subProzedur1;
 
Procedure subProzedur1;
 
var
 
var
Line 169: Line 154:
  
 
begin
 
begin
 
 
   ...
 
   ...
 
 
   strPuffer := Clipboard.AsText;
 
   strPuffer := Clipboard.AsText;
 
 
   ...
 
   ...
 
 
end;
 
end;
 
 
   ...
 
   ...
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
 
Kopiert den Inhalt eines Strings in die Zwischenablage:<br>
 
Kopiert den Inhalt eines Strings in die Zwischenablage:<br>
 
<syntaxhighlight>
 
<syntaxhighlight>
 
 
   ...
 
   ...
 
 
procedure subProzedur2;
 
procedure subProzedur2;
 
var
 
var
Line 192: Line 169:
  
 
begin
 
begin
 
 
   ...
 
   ...
 
 
   strPuffer := 'Hallo Welt';
 
   strPuffer := 'Hallo Welt';
 
   Clipboard.AsText := strPuffer;
 
   Clipboard.AsText := strPuffer;
 
 
   ...
 
   ...
 
 
end;
 
end;
 
 
   ...
 
   ...
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>

Revision as of 20:29, 5 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 ein 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 einer Farbpalette.
CF_PENDATA 10 Wird im Zusammenhang mit den Stift Erweiterungen von Microsoft Windows verwendet.
CF_RIFF 11 Multimedia Daten (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 Darg-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, 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;
  ...