Kambiz wrote:Althought a Group is a TGraphObject, but it doesn't draw its client.
So, client objects of a group are absolutely positioned on the SimpleGraph canvas (NOT relative to the Group position). Also I understand that client objects of a group are painted like before. Correct?
Kambiz wrote:Each group has a Members property as type TGraphObjectList. Also, each object has a Group property as type TGraphGroup.
That's cross refference. No problem. It's flexible.
Kambiz wrote:Each group treats as a single object, and its members does not appear in Objects property of SimpleGraph. The members are accessible only by Members property of the group.
How about having an All list as member of the TSimpleGrph that has pointers to any object, apart from the groupNodes? I have seen this approach in DOM handling of TWebBrowser.
Kambiz wrote:The objects within a group are selectable but they will be treated as locked. Therefore, the group members cannot be moved or resized individually.
That's nice. That way we can pop-up a properties dialog and alter some properties (except X, Y, W and H - maybe).
Regarding positioning and resizing, is it hard to allow then and constrain them to the group object's bounding rect? (Are the old/current move and resize commands constrained?)
Kambiz wrote:As well as other object types, a new group class can be derived from TGraphGroup and be registered in the control.
Thats true!