yes you can and I just spent some time in doing that for you however, I found a bug in the TTreeView code.
I know it won't ever get fixed so there is basically a useless event in there.
The "OnCustomDrawItem" which allows you to create a node there and set text and data items, however. the code follows through
correctly up to the point there it decides to overwrite the Text and Data properties, there for making all that work at that customDrawItem event just about useless. I can't think of anything else there you can do in that event that you can't elsewhere ?
Result := fNewNodeToBeAdded; // Used by AddNode to pass an existing node.
if Result = Nil then
Result := Owner.CreateNode; //This is where a new node is created normally or from the OnCustomCreateitem
fNewNodeToBeAdded := nil;
ok:=false;
try
Result.Data := Data; //<< as you can see, Data gets overwritten
Result.Text := S; //<< Same here.
// move node in tree (tree of TTreeNode)
Result.InternalMove(Node,AddMode);
You can look at this in the TreeView.inc file starting at ~ line #2440-2470
So what you can do is use the OnAddition and Set the DATA pointer there to a new combobox
using the OnCustonDrawItem, you can set the X,Y plots of the box and have it view when you select the node, for example.
make sure you use the TreeView as the owner so it will remove it self properly and using the OnDelete event you can free this object etc.
I hope someone with more power than me looks at this bug I found, at least correct the DOCS to indicate an overwrite of the Text and DATA property.