Fragen zum Editor Gadget
Fragen zum Editor Gadget
Hallo Leute,
ich hab mir nen eigenen Editor geschrieben ähnlich dem von Windows also sehr schlicht und nichts aufregendes. Den Kern bildet der Editorgadget in dem man erfreulicherweise schon die Tastenkürzel wie Strg+Z usw. benutzen kann. Ich frage mich aber nun wie ich denn dem Menüpunkt "Rückgänig" die Funktion dieses Tastenkürzels zuweisen kann. Währe ja sonst Schwachsinn wenn ich nochmal sonne Funktion programmieren würde.
Gruß
Scarabol
PS Wie kann ich den Editor gadget an die Größe des Fensters anpassen nachdem sie durch den Benutzer geändert wurde.
ich hab mir nen eigenen Editor geschrieben ähnlich dem von Windows also sehr schlicht und nichts aufregendes. Den Kern bildet der Editorgadget in dem man erfreulicherweise schon die Tastenkürzel wie Strg+Z usw. benutzen kann. Ich frage mich aber nun wie ich denn dem Menüpunkt "Rückgänig" die Funktion dieses Tastenkürzels zuweisen kann. Währe ja sonst Schwachsinn wenn ich nochmal sonne Funktion programmieren würde.
Gruß
Scarabol
PS Wie kann ich den Editor gadget an die Größe des Fensters anpassen nachdem sie durch den Benutzer geändert wurde.
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea
PB-V: 4
WinXP
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea
PB-V: 4
WinXP
Es gibt eine Funktion, die gibt beim drücken von Strg+Z dasselbe menuID() zurück, wie ein "echter" Menüeintrag.
Diese beiden Sachen dürfen / müssen sogar dieselbe MenuID zugewiesen bekommen, um sie später wieder zurückgeben zu können.
Sry, mir fällt grad der Name nicht ein, von der Funktion, die diese Hotkeys erstellt.
Diese beiden Sachen dürfen / müssen sogar dieselbe MenuID zugewiesen bekommen, um sie später wieder zurückgeben zu können.
Sry, mir fällt grad der Name nicht ein, von der Funktion, die diese Hotkeys erstellt.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
AddKeyboardShortcut()AND51 hat geschrieben:Sry, mir fällt grad der Name nicht ein, von der Funktion, die diese Hotkeys erstellt.
@Scarabol:
Mit ResizeGadget().Scarabol hat geschrieben:PS Wie kann ich den Editor gadget an die Größe des
Fensters anpassen nachdem sie durch den Benutzer geändert wurde.
Grüße ... Kiffi
a²+b²=mc²
ich glaub du meinst die addkeyboardshortcut funktion die kenne ich bereits ich will aber genau das gegenteil haben damit das Menu die gleiche ID hat wie der shortcut
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea
PB-V: 4
WinXP
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea
PB-V: 4
WinXP
Fenau den befehl meine ich.
Den machst du und sagt, er soll bei gedrückten tasten die ID 1 zurückgeben.
Dann erstellst du ein Menu und dann ein Menuitem, das auch die ID eins hat.
MenuID() wird dann immer 1 zurückgeben, nach einem WindowEvent(), egal ob die Tasten der der Eintrag ausgewählt wurden; das macht Sinn. Wolltest du das nicht so haben?
Den machst du und sagt, er soll bei gedrückten tasten die ID 1 zurückgeben.
Dann erstellst du ein Menu und dann ein Menuitem, das auch die ID eins hat.
MenuID() wird dann immer 1 zurückgeben, nach einem WindowEvent(), egal ob die Tasten der der Eintrag ausgewählt wurden; das macht Sinn. Wolltest du das nicht so haben?
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
Nicht ganz aber ich geb zu es ist nicht ganz einfach.
Wenn ich deine Idee befolge dann löst egal ob Tasten oder Menu immer ein und dieselbe Aktion aus. Das ist auch soweit ganz gut aber leider nicht für meine Zwecke zu gebrauchen, da ich die Aktion die ausgelöst würde selber programmieren müsste. Das heißt wiederum ich müsste eine eigene "Rückgänig" Funktion programmieren und darauf habe ich ehrlich gesagt keine Lust zumal der Editor Gadget bereits diese Funktion hat ich leider nur nicht weiß wie ich diese über das Menü aktivieren kann.
Wenn ich deine Idee befolge dann löst egal ob Tasten oder Menu immer ein und dieselbe Aktion aus. Das ist auch soweit ganz gut aber leider nicht für meine Zwecke zu gebrauchen, da ich die Aktion die ausgelöst würde selber programmieren müsste. Das heißt wiederum ich müsste eine eigene "Rückgänig" Funktion programmieren und darauf habe ich ehrlich gesagt keine Lust zumal der Editor Gadget bereits diese Funktion hat ich leider nur nicht weiß wie ich diese über das Menü aktivieren kann.
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea
PB-V: 4
WinXP
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea
PB-V: 4
WinXP
- 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
Hier mal ein paar entsprechende Proceduren:
Im CodeArchiv wirste auch fündig 
Code: Alles auswählen
Procedure Editor_CanUndo(Gadget)
ProcedureReturn SendMessage_(GadgetID(Gadget), #EM_CANUNDO, #Null, #Null)
EndProcedure
Procedure Editor_Undo(Gadget)
ProcedureReturn SendMessage_(GadgetID(Gadget), #EM_UNDO, #Null, #Null)
EndProcedure
Procedure Editor_CanRedo(Gadget)
ProcedureReturn SendMessage_(GadgetID(Gadget), $0454, #Null, #Null)
EndProcedure
Procedure Editor_Redo(Gadget)
ProcedureReturn SendMessage_(GadgetID(Gadget), $0455, #Null, #Null)
EndProcedure

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.

kann man nicht einfach mit getkeyboardshortcut oder sowas die ID die der Shortcut zurückgibt herausfinden.
Weil wie gesagt keinen Bock nochmal alles zu programmieren.
Weil wie gesagt keinen Bock nochmal alles zu programmieren.
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea
PB-V: 4
WinXP
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea
PB-V: 4
WinXP
- 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
Du nimmst obige Prozeduren und rufst diese per Menü und
AddKeyBoardShortcut mit derselben ID auf. Anders wird es wohl nur schwer
gehen.
AddKeyBoardShortcut mit derselben ID auf. Anders wird es wohl nur schwer
gehen.
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.

Code: Alles auswählen
;///////////////////////////
;/ Enables the explicit mode
EnableExplicit
;///////////////////////////
;/ Declare variables
Define WindowTitle.s = "Test"
Define CX.l = 500
Define CY.l = 500
Define *hWindow.long
Define WindowEvent.l
Define *hmenu.long
Define *editor.long
#editor_undo = 1
#editor_redo = 2
;///////////////////////////
;/ Open window
*hWindow = OpenWindow(#PB_Any,#PB_Ignore,#PB_Ignore,CX,CY,WindowTitle)
*hmenu = CreateMenu(#pb_any,*hWindow\l)
MenuTitle("Bearbeiten")
MenuItem(#editor_undo, "Undo" +Chr(9)+"Ctrl+Z")
MenuItem(#editor_redo, "Redo" +Chr(9)+"Ctrl+Y")
;///////////////////////////
;/ Gadgets
CreateGadgetList(*hWindow\l)
*editor = EditorGadget(#pb_any,0,0,CX,CY-MenuHeight())
AddKeyboardShortcut(*hWindow,#pb_key_z|#PB_Shortcut_Control,#editor_undo)
AddKeyboardShortcut(*hWindow,#pb_key_y|#PB_Shortcut_Control,#editor_redo)
;///////////////////////////
;/ Window eventloop
Repeat
WindowEvent = WaitWindowEvent()
if WindowEvent = #PB_Event_Menu
if EventMenu() = #editor_undo
sendmessage_(*editor\l,#EM_UNDO,0,0)
endif
if EventMenu() = #editor_redo
sendmessage_(*editor\l,#EM_REDO,0,0)
endif
endif
Until WindowEvent = #WM_CLOSE
;///////////////////////////
;/ Exit application
End
edit : zu lahm
