TSimpleGraph Issues (and wish list)

Please post bug reports, feature requests, or any question regarding the DELPHI AREA products here.

Postby kokkoras » October 12th, 2006, 12:41 am

I am coming back to issue 14, regarding the addition of a OnSelectionChange event. The are basically 2 ways to select objects:
1. one object at a time
2. many objects at a time
In both cases we don't care if it is a first selection or a modification to a selection.

My suggestion is the following:
Have the TSG fire an OnSelectionChange event when either of the 2 selection methods is used. Then, let the user deside in the OnSelectionChange event handler if the event was handled. If the user says handled=false (which would be the default behaviour) then fire also the OnObjectSelect event for each individual objects selected/deselected.

It is like the behaviour in the onUpdate event handler of TToolBar, in which if the user says that the event was not handled then the onUpdate event handlers of the individual buttons are fired.

Well, Kambiz, what do you think?

16. Add group support.
I can think of the following way to do this: Create a special class of Graph object, say a GraphGroupNode. This will be like an ordinary graph node (that is, it will have a caption, alignment and layout properties, etc.) but will also include a list of the referents of the objects it includes. At the same time, all nodes should have a property defining the group node this node belongs to (if any). In this way, it will be possible to handle the various objects in diffenet ways according to the operation. For example:
>> during selection, objects belonging to a group are not marked as selected.
>> moving a group should mode its internals as well, an so on.

In another approach, maybe it is better to add this ability to the current GraphNode class and not create a GraphGroupNode. If a GraphNode has an emply list of grouped objects then it is not a group. If it belongs to no other graph node then it is an independent node that does not belong to any group.

In either case, being able to add groups inside a group is desirable. Having said this, I think that the 2nd approach proposed above looks more promising.

I understand though that I am only scratching the surface on this issue. It is definitely not so simple to add group support.
Fotis
User avatar
kokkoras
Moderator
Moderator
 
Posts: 317
Joined: March 12th, 2005, 11:19 pm
Location: Thessaloniki, Greece

Postby Kambiz » October 12th, 2006, 10:48 am

I've already implemented (2-3 months ago) grouping and used a new graph object class.

However, I think it's time to write SG from scratch.
Kambiz
User avatar
Kambiz
Administrator
Administrator
 
Posts: 2408
Joined: March 7th, 2003, 7:10 pm

Postby kokkoras » October 12th, 2006, 11:01 am

Kambiz wrote:I've already implemented (2-3 months ago) grouping and used a new graph object class.


Opps! Is it in v2.61 ?


Kambiz wrote:However, I think it's time to write SG from scratch.


:shock: :shock: OK!
What time are you starting at? 8)
Fotis
User avatar
kokkoras
Moderator
Moderator
 
Posts: 317
Joined: March 12th, 2005, 11:19 pm
Location: Thessaloniki, Greece

Postby Kambiz » October 12th, 2006, 10:29 pm

1. The update is not released to public domain. :-S

2. When I find a little time for my hobbies. :(
Kambiz
User avatar
Kambiz
Administrator
Administrator
 
Posts: 2408
Joined: March 7th, 2003, 7:10 pm

Postby kokkoras » November 24th, 2006, 10:52 pm

Kambiz wrote:I've already implemented (2-3 months ago) grouping and used a new graph object class.
However, I think it's time to write SG from scratch.


Kambiz, any chance of providing us with the "groups included" version? Is it stable?
Fotis
User avatar
kokkoras
Moderator
Moderator
 
Posts: 317
Joined: March 12th, 2005, 11:19 pm
Location: Thessaloniki, Greece

Postby Kambiz » November 25th, 2006, 2:22 pm

It's not stable. :(

Honestly, I've reached to this point that the component needs to re-design.
Kambiz
User avatar
Kambiz
Administrator
Administrator
 
Posts: 2408
Joined: March 7th, 2003, 7:10 pm

Postby kokkoras » December 1st, 2006, 8:55 am

While looking for some ...competitor ;-) I fall upon this:

