Seite 1 von 1
EditorGadget Callback - Abfangen von Cut & Paste für UNDO
Verfasst: 04.02.2014 15:56
von Thorsten1867
Ich möchte eine mehrstufige Undo/Redo-Funktion für EditorGadgets erstellen.
Hierzu müsste ich z.B. Eingaben und v.a. Paste & Cut - Aktionen abfangen, um den Text vorher für die Undo-Funktion speichern zu können.
Leider bin ich mit der Suche nach einem Callback für das EditorGadget nicht wirklich fündig geworden.
Wer kennt sich ein bisschen besser mit der WinAPI aus und kann mir einen Tipp geben.
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Verfasst: 04.02.2014 16:15
von Kiffi
Thorsten1867 hat geschrieben:Wer kennt sich ein bisschen besser mit der WinAPI aus und kann mir einen Tipp geben.
WinAPI = RSBasic =
http://www.rsbasic.de/winapi-library/
Grüße ... Kiffi
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Verfasst: 04.02.2014 16:16
von Thorsten1867
Da habe ich natürlich schon geschaut, aber möglicherweise an der falschen Stelle?!?
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Verfasst: 04.02.2014 16:39
von Kiffi
Thorsten1867 hat geschrieben:Da habe ich natürlich schon geschaut, aber möglicherweise an der falschen Stelle?!?
ich habe hier geguckt:
http://www.rsbasic.de/aktualisierung/wi ... 0machen.pb
Grüße ... Kiffi
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Verfasst: 04.02.2014 16:42
von Thorsten1867
Ich brauche es genau umgekehrt.
Ich muss wissen, wann etwas in das EditorGadget eingefügt bzw. ausgeschnitten wurde .
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Verfasst: 04.02.2014 16:54
von Kiffi
Thorsten1867 hat geschrieben:Ich muss wissen, wann etwas in das EditorGadget eingefügt bzw. ausgeschnitten wurde .
Warum? Das EditorGadget kümmert sich doch selber um das UnDo / ReDo.
Grüße ... Kiffi
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Verfasst: 04.02.2014 16:56
von ts-soft
Eigentlich brauchste nicht viel machen, jedenfalls unter Windows, BeginUndo-, CanUndo-, Undo-, Redo- usw. werden
unterstützt vom RichEdit (EditorGadget), siehe:
http://www.realsource.de/downloads/doc_ ... edit-class
Einfach nutzen und Callback ist unnötig, so gut wie die eingebaute Funktion wirste es wohl kaum nachbauen können
Gruß
Thomas
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Verfasst: 04.02.2014 16:58
von Thorsten1867
Kiffi hat geschrieben:Warum? Das EditorGadget kümmert sich doch selber um das UnDo / ReDo.
Funktioniert leider nicht bzw. nicht immer.
Vermutlich weil ich eine eigene Zeilenumbruchroutine (PDF-kompatibel) verwende.
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Verfasst: 04.02.2014 18:13
von edel
Versuch es mal so:
Code: Alles auswählen
Global DefProc = 0
Procedure IsEditorGadgetActive()
Protected Gadget
Gadget = GetActiveGadget()
If Gadget => 0 And GadgetType(gadget) = #PB_GadgetType_Editor
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
Procedure OnCut()
Protected Len.l
Protected Buf.i
Protected Gadget.i
Protected s.i, e.i
If IsEditorGadgetActive()
Gadget = GetActiveGadget()
SendMessage_(GadgetID(gadget), #EM_GETSEL, @s, @e)
If e - s > 0
Buf = AllocateMemory(e - s)
SendMessage_(GadgetID(gadget), #EM_GETSELTEXT, 0, Buf)
SetClipboardText(PeekS(buf))
FreeMemory(Buf)
EndIf
EndIf
EndProcedure
Procedure OnPaste()
Protected Gadget.i
Protected text.s
If IsEditorGadgetActive()
Gadget = GetActiveGadget()
text = GetClipboardText()
SendMessage_(GadgetID(Gadget), #EM_REPLACESEL, #True, Text)
EndIf
EndProcedure
Procedure Main()
Protected Window
Protected Event
Window = OpenWindow(#PB_Any,
#PB_Ignore,
#PB_Ignore,
640, 480,
"Test")
editor = EditorGadget(#PB_Any,
0,0,
WindowWidth(Window),
WindowHeight(Window))
SetActiveGadget(editor)
AddKeyboardShortcut(Window, #PB_Shortcut_Control|#PB_Shortcut_C, 1)
AddKeyboardShortcut(Window, #PB_Shortcut_Control|#PB_Shortcut_V, 2)
BindEvent(#PB_Event_Menu, @OnCut(), Window, 1)
BindEvent(#PB_Event_Menu, @OnPaste(), Window, 2)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndProcedure: End Main()
Schon aergerlich das man selbst fuer die einfachsten Sachen API Gedoens braucht.
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Verfasst: 04.02.2014 18:15
von Thorsten1867
Klingt interessant. Werde mal damit "rumspielen". Danke!