implizites Kontextmenü eines XbpSLE unterbinden?

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

implizites Kontextmenü eines XbpSLE unterbinden?

Beitrag von georg »

Hallo,


mal wieder so eine "seltsame" Frage.

Wenn ich in einem Standard-XbpSLE() die rechte Maustaste drücke, erscheint folgendes Kontext-Menü:

Bild

Wenn ich nun über den :rbClick-Callback ein eigenes Kontextmenü einbinden will, erscheint (zumindest bei mir) zuerst immer das hier abgebildete, danach erst das von mir definierte.

Kennt (und verrät) einer von Euch einen Weg, dieses Standard-Menü zu unterbinden?
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
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: implizites Kontextmenü eines XbpSLE unterbinden?

Beitrag von AUGE_OHR »

hi,

versuche es mal so wie im angehängten Demo
Dateianhänge
SLE_MENU.ZIP
(722 Bytes) 189-mal heruntergeladen
gruss by OHR
Jimmy
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: implizites Kontextmenü eines XbpSLE unterbinden?

Beitrag von brandelh »

Die CallBack-Codeblöcke werden erst NACH dem Standardverhalten ausgeführt.
Wenn du das Standardverhalten ändern willst, musst du eine eigene Klasse ableiten und dort die Methode ändern.

Schöner wäre es gewesen, wenn man das Kontextmenü zentral abschalten könnte, aber mir ist kein solcher Schalter bekannt.
Gruß
Hubert
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: implizites Kontextmenü eines XbpSLE unterbinden?

Beitrag von AUGE_OHR »

hi,

hast du das Demo probiert ?
es macht doch das was Georg will, oder ?
SLE_Menu.PNG
SLE_Menu.PNG (1.85 KiB) 3619 mal betrachtet
p.s. auch die Methoden im Menu funktionieren !
brandelh hat geschrieben:Die CallBack-Codeblöcke werden erst NACH dem Standardverhalten ausgeführt.
Wenn du das Standardverhalten ändern willst, musst du eine eigene Klasse ableiten und dort die Methode ändern.
hm ... wenn der Codeblock eines CallBack Slot benutzt werden soll müsste ich doch zuerst prüfen ob dieser belegt ist.

Code: Alles auswählen

   IF VALTYPE(bCallBack) = "B"
      RETURN EVAL(bCallBack,GetCurAbsPos(),NIL,self) // {| aPos, uNIL, self | ... }
   ELSE
      // sonst wie vom OS() vorgesehen
   ENDIF
IMHO mit der Bestückung eines CallBack Slot überschreibe ich die OS() Method.
brandelh hat geschrieben:Schöner wäre es gewesen, wenn man das Kontextmenü zentral abschalten könnte, aber mir ist kein solcher Schalter bekannt.
:boxing: ... ich benutze ständig das "rechte-Maus-Taste" Menu
gruss by OHR
Jimmy
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: implizites Kontextmenü eines XbpSLE unterbinden?

Beitrag von georg »

Hallo, Jimmy -


danke für Dein Beispiel.

Ich hatte :rbClick verwendet, mit :rbDown gibt es genau das Verhalten, das ist wünsche.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
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: implizites Kontextmenü eines XbpSLE unterbinden?

Beitrag von brandelh »

georg hat geschrieben:Ich hatte :rbClick verwendet, mit :rbDown gibt es genau das Verhalten, das ist wünsche.
das hatte ich überlesen ...
Mit den PopUp Menüs mache ich nicht viel, daher danke für das schöne Bespiel Jimmy.
Gruß
Hubert
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: implizites Kontextmenü eines XbpSLE unterbinden?

Beitrag von brandelh »

AUGE_OHR hat geschrieben: hast du das Demo probiert ?
es macht doch das was Georg will, oder ?
ja, dein Beispiel macht was Georg will, dennoch war meine Aussage in Bezug auf CallBack Codeblöcken und CallBack Methoden richtig.
Allerdings ist die "automatische Vorgabe" wie von dir erwähnt eine von Microsoft, während ich von einer Methode durch Alaska XbpSLE() ausging.
wenn man z.B. eine msgbox() in den codeblock hängt, kommt zunächst die msgbox und danach das "Standardmenü" ...
Dein Beispiel zeigt, dass ein im Control eingerichtetes PopUp Menü das "Standardmenü" aber überschreibt ...
AUGE_OHR hat geschrieben: ... wenn der Codeblock eines CallBack Slot benutzt werden soll müsste ich doch zuerst prüfen ob dieser belegt ist.

Code: Alles auswählen

   IF VALTYPE(bCallBack) = "B"
      RETURN EVAL(bCallBack,GetCurAbsPos(),NIL,self) // {| aPos, uNIL, self | ... }
   ELSE
      // sonst wie vom OS() vorgesehen
   ENDIF
IMHO mit der Bestückung eines CallBack Slot überschreibe ich die OS() Method.
Gruß
Hubert
Antworten