Page 1 of 1
Combobox control
Posted: Tue Oct 16, 2018 7:50 am
by Georg_BA
good day to all,
I have a question, it is possible to set some items to read only as when radiogroup
DEFINE COMBOBOX CB_1
ROW 10
COL 10
WIDTH 140
HEIGHT 25
ITEMS { 'EN','ES','SK','PL' }
READONLY { .F. , .T. , .F. , .T. }
VALUE 1
END COMBOBOX
DEFINE RADIOGROUP Radio_1
OPTIONS { 'One' , 'Two' , 'Three', 'Four' }
VALUE 1
WIDTH 100
TOOLTIP 'RadioGroup'
READONLY { .F. , .T. , .F. , .T. }
ROW 10
COL 10
END RADIOGROUP
Thanks for help
Re: Combobox control
Posted: Tue Oct 16, 2018 8:33 am
by serge_girard
Hi Georg,
I doubt if it possible. Documentation doesn't mention.
What you can do is deleting all items and re-add with items (true), a bit tricky.
Serge
Re: Combobox control
Posted: Tue Oct 16, 2018 9:21 am
by esgici
Please look at
DISPLAYEDIT property
As soon as I remember .F. value means "Read Only" and default value of this property is .F.
Attention: <lValue> usable in alternate ( DEFINE ... ENDDEFINE) syntax; @ x, y syntax not accept <lValue>; using only keyword means .T.
My little sample
Dynamic Combobox may be useful.
Happy HMG'ing

Re: Combobox control
Posted: Tue Oct 16, 2018 10:58 am
by serge_girard
You can use this :
Code: Select all
#include "hmg.ch"
FUNCTION MAIN()
/**************/
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 550 ;
HEIGHT 300 ;
TITLE 'Languages' ;
ICON "" ;
MAIN
ON KEY ESCAPE ACTION Form_1.Release
DEFINE RADIOGROUP Radio_1
OPTIONS { 'Roman' , 'Germanic' , 'Slavic', 'Turkish' } /* etcera */
VALUE 1
WIDTH 100
TOOLTIP 'Languages'
ROW 10
COL 10
ON CHANGE Fill_CB_1()
END RADIOGROUP
DEFINE COMBOBOX CB_1
ROW 10
COL 120
WIDTH 140
HEIGHT 25
ITEMS {'FR', 'ES' , 'IT' } // DEFAULT
VALUE 1
END COMBOBOX
END WINDOW
Form_1.center
Form_1.activate
RETURN NIL
FUNCTION Fill_CB_1()
/******************/
Form_1.CB_1.DeleteAllItems()
DO CASE
CASE Form_1.Radio_1.Value == 1 // ROMAN
Form_1.CB_1.AddItem( 'FR' )
Form_1.CB_1.AddItem( 'ES' )
Form_1.CB_1.AddItem( 'IT' )
CASE Form_1.Radio_1.Value == 2 // GERMANIC
Form_1.CB_1.AddItem( 'DE' )
Form_1.CB_1.AddItem( 'EN' )
Form_1.CB_1.AddItem( 'NL' )
CASE Form_1.Radio_1.Value == 3 // SLAVIC
Form_1.CB_1.AddItem( 'SK' )
Form_1.CB_1.AddItem( 'RU' )
Form_1.CB_1.AddItem( 'BU' )
CASE Form_1.Radio_1.Value == 4 // TURKISH
Form_1.CB_1.AddItem( 'TR' )
OTHERWISE
/* etcera */
ENDCASE
Form_1.CB_1.Value := 1
RETURN
Serge
Re: Combobox control
Posted: Tue Oct 16, 2018 6:52 pm
by Georg_BA
Thank you, I'll try Dynamic ComboBox
The delete solution does not suit me, I created a condition based on the COMBOBOX.value return value. In some parts, I need only 1 value active but the value should be 5