Diagram

TsgcHTMLComponent_Diagram — renderize um diagrama de fluxo de nós e setas como SVG inline, posicionando nós em coordenadas fixas e conectando-os com setas rotuladas, em Delphi, C++ Builder e .NET.

TsgcHTMLComponent_Diagram

Um componente de fluxograma que emite um <svg> inline autossuficiente. Adicione nós em coordenadas X/Y, conecte-os com setas e então leia a propriedade HTML.

Classe do componente

TsgcHTMLComponent_Diagram

Renderiza

Nós e setas <svg> inline

Linguagens

Delphi, C++ Builder, .NET

Adicione nós, conecte-os, renderize

Chame AddNode para cada caixa (com sua posição, cor e forma), conecte-as com Connect e então leia HTML.

uses
  sgcHTML_Enums, sgcHTML_Component_Diagram;

var
  oDiagram: TsgcHTMLComponent_Diagram;
begin
  oDiagram := TsgcHTMLComponent_Diagram.Create(nil);
  try
    oDiagram.DiagramWidth := 600;
    oDiagram.DiagramHeight := 300;

    oDiagram.AddNode('start', 'Start', 240, 20, hcSuccess, nsCircle);
    oDiagram.AddNode('work', 'Process', 240, 120, hcPrimary, nsRoundedRect);
    oDiagram.AddNode('done', 'Finish', 240, 220, hcDanger, nsDiamond);

    oDiagram.Connect('start', 'work', 'begin');
    oDiagram.Connect('work', 'done', 'commit');

    WebModule.Response := oDiagram.HTML;   // inline <svg> flow diagram
  finally
    oDiagram.Free;
  end;
end;
// includes: sgcHTML_Enums.hpp, sgcHTML_Component_Diagram.hpp

TsgcHTMLComponent_Diagram *oDiagram = new TsgcHTMLComponent_Diagram(NULL);
try
{
  oDiagram->DiagramWidth = 600;
  oDiagram->DiagramHeight = 300;

  oDiagram->AddNode("start", "Start", 240, 20, hcSuccess, nsCircle);
  oDiagram->AddNode("work", "Process", 240, 120, hcPrimary, nsRoundedRect);
  oDiagram->AddNode("done", "Finish", 240, 220, hcDanger, nsDiamond);

  oDiagram->Connect("start", "work", "begin");
  oDiagram->Connect("work", "done", "commit");

  String html = oDiagram->HTML;   // inline <svg> flow diagram
}
__finally
{
  delete oDiagram;
}
using esegece.sgcWebSockets;

var diagram = new TsgcHTMLComponent_Diagram();
diagram.DiagramWidth = 600;
diagram.DiagramHeight = 300;

diagram.AddNode("start", "Start", 240, 20, TsgcHTMLColor.hcSuccess, TsgcHTMLDiagramNodeShape.nsCircle);
diagram.AddNode("work", "Process", 240, 120, TsgcHTMLColor.hcPrimary, TsgcHTMLDiagramNodeShape.nsRoundedRect);
diagram.AddNode("done", "Finish", 240, 220, TsgcHTMLColor.hcDanger, TsgcHTMLDiagramNodeShape.nsDiamond);

diagram.Connect("start", "work", "begin");
diagram.Connect("work", "done", "commit");

string html = diagram.HTML;   // inline <svg> flow diagram

Principais propriedades & métodos

Os membros que você usa com mais frequência.

Nós

Nodes (TsgcHTMLDiagramNodes) contém as caixas; cada TsgcHTMLDiagramNode expõe NodeID, Text, X, Y, Width, Height, Color e Shape.

Adicionar um nó

AddNode(aID, aText, aX, aY, aColor, aShape) adiciona um nó e o retorna; aColor é um TsgcHTMLColor, aShape um TsgcHTMLDiagramNodeShape.

Formas

TsgcHTMLDiagramNodeShape oferece nsRectangle, nsRoundedRect, nsCircle e nsDiamond.

Conexões

Connections (TsgcHTMLDiagramConnections) contém as setas; cada TsgcHTMLDiagramConnection tem FromNode, ToNode, Label_ e Color.

Conectar nós

Connect(aFromID, aToID, aLabel_) desenha uma seta rotulada entre dois nós referenciados por seu NodeID.

Canvas & saída

DiagramWidth, DiagramHeight e DiagramID dimensionam e identificam o SVG; HTML retorna o <svg> inline com as setas desenhadas atrás dos nós.

Continue explorando

Experimente onlineVeja na demo Bancada de trabalho, rodando ao vivo no servidor de demos da eSeGeCe.
Ajuda onlineReferência completa da API e guia de uso para este componente.
Todos os Componentes sgcHTMLExplore a matriz completa de recursos com mais de 80 componentes.
Baixar Versão de Avaliação GratuitaA avaliação de 30 dias inclui os projetos de demonstração 60.HTML.
PreçosLicenças Single, Team e Site com código-fonte completo.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Pronto para Começar?

Baixe a versão de avaliação gratuita e adicione diagramas de fluxo à sua aplicação web Delphi, C++ Builder ou .NET.