Download Now

    Reference TStepBubbles

    Declared in Codebot.Controls.Extras.pas on line 295

    TStepBubbles shows the steps of a process, such as the pages of a wizard, as a row of arrows. Each arrow has a numbered circle at its tail and points to the next step. The last step is drawn as a rounded bubble. Steps before and including StepIndex are highlighted.
      TStepBubbles = class(TSurfaceGraphicControl)
      protected
        { Position the steps and return the size needed to draw them }
        function Layout(Target: ISurface): TPointI;
        { Return the step at a point or -1 if there is none }
        function StepFromPoint(X, Y: Integer): Integer;
        procedure CalculatePreferredSize(var PreferredWidth, PreferredHeight: Integer; WithThemeSpace: Boolean); override;
        procedure FontChanged(Sender: TObject); override;
        procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
        procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
        procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
        procedure MouseLeave; override;
        procedure Draw; override;
      public
        { Create a new step bubbles control }
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
      published
        { The current step or -1 if no step has been reached }
        property StepIndex: Integer read FStepIndex write SetStepIndex default 0;
        { The caption of each step, one per line }
        property Steps: TStrings read FSteps write SetSteps;
        { When true the step under the mouse is highlighted }
        property HotTrack: Boolean read FHotTrack write FHotTrack default False;
        { When false the background is filled with Color }
        property Transparent: Boolean read FTransparent write SetTransparent default True;
        { OnStep is invoked when StepIndex changes }
        property OnStep: TNotifyEvent read FOnStep write FOnStep;
        { OnStepClick is invoked when a step is clicked }
        property OnStepClick: TStepClickEvent read FOnStepClick write FOnStepClick;
        property Align;
        property Anchors;
        property AutoSize default True;
        property BorderSpacing;
        property Color;
        property Constraints;
        property Cursor;
        property Enabled;
        property Font;
        property ParentColor;
        property ParentFont;
        property ParentShowHint;
        property PopupMenu;
        property ShowHint;
        property Visible;
        property OnClick;
        property OnMouseDown;
        property OnMouseEnter;
        property OnMouseLeave;
        property OnMouseMove;
        property OnMouseUp;
        property OnResize;
      end;

    See also

    ISurface in Codebot.Graphics.Types.pas
    TPointI in Codebot.Graphics.Types.pas
    TSurfaceGraphicControl in Codebot.Controls.pas