fpspreadsheet: Complete missing doc-o-matic comments in fpspreadsheetgrid.pas. Update the chm help file.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3237 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2014-06-25 08:22:37 +00:00
parent 9eefbdaa06
commit b6051c8785
2 changed files with 197 additions and 50 deletions

View File

@ -53,6 +53,8 @@ type
procedure ChangedCellHandler(ASender: TObject; ARow, ACol: Cardinal);
procedure ChangedFontHandler(ASender: TObject; ARow, ACol: Cardinal);
procedure FixNeighborCellBorders(ACol, ARow: Integer);
function GetBorderStyle(ACol, ARow, ADeltaCol, ADeltaRow: Integer;
out ABorderStyle: TsCellBorderStyle): Boolean;
// Setter/Getter
function GetBackgroundColor(ACol, ARow: Integer): TsColor;
@ -120,8 +122,6 @@ type
procedure DrawFrozenPaneBorders(ARect: TRect);
procedure DrawSelection;
procedure DrawTextInCell(ACol, ARow: Integer; ARect: TRect; AState: TGridDrawState); override;
function GetBorderStyle(ACol, ARow, ADeltaCol, ADeltaRow: Integer;
out ABorderStyle: TsCellBorderStyle): Boolean;
function GetCellHeight(ACol, ARow: Integer): Integer;
function GetCellText(ACol, ARow: Integer): String;
function GetEditText(ACol, ARow: Integer): String; override;
@ -194,6 +194,7 @@ type
property HeaderCount: Integer read FHeaderCount;
{ maybe these should become published ... }
{@@ Background color of the cell at the given column and row. Expressed as
index into the workbook's color palette. }
property BackgroundColor[ACol, ARow: Integer]: TsColor
@ -310,98 +311,185 @@ type
{@@ Shows/hides column and row headers in the fixed col/row style of the grid. }
property ShowHeaders;
// inherited from other ancestors
{@@ inherited from ancestors}
property Align;
{@@ inherited from ancestors}
property AlternateColor;
{@@ inherited from ancestors}
property Anchors;
{@@ inherited from ancestors}
property AutoAdvance;
{@@ inherited from ancestors}
property AutoEdit;
{@@ inherited from ancestors}
property AutoFillColumns;
//property BiDiMode;
{@@ inherited from ancestors}
property BorderSpacing;
{@@ inherited from ancestors}
property BorderStyle;
{@@ inherited from ancestors}
property Color;
{@@ inherited from ancestors}
property ColCount;
//property Columns;
{@@ inherited from ancestors}
property Constraints;
{@@ inherited from ancestors}
property DefaultColWidth;
{@@ inherited from ancestors}
property DefaultDrawing;
{@@ inherited from ancestors}
property DefaultRowHeight;
{@@ inherited from ancestors}
property DragCursor;
{@@ inherited from ancestors}
property DragKind;
{@@ inherited from ancestors}
property DragMode;
{@@ inherited from ancestors}
property Enabled;
{@@ inherited from ancestors}
property ExtendedSelect;
{@@ inherited from ancestors}
property FixedColor;
{@@ inherited from ancestors}
property Flat;
{@@ inherited from ancestors}
property Font;
{@@ inherited from ancestors}
property GridLineWidth;
{@@ inherited from ancestors}
property HeaderHotZones;
{@@ inherited from ancestors}
property HeaderPushZones;
{@@ inherited from ancestors}
property MouseWheelOption;
{@@ inherited from TCustomGrid. Select the option goEditing to make the grid editable! }
property Options;
//property ParentBiDiMode;
{@@ inherited from ancestors}
property ParentColor default false;
{@@ inherited from ancestors}
property ParentFont;
{@@ inherited from ancestors}
property ParentShowHint;
{@@ inherited from ancestors}
property PopupMenu;
{@@ inherited from ancestors}
property RowCount;
{@@ inherited from ancestors}
property ScrollBars;
{@@ inherited from ancestors}
property ShowHint;
{@@ inherited from ancestors}
property TabOrder;
{@@ inherited from ancestors}
property TabStop;
{@@ inherited from ancestors}
property TitleFont;
{@@ inherited from ancestors}
property TitleImageList;
{@@ inherited from ancestors}
property TitleStyle;
{@@ inherited from ancestors}
property UseXORFeatures;
{@@ inherited from ancestors}
property Visible;
{@@ inherited from ancestors}
property VisibleColCount;
{@@ inherited from ancestors}
property VisibleRowCount;
{@@ inherited from ancestors}
property OnBeforeSelection;
{@@ inherited from ancestors}
property OnChangeBounds;
{@@ inherited from ancestors}
property OnClick;
{@@ inherited from ancestors}
property OnColRowDeleted;
{@@ inherited from ancestors}
property OnColRowExchanged;
{@@ inherited from ancestors}
property OnColRowInserted;
{@@ inherited from ancestors}
property OnColRowMoved;
{@@ inherited from ancestors}
property OnCompareCells;
{@@ inherited from ancestors}
property OnDragDrop;
{@@ inherited from ancestors}
property OnDragOver;
{@@ inherited from ancestors}
property OnDblClick;
{@@ inherited from ancestors}
property OnDrawCell;
{@@ inherited from ancestors}
property OnEditButtonClick;
{@@ inherited from ancestors}
property OnEditingDone;
{@@ inherited from ancestors}
property OnEndDock;
{@@ inherited from ancestors}
property OnEndDrag;
{@@ inherited from ancestors}
property OnEnter;
{@@ inherited from ancestors}
property OnExit;
{@@ inherited from ancestors}
property OnGetEditMask;
{@@ inherited from ancestors}
property OnGetEditText;
{@@ inherited from ancestors}
property OnHeaderClick;
{@@ inherited from ancestors}
property OnHeaderSized;
{@@ inherited from ancestors}
property OnKeyDown;
{@@ inherited from ancestors}
property OnKeyPress;
{@@ inherited from ancestors}
property OnKeyUp;
{@@ inherited from ancestors}
property OnMouseDown;
{@@ inherited from ancestors}
property OnMouseMove;
{@@ inherited from ancestors}
property OnMouseUp;
{@@ inherited from ancestors}
property OnMouseWheel;
{@@ inherited from ancestors}
property OnMouseWheelDown;
{@@ inherited from ancestors}
property OnMouseWheelUp;
{@@ inherited from ancestors}
property OnPickListSelect;
{@@ inherited from ancestors}
property OnPrepareCanvas;
{@@ inherited from ancestors}
property OnResize;
{@@ inherited from ancestors}
property OnSelectEditor;
{@@ inherited from ancestors}
property OnSelection;
{@@ inherited from ancestors}
property OnSelectCell;
{@@ inherited from ancestors}
property OnSetEditText;
{@@ inherited from ancestors}
property OnShowHint;
{@@ inherited from ancestors}
property OnStartDock;
{@@ inherited from ancestors}
property OnStartDrag;
{@@ inherited from ancestors}
property OnTopLeftChanged;
{@@ inherited from ancestors}
property OnUTF8KeyPress;
{@@ inherited from ancestors}
property OnValidateEntry;
{@@ inherited from ancestors}
property OnContextPopup;
end;
@ -1909,11 +1997,27 @@ begin
Result := false;
end;
{@@
Converts a column index of the worksheet to a column index usable in the grid.
This is required because worksheet indexes always start at zero while
grid indexes also have to account for the column/row headers.
@param ASheetCol Worksheet column index
@return Grid column index
}
function TsCustomWorksheetGrid.GetGridCol(ASheetCol: Cardinal): Integer;
begin
Result := ASheetCol + FHeaderCount
end;
{@@
Converts a row index of the worksheet to a row index usable in the grid.
This is required because worksheet indexes always start at zero while
grid indexes also have to account for the column/row headers.
@param ASheetRow Worksheet row index
@return Grid row index
}
function TsCustomWorksheetGrid.GetGridRow(ASheetRow: Cardinal): Integer;
begin
Result := ASheetRow + FHeaderCount;
@ -1948,8 +2052,13 @@ begin
end;
end;
{ Returns a list of worksheets contained in the file. Useful for assigning to
user controls like TabControl, Combobox etc. in order to select a sheet. }
{@@
Returns a list of worksheets contained in the file. Useful for assigning to
user controls like TabControl, Combobox etc. in order to select a sheet.
@param ASheets List of strings containing the names of the worksheets of
the workbook
}
procedure TsCustomWorksheetGrid.GetSheets(const ASheets: TStrings);
var
i: Integer;
@ -2057,31 +2166,51 @@ begin
end;
end;
{ Calculates the index of the worksheet column that is displayed in the
{@@
Calculates the index of the worksheet column that is displayed in the
given column of the grid. If the sheet headers are turned on, both numbers
differ by 1, otherwise they are equal. Saves an "if" in cases. }
differ by 1, otherwise they are equal. Saves an "if" in cases.
@param AGridCol Index of a grid column
@return Index of a the corresponding worksheet column
}
function TsCustomWorksheetGrid.GetWorksheetCol(AGridCol: Integer): cardinal;
begin
Result := AGridCol - FHeaderCount;
end;
{ Calculates the index of the worksheet row that is displayed in the
{@@
Calculates the index of the worksheet row that is displayed in the
given row of the grid. If the sheet headers are turned on, both numbers
differ by 1, otherwise they are equal. Saves an "if" in some cases. }
differ by 1, otherwise they are equal. Saves an "if" in some cases.
@param AGridRow Index of a grid row
@resturn Index of the corresponding worksheet row.
}
function TsCustomWorksheetGrid.GetWorksheetRow(AGridRow: Integer): Cardinal;
begin
Result := AGridRow - FHeaderCount;
end;
{ Returns if the cell has the given border. }
{@@ Returns true if the cell has the given border.
@param ACell Pointer to cell considered
@param ABorder Indicator for border to be checked for visibility
}
function TsCustomWorksheetGrid.HasBorder(ACell: PCell; ABorder: TsCellBorder): Boolean;
begin
Result := (ACell <> nil) and (uffBorder in ACell^.UsedFormattingfields) and
(ABorder in ACell^.Border);
end;
{ Column width or row heights have changed. Stores the new number in the
worksheet. }
{@@
Inherited from TCustomGrid. Is called when column widths or row heights
have changed. Stores the new column width or row height in the worksheet.
@param IsColumn Specifies whether the changed parameter is a column width
(true) or a row height (false)
@param Index Index of the changed column or row
}
procedure TsCustomWorksheetGrid.HeaderSized(IsColumn: Boolean; index: Integer);
var
w0: Integer;
@ -2106,24 +2235,30 @@ begin
end;
{ Internal general text drawing method.
- AText: text to be drawn
- AMeasureText: text used for checking if the text fits into the text rectangle.
If too large and ReplaceTooLong = true, a series of # is drawn.
- ARect: Rectangle in which the text is drawn
- AJustification: determines whether the text is drawn at the "start" (0),
"center" (1) or "end" (2) of the drawing rectangle. Start/center/end are
seen along the text drawing direction.
- ACellHorAlign: Is the HorAlignment property stored in the cell
- ACellVertAlign: Is the VertAlignment property stored in the cell
- ATextRot: determines the rotation angle of the text.
- ATextWrap: determines if the text can wrap into multiple lines
- ReplaceTooLang: if true too-long texts are replaced by a series of # chars
filling the cell.
The reason to separate AJustification from ACellHorAlign and ACelVertAlign is
{@@
Internal general text drawing method.
@param AText Text to be drawn
@param AMeasureText Text used for checking if the text fits into the
text rectangle. If too large and ReplaceTooLong = true,
a series of # is drawn.
@param ARect Rectangle in which the text is drawn
@param AJustification Determines whether the text is drawn at the "start" (0),
"center" (1) or "end" (2) of the drawing rectangle.
Start/center/end are seen along the text drawing
direction.
@param ACellHorAlign Is the HorAlignment property stored in the cell
@param ACellVertAlign Is the VertAlignment property stored in the cell
@param ATextRot Determines the rotation angle of the text.
@param ATextWrap Determines if the text can wrap into multiple lines
@param ReplaceTooLang If true too-long texts are replaced by a series of
# chars filling the cell.
@Note The reason to separate AJustification from ACellHorAlign and ACelVertAlign is
the output of nfAccounting formatted numbers where the numbers are always
right-aligned, and the currency symbol is left-aligned.
NOTE: THIS FEATURE IS NO LONGER SUPPORTED. }
THIS FEATURE IS CURRENTLY NO LONGER SUPPORTED.
}
procedure TsCustomWorksheetGrid.InternalDrawTextInCell(AText, AMeasureText: String;
ARect: TRect; AJustification: Byte; ACellHorAlign: TsHorAlignment;
ACellVertAlign: TsVertAlignment; ATextRot: TsTextRotation;
@ -2307,9 +2442,13 @@ begin
end;
end;
{@@
Standard key handling method inherited from TCustomGrid. Is overridden to
catch the ESC key during editing in order to restore the old cell text
{ Catches the ESC key during editing in order to restore the old cell text }
@param Key Key which has been pressed
@param Shift Additional shift keys which are pressed
}
procedure TsCustomWorksheetGrid.KeyDown(var Key : Word; Shift : TShiftState);
begin
if (Key = VK_ESCAPE) and FEditing then begin
@ -2320,14 +2459,20 @@ begin
inherited;
end;
{@@
Standard method inherited from TCustomGrid. Is overridden to create an
empty workbook
}
procedure TsCustomWorksheetGrid.Loaded;
begin
inherited;
NewWorkbook(FInitColCount, FInitRowCount);
end;
{ Repaints after moving selection to avoid spurious rests of the old thick
selection border. }
{@@
Standard method inherited from TCustomGrid.
Repaints the grid after moving selection to avoid spurious rests of the
old thick selection border. }
procedure TsCustomWorksheetGrid.MoveSelection;
begin
//Refresh;
@ -2335,8 +2480,11 @@ begin
Refresh;
end;
{ Is called when editing starts. Stores the old text just in case the
the user presses ESC to cancel editing. }
{@@
Standard method inherited from TCustomGrid: Is called when editing starts.
Is overridden here to store the old text just in case that the user presses
ESC to cancel editing.
}
procedure TsCustomWorksheetGrid.SelectEditor;
begin
FOldEditText := GetCellText(Col, Row);
@ -2553,8 +2701,15 @@ begin
end;
end;
{ Fetches the text that is currently in the editor. It is not yet transferred
to the Worksheet because input is checked only at the end of editing. }
{@@
Standaard method inherited from TCustomGrid. Fetches the text that is
currently in the editor. It is not yet transferred to the worksheet because
input will be checked only at the end of editing.
@param ACol Grid column index of the cell being edited
@param ARow Grid row index of the cell being edited
@param AValue String which is currently in the cell editor
}
procedure TsCustomWorksheetGrid.SetEditText(ACol, ARow: Longint; const AValue: string);
begin
FEditText := AValue;
@ -2665,6 +2820,11 @@ begin
end;
end;
{@@
Helper method for setting up the rows and columns after a new workbook is
loaded or created. Sets up the grid's column and row count, as well as the
initial column widths and row heights.
}
procedure TsCustomWorksheetGrid.Setup;
var
i: Integer;
@ -2734,13 +2894,6 @@ begin
end;
end;
{@@
Enables/disables word wrapping of the text in a cell.
@param ACol Grid column index
@param ARow Grid row index
@param AValue Enables word wrapping if true, disables it if false
}
procedure TsCustomWorksheetGrid.SetWordwrap(ACol, ARow: Integer;
AValue: Boolean);
begin
@ -2748,13 +2901,6 @@ begin
FWorksheet.WriteWordwrap(GetWorksheetRow(ARow), GetWorksheetCol(ACol), AValue);
end;
{@@
Enables/disabled word wrapping for a range of cells with column/row indexes
within the rectangle.
@param ARect Rectangle with the grid column/row indexes of the cells
@param AValue Enables word wrapping if true, disables it if false
}
procedure TsCustomWorksheetGrid.SetWordwraps(ARect: TGridRect;
AValue: Boolean);
var
@ -2901,6 +3047,7 @@ end;
{@@
Loads the workbook into the grid and selects the sheet with the given index.
"Selected" means here that the sheet is loaded into the grid.
@param AIndex Index of the worksheet to be shown in the grid
}