Kambiz wrote:What about ZOrder and DrawOrder properties? Cannot be managed by these properties?
By the way, could you please attach an image regarding to your last post about splines and arrows? Maybe I didn't get what you meant.
Visually wise, it can be handled. But I need some extra functionality. For example, when moving the container node I want all the internals to follow. I also want this nesting situation recursive. That is have node A containing Node B and inside B I want graph G and inside node GA of graph G I want........ got it?
In my app, the objects are Concepts (Rect Nodes), Relations (Oval Nodes), Arrows (Links), Graphs (interconected Concepts, Relations and Arrows). What is missing are NestingNodes, that is, a special kind of concept object (or a new object type, anyway) that has other concepts or graphs inside it. Here it comes the need for nesting.
I think you were talking abstractly about the ability to group simplegraph objects. That's fine. I can use them to define the visualization of my NestingNode objects.
So, a groupNode should have at least a container (TList?) with all the simple objects it owns, and should be created on the fly by selecting some objects and issuing a group command. I am not sure though if special draw handling is required. These groupNodes must be also stored in the disk.
As you mentioned, it's a complex task that requires some time.
BTW, in my app I store my objects in an XML file and re-create them when loading. I am not using your save facilities, although I am considering utilizing them in the future, in order to remove all the visual aspects from my XML file (position, dims, colors, fonts, etc).