Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

Code Example: How to Create a Chart Symbol and Connection at Runtime

  • 3 minutes to read

This topic includes the code snippets that show how to create chart symbols and bind them with the connection in code:

uses
// Contains the TdxFlowChartObjectAdvancedShape class declaration
  ..., dxFlowChartShapes;
var
  AObj, AObj1, AObj2: TdxFcObject;
  AAdvancedShape: TdxFlowChartObjectAdvancedShape;
  AConnection: TdxFcConnection;
  I: Integer;
begin
  // Assigns the "Off Page Reference" shape from the advanced shape repository to the AAdvancedShape variable
  AAdvancedShape := dxFlowChart1.Repository.BasicFlowchartShapes.OffPageReference;
  for I := 0 to 1 do
    begin
      // Adds the advanced shape with predefined dimensions to the specified position
      AObj := dxFlowChart1.CreateObject(10, 10, 100, 50, AAdvancedShape);
      // Fills the shape's background with the silver color
      AObj.BkColor := clSilver;
      // Fills the shape's background with the gray color
      AObj.ShapeColor := clGray;
      // Sets text to display within the shape
      AObj.Text := 'Shape ' + IntToStr(I);
      // Centers text horizontally within the shape
      AObj.HorzTextPos := fchpCenter;
      // Centers text vertically within the shape
      AObj.VertTextPos := fcvpCenter;
    end;
  // Provides access to the first shape
  AObj1 := dxFlowChart1.Objects[0];
  AObj2 := dxFlowChart1.Objects[1];
  // Shifts the shape right by 150 pixels from the origin of the control's client area
  AObj2.Left := 150;
  // Shifts the shape down by 110 pixels from the origin of the control's client area
  AObj2.Top := 110;
  // Rotates the shape clockwise by 90 degrees
  AObj2.Angle := 90;
  // Attaches the connection to shapes at the specified points
  AConnection := dxFlowChart1.CreateConnection(AObj1,AObj2,2,2);
  // Sets one-pixel width for the connection line
  AConnection.PenWidth := 1;
  // Sets the dashed line for the connection
  AConnection.PenStyle := psDash;
  // Sets the vertical line that connects shapes at a right angle
  AConnection.Style := fclRectV;
  // Sets text to display within the connection
  AConnection.Text := 'Connection';
  // Fills the connection with the gray color
  AConnection.Color := clGray;
  // Assigns no shape to the connection's start arrow
  AConnection.ArrowSource.ArrowType := fcaNone;
  // Assigns the "Filled Arrow" shape to the connection's destination arrow
  AConnection.ArrowDest.ArrowType := fcaFilledArrow;
end;