Een rolluiklijst of dropdownlist heet in Gambas “combobox”.
Het is namelijk een combinatie van 2 verschillende schermobjecten:
- 1 een lijst
- 2. een tekstveld -of tekst-knop als readonly (zie Crash door combobox).
op de knop drukken laat het rolluik met mogelijkheden neer; het opent de lijst.
Helaas zijn hier nogal veel mogelijkheden ingebouwd, en is het niet altijd zo snel duidelijk wat ze wanneer doen.
Wat een combobox doet is bv afhankelijk van de “events
” (klik rechts, “events”, zie afbeelding )
ReadOnly: TRUE op “pijltje” openen: ok _Activate: nvt cmbx1.Popup() doet niets _MouseDown() - _Change: nvt _LostFocus: - _Click() ook bij “enter” meeste akties hier |
ReadOnly: FALSE op “pijltje” openen: ok _Activate: opgeroepen bij “enter” vlgs DEBUG cmbx1.Popup() Automatisch openen lijst - niet? _MouseDown() : cmbx1.Popup() om ipv tekst met cursor lijst te krijgen _Change: als de tekst wijzigt … _LostFocus: controleer of waarde … _Click() |
Dus cmbx_change wordt niet geaktiveerd door het veranderen van de selectie in de combobox (bv scrollen van de waarden).
cmbx_change wordt alleen geaktiveerd in een “writeable” cmbx, waarin je op de plek van de selectie de tekst verandert. Ook als je een keuze maakt uit de waarden van de rolluiklijst wordt dat als een verandering van die tekst beschouwd en wordt _change uitgevoerd. (waardoor het lijkt op de reaktie van _click bij een readonly combobox)