|
#1
|
|||
|
|||
Как это работает
Суть проблемы разобраться с пониманием, остальное решено.
В сети есть пример добавления checkbox и radiobutton в treeview. (How to Add Check Boxes and Radio Buttons to a TTreeView, например на Код HTML:
Кто нибудь может пояснить, зачем нужна переменная tmp и что делает строчка: Код:
tmp := Node.Parent; (Т.е., например, строчка newbutton.Parent:=Form1 делает форму родителем новой кнопки, как это будет звучать при перемене мест?) C tmp вообще непонятно, зачем вводится дополнительно и как работа с ней приводит к изменениям на treeview? Код:
procedure ToggleTreeViewCheckBoxes( Node :TTreeNode; cUnChecked, cChecked, cRadioUnchecked, cRadioChecked :integer); var tmp:TTreeNode; begin if Assigned(Node) then begin if Node.StateIndex = cUnChecked then Node.StateIndex := cChecked else if Node.StateIndex = cChecked then Node.StateIndex := cUnChecked else if Node.StateIndex = cRadioUnChecked then begin tmp := Node.Parent; if not Assigned(tmp) then tmp := TTreeView(Node.TreeView).Items.getFirstNode else tmp := tmp.getFirstChild; while Assigned(tmp) do begin if (tmp.StateIndex in [cRadioUnChecked,cRadioChecked]) then tmp.StateIndex := cRadioUnChecked; tmp := tmp.getNextSibling; end; Node.StateIndex := cRadioChecked; end; // if StateIndex = cRadioUnCheckedend; // if Assigned(Node) end; (*ToggleTreeViewCheckBoxes*) |