EditorGadget Callback - Abfangen von Cut & Paste für UNDO
- Thorsten1867
- Beiträge: 1360
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
EditorGadget Callback - Abfangen von Cut & Paste für UNDO
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.
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
WinAPI = RSBasic = http://www.rsbasic.de/winapi-library/Thorsten1867 hat geschrieben:Wer kennt sich ein bisschen besser mit der WinAPI aus und kann mir einen Tipp geben.
Grüße ... Kiffi
a²+b²=mc²
- Thorsten1867
- Beiträge: 1360
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Da habe ich natürlich schon geschaut, aber möglicherweise an der falschen Stelle?!?
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
ich habe hier geguckt: http://www.rsbasic.de/aktualisierung/wi ... 0machen.pbThorsten1867 hat geschrieben:Da habe ich natürlich schon geschaut, aber möglicherweise an der falschen Stelle?!?
Grüße ... Kiffi
a²+b²=mc²
- Thorsten1867
- Beiträge: 1360
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Ich brauche es genau umgekehrt.
Ich muss wissen, wann etwas in das EditorGadget eingefügt bzw. ausgeschnitten wurde .
Ich muss wissen, wann etwas in das EditorGadget eingefügt bzw. ausgeschnitten wurde .
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Warum? Das EditorGadget kümmert sich doch selber um das UnDo / ReDo.Thorsten1867 hat geschrieben:Ich muss wissen, wann etwas in das EditorGadget eingefügt bzw. ausgeschnitten wurde .
Grüße ... Kiffi
a²+b²=mc²
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
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
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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Thorsten1867
- Beiträge: 1360
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Funktioniert leider nicht bzw. nicht immer.Kiffi hat geschrieben:Warum? Das EditorGadget kümmert sich doch selber um das UnDo / ReDo.
Vermutlich weil ich eine eigene Zeilenumbruchroutine (PDF-kompatibel) verwende.
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Versuch es mal so:
Schon aergerlich das man selbst fuer die einfachsten Sachen API Gedoens braucht.
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()
- Thorsten1867
- Beiträge: 1360
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
Re: EditorGadget Callback - Abfangen von Cut & Paste für UND
Klingt interessant. Werde mal damit "rumspielen". Danke!