Combobox-Gadget und Dropdown-arrow
Combobox-Gadget und Dropdown-arrow
Kann man eigentlich beim Combobox-Gadget die Dropdown-Schaltfläche eliminieren oder zumindest deaktivieren? Habe dazu leider nichts gefunden.
PB 5.50; Win 7
Re: Combobox-Gadget und Dropdown-arrow
StringGadget()?
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Re: Combobox-Gadget und Dropdown-arrow
Den einfachsten Weg zur Deaktivierung eines ComboBoxGadget bietet die PB-Anweisung
DisableGadget(ComboBoxID, #True). Nachteil: man kann den ausgegrauten Text des
ComboBoxGadgets dann unter Windows XP (mit oder ohne XP-Skin) kaum noch lesen.
Unter Windows 7 ist der ausgegraute Text (mit oder ohne XP-Skin) schon besser lesbar.
Im englischen Forum habe ich dazu bereits zwei Lösungen veröffentlicht. Die erste Lösung
setzt den Hintergrund auf Weiß, sodaß der ausgegraute Text besser lesbar wird. Die zweite
Lösung setzt die Farbe des deaktivierten ComboBox-Eintrags auf Schwarz:
http://www.purebasic.fr/english/viewtopic.php?t=33044
Ich habe die zweite Lösung an PB 4.50 angepaßt (mittlerweile wird beim ComboBoxGadget
durch die Angabe der Höhe nicht mehr die Höhe der Dropdown-Box angegeben, sondern
die Höhe der ungeöffneten ComboBox):
DisableGadget(ComboBoxID, #True). Nachteil: man kann den ausgegrauten Text des
ComboBoxGadgets dann unter Windows XP (mit oder ohne XP-Skin) kaum noch lesen.
Unter Windows 7 ist der ausgegraute Text (mit oder ohne XP-Skin) schon besser lesbar.
Im englischen Forum habe ich dazu bereits zwei Lösungen veröffentlicht. Die erste Lösung
setzt den Hintergrund auf Weiß, sodaß der ausgegraute Text besser lesbar wird. Die zweite
Lösung setzt die Farbe des deaktivierten ComboBox-Eintrags auf Schwarz:
http://www.purebasic.fr/english/viewtopic.php?t=33044
Ich habe die zweite Lösung an PB 4.50 angepaßt (mittlerweile wird beim ComboBoxGadget
durch die Angabe der Höhe nicht mehr die Höhe der Dropdown-Box angegeben, sondern
die Höhe der ungeöffneten ComboBox):
Code: Alles auswählen
ComboBoxEnabled.L = #True
OpenWindow(0, 0, 0, 270, 190, "Enable/Disable ComboBox", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ComboBoxGadget(0, 10, 40, 250, 20, #PB_ComboBox_Editable)
ButtonGadget(1, 70, 10, 120, 20, "Disable ComboBox")
For i = 1 To 9
AddGadgetItem(0, -1, "Eintrag " + Str(i))
Next i
SetGadgetState(0, 6)
ComboBoxHandle = GadgetID(0)
ComboBoxEditControlHandle = GetWindow_(ComboBoxHandle, #GW_CHILD)
Repeat
WindowEvent = WaitWindowEvent()
If WindowEvent = #PB_Event_Gadget
If EventGadget() = 1
If ComboBoxEnabled
DisableGadget(0, #True)
SetGadgetText(1, "ComboBox aktivieren")
EnableWindow_(ComboBoxEditControlHandle, #True)
ComboBoxEnabled = #False
Else
DisableGadget(0, #False)
SetGadgetText(1, "ComboBox deaktivieren")
ComboBoxEnabled = #True
EndIf
EndIf
EndIf
Until WindowEvent = #PB_Event_CloseWindow