Hybridmodus Cut&Paste [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hybridmodus Cut&Paste [ERLEDIGT]
Hi,
ist es eigentlich möglich bei einer Hybridanwendung, im Textmodus in die GET Felder etwas einzufügen, was im Zwischenspeicher ist? Also wenn ich z.B. mit auf einer Webseite etwas kopiere um es dann zu übernehmen. So direkt scheint es ja nicht zu klappen, kann man da was programmieren?
ist es eigentlich möglich bei einer Hybridanwendung, im Textmodus in die GET Felder etwas einzufügen, was im Zwischenspeicher ist? Also wenn ich z.B. mit auf einer Webseite etwas kopiere um es dann zu übernehmen. So direkt scheint es ja nicht zu klappen, kann man da was programmieren?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Hybridmodus Cut&Paste
Grundsätzlich kann man in ein GET Feld auch mit normalem Cut&Paste reinschreiben, aber leider ist das nicht zuverlässig.
Was immer geht ist z.B. mit XbpClipBoard() einen Text aus der Zwischenablage abzuholen und in das aktuelle oder ein beliebiges GET Objekt einzufügen (siehe get() :buffer etc.)
Was immer geht ist z.B. mit XbpClipBoard() einen Text aus der Zwischenablage abzuholen und in das aktuelle oder ein beliebiges GET Objekt einzufügen (siehe get() :buffer etc.)
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Hybridmodus Cut&Paste
bedeutet das nun, das ich die Maus aktivieren, eine Routine schreiben muß, die die rechte Maustaste im Feld abfragt und dann entsprechend reagieren?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Hybridmodus Cut&Paste
Oder beispielsweise eine Funktionstaste belegen. An das Clipboard-Objekt kommst Du ja im Hybridmodus.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Hybridmodus Cut&Paste
ah, das wäre eine Möglichkeit. Muß ich mal schauen wie ich das umsetzen könnte.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Hybridmodus Cut&Paste
Unter GUI hatte ich eine Eingabehilfe für Datenübernahme vom Großrechner.
In der Großrechner emu konnte man mit einem Hotkey oder Button den kompletten Bildschirminhalt als Text in die Zwischenablage stellen.
Mit einem PushButton in meiner Anwendung übernahm ich dann alle gewünschten Infos in die SLE.
Bei dir wäre ein Hotkey (set key ...) genauso möglich wie die Buttons der Maus abzufragen, allerdings dürfte der Anwender z.B. schneller F2 drücken als die Maus zu suchen.
Hier ein Beispiel aus meiner Rechenroutine und der Hilfe ... ohne Prüfung, also können einige Fehler drinn sein :
mit keyboard wird die Zwischenablage direkt an der Cursorposition als Texteingabe ausgeführt.
Falls du eine strengere Eingabe möchtest, kannst du auch das aktuelle Get Objekt abfragen und den Buffer setzen (auf Länge achten).
In der Großrechner emu konnte man mit einem Hotkey oder Button den kompletten Bildschirminhalt als Text in die Zwischenablage stellen.
Mit einem PushButton in meiner Anwendung übernahm ich dann alle gewünschten Infos in die SLE.
Bei dir wäre ein Hotkey (set key ...) genauso möglich wie die Buttons der Maus abzufragen, allerdings dürfte der Anwender z.B. schneller F2 drücken als die Maus zu suchen.
Hier ein Beispiel aus meiner Rechenroutine und der Hilfe ... ohne Prüfung, also können einige Fehler drinn sein :
Code: Alles auswählen
* am Anfang des Programmes ...
set key K_F9 to DatenPaste
...
*-----------------------------------------------------------------------------
procedure DatenPaste(proz,zei,_var) // aus dem GET System kommen nur 3 Parameter !
// da keine Bildschirmänderungen nötig sind auch nichst sichern ...
local cTxt
local oClipBoard := XbpClipBoard():new():create() // Objekt erzeugen
// Clipboard öffnen und feststellen, welche Datenformate
// darin abgelegt sind
oClipBoard:open()
cTxt := oClipBoard:getBuffer( XBPCLPBRD_TEXT )
// oClipBoard:clear() // Zwischenablage löschen ???
oClipBoard:close()
if ! empty(cTxt)
keyboard alltrim(cTxt)
endif
return
Falls du eine strengere Eingabe möchtest, kannst du auch das aktuelle Get Objekt abfragen und den Buffer setzen (auf Länge achten).
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21200
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Hybridmodus Cut&Paste
ich verneige und bedanke mich vor und bei euch. Das hat mir weiter geholfen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Hybridmodus Cut&Paste [ERLEDIGT]
hi,
ich gehe mal davon aus das SETMOUSE( .T. ) gesetzt wurde und damit c:\ALASKA\XPPW32\Source\SYS\GetSysX.prg aktive ist.also die selben Tasten wie gewohnt ...
ich gehe mal davon aus das SETMOUSE( .T. ) gesetzt wurde und damit c:\ALASKA\XPPW32\Source\SYS\GetSysX.prg aktive ist.
Code: Alles auswählen
PROCEDURE GetHandleEvent( oGet, nEvent, mp1, mp2, obj )
...
// hinzufügen für copy / paste
// Copy to Clipboard
CASE nEvent == xbeK_CTRL_C
oClipBoard := XbpClipBoard():new():create()
oClipBoard:open()
cText := oGet:buffer
oClipBoard:setBuffer(cText, XBPCLPBRD_TEXT)
oClipBoard:close()
oClipBoard:destroy()
// Copy from Clipboard
CASE nEvent == xbeK_CTRL_V
oClipBoard := XbpClipBoard() :new() :create()
oClipBoard:open()
aFormats := OClipBoard:queryFormats()
IF ASCAN( aFormats, XBPCLPBRD_TEXT ) > 0
cText := oClipBoard:getBuffer( XBPCLPBRD_TEXT )
n := LEN( cText )
FOR i := 1 TO n
cChar := cText[ i ]
/* Transfer character to edit buffer */
IF SET( _SET_INSERT )
oGet:insert( cChar )
ELSE
oGet:overstrike( cChar )
ENDIF
/* No room left to type to the right of the cursor */
IF oGet:typeOut
IF SET( _SET_BELL )
QQOUT( CHR( 7 ) )
ENDIF
IF !SET( _SET_CONFIRM )
oGet:exitState := GE_ENTER
ENDIF
EXIT
ENDIF
NEXT i
ENDIF
oClipBoard:close()
oClipBoard:destroy()
gruss by OHR
Jimmy
Jimmy
Re: Hybridmodus Cut&Paste [ERLEDIGT]
Hallo,
oGet:insert wird wahrscheinlich bei XBP verwendet.
Wenn ich aber habe, wie bekomme ich dann z. B. die einzelnen Buchstaben in die Variable cZeile2?
mfg
Wolfgang
Code: Alles auswählen
/* Transfer character to edit buffer */
IF SET( _SET_INSERT )
oGet:insert( cChar )
ELSE
oGet:overstrike( cChar )
ENDIF
Wenn ich aber
Code: Alles auswählen
@2,2 get cZeile1
@3,2 get cZeile2
read
mfg
Wolfgang