Seite 1 von 2

Rechtsklick bei Editorgadget

Verfasst: 22.12.2010 17:32
von Velindos
Hallo,
gibt es eine Möglichkeit das man im Editorgadget auch den rechten Mausklick für Einfügen von Texten verwenden kann?

Code: Alles auswählen

; EditorGadget TEST
;{
Enumeration
  #Window_0
EndEnumeration
; Variablen
Enumeration
  #String_0
  #String_1
  #Text_0
  #Text_1
  #Text_2
  #Text_3
EndEnumeration
;}
If OpenWindow(#Window_0, 220, 0, 470, 300, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
  If CreateGadgetList(WindowID(#Window_0))
    EditorGadget(#String_0, 120, 50, 150, 140)
    SendMessage_(GadgetID(#String_0), #EM_SETTARGETDEVICE, #Null, 0)
    TextGadget(#Text_0, 120, 30, 240, 20, "Hier geht der rechte Mausklick nicht!")
    TextGadget(#Text_2, 120, 10, 140, 20, "Mein EditorGadget")
    StringGadget(#String_1, 120, 230, 240, 20, "Test")
    TextGadget(#Text_1, 120, 210, 170, 20, "Mein Stringgadget")
    TextGadget(#Text_3, 120, 260, 240, 20, "Hier geht der rechte Mausklick!")
  EndIf
  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf 
Gruss ... Velindos

Re: Rechtsklick bei Editorgadget

Verfasst: 22.12.2010 17:36
von TomS
Schau dir mal EventType() an.
Damit kannst du den Rechtsklick auf einem Gadget abfragen.
Dann schaust du dir CreatePopupMenu() und Konsorten an, wie man ein Kontextmenü erstellt.

Re: Rechtsklick bei Editorgadget

Verfasst: 22.12.2010 18:15
von Velindos
Hallo,
es geht nicht um die Abfrage, wie du siehst im meinem Beispiel, zeigt das Editorgadget kein Kontextmenü an! Wenn man mit der Maus darauf fährt!
Gruss ... Velindos

Re: Rechtsklick bei Editorgadget

Verfasst: 22.12.2010 18:33
von bobobo
kauf dir doch ein betriebssystem bei dem sowas geht.
das ist nicht pb spezifisch.
im editorgadget musst du das eben selber nachbasteln was so simples stringgadget schon von sich aus kann.

Re: Rechtsklick bei Editorgadget

Verfasst: 22.12.2010 20:37
von ts-soft

Code: Alles auswählen

; EditorGadget TEST
;{
Enumeration
  #Window_0
EndEnumeration
; Variablen
Enumeration
  #String_0
  #String_1
  #Text_0
  #Text_1
  #Text_2
  #Text_3
EndEnumeration
;}

Procedure WinCallback(hWnd, uMsg, wParam, lParam) 
  Protected result = #PB_ProcessPureBasicEvents
  
  Select uMsg
    Case #WM_CONTEXTMENU
      If GadgetID(#String_0) = wParam
        DisplayPopupMenu(#String_0, WindowID(#Window_0))
      EndIf
  EndSelect
  
  ProcedureReturn result 
EndProcedure 

If OpenWindow(#Window_0, 220, 0, 470, 300, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
  EditorGadget(#String_0, 120, 50, 150, 140)
  SendMessage_(GadgetID(#String_0), #EM_SETTARGETDEVICE, #Null, 0)
  TextGadget(#Text_0, 120, 30, 240, 20, "Hier geht der rechte Mausklick nicht!")
  TextGadget(#Text_2, 120, 10, 140, 20, "Mein EditorGadget")
  StringGadget(#String_1, 120, 230, 240, 20, "Test")
  TextGadget(#Text_1, 120, 210, 170, 20, "Mein Stringgadget")
  TextGadget(#Text_3, 120, 260, 240, 20, "Hier geht der rechte Mausklick!")
  If CreatePopupMenu(#String_0)
    MenuItem(1, "einfügen")
  EndIf
  SetWindowCallback(@WinCallback())
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow : Break
      Case #PB_Event_Menu
        Select EventMenu()
          Case 1
            SendMessage_(GadgetID(#String_0), #WM_PASTE, 0, 0) 
        EndSelect
    EndSelect
  ForEver
EndIf 

Re: Rechtsklick bei Editorgadget

Verfasst: 22.12.2010 21:02
von HeX0R
Dein Engagement in letzter Zeit in allen Ehren, Thomas,
aber findest du es nicht besser jemandem eine Tür nur zu zeigen, als ihn hindurchzustossen?

Re: Rechtsklick bei Editorgadget

Verfasst: 22.12.2010 21:37
von ts-soft
HeX0R hat geschrieben:Dein Engagement in letzter Zeit in allen Ehren, Thomas,
aber findest du es nicht besser jemandem eine Tür nur zu zeigen, als ihn hindurchzustossen?
Es fehlen ja noch die meisten Infos um ein komplettes Kontextmenü einzubauen, sind nur die Grundlagen.
Und bevor da wieder was mit #WM_RBUTTONDOWN kommt, poste ich es lieber :mrgreen:

Ausserdem ist fast Weihnachten :D

Gruß
Thomas

Re: Rechtsklick bei Editorgadget

Verfasst: 22.12.2010 22:41
von hjbremer
ts-soft hat geschrieben:Und bevor da wieder was mit #WM_RBUTTONDOWN kommt, poste ich es lieber :mrgreen:
Was hast du gegen #WM_RBUTTONDOWN ?

Funktioniert doch !

Code: Alles auswählen

Case #WM_RBUTTONDOWN: If GetActiveGadget() = \editgadget: PrefEdit_PopUpDisplay(\window): EndIf

Re: Rechtsklick bei Editorgadget

Verfasst: 22.12.2010 22:50
von ts-soft
Warum sollte ich jeden Rechtsklick abfragen, wenn doch das Kontextmenü genügt :mrgreen:

Re: Rechtsklick bei Editorgadget

Verfasst: 23.12.2010 15:25
von Velindos
Hallo,
Debugger sind was für Memmen!
Echte Männer kompilieren direkt auf die Master CD …
also Thomas finde deinen Spruch einfach gut!
Die Lösung ist bei mir angekommen und besten Dank für deine Unterstützung. Habe sie in meine Lösung eingebaut. Das Problem tritt auf wenn ich Überschriften in meine Browser kopiere, die man nicht per Drop ins Editorgadget ziehen kann, jetzt funkt die Sache!

Nun zu den Sprüchen im Forum
Dein Engagement in letzter Zeit in allen Ehren, Thomas,
aber findest du es nicht besser jemandem eine Tür nur zu zeigen, als ihn hindurchzustossen?
Also mir wurde erklärt, mittels Beispielen Fragen zu stellen. Und dies hat sich hier wieder als das Beste erwiesen!
"Fragmente helfen keinen und zeigen meisten nur vom Wissen eines Einäugigen, der König unter den Blinden ist!", solche und ähnliche Gestalten haben wir ja mehr als Genug!
Gruss ... Velindos