Page History
In this next step, we add labels to the hierarchical list box. In this example, columns one through three have the following labels, respectively: Product, Type, Title of Article. To create the labels, we actually use an edit table. Perform Perform the following steps:
Add an Edit Table control. Add an edit table control to the form called ET_LABELS.
In the edit table's Properties dialog box, add two more columns and type in the following for the column headings, respectively: Product, Type, Title of Article
Click the More… button in the Properties dialog box then check Show Column Headings, and clear Row Numbers.
Add a QuickEvent for the edit table's COLSIZE event, to execute the stored procedure, TEST_LB. Parameters for the QuickEvent are:
Code Block '@SELF'
...
Format the labels. Resize the edit table vertically so that only the column headings are visible, and horizontally so that it is exactly the same width as the hierarchical list box. Place the edit table just above the hierarchical list box.
Add a QuickEvent for the window's CREATE event. Define a QuickEvent for the window's CREATE event to execute the stored procedure, TEST_LB. No No parameters are needed.
Add two CASE statements to the stored procedure. Add the following code to the stored procedure, TEST_LB, to align the labels with the list box contents.
...
Code Block |
---|
case ctrlName = '' *align labels if Event = 'CREATE' then Set_Property(WinId: '.ET_LABELS', 'AUTOSIZECOL', 4) gosub SetTabs end case ctrlName = 'ET_LABELS' gosub SetTabs |
...
At the end of the stored procedure (after return 0) add the following:
Code Block |
---|
SetTabs: colWidth = Send_Message(WinId:'.ET_LABELS', 'COLWIDTH', 0) colNum = count(colWidth, @fm) + 1 tabs = '' base = 0 for nC = 1 to colNum base = base+colWidth<nC> tabs<nC> = base next nC Set_Property(WinId:'.LB_H', 'TABSTOPS', tabs) return |
The labels in the edit table will be synchronized with the contents of the list box, allowing you to resize the headings and have the contents be resized as well. The The form displays as shown below:
...