Die Benutzer nutzen häufig die Maus um (manchmal relativ große) Texte im DOS-Fenster zu kopieren (linke Taste selektieren, rechte Taste kopieren, rechte Taste einfügen).
Jetzt (GUI=YES) kann man mit runtergehaltener linker Maustaste einen Texbereich auswählen, der sich dann sofort in der Zwischenablage befindet (anstatt mit linker Taste auswählen dann mit rechter Taste selektieren zu müssen). Ist ja eigentlich nett, obwohl es manchmal nicht leicht ist zu sehen was man kopiert.
Allerdings geht das Einfügen nicht von allein, also habe ich selber ein Event für die rechte Maustaste definiert -
Code: Alles auswählen
SetAppEvent(xbeM_RbClick, {|| DoPaste()})
Ich habe versucht, den Text mit KEYBOARD einzufügen - ging gewissermaßen, aber selbst mit SET TYPEAHEAD 100 ist die Puffergröße unzureichend für meine Benutzer. Also habe ich nun die Funktion umgeschrieben um den GET-Puffer zu manipulieren -
Code: Alles auswählen
PROCEDURE DoPaste()
LOCAL oCB:=XbpClipBoard():new(), go:=GETACTIVE()
IF !EMPTY(go) .AND. go:hasfocus
IF oCB:open()
go:buffer := SUBSTR(go:buffer, 1, go:pos - 1) +;
oCB:getBuffer(XBPCLPBRD_TEXT) +;
SUBSTR(go:buffer, go:pos)
oCB:close()
END
END
oCB:destroy()
RETURN
Ich wäre dankbar für jeden Hinweis oder alternativen Ansatz.
David