Markieren von Text in ComboBoxGadgets
Markieren von Text in ComboBoxGadgets
Hallo Gefährten,
es gibt ja hier Themen zum Markieren von Text in EditorGadgets. Aber leider funktionieren diese API nicht in ComboBoxGadgets.
Ich möchste aber ein editierbares ComboBoxGadget bauen bei dem ein Default-Text eingetragen und markiert wird. Das kann man dann überschreiben oder so lassen.
Könnt Ihr mir helfen, wie ich den Text markieren kann?
es gibt ja hier Themen zum Markieren von Text in EditorGadgets. Aber leider funktionieren diese API nicht in ComboBoxGadgets.
Ich möchste aber ein editierbares ComboBoxGadget bauen bei dem ein Default-Text eingetragen und markiert wird. Das kann man dann überschreiben oder so lassen.
Könnt Ihr mir helfen, wie ich den Text markieren kann?
PB 5.72
Hallo,
du kannst doch einfach mit EventGadget() prüfen ob jemand den Gadget aktiviert hat, und dann löschst du den Inhalt einfach, wenn noch der Standardinhalt drinsteht...
Gruß
Scarabol
du kannst doch einfach mit EventGadget() prüfen ob jemand den Gadget aktiviert hat, und dann löschst du den Inhalt einfach, wenn noch der Standardinhalt drinsteht...
Gruß
Scarabol
Abgeschlossen Projekte:
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea
PB-V: 4
WinXP
Schreibmaschine, Bildschirmlupe, Wings3DtoOgreMeshConverter
Watch: PureArea
PB-V: 4
WinXP
Ganz einfach:
hier mal ein Beispielcode:
hier mal ein Beispielcode:
Code: Alles auswählen
If OpenWindow(0, 0, 0, 270, 140, "ComboBoxGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
ComboBoxGadget(0, 10, 10, 250, 100, #PB_ComboBox_Editable)
AddGadgetItem(0, -1, "Eintrag 1")
AddGadgetItem(0, -1, "Eintrag 2")
AddGadgetItem(0, -1, "Eintrag 3")
SetGadgetState(0, 0)
hComboEdit.l = ChildWindowFromPoint_(GadgetID(0), 5, 5)
SendMessage_(hComboEdit, #EM_SETSEL, 6, 1) ;Makieren von Position 1 bis 6
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
v6.00
Ganz ehrlich:Hyper hat geschrieben:Hallo Thomas,
danke, so funktionierts!
Wenn ich das mit den APIs nur mal verstehn würde! Wofür steht z.B. 5,5 in ChildWindowFromPoint_ sind das Konstanten?
Die 6,1 sind Länge und Anfang der Markierung, das ist klar.
Das versteh ich auch nicht ganz ... ich habs auch mal aus nem anderen Code übernommen

Hauptsache es funktioniert

v6.00
5 ist eine Zahl mit einem ziemlich konstanten Wert.Hyper hat geschrieben:Wofür steht z.B. 5,5 in ChildWindowFromPoint_ sind das Konstanten?

Im Ernst: übersetze doch mal ChildWindowFromPoint ins Deutsche und
überlege dann, wo der Punkt (Point) liegen könnte, an dem das Child-Window
ermittelt werden soll...
Grüße ... Kiffi
a²+b²=mc²
Dies hier macht das selbe mit weniger Code:
Code: Alles auswählen
If OpenWindow(0, 0, 0, 270, 140, "ComboBoxGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
ComboBoxGadget(0, 10, 10, 250, 100, #PB_ComboBox_Editable)
AddGadgetItem(0, -1, "Eintrag 1")
AddGadgetItem(0, -1, "Eintrag 2")
AddGadgetItem(0, -1, "Eintrag 3")
SetGadgetState(0, 0)
; hComboEdit.l = ChildWindowFromPoint_(GadgetID(0), 5, 5)
; SendMessage_(hComboEdit, #EM_SETSEL, 6, 1) ;Makieren von Position 1 bis 6
SendMessage_(GadgetID(0), #CB_SETEDITSEL, 0, 6 << 16 + 1) ;Makieren von Position 1 bis 6
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Aha und dabei bedeutet es:
Verstehe zwar die '<<' nicht, aber es funktioniert prima. Danke!
Code: Alles auswählen
von = 3
bis = 5
SendMessage_(GadgetID(0), #CB_SETEDITSEL, 0, bis << 16 + von-1) ;Makieren von Position 'von bis 'bis'
PB 5.72