Class TfrmShowHideObjects

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TfrmShowHideObjects = class(TfrmCustomGoPhast)

Description

TfrmShowHideObjects is used to show or hide TScreenObjects either individually or based on the data sets or boundary conditions they affect.

Hierarchy

Overview

Fields

Implicit btnClose: TBitBtn;
Implicit btnHelp: TBitBtn;
Implicit ctvObjects: TRbwCheckTreeView;
Implicit pnlBottom: TPanel;
Implicit pmSelectEdit: TPopupMenu;
Implicit miSelect: TMenuItem;
Implicit miEdit: TMenuItem;
Private FAllObjectsNode: TTreeNode;
Private FBoundaryConditionsRoot: TTreeNode;
Private FCanEdit: boolean;
Private FDataSetRootNode: TTreeNode;
Private FSettingData: boolean;
Private FLeakyNode: TTreeNode;
Private FOtherObjectsNode: TTreeNode;
Private FRiverNode: TTreeNode;
Private FSizeNode: TTreeNode;
Private FSpecifiedFluxNode: TTreeNode;
Private FSpecifiedHeadNode: TTreeNode;
Private FWellNode: TTreeNode;

Methods

Implicit procedure ctvObjectsCheckChange(Sender: TObject; Node: TCheckNode);
Implicit procedure ctvObjectsItemEnter(Sender: TObject; Node: TTreeNode);
Implicit procedure ctvObjectsItemClick(Sender: TObject; Button: TMouseButton; Node: TTreeNode; const Pt: TPoint);
Implicit procedure FormClose(Sender: TObject; var Action: TCloseAction);
Implicit procedure FormCreate(Sender: TObject); override;
Implicit procedure miEditClick(Sender: TObject);
Implicit procedure miSelectClick(Sender: TObject);
Implicit procedure FormShow(Sender: TObject);
Private procedure AddScreenObject(AScreenObject: TScreenObject; const DataSetList: TStringList);
Private procedure ClearBaseNodes;
Private procedure CreateBaseNodes;
Private procedure EnablePopupMenuItems(Node: TTreeNode);
Private procedure FillDataSetList(DataSetList: TStringList);
Private procedure GetData;
Private function GetSelectedScreenObject: TScreenObject;
Private procedure NilBaseNodes;
Private procedure RemoveScreenObject(AScreenObject: TScreenObject);
Private procedure SetCanEdit(const Value: boolean);
Private procedure SortBaseNodes;
Private procedure SortRemainingNodes;
Public procedure UpdateDisplay;
Public procedure UpdateScreenObjects;

Properties

Public property CanEdit: boolean read FCanEdit write SetCanEdit;

Description

Fields

Implicit btnClose: TBitBtn;

btnClose: TBitBtn; btnClose is used to close the form.

Implicit btnHelp: TBitBtn;

btnHelp: TBitBtn; btnHelp is used to display help for the form.

Implicit ctvObjects: TRbwCheckTreeView;

ctvObjects: TRbwCheckTreeView; ctvObjects is used to display and change the visibility of the TScreenObjects. See ctvObjectsCheckChange.

Implicit pnlBottom: TPanel;

pnlBottom: TPanel; pnlBottom is the panel at the bottom of the form that holds the buttons.

Implicit pmSelectEdit: TPopupMenu;

pmSelectEdit is associated with ctvObjects and holds miSelect and miSelect;

Implicit miSelect: TMenuItem;

miSelect is the Select menu item of pmSelectEdit. Clicking it selects the TScreenObject of the selected node.

Implicit miEdit: TMenuItem;

miEdit is the Edit menu item of pmSelectEdit. Clicking it edits the TScreenObject of the selected node.

Private FAllObjectsNode: TTreeNode;

FAllObjectsNode holds a TTreeNode for each TScreenObject.

Private FBoundaryConditionsRoot: TTreeNode;

FBoundaryConditionsRoot holds a TTreeNode for each boundary condition.

Private FCanEdit: boolean;

See CanEdit.

Private FDataSetRootNode: TTreeNode;

FDataSetRootNode holds a TTreeNode for each data set.

Private FSettingData: boolean;

FSettingData is used in GetData and ctvObjectsCheckChange to prevent stack overflows.

Private FLeakyNode: TTreeNode;

FLeakyNode holds a TTreeNode for each TScreenObject that specifies a leaky boundary.

Private FOtherObjectsNode: TTreeNode;

FOtherObjectsNode holds a TTreeNode for each TScreenObject that isn't used for anything.

Private FRiverNode: TTreeNode;

