Seite 1 von 1
Bei EditorGadget Font "fixieren"
Verfasst: 19.03.2008 14:46
von Commander
Hallo
Als PureBasicNeuling habe ich da folgende Frage:
Ich befülle ein EditorGedget
mit Text. Das klappt auch sehr gut. Nur will ich nicht das die Schriftart, die Schriftgröße und Farbe mit kopiert werden.
Wie kann ich das am besten lösen?
Grüße Commander
Verfasst: 19.03.2008 15:09
von bobobo
Anfänger sollten halt kein APi benutzen
benutz die PB-Funktionen und Du wirst glücklicher
Code: Alles auswählen
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Editor_0
#Button_0
#Text_0
#Button_1
#Button_2
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
EditorGadget(#Editor_0, 10, 80, 340, 170)
ButtonGadget(#Button_0, 380, 50, 210, 40, "Hol Clipboard ohne Formatierung")
TextGadget(#Text_0, 0, 40, 260, 30, "Da unten wird der Inhalt der Zwischenablage eingefügt ")
ButtonGadget(#Button_1, 380, 100, 210, 40, "Hol Clipboard mit Formatierung")
ButtonGadget(#Button_2, 380, 190, 210, 40, "Tschö")
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType() ; The event type
;You can place code here, and use the result as parameters for the procedures
If Event = #PB_Event_Gadget
If GadgetID = #Editor_0
ElseIf GadgetID = #Button_0
SetGadgetText(#Editor_0,GetClipboardText())
ElseIf GadgetID = #Button_1
SendMessage_(GadgetID(0), #WM_PASTE, 0, 0)
ElseIf GadgetID = #Button_2
End
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
;
Verfasst: 19.03.2008 15:49
von Commander
Danke für die Antwort
Nur wenn ich mit der Tastenkombination "Strg+v" was rein kopiere klappt das nicht. Da wird die Schriftart usw. wieder übernommen.
Verfasst: 19.03.2008 16:45
von bobobo
Strg-Einfg eventuell auch noch?
Dafür gibts die KeyboardShortcuts.
Code: Alles auswählen
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Editor_0
#Button_0
#Text_0
#Button_1
#Button_2
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
EditorGadget(#Editor_0, 10, 80, 340, 170)
ButtonGadget(#Button_0, 380, 50, 210, 40, "Hol Clipboard ohne Formatierung")
TextGadget(#Text_0, 0, 40, 260, 30, "Da unten wird der Inhalt der Zwischenablage eingefügt ")
ButtonGadget(#Button_1, 380, 100, 210, 40, "Hol Clipboard mit Formatierung")
ButtonGadget(#Button_2, 380, 190, 210, 40, "Tschö")
EndIf
EndIf
EndProcedure
Open_Window_0()
AddKeyboardShortcut(#Window_0,#PB_Shortcut_V|#PB_Shortcut_Control,88)
AddKeyboardShortcut(#Window_0,#PB_Shortcut_Insert|#PB_Shortcut_Control,88)
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType() ; The event type
EventMenu= EventMenu()
If EventMenu=88
SetGadgetText(#Editor_0,GetClipboardText())
AddGadgetItem(#Editor_0,-1,"Tastenfreak?") ;das kann natürlich raus
EndIf
;You can place code here, and use the result as parameters for the procedures
If Event = #PB_Event_Gadget
If GadgetID = #Editor_0
ElseIf GadgetID = #Button_0
SetGadgetText(#Editor_0,GetClipboardText())
ElseIf GadgetID = #Button_1
SendMessage_(GadgetID(0), #WM_PASTE, 0, 0)
ElseIf GadgetID = #Button_2
End
EndIf
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
Verfasst: 19.03.2008 20:38
von Commander
Super!!
Damit kann ich was Anfangen.
Danke für die rasche Hilfe
Nachtrag: Bei EditorGadget Font "fixieren" (Windows)
Verfasst: 10.04.2010 14:21
von AndyMars
Nachtrag, der Vollständigkeit halber... wenn man mit reinem Text zufrieden ist...
Ist manchmal eben doch noch nützlich, wenn man ins EditorGadget etwas (zusätzlich) einfügen kann, ohne dass das Format übernommen wird:
Code: Alles auswählen
SetGadgetText(#GadgetNr,"") ;das Gadget muss leer sein - MS will es so...
SendMessage_(GadgetID(#GadgetNr),#EM_SETTEXTMODE,#TM_PLAINTEXT,0)
Der Code ist natürlich nur für Windows...
Mehr Infos bei Microsoft:
MSDN EM_SETTEXTMODE Message
Grüsse, AndyMars