Hybridmodus Cut&Paste [ERLEDIGT]

Sonstiges (nicht kategorisierbar)

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Hybridmodus Cut&Paste [ERLEDIGT]

Beitrag von Manfred »

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?
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!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Hybridmodus Cut&Paste

Beitrag von brandelh »

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.)
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Hybridmodus Cut&Paste

Beitrag von Manfred »

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!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Hybridmodus Cut&Paste

Beitrag von Tom »

Oder beispielsweise eine Funktionstaste belegen. An das Clipboard-Objekt kommst Du ja im Hybridmodus.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Hybridmodus Cut&Paste

Beitrag von Manfred »

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!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Hybridmodus Cut&Paste

Beitrag von brandelh »

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 ;-) :

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
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).
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Hybridmodus Cut&Paste

Beitrag von Manfred »

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!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Hybridmodus Cut&Paste [ERLEDIGT]

Beitrag von AUGE_OHR »

hi,

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()
also die selben Tasten wie gewohnt ...
gruss by OHR
Jimmy
saul
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 284
Registriert: So, 26. Mär 2006 12:23

Re: Hybridmodus Cut&Paste [ERLEDIGT]

Beitrag von saul »

Hallo,

Code: Alles auswählen

 /* Transfer character to edit buffer */
IF SET( _SET_INSERT )
  oGet:insert( cChar )
ELSE
  oGet:overstrike( cChar )
ENDIF
oGet:insert wird wahrscheinlich bei XBP verwendet.
Wenn ich aber

Code: Alles auswählen

@2,2 get cZeile1
@3,2 get cZeile2
read
habe, wie bekomme ich dann z. B. die einzelnen Buchstaben in die Variable cZeile2?

mfg
Wolfgang
Antworten