Plugin: hpwTreeView

For the second project I started to implement a standard treeview from the delphi 5 package.
As a source I use the sample spinedit from neosoft's plugin SDK.
Many thanks to Dave from neosoft for his usefull help and tips.

Now here is release 1.51: 787 KB


Changes 1.51:(19.04.2016)

Added: Support for [RectangleName_OnCollapsedAction] and [RectangleName_OnExpandedAction] into the wizard of hpwTreeViewSetVar

Changes 1.50:(16.04.2016)

BugFix: wizard of hpwTreeViewSetProp did throw several access violation on some variables

Changes 1.49:(11.04.2016)

BugFix: [hpwTreeViewFontSize] defaults to 8 when not set correctly
BugFix: [hpwTreeViewIndent] defaults to 20 when not set correctly
Added: A few tweaks more to hpwTreeViewVarTemplate

Changes 1.48:(10.04.2016)

BugFix: hpwTreeViewInsNode now sets the image indexes right when insert multiple nodes.
Added: [hpwTreeViewImageMaskColor] to hpwTreeViewSetVar
Added: A few tweaks to hpwTreeViewVarTemplate

New upload(01.11.2013)

Plugins are now uncompressed without upx-compression.

Changes 1.47:(03.07.2013)

Variables from OnChange are now reset in AddNode and DelNode

Instance-variables with [rectanglename_varname] are reset on hpwTreeViewDelete

Changes 1.46:(29.05.2013)

Variable: [hpwTreeViewImageList] now supports PNG and JPG formats.
Variable: [RectangleName_OnCollapsedAction] can be used to fire actions for OnCollapsed-event.
Variable: [RectangleName_OnExpandedAction] can be used to fire actions for OnExpanded-event.
Variable: [RectangleName_Collapsed_Node] contains the node number of the OnCollapsed-event.
Variable: [RectangleName_Expanded_Node] contains the node number of the OnExpanded-event.

Changes 1.45:(05.11.2012)

Action hpwTreeViewExpandNode had a wrong hint-text in the action-dialog.

Changes 1.44:(02.09.2011)

Variable: hpwTreeViewBorderWidth to set a borderwidth bigger than default=0

Changes 1.43:(19.08.2009)

Recompiled without Win32.Induc delphi virus

Release 1.42:(17.5.2009)

Color value 0x..... and RGBINT...... now supported.

Changed the used runtime-packer for a better vista-compatibility.

Changes 1.41:(27.10.2008)

Changed Action: hpwTreeViewCreate with 2 new parameter with action for onChange and onMouseMove
(onMouseMove fills his own sets of variables, see debugger)

Variable: hpwTreeViewShowTooltips to store Flag for showing longer node-texts as tooltips ON=1 Off=0

Changes 1.40:(24.10.2008)

Changed compiler to delphi 7 only

Wizards now compatibel look with neobook 5.6

Action: hpwTreeViewSetNodeText to set a nodetext.

Changes 1.39:(22.7.2008)

Bugfix for rectangle-handles > 32 bit

Changes 1.38:(19.1.2008)

All commands wizards show the exact command in the wizards dialog caption.

All commands wizards show the command, plugin-name and the command-hint similar to neobook's native commands.

Removed some designtime-related code from NBR which results in a slightly smaller size.

Changes 1.37:(2.12.2007)

hpwTreeViewSetImageIndex now supports Node number/pipe or CRLF-delimited list/keyword CHILDS or variable

hpwTreeViewSetSelectedIndex now supports Node number/pipe or CRLF-delimited list/keyword CHILDS or variable

Changes 1.36:(8.10.2007)

New variable [hpwTreeViewImageMaskColor] to set the maskcolor for the node-imagelist

Changes 1.35:(15.9.2007)

hpwTreeView now resizes with the rectangle-host.

Changes 1.34:(19.1.2007)

Using NB 5.5.3 new privat variable to publish the DLL-name.

Changes 1.33:(27.10.2006)

Bugfix for TaskBarClickAndRestoreOnTop for About-dialog and command wizards

Action: hpwTreeViewSetProp - Set a property for the plugin after creating.

Changes 1.32:(05.10.2006)

