Tree Control Syntax
Syntax
Arguments
- %Directives%
Refer to Xdialog Language Directives and Operators.
- Width
Numeric. The width of the control.
- Height
Numeric. The height of the control.
- Node
Character. The variable that receives the user's selection.
- ^<
Character. Required as shown.
- Choice_Array
Character. An array of character values.
- Events
Character. Performance considerations recommend dynamic calculation of event names into a CR-LF delimited string.
Description
The formatting string %S=BLR% is used to specify that a tree control should be displayed with the familiar boxes and lines. To set the default choice for the tree control, set the value of Node before running UI_DLG_BOX(). In the following example, setting node to "b.1.A" would cause the tree to open so that "b.1.A" was visible and highlighted.
dim data[10] as C data[1] = "a.1.A" data[2] = "a.1.B" data[3] = "a.2.A" data[4] = "a.2.B" data[5] = "b.1.A" data[6] = "b.1.B" data[7] = "b.2.A" data[8] = "b.2.B" result=ui_dlg_box("Simple Tree",<<%dlg% {ysize=2} [%S=BLR%.32,10node^<data] | <OK> %dlg% )
The following diagram shows the tree control and its return value. Picture
dim data[10] as C data[1] = "a.1.A" data[2] = "a.1.B" data[3] = "a.2.A" data[4] = "a.2.B" data[5] = "b.1.A" data[6] = "b.1.B" data[7] = "b.2.A" data[8] = "b.2.B" result=ui_dlg_box("Simple Tree",<<%dlg% {ysize=2} [%S=BLR%.32,10node^<data] | <OK>; [.32node] %dlg% )
Using the Macro Expansion Symbol
The tree control may optionally use the macro expansion symbol, as illustrated below. I=@images is a reference to the images variable in the example below.
images = <<%dlg% a5_ball_blue a5_ball_green a5_ball_red a5_ball_yellow a5_orange_question_small %dlg% list = <<%dlg% 3+1Category1.5item1 3+1Category1.5item2 3+2Category2.5item3 3+2Category2.5item4 3+4Category3.5item5 3+4Category3.5item6 %dlg% ui_dlg_box("Tree Control Images",<<%dlg% [%S=BLR;I=@images%.30,15item_selected^<list]; %dlg%)
Note however, that this example could also have been done without a macro expansion as follows:
images = <<%dlg% a5_ball_blue a5_ball_green a5_ball_red a5_ball_yellow a5_orange_question_small %dlg% list = <<%dlg% 3+1Category1.5item1 3+1Category1.5item2 3+2Category2.5item3 3+2Category2.5item4 3+4Category3.5item5 3+4Category3.5item6 %dlg% dlg_body = "[%S=BLR;I="+images+"%.30,15item_selected^<list];" ui_dlg_box("Tree Control Images",dlg_body)
See Also