Kein Multiline für Editorgadget - andere (kürzere) Lösung?
Verfasst: 04.11.2007 20:31
Hi Leute,
in der Vergangenheit habe ich öfters mal ein einzeiliges Editorgadget benötigt, was ich stets in etwa wie folgt umgesetzt habe:
Irgdendwie bin ich erst jetzt auf die Idee gekommen, mal nachzufragen, obs dafür nicht ne einfache und vielleicht sogar kürzere Variante (Stichwort: Sendmessage) gibt? Hab vergleichbares noch nicht entdecken können.
Danke euch und noch einen schönen Sonntag Abend bei "Hitch - Der Date Doktor"
in der Vergangenheit habe ich öfters mal ein einzeiliges Editorgadget benötigt, was ich stets in etwa wie folgt umgesetzt habe:
Code: Alles auswählen
If OpenWindow(0,0,0,322,150,"EditorGadget_NoMultiline",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
EditorGadget(1,8,8,306,133)
AddGadgetItem(1,-1, "Teststring")
AddKeyboardShortcut(0,#PB_Shortcut_Control|#PB_Shortcut_C,1)
AddKeyboardShortcut(0,#PB_Shortcut_Control|#PB_Shortcut_X,2)
AddKeyboardShortcut(0,#PB_Shortcut_Control|#PB_Shortcut_V,3)
AddKeyboardShortcut(0,#PB_Shortcut_Return,4)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
If EventMenu()=1
SendMessage_(GadgetID(1),#EM_GETSEL,@SelStart,@SelEnd)
selText$=Space(SelEnd-SelStart)
SendMessage_(GadgetID(1),#EM_GETSELTEXT,0,@SelText$)
SetClipboardText(SelText$)
ElseIf EventMenu()=2
SendMessage_(GadgetID(1),#WM_CUT,0,0)
SelText$=GetClipboardText()
SetClipboardText(SelText$)
ElseIf EventMenu()=3
If FindString(GetClipboardText(),Chr(13)+Chr(10),1)=0
SetGadgetText(1,GetClipboardText())
Else
SetGadgetText(1,Mid(GetClipboardText(),1,FindString(GetClipboardText(), Chr(13)+Chr(10) ,1) -1))
EndIf
ElseIf EventMenu()=4
EndIf
EndSelect
Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
Danke euch und noch einen schönen Sonntag Abend bei "Hitch - Der Date Doktor"
