🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Zwischenablage befüllen / einfügen

Alles zur Programmierung im LibreOffice.
Eric March
Beiträge: 54
Registriert: Do 16. Jun 2011, 16:08

Re: Zwischenablage befüllen / einfügen

Beitrag von Eric March » Di 14. Feb 2012, 21:08

OK, die Befehlszeilen existieren tatsächlich noch anderswo. Da werde ich mal umräumen müssen.
Das für den Moment, ich werde gerade von unserem IIS geärgert.
Eric March

Eric March
Beiträge: 54
Registriert: Do 16. Jun 2011, 16:08

Re: Zwischenablage befüllen / einfügen

Beitrag von Eric March » Mi 15. Feb 2012, 20:37

In der Tat - LO schmiert mit einer C++-Fehlermedung ab. Also die Module wieder scharfgemacht und nun geht es.

Was mich interessiert sind diese ‹oTR› nebst dem ‹Tr_›. Wie weit spielt das in den Funktionsnamen eine Rolle?

Code: Alles auswählen

REM Module Zwischenablage

Global TextInString As String
Global Nachricht as string

Sub ZwischenablageInText
Dim oClip, oClipContents, oTypes
Dim oConverter, convertedString$
Dim i%, iPlainLoc%
 iPlainLoc = -1
 oClip = createUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
 oConverter = createUnoService("com.sun.star.script.Converter")
 oClipContents = oClip.getContents()
 oTypes = oClipContents.getTransferDataFlavors()
 For i=LBound(oTypes) To UBound(oTypes)
  If oTypes(i).MimeType = "text/plain;charset=utf-16" Then
   iPlainLoc = i
   Exit For
  End If
 Next
 If (iPlainLoc >= 0) Then
  TextClipboard = oConverter.convertToSimpleType(oClipContents.getTransferData(oTypes(iPlainLoc)), com.sun.star.uno.TypeClass.STRING)
 End If
print TextClipboard
End Sub

Sub TextInZwischenablage()
 BeispielText = "123456789"
 ' create SystemClipboard instance
 ZwAbl = CreateUnoService("com.sun.star.datatransfer.clipboard.SystemClipboard")
 oTR = CreateUnoListener("Tr_", "com.sun.star.datatransfer.XTransferable")
 ZwAbl.SetContents(oTR,Null)
 TextInString = BeispielText
End Sub
Function Tr_getTransferData(ZAFlavor As com.sun.star.datatransfer.DataFlavor)
 Nachricht = Nachricht & "Tr_getTransferData" & Chr(10)
 If (ZAFlavor.MimeType = "text/plain;charset=utf-16") Then
  Tr_getTransferData() = TextInString
 End If
End Function
Function Tr_getTransferDataFlavors()
 Dim ZAFlavor As New com.sun.star.datatransfer.DataFlavor
 Nachricht = Nachricht & "Tr_getTransferDataFlavors" & Chr(10)
 ZAFlavor.MimeType = "text/plain;charset=utf-16"
 ZAFlavor.HumanPresentableName = "Unicode-Text"
 Tr_getTransferDataFlavors() = Array(ZAFlavor)
End Function
Function Tr_isDataFlavorSupported(ZAFlavor As com.sun.star.datatransfer.DataFlavor) As Boolean
 Nachricht = Nachricht & "Tr_isDataFlavorSupported" & Chr(10)
 If ZAFlavor.MimeType = "text/plain;charset=utf-16" Then
  Tr_isDataFlavorSupported = True
 Else
  Tr_isDataFlavorSupported = False
 End If
End Function
Eric March


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten