Inputbox in einer APP + STRG-V

11/03/2008 - 11:54 von Jörg Schneider | Report spam
Hallo zusammen,

ich erstelle u.a. mit folgenden Code ein eigenes "Bearbeiten-Menü" für
meine Anwendung:

DEFINE PAD _2be0lhi60 OF _MSYSMENU PROMPT ""+("\<Bearbeiten")+"" COLOR
SCHEME 3 ;
KEY ALT+B, "" ;
MESSAGE ("Bearbeiten, Kopieren, Einfügen...")

ON PAD _2be0lhi60 OF _MSYSMENU ACTIVATE POPUP bearbeiten

DEFINE POPUP bearbeiten MARGIN RELATIVE SHADOW COLOR SCHEME 4

DEFINE BAR _med_paste OF bearbeiten PROMPT ""+("E\<infügen")+"" ;
KEY CTRL+V, "Strg+V" ;
PICTURE "..\pictures\paste.bmp" ;
MESSAGE ("Fügt den Inhalt der Zwischenablage ein.")
...

Das Einfügen mit STRG+V in Textboxen, Editboxen, etc. funktioniert
soweit auch problemlos.
Wenn ich nun einen Text in das Eingabefeld einer Inputbox per STRG+V
einfügen will,
bekomme ich anstatt des entsprechenden Textes ein Sonderzeichen angezeit
(chr(22)).

Kennt irgend jemand dieses Problem bzw. gibt es hierfür irgend eine Lösung?

Grüße
Jörg
 

Lesen sie die antworten

#1 Stefan Wuebbe
15/03/2008 - 13:24 | Warnen spam
"Jörg Schneider" wrote in message
news:
<...>
Das Einfügen mit STRG+V in Textboxen, Editboxen, etc. funktioniert soweit
auch problemlos.
Wenn ich nun einen Text in das Eingabefeld einer Inputbox per STRG+V
einfügen will,
bekomme ich anstatt des entsprechenden Textes ein Sonderzeichen angezeit
(chr(22)).


Hallo Jörg -

Als "main.prg" eines test.PJX kompiliert, funktioniert für mich das Einfügen
in eine InputBox() im Beispiel unten. Die Bestandteile sind aus anderen
PRGs zusammen kopiert, deswegen enthalten sie mehr Code als notwendig
- vielleicht seh' ich deswegen den Grund/Unterschied zu deiner Beschreibung
nicht ... :-)


hth
-Stefan


*
ON SHUTDOWN quit
_screen.Visible = .T.
DO MenuEdit
LOCAL loForm as Form
loForm = CREATEOBJECT('TestForm')
loForm.Show(1)
RETURN

DEFINE CLASS TestForm as Form
ADD OBJECT Edit1 as EditBox WITH ;
Top = 50, Left = 20, ;
Width = 320, Height = 150
ADD OBJECT cmdInput as CommandButton WITH ;
Top = 5, Left = 50, ;
Height = 22, Caption = "InputBox"
PROCEDURE cmdInput.Click
INPUTBOX("Copy&Paste Test")
ENDPROC
ENDDEFINE

PROCEDURE MenuEdit()
#define C_MNUPAD_EDIT "\<Bearbeiten"
#define MNUPAD_KEY_EDIT [KEY ALT+B, ""]
#define MSG_MNUPAD_EDIT "Dient zum Bearbeiten von Text oder der aktuellen
Auswahl."
#define C_MNUBAR_EDIT_RESTORE "Rückgàngig"
#define MSG_MNUBAR_EDIT_RESTORE "Macht die Änderungen rückgàngig."
#define HK_MNUBAR_EDIT_RESTORE "Strg+Z"
#define C_MNUBAR_EDIT_CUT "A\<usschneiden"
#define MSG_MNUBAR_EDIT_CUT "Entfernt die Markierung und übertràgt sie in
die Zwischenablage."
#define HK_MNUBAR_EDIT_CUT "Strg+X"
#define C_MNUBAR_EDIT_COPY "\<Kopieren"
#define MSG_MNUBAR_EDIT_COPY "Kopiert die Markierung in die Zwischenablage."
#define HK_MNUBAR_EDIT_COPY "Strg+C"
#define C_MNUBAR_EDIT_PASTE "E\<infügen"
#define MSG_MNUBAR_EDIT_PASTE "Fügt den Inhalt der Zwischenablage ein."
#define HK_MNUBAR_EDIT_PASTE "Strg+V"
#define C_MNUBAR_EDIT_SELECTALL "\<Alles markieren"
#define MSG_MNUBAR_EDIT_SELECTALL "Markiert den gesamten Text oder alle
Elemente im aktuellen Fenster."
#define HK_MNUBAR_EDIT_SELECTALL "Strg+A"

LOCAL lcKey
lcKey = MNUPAD_KEY_EDIT
DEFINE PAD _msm_edit OF _MSYSMENU PROMPT C_MNUPAD_EDIT COLOR SCHEME 3 ;
NEGOTIATE NONE, LEFT ;
AFTER _msm_file ;
&lcKey ;
MESSAGE MSG_MNUPAD_EDIT

ON PAD _msm_edit OF _MSYSMENU ACTIVATE POPUP _medit

DEFINE POPUP _medit MARGIN RELATIVE SHADOW COLOR SCHEME 4

#if VERSION(5) < 700
DEFINE BAR _med_cut OF _medit PROMPT C_MNUBAR_EDIT_CUT ;
KEY CTRL+X, HK_MNUBAR_EDIT_CUT ;
MESSAGE MSG_MNUBAR_EDIT_CUT
#else
DEFINE BAR _med_cut OF _medit PROMPT C_MNUBAR_EDIT_CUT ;
KEY CTRL+X, HK_MNUBAR_EDIT_CUT ;
PICTRES _med_cut ;
MESSAGE MSG_MNUBAR_EDIT_CUT
#endif

#if VERSION(5) < 700
DEFINE BAR _med_copy OF _medit PROMPT C_MNUBAR_EDIT_COPY ;
KEY CTRL+C, HK_MNUBAR_EDIT_COPY ;
MESSAGE MSG_MNUBAR_EDIT_COPY
#else
DEFINE BAR _med_copy OF _medit PROMPT C_MNUBAR_EDIT_COPY ;
KEY CTRL+C, HK_MNUBAR_EDIT_COPY ;
PICTRES _med_copy ;
MESSAGE MSG_MNUBAR_EDIT_COPY
#endif

#if VERSION(5) < 700
DEFINE BAR _med_paste OF _medit PROMPT C_MNUBAR_EDIT_PASTE ;
KEY CTRL+V, HK_MNUBAR_EDIT_PASTE ;
MESSAGE MSG_MNUBAR_EDIT_PASTE
#else
DEFINE BAR _med_paste OF _medit PROMPT C_MNUBAR_EDIT_PASTE ;
KEY CTRL+V, HK_MNUBAR_EDIT_PASTE ;
PICTRES _med_paste ;
MESSAGE MSG_MNUBAR_EDIT_PASTE
#endif

DEFINE BAR _med_sp200 OF _medit PROMPT '\-'

DEFINE BAR _med_slcta OF _medit PROMPT C_MNUBAR_EDIT_SELECTALL ;
KEY CTRL+A, HK_MNUBAR_EDIT_SELECTALL ;
MESSAGE MSG_MNUBAR_EDIT_SELECTALL
ENDPROC

*





|\_/| ProLib - programmers liberty --
(.. ) Our MVPs and MCPs make the Fox run
- / See us at www.prolib.de or www.AFPages.de

Ähnliche fragen