Seite 1 von 1

EditorGadget "normaler Text" aus der Zwischenablage

Verfasst: 09.10.2018 10:27
von Ghosty1967
Hi zusammen...
Kennt jemand einen Weg, wie ich das EditorGadget dazu "zwingen" kann immer nur "normalen" Text ohne Steuerzeichen anzuzeigen?
Zur Erklärung: Ich möchte gerne, das jeglicher Text, egal in welcher Form er in der Zwischenablage vorhanden ist
(also z.B. mit RTF-Steuerzeichen o.ä.) als einfacher, Steuerzeichenloser Text in ein EditorGadget per STRG+V eingefügt werden kann.

Ich müsste also entweder dem Gadget beim erstellen schon sagen können, wie es Daten darzustellen hat, oder aber STRG+V abfangen,
die Daten aufbereiten und an das Steuerelement senden.
Gibt es von Hause aus in dieser Richtung eine elegante Lösung, welche ich verwenden könnte und wenn ja welche?

Re: EditorGadget "normaler Text" aus der Zwischenablage

Verfasst: 09.10.2018 10:32
von RSBasic
EditorGadget ist ein RichEdit-Control (RTF).
Du kannst stattdessen ein StringGadget mehrzeilig erstellen:

Code: Alles auswählen

EnableExplicit

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  StringGadget(1, 10, 10, 480, 380, "", #ES_MULTILINE)
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf
Dann musst du auch nicht Strg+V abfangen und nichts filtern.

\\Edit:
Der Code fürs Abfangen und Filtern:

Code: Alles auswählen

EnableExplicit

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  EditorGadget(1, 10, 10, 480, 380, 0)
  
  AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_V, 1)
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_Menu
        Select EventMenu()
          Case 1
            SetGadgetText(1, GetClipboardText())
        EndSelect
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIf
SetGadgetText() musst du natürlich anpassen, wenn du z.B. in der aktuellen Cursor-Position einfügen möchtest.

Re: EditorGadget "normaler Text" aus der Zwischenablage

Verfasst: 09.10.2018 10:45
von Ghosty1967
Danke für die schnelle Antwort...
aber ich glaube, ich habe die Lösung meines Problems in der API gefunden...

Code: Alles auswählen

;EditorGadget in den Plaintext Modus schalten
  SendMessage_( GadgetID(#EDT_TEXTEDITOR), #EM_SETTEXTMODE, #TM_PLAINTEXT, 0)
;EditorGadget in den RTF-Modus schalten
  SendMessage_( GadgetID(#EDT_TEXTEDITOR), #EM_SETTEXTMODE, #TM_RICHTEXT , 0)
Funktioniert für meine Zwecke ganz gut, werde aber auf deine Lösung auch mal zurückgreifen und vergleichen ;)

Re: EditorGadget "normaler Text" aus der Zwischenablage

Verfasst: 09.10.2018 14:15
von RSBasic
Ist auch eine Möglichkeit, die ich noch nicht kannte.

Re: EditorGadget "normaler Text" aus der Zwischenablage

Verfasst: 09.10.2018 16:24
von Nino
Interessante Informationen von Euch beiden. :allright:
Danke!