Dynamically Expanding a Tree Control Using Function Calls
Description
This dialog shows how the entries in a tree control can by expanded dynamically by specifying function calls in the tree data. This example tree control uses the D directive to define the "|" character as the tree separator. You can define any separator that you want. The X directive indicates that the tree contains dynamically expanded nodes. Each entry in the list initially is of the form: ParentNode |! Function . The text after the "!" is the event handler. The event handler is the code that will execute when that part of the tree is expanded. The event handler is a function call that returns the expanded version of the tree.
dim list as C dim initialList as C dim current as C list = <<%list% scripts|!a5.script_enum(2) functions|!a5.udf_enum(2) colors|!a5.color_enum() tables|!a5.table_enum() %list% initialList = list
The X directive in the tree control syntax says that functions will be providing the contents of the branches of the tree. The D directive says that the "|" character separates the parent node from the function that defines its branches.
ui_dlg_box("Dynamically Expanded Tree",<<%dlg%
{wrap=60}
{lf};
{hyperlink=Show initial list definition!initial}
{sp=3}
{hyperlink=Show current list definition!currentList};
{lf};
{lf};
[%X;S=BRL;D="|";%.60,15current^<list];
{lf};
Current selection:;
[.60current];
%dlg%,<<%code%
if a_dlg_button = "initial" then
a_dlg_button = ""
showvar(initialList)
end if
if a_dlg_button = "currentList" then
a_dlg_button = ""
showvar(list)
end if
%code%)Limitations
Desktop applications only.
See Also