BugFix: hpwTreeViewVarTemplate was inserting a template with 'SetVar' instead of 'hpwTreeViewSetVar'

Changes 1.31:(04.10.2006)

2 new variables OnCreate: [hpwTreeViewHotTrack] + [hpwTreeViewHideSelection]

Changes 1.30:(29.09.2006)

Action: hpwTreeViewSetVar - Set all custom variable of hpwTreeView

Action: hpwTreeViewVarTemplate - Insert variable template at design time

command-wizards for all commands

Fix for loading a complete imagelist from one Bitmap-file. Now works also from [Embedded].
(For this width must be the nth of the height, so that all images are quadratic)

Eliminated variable [hpwTreeViewLoadFromExe] - Now it is enough to have [Embedded] in the filename.

Action: hpwTreeViewLoad now supports loading from [Embedded] TXT and BIN-formats

Changes 1.29:(01.05.2005)

Action: hpwTreeViewAddNode, hpwTreeViewAddChildNode, hpwTreeViewInsNode, hpwTreeViewDelNode, hpwTreeViewSetImageIndex, hpwTreeViewSetSelectedIndex accept now a list for multiple entrys at once.

Changes 1.28:(12.04.2005)

Action: hpwTreeViewReadNode Read propertys of a node into variables.

Changes 1.27:(15.03.2005)

Bugfix: hpwTreeViewAddChildNode was always setting the indexes of the first sub-node and not the last.

Changes 1.26:(13.03.2005)

Bugfix: hpwTreeViewAddNode and hpwTreeViewAddChildNode no more autoselect the added node.

Changes 1.25:(06.03.2005)

You can now use: SetVar "[hpwTreeViewImageList]" "[PubDir]Node1.bmp|[PubDir]Node2.bmp"
Instead of: SetVar "[hpwTreeViewImageList]" "[PubDir]Treeview.bmp"
Allows single image-files for the imagelist.

Images from EXE: SetVar "[hpwTreeviewImageFromExe]" "1" (NB5 only)

Changes 1.24:(01.03.2005)

Removed hard coded calls on Rectanglename_call file.

Separated action strings for left and double click.

Action string for middle click (In additon to right click).

Action string for enter press.

Changes 1.23:(26.02.2005)

The treeview can now get/loose focus via tab-key

The treeview get the focus on creating.

New Variable for the current node:

[RectangleName_Count] contains number of sub-items

Partly rewritten to optimized smaller code.

Changes 1.22:(25.02.2005)

New Variables for parent propertys


Changes 1.21:(10.12.2004)

Final version of new direct newLISP-interface (see lispdemo.lsp)

Changes 1.20:(09.12.2004)

New property [hpwTreeViewFontColor]

New property [hpwTreeViewFontCharset] (see CHARSET.txt)

Bugfix: No more crash when [hpwTreeViewBGColor] is not set.

New direct newLISP-interface (see lispdemo.lsp)

Changes 1.19:(25.11.2004)

Added hpwTreeView.ini in plugin-directory to be able to translate/expand plugin comments.

Changes 1.18:(24.11.2004)

Bugfix for second action-gear of hpwTreeViewCreate

Changes 1.17:(15.07.2003)

Bugfix on WMNotify for NB4.11e

Changes 1.16:(28.02.2003)

Bugfix on automatic removing.

Changes 1.15:(05.02.2003)

SetVar "hpwTreeViewBGColor" color parameter accept now '$00BBGGRR' , '#RRGGBB' and '255,0,0'.

Changes 1.14:(13.01.2003)

Action: hpwTreeviewDelete no more needed, at Shutdown all treeview are removed.

Changes 1.13:(09.11.2002)

Action: hpwTreeViewLoad/hpwTreeViewSave now support file-extension .bin for load/save with bitmap-setup.

Changes 1.12:(14.10.2002)

BugFix: In 1.11 some variable code from right-click was cut and paste to left-click.

Changes 1.11:(13.10.2002)

BugFix: Internal Variable in actiontext now are all set inside action text.
See Right-Click example in sample pub with context-menu.

Changes 1.10:(05.10.2002)

Variable: hpwTreeViewReadOnly to allow editing of nodetext (1=True-no editing)