CodeAccelerate's SweetDrawingEngine
at http://www.codeaccelerate.com/

It's CAD oriented, has some nice features and is missing many more found in TSimpleGraph :roll:
Fotis
User avatar
kokkoras
Moderator
Moderator
 
Posts: 317
Joined: March 12th, 2005, 11:19 pm
Location: Thessaloniki, Greece

Postby HPW » December 1st, 2006, 8:00 pm

Thanks for the link!
Indeed interesting but also missing a lot.
First absolut no documentation!
No community!
Missing some basic primitives like line etc.

And the demo compiles only when you have their other commercial component.
But the exe is nice.
Hans-Peter
HPW
Moderator
Moderator
 
Posts: 230
Joined: February 25th, 2006, 10:19 am
Location: Germany

Postby kokkoras » December 1st, 2006, 10:23 pm

You are right. I judged and posted based on the EXE. Latter on I saw the bare code and the lack of documentation... :(

Anyway, it shows it's commercial back-end.
Fotis
User avatar
kokkoras
Moderator
Moderator
 
Posts: 317
Joined: March 12th, 2005, 11:19 pm
Location: Thessaloniki, Greece

Postby Johnny_Bit » December 2nd, 2006, 10:24 am

Practically, they suck. If we would gather to write some stuff I bet that we would beat them.
Johnny_Bit
VIP Member
VIP Member
 
Posts: 455
Joined: June 15th, 2003, 9:56 am

Postby Kambiz » December 2nd, 2006, 1:41 pm

It has some nice features that SG doesn't have. By the way, for gradient they have used my code (TGradient 2.60). :)
Kambiz
User avatar
Kambiz
Administrator
Administrator
 
Posts: 2408
Joined: March 7th, 2003, 7:10 pm

Postby HPW » January 20th, 2007, 7:38 am

I was asked about the possibility to make the runtime-dialogs 'LinkProp,MarginsProp,NodeProp,Objectprop,DesignProp' able to support multiple languages. I do not want to hardcode different versions.
So whats the best way to do it?
Read a INI-file on FormCreate and set all labels?

Other ideas?
Hans-Peter
HPW
Moderator
Moderator
 
Posts: 230
Joined: February 25th, 2006, 10:19 am
Location: Germany

Postby Kambiz » January 20th, 2007, 9:43 am

HPW wrote:Read a INI-file on FormCreate and set all labels?

I do in this way but instead of INI file I use XML which is more flexible.
Kambiz
User avatar
Kambiz
Administrator
Administrator
 
Posts: 2408
Joined: March 7th, 2003, 7:10 pm

Postby Johnny_Bit » January 20th, 2007, 9:48 am

It's good to use XML, but when I started working in some GPL'ed stuff in C++ I just loved the way it's handled there... Delphi sometimes suck at such cases.
Johnny_Bit
VIP Member
VIP Member
 
Posts: 455
Joined: June 15th, 2003, 9:56 am

Postby HPW » January 21st, 2007, 7:36 am

Thanks for the hints. Since I want to keep things simple, I ended with a flat stringlist which get loaded by my plugin from a neobook variable.

Example from object dialog:
Caption=Object Properties
Label1=Label:
Colors= Colors
LabelColFill=Fill:
LabelColLine=Line:
btnChangeFont=Change Font...
LabelOptions=Options:
PublicOptions=Linkable|Selectable|Show Caption
btnOK=OK
btnCancel=Cancel
btnApply=Apply


On FormCreate I use the value-property to get the captions.
(I gave some objects a more speaking name)
Hans-Peter
HPW
Moderator
Moderator
 
Posts: 230
Joined: February 25th, 2006, 10:19 am
Location: Germany

PreviousNext

Return to DELPHI AREA Products

Who is online

Users browsing this forum: No registered users and 2 guests