FRiverNode holds a TTreeNode for each TScreenObject that specifies a river boundary.

Private FSizeNode: TTreeNode;

FSizeNode holds a TTreeNode for each TScreenObject that specifies the grid element size.

Private FSpecifiedFluxNode: TTreeNode;

FSpecifiedFluxNode holds a TTreeNode for each TScreenObject that specifies a specified flux boundary.

Private FSpecifiedHeadNode: TTreeNode;

FSpecifiedHeadNode holds a TTreeNode for each TScreenObject that specifies a specified head boundary.

Private FWellNode: TTreeNode;

FWellNode holds a TTreeNode for each TScreenObject that specifies a well boundary.

Methods

Implicit procedure ctvObjectsCheckChange(Sender: TObject; Node: TCheckNode);

ctvObjectsCheckChange is the event handler for the OnCheckChange event of ctvObjects. It causes TScreenObjects to be displayed or hidden.

Implicit procedure ctvObjectsItemEnter(Sender: TObject; Node: TTreeNode);

ctvObjectsItemEnter is called when the mouse passes over a TTreeNode in ctvObjects. It calls EnablePopupMenuItems.

Implicit procedure ctvObjectsItemClick(Sender: TObject; Button: TMouseButton; Node: TTreeNode; const Pt: TPoint);

ctvObjectsItemClick enables and disables miEdit and miSelect based on whether the current node of ctvObjects has a TScreenObject.

Implicit procedure FormClose(Sender: TObject; var Action: TCloseAction);

FormClose calls Release and sets frmShowHideObjects to nil.

Implicit procedure FormCreate(Sender: TObject); override;

FormCreate is the event handler for the OnCreate event of TfrmShowHideObjects.

Implicit procedure miEditClick(Sender: TObject);

See miEdit. Also the event handler for ctvObjects.OnDblClick.

Implicit procedure miSelectClick(Sender: TObject);

See miSelect.

Implicit procedure FormShow(Sender: TObject);

FormShow calls AdjustFormPosition.

Private procedure AddScreenObject(AScreenObject: TScreenObject; const DataSetList: TStringList);

AddScreenObject adds one or more TTreeNodes to ctvObjects for AScreenObject. It skips TScreenObjects that are deleted.

Private procedure ClearBaseNodes;

ClearBaseNodes removes all base nodes that have no children.

Private procedure CreateBaseNodes;

CreateBaseNodes creates all the basal nodes of ctvObjects that will hold the nodes that have data about the TScreenObjects. CreateBaseNodes checks that the basal nodes don't already exist before creating them.

Private procedure EnablePopupMenuItems(Node: TTreeNode);

EnablePopupMenuItems enables the menu items on pmSelectEdit if Node has a TScreenObject in its Data property.

Private procedure FillDataSetList(DataSetList: TStringList);

FillDataSetList fills DataSetList with the names of the TTreeNodes for each data set. The Objects property of DataSetList holds the TTreeNodes themselves.

Private procedure GetData;

GetData creates all the nodes in ctvObjects

Private function GetSelectedScreenObject: TScreenObject;

GetSelectedScreenObject gets the TScreenObject associated with the selected node in ctvObjects.

Private procedure NilBaseNodes;

NilBaseNodes sets FAllObjectsNode, FSizeNode, FDataSetRootNode, FBoundaryConditionsRoot, FSpecifiedHeadNode, FSpecifiedFluxNode, FLeakyNode, FRiverNode, FWellNode, and FOtherObjectsNode to nil.

Private procedure RemoveScreenObject(AScreenObject: TScreenObject);

RemoveScreenObject removes all TTreeNodes related to AScreenObject from ctvObjects

Private procedure SetCanEdit(const Value: boolean);

See CanEdit.

Private procedure SortBaseNodes;

SortBaseNodes sorts the base nodes of ctvObjects.

Private procedure SortRemainingNodes;

SortRemainingNodes sorts the nodes of ctvObjects that aren't base nodes alphabetically.

Public procedure UpdateDisplay;

UpdateDisplay updates the checked state of nodes of ctvObjects. without adding or removing nodes.

Public procedure UpdateScreenObjects;

UpdateScreenObjects adds or removes nodes as needed to make ctvObjects reflect the TScreenObjects that are present.

Properties

Public property CanEdit: boolean read FCanEdit write SetCanEdit;

CanEdit is used to prevent access violations caused by attempting to edit a TScreenObject while another one is already being edited.


Generated by PasDoc 0.10.0 on 2006-10-31 09:56:38