Суть проблемы разобраться с пониманием, остальное решено.
В сети есть пример добавления 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?
Код:
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*)