| View previous topic :: View next topic |
| Author |
Message |
kokkoras Moderator

Joined: 12 Mar 2005 Posts: 275 Location: Thessaloniki, Greece
|
Posted: 12/10/06 00:41 Post subject: |
|
|
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 |
|
| Back to top |
|
 |
Kambiz Administrator

Joined: 07 Mar 2003 Posts: 1113 Location: Tehran, Iran
|
Posted: 12/10/06 10:48 Post subject: |
|
|
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 |
|
| Back to top |
|
 |
kokkoras Moderator

Joined: 12 Mar 2005 Posts: 275 Location: Thessaloniki, Greece
|
Posted: 12/10/06 11:01 Post subject: |
|
|
| 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. |
OK!
What time are you starting at?
_________________ Fotis |
|
| Back to top |
|
 |
Kambiz Administrator

Joined: 07 Mar 2003 Posts: 1113 Location: Tehran, Iran
|
Posted: 12/10/06 22:29 Post subject: |
|
|
1. The update is not released to public domain. :-S
2. When I find a little time for my hobbies.
_________________ Kambiz |
|
| Back to top |
|
 |
kokkoras Moderator

Joined: 12 Mar 2005 Posts: 275 Location: Thessaloniki, Greece
|
Posted: 24/11/06 22:52 Post subject: |
|
|
| 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 |
|
| Back to top |
|
 |
Kambiz Administrator

Joined: 07 Mar 2003 Posts: 1113 Location: Tehran, Iran
|
Posted: 25/11/06 14:22 Post subject: |
|
|
It's not stable.
Honestly, I've reached to this point that the component needs to re-design.
_________________ Kambiz |
|
| Back to top |
|
 |
kokkoras Moderator

Joined: 12 Mar 2005 Posts: 275 Location: Thessaloniki, Greece
|
Posted: 01/12/06 08:55 Post subject: |
|
|
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
_________________ Fotis |
|
| Back to top |
|
 |
HPW Senior Member
Joined: 25 Feb 2006 Posts: 131 Location: Germany
|
Posted: 01/12/06 20:00 Post subject: |
|
|
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 |
|
| Back to top |
|
 |
kokkoras Moderator

Joined: 12 Mar 2005 Posts: 275 Location: Thessaloniki, Greece
|
Posted: 01/12/06 22:23 Post subject: |
|
|
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 |
|
| Back to top |
|
 |
Johnny_Bit Administrator
Joined: 15 Jun 2003 Posts: 347
|
Posted: 02/12/06 10:24 Post subject: |
|
|
| Practically, they suck. If we would gather to write some stuff I bet that we would beat them.
|
|
| Back to top |
|
 |
Kambiz Administrator

Joined: 07 Mar 2003 Posts: 1113 Location: Tehran, Iran
|
Posted: 02/12/06 13:41 Post subject: |
|
|
It has some nice features that SG doesn't have. By the way, for gradient they have used my code (TGradient 2.60).
_________________ Kambiz |
|
| Back to top |
|
 |
HPW Senior Member
Joined: 25 Feb 2006 Posts: 131 Location: Germany
|
Posted: 20/01/07 07:38 Post subject: |
|
|
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 |
|
| Back to top |
|
 |
Kambiz Administrator

Joined: 07 Mar 2003 Posts: 1113 Location: Tehran, Iran
|
Posted: 20/01/07 09:43 Post subject: |
|
|
| 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 |
|
| Back to top |
|
 |
Johnny_Bit Administrator
Joined: 15 Jun 2003 Posts: 347
|
Posted: 20/01/07 09:48 Post subject: |
|
|
| 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.
|
|
| Back to top |
|
 |
HPW Senior Member
Joined: 25 Feb 2006 Posts: 131 Location: Germany
|
Posted: 21/01/07 07:36 Post subject: |
|
|
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:
| Quote: |
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 |
|
| Back to top |
|
 |
|