Class TCustomLayerRowColumnSelector

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TCustomLayerRowColumnSelector = class(TComponent)

Description

TCustomLayerRowColumnSelector is an abstract base class whose descendants handle changes of the selected column, row, or layer.

Hierarchy

Overview

Fields

Private FCubeX: integer;
Private FCubeY: integer;
Private FJumpType: TJumpType;
Private FModelCube: TRbwModelCube;

Methods

Private procedure ChangeColRowLayer(Sender: TObject);
Private procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Private procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Private procedure MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Private function GetTimer: TTimer;
Protected procedure ChangeSelectedItem; virtual; abstract;
Protected function GetViewDataSet: TDataArray; virtual; abstract;
Public constructor Create(AOwner: TComponent); override;
Public procedure DisplayItem; virtual; abstract;
Public function EvaluatedAt: TEvaluatedAt;
Public procedure ItemChange(Sender: TObject); virtual; abstract;
Public class function New(const Owner: TComponent; const ViewDirection: TViewDirection): TCustomLayerRowColumnSelector;

Properties

Protected property Timer: TTimer read GetTimer;

Description

Fields

Private FCubeX: integer;

FCubeX records X-coordinate of the mouse over FModelCube as set in MouseDown, MouseMove or MouseUp.

Private FCubeY: integer;

FCubeY records Y-coordinate of the mouse over FModelCube as set in MouseDown, MouseMove or MouseUp.

Private FJumpType: TJumpType;

FJumpType records how the selected layer, row, or column is supposed to change. .

See also
TJumpType
when clicking on TframeView.ModelCube, TJumpType is used to indicate how much to change the selected layer, row, or column.
Private FModelCube: TRbwModelCube;

FModelCube is the TRbwModelCube on the TframeView to which this TCustomLayerRowColumnSelector applies.

Methods

Private procedure ChangeColRowLayer(Sender: TObject);

ChangeColRowLayer is the event-handler for Timer.OnTimer. It calls ChangeSelectedItem and sets the interval to 100 ms.

Private procedure MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

MouseDown sets FJumpType, FCubeX, and FCubeY. Then it sets frmGoPhast.Timer.OnTimer to ChangeColRowLayer and starts the timer with an initial interval of 1000 ms.

Private procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

MouseMove displays the selected layer, row, or column and updates FCubeX and FCubeY.

Private procedure MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

MouseUp sets FJumpType, FCubeX, and FCubeY. It may also call ChangeSelectedItem if Timer.OnTimer has never been called.

Private function GetTimer: TTimer;

See Timer.

Protected procedure ChangeSelectedItem; virtual; abstract;

ChangeSelectedItem changes the column, row, or layer.

Protected function GetViewDataSet: TDataArray; virtual; abstract;

GetViewDataSet get the data set that is being displayed on the top, front, or side view of the model.

Public constructor Create(AOwner: TComponent); override;

Create creates an instance of TCustomLayerRowColumnSelector. AOwner must be a TframeView. Create sets FModelCube and sets FModelCube's event-handlers for OnMouseDown, OnMouseMove, and OnMouseUp events to MouseDown, MouseMove, and MouseUp.

Public procedure DisplayItem; virtual; abstract;

DisplayItem displays which column, row, or layer is selected on the status bar of frmGoPhast.

Public function EvaluatedAt: TEvaluatedAt;

EvaluatedAt determines whether the grid is to be evaluated at block centers or nodes. This is important because it affects how high the selected column, row, or layer can be.

Public procedure ItemChange(Sender: TObject); virtual; abstract;

ItemChange is used as an event handler for TCustomModelGrid.OnSelectedColumnChange, TCustomModelGrid.OnSelectedLayerChange, and TCustomModelGrid.OnSelectedRowChange.

Public class function New(const Owner: TComponent; const ViewDirection: TViewDirection): TCustomLayerRowColumnSelector;

New is a factory method that creates a descendant of TCustomLayerRowColumnSelector depending on ViewDirection.

Properties

Protected property Timer: TTimer read GetTimer;

Timer acts as a class variable. It accesses a variable defined in the implementation section outside of any class.


Generated by PasDoc 0.12.1 on 2013-05-13 15:41:29