Future of SimpleGraph
Select messages from
# through # FAQ
[/[Print]\]

DELPHI AREA -> DELPHI AREA's Products

#1: Future of SimpleGraph Author: shternlibLocation: Russia PostPosted: 28/06/04 07:38
    —
Hi. Where can I know about your feature plans of TSimpleGraph? Do you plan to make polylines? Thanks.

#2:  Author: KambizLocation: Tehran, Iran PostPosted: 28/06/04 09:24
    —
Frankly, no future plan!

Defining a new polyline node is very easy. You just need to subclass a new class from TPloygonalNode and override two simple methods.

For example here is the definitian of TTriangularNode:

Code:
TTriangularNode = class(TPolygonalNode)
  protected
    function GetMaxTextRect: TRect; override;
    class procedure DefineVertices(const ARect: TRect; var Points: TPointArray); override;
  end;

class procedure TTriangularNode.DefineVertices(const ARect: TRect;
  var Points: TPointArray);
begin
  SetLength(Points, 3);
  with ARect do
  begin
    with Points[0] do
    begin
      X := (Left + Right) div 2;
      Y := Top;
    end;
    with Points[1] do
    begin
      X := Right;
      Y := Bottom;
    end;
    with Points[2] do
    begin
      X := Left;
      Y := Bottom;
    end;
  end;
end;

function TTriangularNode.GetMaxTextRect: TRect;
begin
  with Result do
  begin
    Left := (Vertices[0].X + Vertices[2].X) div 2;
    Top := (Vertices[0].Y + Vertices[2].Y) div 2;
    Right := (Vertices[0].X + Vertices[1].X) div 2;
    Bottom := Vertices[1].Y;
  end;
  OffsetRect(Result, -Left, -Top);
  IntersectRect(Result, Result, inherited GetMaxTextRect);
end;

By the way, to be able to read a newly defined node from a stream, you have to register its class to SimpleGraph as follow:

Code:
TSimpleGraph.Register(TTriangularNode);

That's all.

#3: I mean polyline link Author: shternlibLocation: Russia PostPosted: 28/06/04 10:43
    —
Is it possible to make polyline link? F.e. link from node A to node B and another link from B to A?

#4:  Author: KambizLocation: Tehran, Iran PostPosted: 28/06/04 11:56
    —
For this purpose you have to subclass TGraphLink, and add some intermediate points to the link. Also, the new link class should be registered to the SimpleGraph, as same as node classes.

To be honest, it's lot of work and because of that I didn't implement it myself. Who knows, maybe in future I do it. Wink

#5: :D Author: shternlibLocation: Russia PostPosted: 28/06/04 13:53
    —
And what is needed to make this moment closure? Wink

#6:  Author: KambizLocation: Tehran, Iran PostPosted: 28/06/04 14:00
    —
Question (Motivation + Spare Time) . (a lot)

#7:  Author: shternlibLocation: Russia PostPosted: 28/06/04 14:03
    —
Motivation is what? Cool If I understand you correct, spare time is consequence of motivation

#8:  Author: KambizLocation: Tehran, Iran PostPosted: 28/06/04 14:33
    —
Currently I have three open projects in my hands. When I finished them, I may improve TGraphLink class to fit in your needs.

#9:  Author: shternlibLocation: Russia PostPosted: 28/06/04 14:40
    —
Does anything can change the priority of your projects? I mean making TSimpleGraph before those three projects Smile

#10:  Author: KambizLocation: Tehran, Iran PostPosted: 28/06/04 16:04
    —
Two of them are contracted projects and I cannot postpone them. Sad



DELPHI AREA -> DELPHI AREA's Products


output generated using printer-friendly topic mod. All times are GMT

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group