Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Pasteboard data size
|
Pasteboard data size ( DatenTyp ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
DatenTyp | String |
![]() |
String mit 4 Zeichen | |||||
Funktionsergebnis | Lange Ganzzahl |
![]() |
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:
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.
GET PASTEBOARD DATA
GET PICTURE FROM PASTEBOARD
Get text from pasteboard
Pasteboard
Produkt: 4D
Thema: Pasteboard
Nummer:
400
Geändert: 4D v11 SQL
4D Programmiersprache ( 4D v20 R7)