EditorGadget "normaler Text" aus der Zwischenablage

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Ghosty1967
Beiträge: 203
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

EditorGadget "normaler Text" aus der Zwischenablage

Beitrag 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?
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: EditorGadget "normaler Text" aus der Zwischenablage

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Ghosty1967
Beiträge: 203
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Re: EditorGadget "normaler Text" aus der Zwischenablage

Beitrag 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 ;)
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: EditorGadget "normaler Text" aus der Zwischenablage

Beitrag von RSBasic »

Ist auch eine Möglichkeit, die ich noch nicht kannte.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: EditorGadget "normaler Text" aus der Zwischenablage

Beitrag von Nino »

Interessante Informationen von Euch beiden. :allright:
Danke!
Antworten