Wie kriege ich das "Rechtemaustaste" Menu wenn ich in ein text-feld
drin bin,
so das ich die moeglichkeit habe was zu pasten, cuten,copyren etc...,
wie das in allen windows programmen ueblich ist?
danke.
Einfach im RightClick()-Event der Textbox aufrufen:
DO m_textbox_rightclick WITH This
*========================================================================
* FUNCTION m_textbox_rightclick
*
* Diese Funktion wird in Textboxen verwendet als Methode f�r einen
* Mausklick mit rechter Maustaste, um ein Kontextmen� anzuzeigen.
*
* VERSION HISTORY:
* 02.04.2008 KAH Neuerstellung
*
FUNCTION m_Textbox_RightClick ( loControl AS Object ) AS Boolean
LOCAL lnErg, llErg, loErr
*---------------------------------------------------------------
* Erstmal das Men� definieren
* Kopieren und Ausschneiden sind nur aktiv, wenn auch was
* selektiert ist
* Einf�gen und Alles ausw�hlen sind nur aktiv, wenn das
* Control nicht ReadOnly ist
*---------------------------------------------------------------
ACTIVATE SCREEN
DEACTIVATE POPUP _popShortcutMenu
DEFINE POPUP _popShortcutMenu ;
FROM MROW(),MCOL() MARGIN RELATIVE SHORTCUT
IF LEN(loControl.SelText) > 0 THEN
DEFINE BAR 1 OF _popShortcutMenu PROMPT "Ausschneiden"
ELSE
DEFINE BAR 1 OF _popShortcutMenu ;
PROMPT "Ausschneiden" SKIP FOR .T.
ENDIF
IF LEN(loControl.SelText) > 0 THEN
DEFINE BAR 2 OF _popShortcutMenu PROMPT "Kopieren"
ELSE
DEFINE BAR 2 OF _popShortcutMenu ;
PROMPT "Kopieren" SKIP FOR .T.
ENDIF
IF LEN(_CLIPTEXT) > 0 AND loControl.ReadOnly = .F. THEN
DEFINE BAR 3 OF _popShortcutMenu PROMPT "Einf�gen"
ELSE
DEFINE BAR 3 OF _popShortcutMenu ;
PROMPT "Einf�gen" SKIP FOR .T.
ENDIF
IF loControl.ReadOnly = .F. THEN
DEFINE BAR 4 OF _popShortcutMenu ;
PROMPT "Alles ausw�hlen"
ELSE
DEFINE BAR 4 OF _popShortcutMenu ;
PROMPT "Alles ausw�hlen" SKIP FOR .T.
ENDIF
ON SELECTION POPUP _popShortcutMenu ;
DEACTIVATE POPUP _popShortcutMenu
*---------------------------------------------------------------
* Popup am Bildschirm darstellen und auf Eingabe warten
*---------------------------------------------------------------
ACTIVATE POPUP _popShortcutMenu
RELEASE POPUP _popShortcutMenu
*---------------------------------------------------------------
* Ergebnis auswerten
*---------------------------------------------------------------
lnErg = BAR()
llErg = .F.
DO CASE
*-------------------------------------------------------
* Ausschneiden
*-------------------------------------------------------
CASE lnErg = 1
IF LEN(loControl.SelText) > 0 THEN
_CLIPTEXT = loControl.SelText
loControl.SelText = ""
ELSE
_CLIPTEXT = loControl.Value
loControl.Value = ""
ENDIF
llErg = .T.
*-------------------------------------------------------
* Kopieren
*-------------------------------------------------------
CASE lnErg = 2
IF LEN(loControl.SelText) > 0 THEN
_CLIPTEXT = loControl.SelText
ELSE
_CLIPTEXT = loControl.Value
ENDIF
llErg = .T.
*-------------------------------------------------------
* Einf�gen
*-------------------------------------------------------
CASE lnErg = 3
loControl.SelText = _CLIPTEXT
llErg = .T.
*-------------------------------------------------------
* Alles ausw�hlen
*-------------------------------------------------------
CASE lnErg = 4
loControl.SelStart = 0
TRY
loControl.SelLength = ;
LEN(loControl.Value)
CATCH TO loErr
loControl.SelLength = 999
ENDTRY
llErg = .T.
OTHERWISE
llErg = .T.
ENDCASE
RETURN llErg
ENDFUNC
Als Ersatz f�r deine ganzen Cliptext Ged�hns: Wirf mal nen Blick auf
SYS(1500), mit der du dann die Cut, Copy, Paste Funktionen des Systemmen�s
direkt aufrufen kannst.
--
wOOdy
Visual FoxPro Technologieberater
Microsoft "Most Valuable Professional" 1996 bis 2009
"*��)
�.���.�*��) �.�*�)
(�.��. (�.�` *
..�`.Visual FoxPro: It's magic !
(�.�``��*
Starte die Solution.app :
do (_samples + "\solution\solution.app")
dann gehst du in den Zweig "Menues" und schaust dir das Beispiel "Display
Shortcut Menues" an.
Gruss