https://www.cnblogs.com/yeungchie/
code
1. 創建一個 tree 作為主 tree
mainTree = hiCreateTree('mainTree)
2. 創建兩個 tree item
treeItem1 = hiCreateTreeItem('treeItem1 list("FEOL"))
treeItem2 = hiCreateTreeItem('treeItem2 list("BEOL"))
- 將這兩個 tree item 追加到主 tree (mainTree) 中
這一步是 mainTree \(\supset\) treeItem
hiTreeAppendItem(mainTree treeItem1)
hiTreeAppendItem(mainTree treeItem2)
3. 又創建兩個 tree 作為子 tree
subTree1 = hiCreateTree('subTree1)
subTree2 = hiCreateTree('subTree2)
- 分別將這兩個子 tree 插入到對應的 tree item (treeItem1 treeItem2) 中
這一步是 treeItem \(\supset\) subTree
hiItemInsertTree(treeItem1 subTree1)
hiItemInsertTree(treeItem2 subTree2)
4. 雙叒創建一些 tree item
這里處理 subTree \(\supset\) subTreeItem
tree 和 item 的關系理清之后,合並起來寫更簡潔
hiTreeAppendItem(subTree1
; 創建 tree item 的同時追加到對應的 tree 中
hiCreateTreeItem('subTree11 list( "Active" 3 0 nil ))
)
hiTreeAppendItem(subTree1
hiCreateTreeItem('subTree12 list( "POLY" 13 0 nil ))
)
hiTreeAppendItem(subTree2
hiCreateTreeItem('subTree21 list( "METAL1" 16 0 0.8 ))
)
hiTreeAppendItem(subTree2
hiCreateTreeItem('subTree22 list( "METAL2" 18 0 nil ))
)
hiTreeAppendItem(subTree2
hiCreateTreeItem('subTree23 list( "METAL3" 28 0 nil ))
)
5. 創建 tree table
treeField = hiCreateTreeTable(
?name 'treeField
?title "Process information"
?titleAlignment 'center
?headers list(
; list( 標題 寬度 對齊 數據類型 )
list("Layer Name" 125 'left 'string )
list("GDS Number" 85 'center 'int )
list("Data Type" 85 'center 'int )
list("Thickness " 80 'right 'float3 )
)
?choice mainTree ; 將主 tree 賦值給 ?choice
?callback "treeCB"
)
6. 創建 form
form = hiCreateAppForm(
?name 'form
?formTitle "Process"
?fields list(
list(treeField 0:0 380:200 25)
)
?initialSize 500:250
)
7. 創建 callback 函數
procedure(treeCB(name itemSymList)
while(itemSymList
itemSym = car(itemSymList)
println(hiGetTreeItemDescription(eval(itemSym)))
itemSymList = cdr(itemSymList)
)
)
8. 最后把這個 form 顯示出來
hiDisplayForm(form)
show

