Суть проблемы разобраться с пониманием, остальное решено.
В сети есть пример добавления checkbox и radiobutton в treeview. (How to Add Check Boxes and Radio Buttons to a TTreeView, например на
Код HTML:
https://www.thoughtco.com/add-options-to-ttreeview-4077866
Я не студент и не решаю курсовые. Просто хочу разобраться для себя.
Кто нибудь может пояснить, зачем нужна переменная tmp и что делает строчка:
(Т.е., например, строчка newbutton.Parent:=Form1 делает форму родителем новой кнопки, как это будет звучать при перемене мест?)
C tmp вообще непонятно, зачем вводится дополнительно и как работа с ней приводит к изменениям на treeview?
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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 ;
end ;
|