4D v16.3

Pasteboard data size

Home

 
4D v16.3
Pasteboard data size

Pasteboard data size 


 

Pasteboard data size ( DatenTyp ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
DatenTyp  String in String mit 4 Zeichen
Funktionsergebnis  Lange Ganzzahl in Größe (in Bytes) der im Pasteboard gespeicherten Daten oder Fehlercode

Die Funktion Pasteboard data size prüft, ob es im Pasteboard Daten mit dem in DatenTyp übergebenen Typ gibt.

Warnung: Der in DatenTyp übergebene Wert berücksichtigt die Schreibweise. So ist z.B. “abcd” nicht gleich “ABCD.”

Ist das Pasteboard leer oder enthält keine Daten vom angegebenen Typ, gibt die Funktion einen Fehler -102 zurück. Enthält das Pasteboard Daten vom angegebenen Typ, gibt die Funktion die Größe der Daten in Bytes zurück.

In DatenTyp können Sie eine 4D Signatur, ein UTI (Mac OS), Formatnamen oder -nummer (Windows) oder einen Typ aus vier Zeichen (Kompatibilität) angeben. Weitere Informationen dazu finden Sie im Abschnitt Pasteboards verwalten.

Haben Sie festgestellt, dass das Pasteboard Daten des entsprechenden Typs enthält, können Sie diese mit folgenden Befehlen aus dem Pasteboard entnehmen:

  • Enthält das Pasteboard Daten vom Typ TEXT, erhalten Sie diese entweder mit der Funktion Get text from pasteboard, die einen Textwert zurückgibt, oder mit dem Befehl GET PASTEBOARD DATA, der den Text in einem BLOB zurückgibt.
  • Enthält das Pasteboard Daten vom Typ Bild, erhalten Sie diese entweder mit dem Befehl GET PICTURE FROM PASTEBOARD, der das Bild in einem Bilddatenfeld oder einer Variablen zurückgibt, oder mit dem Befehl GET PASTEBOARD DATA, der das Bild in einem BLOB zurückgibt.
  • Enthält das Pasteboard den Pfadnamen einer Datei, erhalten Sie diesen über die Funktion Get file from pasteboard, die den Pfadnamen der Datei zurückgibt.
  • Verwenden Sie für alle anderen Datentypen den Befehl GET PASTEBOARD DATA, der die Daten in einem BLOB zurückgibt.

Nachfolgender Code prüft, ob die Zwischenablage ein Bild enthält. Wenn ja, wird es in eine 4D Variable kopiert:

 If(Pasteboard data size(Picture data)=1) //Gibt es ein Bild im Pasteboard?
    GET PICTURE FROM PASTEBOARD($vPicVariable//Wenn ja, entnimm das Bild aus dem Pasteboard
 Else
    ALERT("Es gibt kein Bild im Pasteboard.")
 End if

Anwendungen schneiden normalerweise Daten vom Typ TEXT bzw. Bild aus bzw. kopieren sie in das Pasteboard, da die meisten Anwendungen diese beiden Standarddatentypen erkennen. Eine Anwendung kann jedoch mehrere Instanzen derselben Daten in verschiedenen Formaten anfügen. Immer, wenn Sie z.B. Teile einer Tabellenkalkulation ausschneiden bzw. kopieren, könnte die Anwendung die Daten unter dem hypothetischen Format ‘SPSH’ anfügen, ebensogut aber auch in den Formaten SYLK und TEXT. Dann würde ‘SPSH’ die Daten gemäß der Datenstruktur enthalten, SYLK dieselben Daten im SYLK Format, das von den meisten anderen Tabellenkalkulationen erkannt wird und TEXT dieselben Daten ohne die Zusatzinformationen in SYLK bzw. ‘SPSH’. Vorausgesetzt, Sie kennen die Beschreibung des ‘SPSH’ Formats und haben alles für die Übertragung von Daten im SYLK Format vorbereitet, können Sie nun Routinen für Ausschneiden/Kopieren/Einsetzen zwischen 4D und jener hypothetischen Tabellenkalkulation erstellen. Ihr Code könnte folgendermaßen aussehen:

 Case of
  ` Prüfen Sie zuerst, ob das Pasteboard Daten aus der hypothetischen Tabellenkalkulation enthält
    :(Test clipboard('SPSH')>0)
  ` ...
  ` Prüfen Sie dann, ob das Pasteboard Daten vom Typ Sylk enthält
    :(Test clipboard('SYLK')>0)
  ` ...
  ` Prüfen Sie schließlich, ob das Pasteboard Daten vom Typ Text enthält
    :(Test clipboard('TEXT')>0)
  ` ...
 End case

Anders gesagt, Sie versuchen aus dem Pasteboard die Instanz der Daten zu entnehmen, die am meisten Originalinformationen enthält.

Sie wollen eigene Daten aus verschiedenen Objekten in Ihr Formular ziehen. Sie können schreiben:

  //Quellobjekt
 If(Form event=On Begin Drag Over)
    APPEND DATA TO PASTEBOARD("some.private.data";$data)
 End if

  //Zielobjekt
 If(Form event=On Drag Over)
    $0:=Choose(Pasteboard data size("some.private.data")>0;0;-1)
 End if

Siehe Beispiel zum Befehl APPEND DATA TO PASTEBOARD.



Siehe auch 

GET PASTEBOARD DATA
GET PICTURE FROM PASTEBOARD
Get text from pasteboard
Pasteboard

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Pasteboard
Nummer: 400

Dieser Befehl ändert die Systemvariable Error

 
GESCHICHTE 

Geändert: 4D v11 SQL

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)