If you just select files, as Bart stated in another message, I think TShellTreeView will be more adequate and easier than TTreeView (actually TShellTreeView is a file tree specific descendent TTreeView).

In TTreeView (and TShellTreeView) you can enable multiselection by adding tvoAllowMultiSelect in Options set (something like "with TreeView1 do Options:=Options+[tvoAllowMultiSelect];"   or better by just checking Options/tvoAllowMultiSelect in the Object inspector)

https://wiki.freepascal.org/TTreeView#Example_of_using_Multiple_Node_Selection_for_Multiple_User_Selections

If you want checkboxes, I think it's possible with TVirtualStringTree from the VirtualTreeView package, it may be a bit harder to implement (as far as  I remember you need your own data structure to store the status of the tree) :

https://wiki.freepascal.org/VirtualTreeview

https://wiki.freepascal.org/VirtualTreeview_Example_for_Lazarus#Checkbox

VirtualTreeView package is included in Lazarus v2.0+, but I'm not sure it's installed by default: if you don't find a tab "Virtual controls" in your components, you may need to go to Package menu/Install packages, select virtualtreeview_package 5.5.3.1 for installation and rebuild Lazarus.

Here you should enable multiselection with something like

with VirtualStringTree1.TreeOptions do SelectionOptions:=SelectionOptions+[toMultiSelect];

or by checking TreeOptions/SelectionOptions/toMultiSelect in the Object inspector when your VirtualStringTree1 is selected.

(I've used VirtualTreeView a while ago, I didn't test checkboxes today)

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to