Rechte Maus Taste menu?

26/10/2009 - 12:50 von Silenus paparias | Report spam
Hallo.

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.
 

Lesen sie die antworten

#1 Matthias Kahlert
26/10/2009 - 14:02 | Warnen spam
Silenus paparias schrieb:
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?



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

Ähnliche fragen