Variable: hpwTreeViewClickMode (1=DoubleClick) to choose between Double and Single Click.

Changed Action: hpwTreeViewCreate with new 3.parameter with action for right click. Empty for RCALL-file.

Variable: Rectanglename_RClickX to store X-Offset in Tree where right-click happens

Variable: Rectanglename_RClickY to store Y-Offset in Tree where right-click happens

Changed Action: hpwTreeViewAddNode with new image-pointer

Changed Action: hpwTreeViewAddChildNode with new image-pointer

Changed Action: hpwTreeViewInsNode with new image-pointer

New Action: hpwTreeViewSetAllImageIndex to set all node image-pointer

New Action: hpwTreeViewSetAllSelectedIndex to set all node selected image-pointer

New Action: hpwTreeViewSetImageIndex to set one node image-pointer

New Action: hpwTreeViewSetSelectedIndex to set one node selected image-pointer

Changes 1.09:(28.09.2002)

Buxfix for the hpwTreeViewDelete action

Headlines in action window

Leave filename for tree a empty string "" will create blank tree

Action: hpwTreeViewAddNode to add a new node at the end of the tree.

Action: hpwTreeViewAddChildNode to add a new child node to a node.

Action: hpwTreeViewInsNode to insert a node before another node.

Action: hpwTreeViewDelNode to delete a node.

Action: hpwTreeViewSave to save a Tree-Content

Variable: hpwTreeViewShowRoot to store a flag for showing the root level.

Changes 1.08:(24.09.2002)

Variable: hpwTreeViewCallPath to store path for function call-file.

Variable: hpwTreeViewImageList to store name of BMP-file for node-pictures.

Changes 1.07:(22.09.2002)

Changed action-edit-field to multiline richedit field.
CR/LF converted to character codes.

Changes 1.06:(22.09.2002)

Add Actionstring to hpwTreeViewCreate parameters

Now you can use neobbok internal action-editor to put the double-click action
inside the hpwTreeViewCreate-call. Leaving this field blank brings back the call
to the function file. Function file calling has the maximum flexibility, because you
can modify the action completly at runtime.

The new action string can contain the special treeview-variables:

But when using them in the action string do not set them im Brackets=[], because
neobook would replace them with an empty string in the moment the tree is created
and the values are not set yet. The plugin will replace them during runtime without
the brackets. So this method is for more static action's like page-change etc.

I have removed the error message from RemoveTree when trying to remove a Tree
which is already removed. So you can always put an RemoveTree in ShutDown
to make sure it is always deleted.

Changes 1.05:(17.09.2002)

Variable: hpwTreeViewFontName to store Font Name

Variable: hpwTreeViewFontSize to store Font Size

Action: hpwTreeViewExpandFull to expand the Tree

Action: hpwTreeViewCollapseFull to collapse the Tree

Action: hpwTreeViewLoad to load a new Tree-Content

Changes 1.04:(15.09.2002)

Action: hpwTreeViewExpandNode to expand a node

Action: hpwTreeViewCollapseNode to collapse a node

Changes 1.03:(15.09.2002)

Variable: [Rectangelname_Result] changed to [Rectangelname_Text]

Variable: [Rectangelname_AbsIndex] to store absolute Index of node

Variable: [Rectangelname_Index] to store relativ Index of node

Variable: [Rectangelname_Level] to store Level of node

Action: hpwTreeViewSetNode to set a node selected

Action: hpwTreeViewSetFocus to set the focus on a treeview

Changes 1.02:(13.09.2002)

Variable: hpwTreeViewBGColor to store Rectanglename or Borland constants (clWhite,clWindow ...)

Variable: hpwTreeViewAutoExpand to store Flag for AutoExpand of Nodes ON=1

Variable: hpwTreeViewBorderStyle to store Flag for Border ON=1 Off=0

Changes 1.01:(11.09.2002)

Variable: hpwTreeViewIndent to store Indent of the Trees

Function-Calls changes names to support more than 1 Treeview on a page.

Initial release 1.0:(10.09.2002)

Action Commands: hpwTreeViewCreate, hpwTreeViewDelete

Variables: hpwTreeViewFname, hpwTreeViewResult

Function call: hpwTreeViewDblClick