Seite 1 von 1

Mehr Events auslösen im EditorGadget?

Verfasst: 24.09.2014 16:09
von Franky
Moin zusammen,

einfache Frage:
Ich habe ein Editorgadget und will fortlaufend die X/Y-Position des Curser in der Statusbar anzeigen.

Funktionen dafür sind vorhanden, kein Problem.

Problem:
Wenn ich den Cursor verschiebe, löst das Gadget kein Event aus.
Muss ich dafür ein spezielles Flag angeben?

Danke und Gruß

Franky

Re: Mehr Events auslösen im EditorGadget?

Verfasst: 24.09.2014 16:19
von RSBasic

Code: Alles auswählen

EnableExplicit

Global lpPrevFunc

Procedure RichEditProc(hWnd, uMsg, wParam, lParam)
  
  Select uMsg
    Case #WM_KEYDOWN
      Debug "Any key"
  EndSelect
  
  ProcedureReturn CallWindowProc_(lpPrevFunc, hWnd, uMsg, wParam, lParam)
EndProcedure

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  EditorGadget(1, 0, 0, WindowWidth(0), WindowHeight(0), 0)
  
  lpPrevFunc = SetWindowLongPtr_(GadgetID(1), #GWL_WNDPROC, @RichEditProc())
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf

Re: Mehr Events auslösen im EditorGadget?

Verfasst: 25.09.2014 10:20
von Shardik
Das Beispiel von RSBasic greift leider zu kurz, weil es nicht die Positionierung des Cursors mit der Maus berücksichtigt. Allerdings hat srod im englischen Forum bereits vor fast 8 Jahren dieses Beispiel gezeigt, das über eine Event-Maske alle Tastatur- und Maus-Events auswertet und die Cursor-Position in einem Callback auch noch in Zeilen- und Spalten-Position umrechnet... :wink:

Re: Mehr Events auslösen im EditorGadget?

Verfasst: 28.09.2014 02:09
von Franky
Danke ihr 2 (bzw. inkl. srod 3),

durch die Beispiele konnte ich mein Problem lösen, auch wenn ich es letztendlich durch einen Timer gelöst habe :lol:

Gruß

Franky