Seite 1 von 1

ClipBoard [ERLEDIGT]

Verfasst: Mi, 17. Jul 2013 9:05
von Koverhage
Ich möchte ein Textfeld (z.B. Adresse) per HotKey in die Zwischenablage kopieren.
Da dieses Textfeld ist nicht sichtbar und kann somit mit Strg+C nicht kopiert werden.
Wie kann ich das realisieren ?

Re: ClipBoard

Verfasst: Mi, 17. Jul 2013 9:38
von brandelh
Falls du einen Button anklicken willst, schreibe die Funktion in den activate codeblock.
Wenn nicht, musst du auf dem Fenster (alle Controls geben die unverarbeiteten events an das Fenster weiter) ... den HOTKEY abfangen.
oWin:keyboard := ... sollte passen und dort die Funktion aufrufen. Das geht natürlich nur wenn der EingabeFocus in einem Control auf diesem Fenster liegt.
Der PushButton mit Maus geht immer.

In der Funktion wird das Clipboard geöffnet, am Besten gelöscht und der Inhalt übertragen.

Code: Alles auswählen

#include "xbpdev.ch" // ich meine man braucht das für XBPCLPBRD_TEXT, könnte mich aber auch irren.
local oClipBoard := XbpClipBoard():new():create()
if oClipBoard:open()        // Clipboard öffnen
   oClipBoard:clear()       // löschen
   oClipBoard:setBuffer( oXbpMle:editbuffer() ,XBPCLPBRD_TEXT)
   oClipBoard:close()       // Schließen
endif


Re: ClipBoard

Verfasst: Mi, 17. Jul 2013 9:49
von Koverhage
Bräuchte ich anstatt

oClipBoard:setBuffer( oXbpMle:editbuffer() ,XBPCLPBRD_TEXT)

nur

oClipBoard:setBuffer( cTextFeld ,XBPCLPBRD_TEXT)

nehmen ?

Re: ClipBoard

Verfasst: Mi, 17. Jul 2013 10:05
von georg
Hallo, Klaus -


abhängig davon, welche Daten Du im ClipBoard haben willst, kannst Du die entsprechende Variante verwenden.

Re: ClipBoard

Verfasst: Mi, 17. Jul 2013 10:10
von Koverhage
Das
oClipBoard:setBuffer( cTextFeld ,XBPCLPBRD_TEXT)
macht was ich möchte.

Re: ClipBoard [ERLEDIGT]

Verfasst: Mi, 17. Jul 2013 10:13
von georg
Hallo,


ansonsten darf ich auf ein kleines Beispiel aus unserem WiKi verweisen:

http://wiki.xbaseentwickler.de/index.ph ... oard%28%29

Re: ClipBoard

Verfasst: Mi, 17. Jul 2013 10:14
von brandelh
Koverhage hat geschrieben:Bräuchte ich anstatt
oClipBoard:setBuffer( oXbpMle:editbuffer() ,XBPCLPBRD_TEXT)
nur
oClipBoard:setBuffer( cTextFeld ,XBPCLPBRD_TEXT)
nehmen ?
das Clipboard mit der Einstellung XBPCLPBRD_TEXT erwartet einen String als ersten Parameter, ob der von einem Control, Feld oder einer Variable kommt ist völlig egal,
ich dachte nur es wäre ein hidden MLE, daher mein Vorschlag mit :editbuffer() ;-)