Class TStringAlignGrid (unit Aligrid)

Inherits from

TStringGrid

@\\\*) (*@/// TStringAlignGrid=class(TStringGrid)

Constructors


constructor Create(AOwner: TComponent);

@\\\*) (*@\\\*) (*@/// TStringAlignGrid = class(TStringGrid) // The grid itself *) (*@/// The component action: create, initialize, destroy the internal data *) { The component action: create, initialize, destroy the internal data } (*@/// constructor TStringAlignGrid.


Functions

procedure AdjustColWidth(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure AdjustColWidths;

@\\\*) (*@/// procedure TStringAlignGrid.

procedure AdjustRowHeight(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure AdjustRowHeights;

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ClearSelection;

@\\\*) (*@\\\*) (*@/// Miscellaneous stuff *) (*@/// procedure TStringAlignGrid.

procedure ClipboardCSV2Contents(csv:char; range:TGridRect);

@\\\000000091F*) (*@/// procedure TStringAlignGrid.

function CompareColInteger(Sender: TObject; Column, Row1,Row2: longint):t_relation;

@\\\*) (*@/// function TStringAlignGrid.

function CompareColString(Sender: TObject; Column, Row1,Row2: longint):t_relation;

@\\\*) { Some ready-made sorting functions } (*@/// function TStringAlignGrid.

function CompareRowInteger(Sender: TObject; RowNr, Col1,Col2: longint):t_relation;

@\\\*) (*@/// function TStringAlignGrid.

function CompareRowString(Sender: TObject; RowNr, Col1,Col2: longint):t_relation;

@\\\*) (*@/// function TStringAlignGrid.

function Contents2CSV(data:TMemorystream; csv:char; range:TGridRect):TMemorystream;

@\\\*) (*@/// function TStringAlignGrid.

procedure Contents2CSVClipboard(csv:char; range:TGridRect);

@\\\*) (*@/// procedure TStringAlignGrid.

function Contents2HTML(data:TMemorystream):TMemorystream;

@\\\*) (*@/// Import and export functions

@\\\*) (*@\\\*) (*@\\\*) (*@/// Import and Export functions *) (*@/// function TStringAlignGrid.


procedure CopyFromClipboard;

@\\\*) (*@/// procedure TStringAlignGrid.

procedure CopyToClipboard;

@\\\000000081F*) (*@/// procedure TStringAlignGrid.

procedure CSV2Contents(data:TStream; csv:char; range:TGridRect);

@\\\*) (*@/// procedure TStringAlignGrid.

destructor Destroy;

@\\\*) (*@/// destructor TStringAlignGrid.

procedure ExchangeCol(FromIndex, ToIndex: Longint);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ExchangeRow(FromIndex, ToIndex: Longint);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure HideEdit(cancel:boolean);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure InsertCol(ACol:Integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure InsertRow(ARow:Integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure LoadFromFile(const filename:string);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure NextCell(direction:t_nextcell; LastCellBehaviour:t_lastcell; Var ACol,ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure NextEditableCell(var ACol,ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure RemoveCol(ACol:Integer);

@\\\*) (*@\\\*) (*@/// Insertion, removing, moving and exchanging of Rows and Columns *) { Cols.

procedure RemoveRow(ARow:Integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetAlignCell(ACol,ARow:integer);

@\\\*) (*@\\\*) (*@/// Reset alignment and use the one defined a level above *) (*@/// procedure TStringAlignGrid.

procedure ResetAlignCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetAlignFixedCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetAlignFixedRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetAlignment;

@\\\*) (*@/// procedure ResetAlign.

procedure ResetAlignRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetAllCell(ACol,ARow:integer);

@\\\*) (*@\\\*) (*@/// The ResetAll methods as shortcuts

@\\\*) (*@\\\*) (*@/// Resetting all the setting at once *) (*@/// procedure TStringAligngrid.


procedure ResetAllCol(ACol:integer);

@\\\*) (*@/// procedure TStringAligngrid.

procedure ResetAllFixedCol(ACol:integer);

@\\\*) (*@/// procedure TStringAligngrid.

procedure ResetAllFixedRow(ARow:integer);

@\\\*) (*@/// procedure TStringAligngrid.

procedure ResetAllRow(ARow:integer);

@\\\*) (*@/// procedure TStringAligngrid.

procedure ResetBrushCell(ACol,ARow:integer);

@\\\*) (*@/// procedure ResetBrush.

procedure ResetBrushCol(ACol:integer);

@\\\*) (*@\\\*) (*@/// Reset brush and use the one defined a level above *) (*@/// procedure TStringAlignGrid.

procedure ResetBrushFixedCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetBrushFixedRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetBrushRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetColorCell(ACol,ARow:integer);

@\\\*) (*@/// procedure ResetColor.

procedure ResetColorCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetColorFixedCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetColorFixedRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetColorRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetEditCell(ACol,ARow:integer);

@\\\*) (*@/// procedure ResetEdit.

procedure ResetEditCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetEditRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetFontCell(ACol,ARow:integer);

@\\\*) (*@/// procedure Reset.

procedure ResetFontCol(ACol:integer);

@\\\*) (*@\\\*) (*@/// Reset font and use the one defined a level above *) (*@/// procedure TStringAlignGrid.

procedure ResetFontFixedCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetFontFixedRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetFontRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetSelectedColorCell(ACol,ARow:integer);

@\\\*) (*@/// procedure ResetColor.

procedure ResetSelectedColorCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetSelectedColorRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetSelectedFontColorCell(ACol,ARow:integer);

@\\\*) (*@/// procedure ResetColor.

procedure ResetSelectedFontColorCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ResetSelectedFontColorRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SaveToFile(const filename:string);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ShowEdit;

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SortColumn(Column: longint; Ascending:boolean);

@\\\*) { The procedures for the user to call } (*@/// procedure TStringAlignGrid.

procedure SortRow(Rownumber: longint; Ascending:boolean);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure BrushChanged(AFont: TObject);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure CalcTextSize(ACol,ARow:integer; var Width,height: integer);

@\\\*) (*@/// procedure TStringAlignGrid.

function CanEditShow: Boolean;

@\\\*) (*@/// function TStringAlignGrid.

procedure CellsToList(var List:TList);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ColumnMoved(FromIndex, ToIndex: Longint);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ColWidthsChanged;

@\\\*) (*@/// procedure TStringAlignGrid.

function CreateEditor: TInplaceEdit;

@\\\*) (*@\\\*) (*@/// The Inplace-Editor which also gets the alignment, font and color *) { The Inplace-Editor which also gets the alignment, font and color - got the idea from James Sager's (jsager@ao.

procedure DefineProperties(Filer: TFiler);

@\\\*) (*@\\\*) (*@/// The stuff for reading and writing the data from/to the DFM file *) (*@/// procedure TStringAlignGrid.

procedure doEnter;

@\\\*) (*@/// procedure TStringAlignGrid.

procedure doExit;

@\\\*) { The stuff to get the editor's events right } (*@/// procedure TStringAlignGrid.

procedure DoSort(ColRow,Min,Max: longint; ByColumn,ascending:boolean);

@\\\*) (*@\\\0000000701*) (*@/// Sorting stuff *) { The sorting itself - currently a simple Bubblesort } (*@/// procedure TStringAlignGrid.

procedure DrawCell(ACol,ARow:Longint; ARect:TRect; AState:TGridDrawState);

@\\\*) (*@/// The main procedure DrawCell

@\\\*) (*@\\\*) (*@/// The real action - the draw of a cell *) { the draw of a cell, is called from the Paint Method of TCustomGrid } (*@/// procedure TStringAlignGrid.


procedure FontChanged(AFont: TObject);

@\\\*) { A callback to be sure the displayed font/brush is the same as the internal } (*@/// procedure TStringAlignGrid.

function GetAlign: TMyAlign;

@\\\*) (*@/// property read/write for the alignments

@\\\*) (*@\\\*) (*@/// Property read and write and reset for the Alignments *) (*@/// Property read and write for Alignment *) { Property read and write for Alignment } (*@/// function TStringAlignGrid.


function GetAlignCell(ACol,ARow: integer):TMyAlign;

@\\\*) (*@\\\*) (*@/// Property read and write for AlignCell *) { Property read and write for AlignCell } (*@/// function TStringAlignGrid.

function GetAlignCol(ACol: integer):TMyAlign;

@\\\*) (*@\\\*) (*@/// Property read and write for AlignCol and FixedAlignCol *) { Property read and write for AlignCol and FixedAlignCol } (*@/// function TStringAlignGrid.

function GetAlignRow(ARow:Integer):TMyAlign;

@\\\*) (*@\\\*) (*@/// Property read and write for AlignRow and FixedAlignRow *) { Property read and write for AlignRow and FixedAlignRow } (*@/// function TStringAlignGrid.

function GetBrushCell(ACol,ARow: integer):TBrush;

@\\\*) (*@/// property read/write for the brushs

@\\\*) (*@\\\*) (*@\\\*) (*@/// Property read and write and reset for Brushs *) (*@/// Property read and write for BrushCell *) { Property read and write for BrushCell } (*@/// function TStringAlignGrid.


function GetBrushCellComplete(ACol,ARow: integer):TBrush;

@\\\*) (*@/// utility functions

@\\\*) (*@/// function TStringAlignGrid.


function GetBrushCellInternal(ACol,ARow: integer; create:boolean):TBrush;

@\\\*) (*@/// function TStringAlignGrid.

function GetBrushCol(ACol: integer):TBrush;

@\\\*) (*@\\\*) (*@/// Property read and write for BrushCol/FixedBrushCol *) { Property read and write for BrushCol/FixedBrushCol } (*@/// function TStringAlignGrid.

function GetBrushColRowInternal(AColRow: integer; create:boolean; List:TList):TBrush;

@\\\*) (*@/// function TStringAlignGrid.

function GetBrushFixedCol(ACol: integer):TBrush;

@\\\*) (*@/// function TStringAlignGrid.

function GetBrushFixedRow(ARow: integer):TBrush;

@\\\*) (*@/// function TStringAlignGrid.

function GetBrushRow(ARow: integer):TBrush;

@\\\*) (*@\\\*) (*@/// Property read and write for BrushRow/FixedBrushRow *) { Property read and write for BrushRow } (*@/// function TStringAlignGrid.

function GetColorCell(ACol,ARow: integer):TColor;

@\\\*) (*@\\\*) (*@\\\*) (*@/// Property read and write and reset for Colors (done via Brushes!) *) (*@/// Property read and write for ColorCell *) { Property read and write for ColorCell } (*@/// function TStringAlignGrid.

function GetColorCol(ACol: integer):TColor;

@\\\*) (*@/// property read/write for the colors

@\\\*) (*@\\\*) (*@/// Property read and write for ColorCol and FixedColorCol *) { Property read and write for ColorCol and FixedColorCol } (*@/// function TStringAlignGrid.


function GetColorRow(ARow:Integer):TColor;

@\\\*) (*@\\\*) (*@/// Property read and write for ColorRow and FixedColorRow *) { Property read and write for ColorRow and FixedColorRow } (*@/// function TStringAlignGrid.

function GetEditCell(ACol,ARow: integer):Boolean;

@\\\*) (*@\\\*) (*@\\\*) (*@/// Property read and write and reset for the edit-enabled *) (*@/// Property read and write for EditCell *) { Property read and write for EditCell } (*@/// function TStringAlignGrid.

function GetEditCol(ACol: integer):Boolean;

@\\\*) (*@/// property read/write for the edit-enabled

@\\\*) (*@\\\*) (*@/// Property read and write for EditCol *) { Property read and write for EditCol } (*@/// function TStringAlignGrid.


function GetEditRow(ARow:Integer):Boolean;

@\\\*) (*@\\\*) (*@/// Property read and write for EditRow *) { Property read and write for EditRow } (*@/// function TStringAlignGrid.

function GetFixAlignCol(ACol: integer):TMyAlign;

@\\\*) (*@/// function TStringAlignGrid.

function GetFixAlignRow(ARow:Integer):TMyAlign;

@\\\*) (*@/// function TStringAlignGrid.

function GetFixColorCol(ACol: integer):TColor;

@\\\*) (*@/// function TStringAlignGrid.

function GetFixColorRow(ARow:Integer):TColor;

@\\\*) (*@/// function TStringAlignGrid.

function GetFontCell(ACol,ARow: integer):TFont;

@\\\*) (*@/// property read/write for the fonts

@\\\*) (*@\\\*) (*@\\\*) (*@/// Property read and write and reset for Fonts *) (*@/// Property read and write for FontCell *) { Property read and write for FontCell } (*@/// function TStringAlignGrid.


function GetFontCellComplete(ACol,ARow: integer):TFont;

@\\\*) (*@/// utility functions

@\\\*) { The Font/Brush for the Cell through all levels (Cell, Col, Row, Grid) } (*@/// function TStringAlignGrid.


function GetFontCellInternal(ACol,ARow: integer; create:boolean):TFont;

@\\\*) (*@/// function TStringAlignGrid.

function GetFontCol(ACol: integer):TFont;

@\\\*) (*@\\\*) (*@/// Property read and write for FontCol/FixedFontCol *) { Property read and write for FontCol/FixedFontCol } (*@/// function TStringAlignGrid.

function GetFontColRowInternal(AColRow: integer; create:boolean; List:TList):TFont;

@\\\*) (*@\\\*) (*@/// Utility methods for the fonts/brushs *) (*@/// function TStringAlignGrid.

function GetFontFixedCol(ACol: integer):TFont;

@\\\*) (*@/// function TStringAlignGrid.

function GetFontFixedRow(ARow: integer):TFont;

@\\\*) (*@/// function TStringAlignGrid.

function GetFontRow(ARow: integer):TFont;

@\\\*) (*@\\\*) (*@/// Property read and write for FontRow/FixedFontRow *) { Property read and write for FontRow } (*@/// function TStringAlignGrid.

function GetHintCell(ACol,ARow: integer):string;

@\\\*) (*@\\\*) (*@/// Property read and write for HintCell *) { Property read and write for HintCell } (*@/// function TStringAlignGrid.

function GetSelColorCell(ACol,ARow: integer):TColor;

@\\\*) (*@\\\*) (*@/// Property read and write and reset for Selected Colors *) (*@/// Property read and write for SelColorCell *) (*@/// function TStringAlignGrid.

function GetSelColorCol(ACol: integer):TColor;

@\\\*) (*@/// property read/write for the colors

@\\\*) (*@\\\*) (*@/// Property read and write for SelColorCol *) (*@/// function TStringAlignGrid.


function GetSelColorRow(ARow:Integer):TColor;

@\\\*) (*@\\\*) (*@/// Property read and write for SelColorRow *) (*@/// function TStringAlignGrid.

function GetSelFontColorCell(ACol,ARow: integer):TColor;

@\\\*) (*@\\\*) (*@/// Property read and write and reset for Selected Font Colors *) (*@/// Property read and write for SelFontColorCell *) (*@/// function TStringAlignGrid.

function GetSelFontColorCol(ACol: integer):TColor;

@\\\*) (*@/// property read/write for the colors

@\\\*) (*@\\\*) (*@/// Property read and write for SelFontColorCol *) (*@/// function TStringAlignGrid.


function GetSelFontColorRow(ARow:Integer):TColor;

@\\\*) (*@\\\*) (*@/// Property read and write for SelFontColorRow *) (*@/// function TStringAlignGrid.

procedure Initialize;

@\\\*) (*@/// procedure TStringAlignGrid.

function is_fixed(ACol,ARow: integer):boolean;

@\\\*) (*@/// Miscellaneous stuff like internal calculations etc.

procedure KeyDown(var Key: Word; Shift: TShiftState);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ListToCells(List:TList);

@\\\*) { To convert TStringGrid's own Cell property to my list and vice versa } (*@/// procedure TStringAlignGrid.

procedure Loaded;

@\\\*) (*@/// For the DFM read/write

@\\\*) (*@/// procedure TStringAlignGrid.


procedure mcn_edit_cancel(var msg:TMessage);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure mcn_edit_exit(var msg:TMessage);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure mcn_edit_return(var msg:TMessage);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure mcn_edit_show(var msg:TMessage);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure mcn_edit_show_it(var msg:TMessage);

@\\\*) (*@/// procedure TStringAlignGrid.

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

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadAlignCell(Stream: TStream);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@/// Read and write several alignment lists to the DFM *) { All the routines for the several alignment lists } (*@/// procedure TStringAlignGrid.


procedure ReadAlignCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

function ReadAlignColRow(Stream: TStream; list:TList):boolean;

@\\\

@\\\*) { All the ReadCol, ReadRow are so similar, so these to routines are there to avoid code-copy } (*@/// function TStringAlignGrid.


procedure ReadAlignRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

function ReadBrush(Reader: TReader):TBrush;

@\\\*) (*@/// function TStringAlignGrid.

procedure ReadBrushCell(Reader: TReader);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read and write several brush lists to the DFM *) { All the routines for the different Brush lists } (*@/// procedure TStringAlignGrid.


function ReadBrushCellInt(Reader: TReader; list:TList):boolean;

@\\\*) { All the ReadCol, ReadRow are so similar, so these to routines are there to avoid code-copy } (*@/// function TStringAlignGrid.

procedure ReadBrushCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

function ReadBrushColRow(Reader: TReader; list:TList):boolean;

@\\\*) (*@/// function TStringAlignGrid.

procedure ReadBrushRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadCells(Reader: TReader);

@\\\*) (*@\\\*) (*@/// Read and write the cell strings to the DFM *) (*@/// procedure TStringAlignGrid.

procedure ReadColorCell(Reader: TReader);

@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read several color lists to the DFM *) { Only the read methods to read old DFM files correctly, all is now saved } { via the brushes } (*@/// procedure TStringAlignGrid.


procedure ReadColorCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadColorColRow(Reader: TReader; kind:byte);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadColorRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadEditCell(Stream: TStream);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read and write several edit-enabled lists to the DFM *) { All the routines for the several edit-enabled lists } (*@/// procedure TStringAlignGrid.


procedure ReadEditCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

function ReadEditColRow(Stream: TStream; list:TList):boolean;

Utility functions

@\\\*) { All the ReadCol, ReadRow are so similar, so these to routines are there to avoid code-copy } (*@/// function TStringAlignGrid.


procedure ReadEditRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadFixedAlignCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadFixedAlignRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadFixedBrushCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadFixedBrushRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadFixedColorCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadFixedColorRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadFixedFontCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadFixedFontRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

function ReadFont(Reader: TReader):TFont;

@\\\*) (*@/// function TStringAlignGrid.

procedure ReadFontCell(Reader: TReader);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read and write several font lists to the DFM *) { All the routines for the different font lists } (*@/// procedure TStringAlignGrid.


function ReadFontCellInt(Reader: TReader; list:TList):boolean;

@\\\*) { All the ReadCol, ReadRow are so similar, so these to routines are there to avoid code-copy } (*@/// function TStringAlignGrid.

procedure ReadFontCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

function ReadFontColRow(Reader: TReader; list:TList):boolean;

@\\\*) (*@/// function TStringAlignGrid.

procedure ReadFontRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadHint(Reader: TReader);

@\\\*) (*@\\\*) (*@/// Read and write the hint strings to the DFM *) { The hint and the cell strings } (*@/// procedure TStringAlignGrid.

procedure ReadSelColorCell(Reader: TReader);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read and write several selected color lists to the DFM *) (*@/// procedure TStringAlignGrid.


procedure ReadSelColorCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

function ReadSelColorColRow(Reader: TReader; list:TList):boolean;

@\\\*) { All the ReadCol, ReadRow are so similar, so these to routines are there to avoid code-copy } (*@/// function TStringAlignGrid.

procedure ReadSelColorRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadSelFontColorCell(Reader: TReader);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read and write several selected font color lists to the DFM *) (*@/// procedure TStringAlignGrid.


procedure ReadSelFontColorCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ReadSelFontColorRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure RowHeightsChanged;

@\\\*) (*@/// procedure TStringAlignGrid.

procedure RowMoved(FromIndex, ToIndex: Longint);

@\\\*) (*@/// Insertion and removing and moving and exchanging of columns and rows

@\\\*) (*@/// procedure TStringAlignGrid.


procedure SetAlign(const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetAlignCell(ACol,ARow: integer; const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetAlignCol(ACol: integer; const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetAlignRow(ARow:integer; const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetBrushCell(ACol,ARow: integer; const Value: TBrush);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetBrushCol(ACol: integer; const Value: TBrush);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetBrushFixedCol(ACol: integer; const Value: TBrush);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetBrushFixedRow(ARow: integer; const Value: TBrush);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetBrushRow(ARow: integer; const Value: TBrush);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetColorCell(ACol,ARow: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetColorCol(ACol: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetColorRow(ARow:integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetEditCell(ACol,ARow: integer; const Value: Boolean);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetEditCol(ACol: integer; const Value: Boolean);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetEditRow(ARow:integer; const Value: Boolean);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetFixAlignCol(ACol: integer; const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetFixAlignRow(ARow:integer; const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetFixColorCol(ACol: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetFixColorRow(ARow:integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetFixedColor(const Value: TColor);

@\\\*) (*@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetFontCell(ACol,ARow: integer; const Value: TFont);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetFontCol(ACol: integer; const Value: TFont);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetFontFixedCol(ACol: integer; const Value: TFont);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetFontFixedRow(ARow: integer; const Value: TFont);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetFontRow(ARow: integer; const Value: TFont);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetHintCell(ACol,ARow: integer; const Value: string);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetSelCellColor(Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetSelColorCell(ACol,ARow: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetSelColorCol(ACol: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetSelColorRow(ARow:integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetSelFontColor(Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetSelFontColorCell(ACol,ARow: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetSelFontColorCol(ACol: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure SetSelFontColorRow(ARow:integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure ShowHintCell(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);

@\\\*) (*@\\\*) (*@/// Utility methods for the cell-specific hints *) (*@/// procedure TStringAlignGrid.

function textheight(ACol,ARow:integer):integer;

@\\\*) (*@/// function TStringAlignGrid.

function textwidth(ACol,ARow:integer):integer;

@\\\*) (*@/// function TStringAlignGrid.

procedure WMChar(var Msg: TWMChar);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteAlignCell(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteAlignCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteAlignColRow(Stream: TStream; count: integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteAlignRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteBrush(Writer: TWriter; v:TBrush);

@\\\*) { Writing and reading a single Brush entry } (*@/// procedure TStringAlignGrid.

procedure WriteBrushCell(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteBrushCellInt(Writer: TWriter; x,y:integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteBrushCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteBrushColRow(Writer: TWriter; count: integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteBrushRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteCells(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteEditCell(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteEditCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteEditColRow(Stream: TStream; count: integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteEditRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteFixedAlignCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteFixedAlignRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteFixedBrushCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteFixedBrushRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteFixedFontCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteFixedFontRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteFont(Writer: TWriter; v:TFont);

@\\\*) { Writing and reading a single font entry } (*@/// procedure TStringAlignGrid.

procedure WriteFontCell(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteFontCellInt(Writer: TWriter; x,y:integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteFontCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteFontColRow(Writer: TWriter; count: integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteFontRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteHint(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteSelColorCell(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteSelColorCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteSelColorColRow(Writer: TWriter; count:integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteSelColorRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteSelFontColorCell(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteSelFontColorCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

procedure WriteSelFontColorRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.

Properties

property AfterLastCellEdit : t_lastcell


property AfterLastCellTab : t_lastcell


property Alignment : TMyAlign

@\\\

property AutoEditNextCell : boolean


property DrawSelection : boolean


property Editable : boolean

@\\\

property FixedColor :

@\\\

property NextCellEdit : T_nextcell


property NextCellTab : T_nextcell


property SelectedCellColor : TColor


property SelectedFontColor : TColor


property ShowCellHints : boolean


property AlignCell : TMyAlign

@/// property AlignCell/AlignCol/FixAlignCol/AlignRow/FixAlignRow

property AlignCol : TMyAlign


property AlignRow : TMyAlign


property CellBrush : TBrush

@/// property CellBrush/ColBrush/FixedColBrush/RowBrush/FixedRowBrush *) { The Brush for each cell and for col and row

property CellFont : TFont

@/// property CellFont/ColFont/FixedColFont/RowFont/FixedRowFont

property ColBrush : TBrush


property ColFont : TFont


property ColorCell : TColor

@/// property ColorCell/ColorCol/FixColorCol/ColorRow/FixColorRow

property ColorCol : TColor


property ColorRow : TColor


property EditCell : Boolean

@/// property EditCell/EditCol/EditRow

property EditCol : Boolean


property EditRow : Boolean


property FixAlignCol : TMyAlign


property FixAlignRow : TMyAlign


property FixColorCol : TColor


property FixColorRow : TColor


property FixedColBrush : TBrush


property FixedColFont : TFont


property FixedRowBrush : TBrush


property FixedRowFont : TFont


property HintCell : string


property RowBrush : TBrush


property RowFont : TFont


property SelectedColorCell : TColor

@/// property ColorCell/ColorCol/FixColorCol/ColorRow/FixColorRow

property SelectedColorCol : TColor


property SelectedColorRow : TColor


property SelectedFontColorCell : TColor

@/// property ColorCell/ColorCol/FixColorCol/ColorRow/FixColorRow

property SelectedFontColorCol : TColor


property SelectedFontColorRow : TColor


Events

event OnAfterEdit : TCellEvent


event OnBeforeEdit : TCellEvent


event OnCancelEdit : TCellEvent


event OnColWidthsChanged : TNotifyEvent


event OnCompareCol : TCompareFunction


event OnCompareRow : TCompareFunction


event OnRowHeightsChanged : TNotifyEvent


Variables

edit_visible : boolean;

@\\\*) (*@/// The Inplace-Edit and it's events sent to the grid

FAlign : TMyAlign;

@\\\*) (*@/// Routines and variables for the alignments

FAlignCell : TList;


FAlignCol : TList;

@/// The lists

FAlignRow : TList;


FAlwaysEdit : boolean;

allow switching on editing for single objects only

FBrushCell : TList;


FBrushCol : TList;

@/// The lists

FBrushRow : TList;


FCell : TList;

@\\\*) (*@/// Routines and variables for the cells itself

FEditable : boolean;

@\\\*) (*@/// Routines and variables for the edit-enabled

FEditCell : TList;


FEditCol : TList;

for the component editor to have all cell editable } (*@/// The lists

FEditRow : TList;


FFAlignCol : TList;


FFAlignRow : TList;


FFBrushCol : TList;


FFBrushRow : TList;


FFFontCol : TList;


FFFontRow : TList;


FFixedBrush : TBrush;


FFontCell : TList;


FFontCol : TList;

@/// The lists

FFontRow : TList;


fheightschanged : TNotifyEvent;


FHintCell : TList;


FHintCellLast : TPoint;

@\\\*) (*@\\\*) (*@/// Routines and variables for the hints

FSaveAlignCell : Boolean;

@\\\*) (*@/// The save flags

FSaveAlignCol : Boolean;


FSaveAlignRow : Boolean;


FSaveBrushCell : Boolean;

@\\\*) (*@/// The save flags

FSaveBrushCol : Boolean;


FSaveBrushRow : Boolean;


FSaveCells : Boolean;

Only for loading and saving the cells property

FSaveEditCell : Boolean;

@\\\*) (*@/// The save flags

FSaveEditCol : Boolean;


FSaveEditRow : Boolean;


FSaveFixedAlignCol : Boolean;


FSaveFixedAlignRow : Boolean;


FSaveFixedBrushCol : Boolean;


FSaveFixedBrushRow : Boolean;


FSaveFixedFontCol : Boolean;


FSaveFixedFontRow : Boolean;


FSaveFontCell : Boolean;

@\\\*) (*@/// The save flags

FSaveFontCol : Boolean;


FSaveFontRow : Boolean;


FSaveHint : Boolean;


FSaveSelColorCell : Boolean;

@\\\*) (*@/// The save flags

FSaveSelColorCol : Boolean;


FSaveSelColorRow : Boolean;


FSaveSelFontColorCell : Boolean;

@\\\*) (*@/// The save flags

FSaveSelFontColorCol : Boolean;


FSaveSelFontColorRow : Boolean;


FSelColorCell : TList;


FSelColorCol : TList;

@/// The lists

FSelColorRow : TList;


FSelFontColorCell : TList;


FSelFontColorCol : TList;

@/// The lists

FSelFontColorRow : TList;


FShowCellHints : Boolean;


fwidthschanged : TNotifyEvent;

@\\\*) (*@/// Events for col and row resizing

f_drawselect : boolean;


f_fixedcols : integer;


f_fixedrows : integer;


f_lastcell_edit : t_lastcell;


f_lastcell_tab : t_lastcell;


f_last_sel_len : integer;


f_last_sel_pos : integer;


f_nextcell : Boolean;


f_nextcell_edit : T_nextcell;


f_nextcell_tab : T_nextcell;


f_on_after_edit : TCellEvent;


f_on_before_edit : TCellEvent;


f_on_cancel_edit : TCellEvent;


f_reshow_edit : boolean;


f_SelCellColor : TColor;


f_SelFontColor : TColor;

@\\\*) (*@/// The other properties

f_compare_col : TCompareFunction;

@\\\*) (*@/// Sorting

f_compare_row : TCompareFunction;



Constructors


constructor Create(AOwner: TComponent);

@\\\*) (*@\\\*) (*@/// TStringAlignGrid = class(TStringGrid) // The grid itself *) (*@/// The component action: create, initialize, destroy the internal data *) { The component action: create, initialize, destroy the internal data } (*@/// constructor TStringAlignGrid.Create(AOwner: TComponent);


Functions


procedure AdjustColWidth(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.AdjustColWidth(ACol:integer);


procedure AdjustColWidths;

@\\\*) (*@/// procedure TStringAlignGrid.AdjustColWidths;


procedure AdjustRowHeight(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.AdjustRowHeight(ARow:integer);


procedure AdjustRowHeights;

@\\\*) (*@/// procedure TStringAlignGrid.AdjustRowHeights;


procedure ClearSelection;

@\\\*) (*@\\\*) (*@/// Miscellaneous stuff *) (*@/// procedure TStringAlignGrid.ClearSelection;


procedure ClipboardCSV2Contents(csv:char; range:TGridRect);

@\\\000000091F*) (*@/// procedure TStringAlignGrid.ClipboardCSV2Contents(csv:char; range:TGridRect);


function CompareColInteger(Sender: TObject; Column, Row1,Row2: longint):t_relation;

@\\\*) (*@/// function TStringAlignGrid.CompareColInteger(Sender: TObject; Column, Row1,Row2: longint):t_relation;


function CompareColString(Sender: TObject; Column, Row1,Row2: longint):t_relation;

@\\\*) { Some ready-made sorting functions } (*@/// function TStringAlignGrid.CompareColString(Sender: TObject; Column, Row1,Row2: longint):t_relation;


function CompareRowInteger(Sender: TObject; RowNr, Col1,Col2: longint):t_relation;

@\\\*) (*@/// function TStringAlignGrid.CompareRowInteger(Sender: TObject; RowNr, Col1,Col2: longint):t_relation;


function CompareRowString(Sender: TObject; RowNr, Col1,Col2: longint):t_relation;

@\\\*) (*@/// function TStringAlignGrid.CompareRowString(Sender: TObject; RowNr, Col1,Col2: longint):t_relation;


function Contents2CSV(data:TMemorystream; csv:char; range:TGridRect):TMemorystream;

@\\\*) (*@/// function TStringAlignGrid.Contents2CSV(data:TMemorystream; csv:char; range:TGridRect):TMemorystream;


procedure Contents2CSVClipboard(csv:char; range:TGridRect);

@\\\*) (*@/// procedure TStringAlignGrid.Contents2CSVClipboard(csv:char; range:TGridRect);


function Contents2HTML(data:TMemorystream):TMemorystream;

@\\\*) (*@/// Import and export functions

@\\\*) (*@\\\*) (*@\\\*) (*@/// Import and Export functions *) (*@/// function TStringAlignGrid.Contents2HTML(data:TMemorystream):TMemorystream;


procedure CopyFromClipboard;

@\\\*) (*@/// procedure TStringAlignGrid.CopyFromClipboard;


procedure CopyToClipboard;

@\\\000000081F*) (*@/// procedure TStringAlignGrid.CopyToClipboard;


procedure CSV2Contents(data:TStream; csv:char; range:TGridRect);

@\\\*) (*@/// procedure TStringAlignGrid.CSV2Contents(data:TStream; csv:char; range:TGridRect);


destructor Destroy;

@\\\*) (*@/// destructor TStringAlignGrid.Destroy;


procedure ExchangeCol(FromIndex, ToIndex: Longint);

@\\\*) (*@/// procedure TStringAlignGrid.ExchangeCol(FromIndex, ToIndex: Longint);


procedure ExchangeRow(FromIndex, ToIndex: Longint);

@\\\*) (*@/// procedure TStringAlignGrid.ExchangeRow(FromIndex, ToIndex: Longint);


procedure HideEdit(cancel:boolean);

@\\\*) (*@/// procedure TStringAlignGrid.HideEdit(cancel:boolean);


procedure InsertCol(ACol:Integer);

@\\\*) (*@/// procedure TStringAlignGrid.InsertCol(ACol:Integer);


procedure InsertRow(ARow:Integer);

@\\\*) (*@/// procedure TStringAlignGrid.InsertRow(ARow:Integer);


procedure LoadFromFile(const filename:string);

@\\\*) (*@/// procedure TStringAlignGrid.LoadFromFile(const filename:string);


procedure NextCell(direction:t_nextcell; LastCellBehaviour:t_lastcell; Var ACol,ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.NextCell(direction:t_nextcell; ..);


procedure NextEditableCell(var ACol,ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.NextEditableCell(var ACol,ARow:integer);


procedure RemoveCol(ACol:Integer);

@\\\*) (*@\\\*) (*@/// Insertion, removing, moving and exchanging of Rows and Columns *) { Cols.Delete[i] isn't implemented in any Delphi version I know of, it is abstract in D1/D2, in D3 at least an exception InvalidOp is raised. Same hold for Rows.Delete, Rows.Insert and Cols.Insert. Therefore all must be done by moving the Column/Row to be deleted or newly created from/to the place it should have } (*@/// procedure TStringAlignGrid.RemoveCol(ACol:Integer);


procedure RemoveRow(ARow:Integer);

@\\\*) (*@/// procedure TStringAlignGrid.RemoveRow(ARow:Integer);


procedure ResetAlignCell(ACol,ARow:integer);

@\\\*) (*@\\\*) (*@/// Reset alignment and use the one defined a level above *) (*@/// procedure TStringAlignGrid.ResetAlignCell(ACol,ARow:integer);


procedure ResetAlignCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetAlignCol(ACol:integer);


procedure ResetAlignFixedCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetAlignFixedCol(ACol:integer);


procedure ResetAlignFixedRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetAlignFixedRow(ARow:integer);


procedure ResetAlignment;

@\\\*) (*@/// procedure ResetAlign...;

@\\\*) (*@/// procedure TStringAlignGrid.ResetAlignment;


procedure ResetAlignRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetAlignRow(ARow:integer);


procedure ResetAllCell(ACol,ARow:integer);

@\\\*) (*@\\\*) (*@/// The ResetAll methods as shortcuts

@\\\*) (*@\\\*) (*@/// Resetting all the setting at once *) (*@/// procedure TStringAligngrid.ResetAllCell(ACol,ARow:integer);


procedure ResetAllCol(ACol:integer);

@\\\*) (*@/// procedure TStringAligngrid.ResetAllCol(ACol:integer);


procedure ResetAllFixedCol(ACol:integer);

@\\\*) (*@/// procedure TStringAligngrid.ResetAllFixedCol(ACol:integer);


procedure ResetAllFixedRow(ARow:integer);

@\\\*) (*@/// procedure TStringAligngrid.ResetAllFixedRow(ARow:integer);


procedure ResetAllRow(ARow:integer);

@\\\*) (*@/// procedure TStringAligngrid.ResetAllRow(ARow:integer);


procedure ResetBrushCell(ACol,ARow:integer);

@\\\*) (*@/// procedure ResetBrush...;

@\\\*) (*@/// procedure TStringAlignGrid.ResetBrushCell(ACol,ARow:integer);


procedure ResetBrushCol(ACol:integer);

@\\\*) (*@\\\*) (*@/// Reset brush and use the one defined a level above *) (*@/// procedure TStringAlignGrid.ResetBrushCol(ACol:integer);


procedure ResetBrushFixedCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetBrushFixedCol(ACol:integer);


procedure ResetBrushFixedRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetBrushFixedRow(ARow:integer);


procedure ResetBrushRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetBrushRow(ARow:integer);


procedure ResetColorCell(ACol,ARow:integer);

@\\\*) (*@/// procedure ResetColor...;

@\\\*) (*@\\\*) (*@/// Reset color and use the one defined a level above *) (*@/// procedure TStringAlignGrid.ResetColorCell(ACol,ARow:integer);


procedure ResetColorCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetColorCol(ACol:integer);


procedure ResetColorFixedCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetColorFixedCol(ACol:integer);


procedure ResetColorFixedRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetColorFixedRow(ARow:integer);


procedure ResetColorRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetColorRow(ARow:integer);


procedure ResetEditCell(ACol,ARow:integer);

@\\\*) (*@/// procedure ResetEdit...;

@\\\*) (*@\\\*) (*@/// Reset edit-enabled and use the one defined a level above *) (*@/// procedure TStringAlignGrid.ResetEditCell(ACol,ARow:integer);


procedure ResetEditCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetEditCol(ACol:integer);


procedure ResetEditRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetEditRow(ARow:integer);


procedure ResetFontCell(ACol,ARow:integer);

@\\\*) (*@/// procedure Reset...;

@\\\*) (*@/// procedure TStringAlignGrid.ResetFontCell(ACol,ARow:integer);


procedure ResetFontCol(ACol:integer);

@\\\*) (*@\\\*) (*@/// Reset font and use the one defined a level above *) (*@/// procedure TStringAlignGrid.ResetFontCol(ACol:integer);


procedure ResetFontFixedCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetFontFixedCol(ACol:integer);


procedure ResetFontFixedRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetFontFixedRow(ARow:integer);


procedure ResetFontRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetFontRow(ARow:integer);


procedure ResetSelectedColorCell(ACol,ARow:integer);

@\\\*) (*@/// procedure ResetColor...;

@\\\*) (*@\\\*) (*@/// procedure TStringAlignGrid.ResetSelectedColorCell(ACol,ARow:integer);


procedure ResetSelectedColorCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetSelectedColorCol(ACol:integer);


procedure ResetSelectedColorRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetSelectedColorRow(ARow:integer);


procedure ResetSelectedFontColorCell(ACol,ARow:integer);

@\\\*) (*@/// procedure ResetColor...;

@\\\*) (*@\\\*) (*@/// procedure TStringAlignGrid.ResetSelectedFontColorCell(ACol,ARow:integer);


procedure ResetSelectedFontColorCol(ACol:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetSelectedFontColorCol(ACol:integer);


procedure ResetSelectedFontColorRow(ARow:integer);

@\\\*) (*@/// procedure TStringAlignGrid.ResetSelectedFontColorRow(ARow:integer);


procedure SaveToFile(const filename:string);

@\\\*) (*@/// procedure TStringAlignGrid.SaveToFile(const filename:string);


procedure ShowEdit;

@\\\*) (*@/// procedure TStringAlignGrid.ShowEdit;


procedure SortColumn(Column: longint; Ascending:boolean);

@\\\*) { The procedures for the user to call } (*@/// procedure TStringAlignGrid.SortColumn(Column: longint; Ascending:boolean);


procedure SortRow(Rownumber: longint; Ascending:boolean);

@\\\*) (*@/// procedure TStringAlignGrid.SortRow(RowNumber: longint; Ascending:boolean);


procedure BrushChanged(AFont: TObject);

@\\\*) (*@/// procedure TStringAlignGrid.BrushChanged(AFont: TObject);


procedure CalcTextSize(ACol,ARow:integer; var Width,height: integer);

@\\\*) (*@/// procedure TStringAlignGrid.CalcTextSize(ACol,ARow:integer; var Width,height: integer);


function CanEditShow: Boolean;

@\\\*) (*@/// function TStringAlignGrid.CanEditShow: Boolean;


procedure CellsToList(var List:TList);

@\\\*) (*@/// procedure TStringAlignGrid.CellsToList(var List:TList);


procedure ColumnMoved(FromIndex, ToIndex: Longint);

@\\\*) (*@/// procedure TStringAlignGrid.ColumnMoved(FromIndex, ToIndex: Longint);


procedure ColWidthsChanged;

@\\\*) (*@/// procedure TStringAlignGrid.ColWidthsChanged;


function CreateEditor: TInplaceEdit;

@\\\*) (*@\\\*) (*@/// The Inplace-Editor which also gets the alignment, font and color *) { The Inplace-Editor which also gets the alignment, font and color - got the idea from James Sager's (jsager@ao.net) TIEAlignStringGrid - see UNDU #19 (http://www.informant.com/undu) } (*@/// function TStringAlignGrid.CreateEditor: TInplaceEdit;


procedure DefineProperties(Filer: TFiler);

@\\\*) (*@\\\*) (*@/// The stuff for reading and writing the data from/to the DFM file *) (*@/// procedure TStringAlignGrid.DefineProperties(Filer: TFiler);


procedure doEnter;

@\\\*) (*@/// procedure TStringAlignGrid.DoEnter;


procedure doExit;

@\\\*) { The stuff to get the editor's events right } (*@/// procedure TStringAlignGrid.doExit;


procedure DoSort(ColRow,Min,Max: longint; ByColumn,ascending:boolean);

@\\\*) (*@\\\0000000701*) (*@/// Sorting stuff *) { The sorting itself - currently a simple Bubblesort } (*@/// procedure TStringAlignGrid.DoSort(ColRow,Min,Max: longint; ..)


procedure DrawCell(ACol,ARow:Longint; ARect:TRect; AState:TGridDrawState);

@\\\*) (*@/// The main procedure DrawCell

@\\\*) (*@\\\*) (*@/// The real action - the draw of a cell *) { the draw of a cell, is called from the Paint Method of TCustomGrid } (*@/// procedure TStringAlignGrid.DrawCell(ACol, ARow: Longint; ARect: TRect;


procedure FontChanged(AFont: TObject);

@\\\*) { A callback to be sure the displayed font/brush is the same as the internal } (*@/// procedure TStringAlignGrid.FontChanged(AFont: TObject);


function GetAlign: TMyAlign;

@\\\*) (*@/// property read/write for the alignments

@\\\*) (*@\\\*) (*@/// Property read and write and reset for the Alignments *) (*@/// Property read and write for Alignment *) { Property read and write for Alignment } (*@/// function TStringAlignGrid.GetAlign: TMyAlign;


function GetAlignCell(ACol,ARow: integer):TMyAlign;

@\\\*) (*@\\\*) (*@/// Property read and write for AlignCell *) { Property read and write for AlignCell } (*@/// function TStringAlignGrid.GetAlignCell(ACol,ARow:Integer):TMyAlign;


function GetAlignCol(ACol: integer):TMyAlign;

@\\\*) (*@\\\*) (*@/// Property read and write for AlignCol and FixedAlignCol *) { Property read and write for AlignCol and FixedAlignCol } (*@/// function TStringAlignGrid.GetAlignCol(ACol:Integer):TMyAlign;


function GetAlignRow(ARow:Integer):TMyAlign;

@\\\*) (*@\\\*) (*@/// Property read and write for AlignRow and FixedAlignRow *) { Property read and write for AlignRow and FixedAlignRow } (*@/// function TStringAlignGrid.GetAlignRow(ARow:Integer):TMyAlign;


function GetBrushCell(ACol,ARow: integer):TBrush;

@\\\*) (*@/// property read/write for the brushs

@\\\*) (*@\\\*) (*@\\\*) (*@/// Property read and write and reset for Brushs *) (*@/// Property read and write for BrushCell *) { Property read and write for BrushCell } (*@/// function TStringAlignGrid.GetBrushCell(ACol,ARow: integer):TBrush;


function GetBrushCellComplete(ACol,ARow: integer):TBrush;

@\\\*) (*@/// utility functions

@\\\*) (*@/// function TStringAlignGrid.GetBrushCellComplete(ACol,ARow: integer):TBrush;


function GetBrushCellInternal(ACol,ARow: integer; create:boolean):TBrush;

@\\\*) (*@/// function TStringAlignGrid.GetBrushCellInternal(ACol,ARow: integer; create:boolean):TBrush;


function GetBrushCol(ACol: integer):TBrush;

@\\\*) (*@\\\*) (*@/// Property read and write for BrushCol/FixedBrushCol *) { Property read and write for BrushCol/FixedBrushCol } (*@/// function TStringAlignGrid.GetBrushCol(ACol: integer):TBrush;


function GetBrushColRowInternal(AColRow: integer; create:boolean; List:TList):TBrush;

@\\\*) (*@/// function TStringAlignGrid.GetBrushColRowInternal(AColRow: integer; create:boolean; List:TList):TBrush;


function GetBrushFixedCol(ACol: integer):TBrush;

@\\\*) (*@/// function TStringAlignGrid.GetBrushFixedCol(ACol: integer):TBrush;


function GetBrushFixedRow(ARow: integer):TBrush;

@\\\*) (*@/// function TStringAlignGrid.GetBrushFixedRow(ARow: integer):TBrush;


function GetBrushRow(ARow: integer):TBrush;

@\\\*) (*@\\\*) (*@/// Property read and write for BrushRow/FixedBrushRow *) { Property read and write for BrushRow } (*@/// function TStringAlignGrid.GetBrushRow(ARow: integer):TBrush;


function GetColorCell(ACol,ARow: integer):TColor;

@\\\*) (*@\\\*) (*@\\\*) (*@/// Property read and write and reset for Colors (done via Brushes!) *) (*@/// Property read and write for ColorCell *) { Property read and write for ColorCell } (*@/// function TStringAlignGrid.GetColorCell(ACol,ARow:Integer):TColor;


function GetColorCol(ACol: integer):TColor;

@\\\*) (*@/// property read/write for the colors

@\\\*) (*@\\\*) (*@/// Property read and write for ColorCol and FixedColorCol *) { Property read and write for ColorCol and FixedColorCol } (*@/// function TStringAlignGrid.GetColorCol(ACol:Integer):TColor;


function GetColorRow(ARow:Integer):TColor;

@\\\*) (*@\\\*) (*@/// Property read and write for ColorRow and FixedColorRow *) { Property read and write for ColorRow and FixedColorRow } (*@/// function TStringAlignGrid.GetColorRow(ARow:Integer):TColor;


function GetEditCell(ACol,ARow: integer):Boolean;

@\\\*) (*@\\\*) (*@\\\*) (*@/// Property read and write and reset for the edit-enabled *) (*@/// Property read and write for EditCell *) { Property read and write for EditCell } (*@/// function TStringAlignGrid.GetEditCell(ACol,ARow:Integer):boolean;


function GetEditCol(ACol: integer):Boolean;

@\\\*) (*@/// property read/write for the edit-enabled

@\\\*) (*@\\\*) (*@/// Property read and write for EditCol *) { Property read and write for EditCol } (*@/// function TStringAlignGrid.GetEditCol(ACol:Integer):boolean;


function GetEditRow(ARow:Integer):Boolean;

@\\\*) (*@\\\*) (*@/// Property read and write for EditRow *) { Property read and write for EditRow } (*@/// function TStringAlignGrid.GetAlignRow(ARow:Integer):boolean;


function GetFixAlignCol(ACol: integer):TMyAlign;

@\\\*) (*@/// function TStringAlignGrid.GetFixAlignCol(ACol:Integer):TMyAlign;


function GetFixAlignRow(ARow:Integer):TMyAlign;

@\\\*) (*@/// function TStringAlignGrid.GetFixAlignRow(ARow:Integer):TMyAlign;


function GetFixColorCol(ACol: integer):TColor;

@\\\*) (*@/// function TStringAlignGrid.GetFixColorCol(ACol:Integer):TColor;


function GetFixColorRow(ARow:Integer):TColor;

@\\\*) (*@/// function TStringAlignGrid.GetFixColorRow(ARow:Integer):TColor;


function GetFontCell(ACol,ARow: integer):TFont;

@\\\*) (*@/// property read/write for the fonts

@\\\*) (*@\\\*) (*@\\\*) (*@/// Property read and write and reset for Fonts *) (*@/// Property read and write for FontCell *) { Property read and write for FontCell } (*@/// function TStringAlignGrid.GetFontCell(ACol,ARow: integer):TFont;


function GetFontCellComplete(ACol,ARow: integer):TFont;

@\\\*) (*@/// utility functions

@\\\*) { The Font/Brush for the Cell through all levels (Cell, Col, Row, Grid) } (*@/// function TStringAlignGrid.GetFontCellComplete(ACol,ARow: integer):TFont;


function GetFontCellInternal(ACol,ARow: integer; create:boolean):TFont;

@\\\*) (*@/// function TStringAlignGrid.GetFontCellInternal(ACol,ARow: integer; create:boolean):TFont;


function GetFontCol(ACol: integer):TFont;

@\\\*) (*@\\\*) (*@/// Property read and write for FontCol/FixedFontCol *) { Property read and write for FontCol/FixedFontCol } (*@/// function TStringAlignGrid.GetFontCol(ACol: integer):TFont;


function GetFontColRowInternal(AColRow: integer; create:boolean; List:TList):TFont;

@\\\*) (*@\\\*) (*@/// Utility methods for the fonts/brushs *) (*@/// function TStringAlignGrid.GetFontColRowInternal(AColRow: integer; create:boolean; List:TList):TFont;


function GetFontFixedCol(ACol: integer):TFont;

@\\\*) (*@/// function TStringAlignGrid.GetFontFixedCol(ACol: integer):TFont;


function GetFontFixedRow(ARow: integer):TFont;

@\\\*) (*@/// function TStringAlignGrid.GetFontFixedRow(ARow: integer):TFont;


function GetFontRow(ARow: integer):TFont;

@\\\*) (*@\\\*) (*@/// Property read and write for FontRow/FixedFontRow *) { Property read and write for FontRow } (*@/// function TStringAlignGrid.GetFontRow(ARow: integer):TFont;


function GetHintCell(ACol,ARow: integer):string;

@\\\*) (*@\\\*) (*@/// Property read and write for HintCell *) { Property read and write for HintCell } (*@/// function TStringAlignGrid.GetHintCell(ACol,ARow: integer):string;


function GetSelColorCell(ACol,ARow: integer):TColor;

@\\\*) (*@\\\*) (*@/// Property read and write and reset for Selected Colors *) (*@/// Property read and write for SelColorCell *) (*@/// function TStringAlignGrid.GetSelColorCell(ACol,ARow:Integer):TColor;


function GetSelColorCol(ACol: integer):TColor;

@\\\*) (*@/// property read/write for the colors

@\\\*) (*@\\\*) (*@/// Property read and write for SelColorCol *) (*@/// function TStringAlignGrid.GetSelColorCol(ACol:Integer):TColor;


function GetSelColorRow(ARow:Integer):TColor;

@\\\*) (*@\\\*) (*@/// Property read and write for SelColorRow *) (*@/// function TStringAlignGrid.GetSelColorRow(ARow:Integer):TColor;


function GetSelFontColorCell(ACol,ARow: integer):TColor;

@\\\*) (*@\\\*) (*@/// Property read and write and reset for Selected Font Colors *) (*@/// Property read and write for SelFontColorCell *) (*@/// function TStringAlignGrid.GetSelFontColorCell(ACol,ARow:Integer):TColor;


function GetSelFontColorCol(ACol: integer):TColor;

@\\\*) (*@/// property read/write for the colors

@\\\*) (*@\\\*) (*@/// Property read and write for SelFontColorCol *) (*@/// function TStringAlignGrid.GetSelFontColorCol(ACol:Integer):TColor;


function GetSelFontColorRow(ARow:Integer):TColor;

@\\\*) (*@\\\*) (*@/// Property read and write for SelFontColorRow *) (*@/// function TStringAlignGrid.GetSelFontColorRow(ARow:Integer):TColor;


procedure Initialize;

@\\\*) (*@/// procedure TStringAlignGrid.Initialize;


function is_fixed(ACol,ARow: integer):boolean;

@\\\*) (*@/// Miscellaneous stuff like internal calculations etc.

@\\\*) (*@/// function TStringAlignGrid.is_fixed(ACol,ARow: integer):boolean;


procedure KeyDown(var Key: Word; Shift: TShiftState);

@\\\*) (*@/// procedure TStringAlignGrid.KeyDown(var Key: Word; Shift: TShiftState);


procedure ListToCells(List:TList);

@\\\*) { To convert TStringGrid's own Cell property to my list and vice versa } (*@/// procedure TStringAlignGrid.ListToCells(List:TList);


procedure Loaded;

@\\\*) (*@/// For the DFM read/write

@\\\*) (*@/// procedure TStringAlignGrid.Loaded;


procedure mcn_edit_cancel(var msg:TMessage);

@\\\*) (*@/// procedure TStringAlignGrid.mcn_edit_cancel(var msg:TMessage);


procedure mcn_edit_exit(var msg:TMessage);

@\\\*) (*@/// procedure TStringAlignGrid.mcn_edit_exit(var msg:TMessage);


procedure mcn_edit_return(var msg:TMessage);

@\\\*) (*@/// procedure TStringAlignGrid.mcn_edit_return(var msg:TMessage);


procedure mcn_edit_show(var msg:TMessage);

@\\\*) (*@/// procedure TStringAlignGrid.mcn_edit_show(var msg:TMessage);


procedure mcn_edit_show_it(var msg:TMessage);

@\\\*) (*@/// procedure TStringAlignGrid.mcn_edit_show_it(var msg:TMessage);


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

@\\\*) (*@/// procedure TStringAlignGrid.MouseMove(Shift: TShiftState; X, Y: Integer);


procedure ReadAlignCell(Stream: TStream);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@/// Read and write several alignment lists to the DFM *) { All the routines for the several alignment lists } (*@/// procedure TStringAlignGrid.ReadAlignCell(Stream: TStream);


procedure ReadAlignCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.ReadAlignCol(Stream: TStream);


function ReadAlignColRow(Stream: TStream; list:TList):boolean;

@\\\

@\\\*) { All the ReadCol, ReadRow are so similar, so these to routines are there to avoid code-copy } (*@/// function TStringAlignGrid.ReadAlignColRow(Stream: TStream; list:TList):boolean;


procedure ReadAlignRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.ReadAlignRow(Stream: TStream);


function ReadBrush(Reader: TReader):TBrush;

@\\\*) (*@/// function TStringAlignGrid.ReadBrush(Reader: TReader):TBrush;


procedure ReadBrushCell(Reader: TReader);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read and write several brush lists to the DFM *) { All the routines for the different Brush lists } (*@/// procedure TStringAlignGrid.ReadBrushCell(Reader: TReader);


function ReadBrushCellInt(Reader: TReader; list:TList):boolean;

@\\\*) { All the ReadCol, ReadRow are so similar, so these to routines are there to avoid code-copy } (*@/// function TStringAlignGrid.ReadBrushCellInt(Reader: TReader; list:TList):boolean;


procedure ReadBrushCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadBrushCol(Reader: TReader);


function ReadBrushColRow(Reader: TReader; list:TList):boolean;

@\\\*) (*@/// function TStringAlignGrid.ReadBrushColRow(Reader:TReader; list:TList):boolean;


procedure ReadBrushRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadBrushRow(Reader: TReader);


procedure ReadCells(Reader: TReader);

@\\\*) (*@\\\*) (*@/// Read and write the cell strings to the DFM *) (*@/// procedure TStringAlignGrid.ReadCells(Reader: TReader);


procedure ReadColorCell(Reader: TReader);

@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read several color lists to the DFM *) { Only the read methods to read old DFM files correctly, all is now saved } { via the brushes } (*@/// procedure TStringAlignGrid.ReadColorCell(Reader: TReader);


procedure ReadColorCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadColorCol(Reader: TReader);


procedure ReadColorColRow(Reader: TReader; kind:byte);

@\\\*) (*@/// procedure TStringAlignGrid.ReadColorColRow(Reader:TReader; kind: byte);


procedure ReadColorRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadColorRow(Reader: TReader);


procedure ReadEditCell(Stream: TStream);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read and write several edit-enabled lists to the DFM *) { All the routines for the several edit-enabled lists } (*@/// procedure TStringAlignGrid.ReadEditCell(Stream: TStream);


procedure ReadEditCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.ReadEditCol(Stream: TStream);


function ReadEditColRow(Stream: TStream; list:TList):boolean;

Utility functions

@\\\*) { All the ReadCol, ReadRow are so similar, so these to routines are there to avoid code-copy } (*@/// function TStringAlignGrid.ReadEditColRow(Stream: TStream; list:TList):boolean;


procedure ReadEditRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.ReadEditRow(Stream: TStream);


procedure ReadFixedAlignCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.ReadFixedAlignCol(Stream: TStream);


procedure ReadFixedAlignRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.ReadFixedAlignRow(Stream: TStream);


procedure ReadFixedBrushCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadFixedBrushCol(Reader: TReader);


procedure ReadFixedBrushRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadFixedBrushRow(Reader: TReader);


procedure ReadFixedColorCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadFixedColorCol(Reader: TReader);


procedure ReadFixedColorRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadFixedColorRow(Reader: TReader);


procedure ReadFixedFontCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadFixedFontCol(Reader: TReader);


procedure ReadFixedFontRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadFixedFontRow(Reader: TReader);


function ReadFont(Reader: TReader):TFont;

@\\\*) (*@/// function TStringAlignGrid.ReadFont(Reader: TReader):TFont;


procedure ReadFontCell(Reader: TReader);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read and write several font lists to the DFM *) { All the routines for the different font lists } (*@/// procedure TStringAlignGrid.ReadFontCell(Reader: TReader);


function ReadFontCellInt(Reader: TReader; list:TList):boolean;

@\\\*) { All the ReadCol, ReadRow are so similar, so these to routines are there to avoid code-copy } (*@/// function TStringAlignGrid.ReadFontCellInt(Reader: TReader; list:TList):boolean;


procedure ReadFontCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadFontCol(Reader: TReader);


function ReadFontColRow(Reader: TReader; list:TList):boolean;

@\\\*) (*@/// function TStringAlignGrid.ReadFontColRow(Reader:TReader; list:TList):boolean;


procedure ReadFontRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadFontRow(Reader: TReader);


procedure ReadHint(Reader: TReader);

@\\\*) (*@\\\*) (*@/// Read and write the hint strings to the DFM *) { The hint and the cell strings } (*@/// procedure TStringAlignGrid.ReadHint(Reader: TReader);


procedure ReadSelColorCell(Reader: TReader);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read and write several selected color lists to the DFM *) (*@/// procedure TStringAlignGrid.ReadSelColorCell(Reader: TReader);


procedure ReadSelColorCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadSelColorCol(Reader: TReader);


function ReadSelColorColRow(Reader: TReader; list:TList):boolean;

@\\\*) { All the ReadCol, ReadRow are so similar, so these to routines are there to avoid code-copy } (*@/// function TStringAlignGrid.ReadSelColorColRow(Reader:TReader; list:TList):boolean;


procedure ReadSelColorRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadSelColorRow(Reader: TReader);


procedure ReadSelFontColorCell(Reader: TReader);

@\\\*) (*@/// The DFM read/write procedures

@\\\*) (*@\\\*) (*@/// Read and write several selected font color lists to the DFM *) (*@/// procedure TStringAlignGrid.ReadSelFontColorCell(Reader: TReader);


procedure ReadSelFontColorCol(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadSelFontColorCol(Reader: TReader);


procedure ReadSelFontColorRow(Reader: TReader);

@\\\*) (*@/// procedure TStringAlignGrid.ReadSelFontColorRow(Reader: TReader);


procedure RowHeightsChanged;

@\\\*) (*@/// procedure TStringAlignGrid.RowHeightsChanged;


procedure RowMoved(FromIndex, ToIndex: Longint);

@\\\*) (*@/// Insertion and removing and moving and exchanging of columns and rows

@\\\*) (*@/// procedure TStringAlignGrid.RowMoved(FromIndex, ToIndex: Longint);


procedure SetAlign(const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.SetAlign(const Value: TMyAlign);


procedure SetAlignCell(ACol,ARow: integer; const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.SetAlignCell(ACol,ARow:integer; const Value: TMyAlign);


procedure SetAlignCol(ACol: integer; const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.SetAlignCol(ACol:integer; const Value: TMyAlign);


procedure SetAlignRow(ARow:integer; const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.SetAlignRow(ARow:integer; const Value: TMyAlign);


procedure SetBrushCell(ACol,ARow: integer; const Value: TBrush);

@\\\*) (*@/// procedure TStringAlignGrid.SetBrushCell(ACol,ARow: integer; const Value: TBrush);


procedure SetBrushCol(ACol: integer; const Value: TBrush);

@\\\*) (*@/// procedure TStringAlignGrid.SetBrushCol(ACol: integer; const Value: TBrush);


procedure SetBrushFixedCol(ACol: integer; const Value: TBrush);

@\\\*) (*@/// procedure TStringAlignGrid.SetBrushFixedCol(ACol: integer; const Value: TBrush);


procedure SetBrushFixedRow(ARow: integer; const Value: TBrush);

@\\\*) (*@/// procedure TStringAlignGrid.SetBrushFixedRow(ARow: integer; const Value: TBrush);


procedure SetBrushRow(ARow: integer; const Value: TBrush);

@\\\*) (*@/// procedure TStringAlignGrid.SetBrushRow(ARow: integer; const Value: TBrush);


procedure SetColorCell(ACol,ARow: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetColorCell(ACol,ARow:integer; const Value: TColor);


procedure SetColorCol(ACol: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetColorCol(ACol:integer; const Value: TColor);


procedure SetColorRow(ARow:integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetColorRow(ARow:integer; const Value: TColor);


procedure SetEditCell(ACol,ARow: integer; const Value: Boolean);

@\\\*) (*@/// procedure TStringAlignGrid.SetEditCell(ACol,ARow:integer; const Value: boolean);


procedure SetEditCol(ACol: integer; const Value: Boolean);

@\\\*) (*@/// procedure TStringAlignGrid.SetEditCol(ACol:integer; const Value: boolean);


procedure SetEditRow(ARow:integer; const Value: Boolean);

@\\\*) (*@/// procedure TStringAlignGrid.SetEditRow(ARow:integer; const Value: boolean);


procedure SetFixAlignCol(ACol: integer; const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.SetFixAlignCol(ACol:integer; const Value: TMyAlign);


procedure SetFixAlignRow(ARow:integer; const Value: TMyAlign);

@\\\*) (*@/// procedure TStringAlignGrid.SetFixAlignRow(ARow:integer; const Value: TMyAlign);


procedure SetFixColorCol(ACol: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetFixColorCol(ACol:integer; const Value: TColor);


procedure SetFixColorRow(ARow:integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetFixColorRow(ARow:integer; const Value: TColor);


procedure SetFixedColor(const Value: TColor);

@\\\*) (*@\\\*) (*@/// procedure TStringAlignGrid.SetFixedColor(const Value: TColor);


procedure SetFontCell(ACol,ARow: integer; const Value: TFont);

@\\\*) (*@/// procedure TStringAlignGrid.SetFontCell(ACol,ARow: integer; const Value: TFont);


procedure SetFontCol(ACol: integer; const Value: TFont);

@\\\*) (*@/// procedure TStringAlignGrid.SetFontCol(ACol: integer; const Value: TFont);


procedure SetFontFixedCol(ACol: integer; const Value: TFont);

@\\\*) (*@/// procedure TStringAlignGrid.SetFontFixedCol(ACol: integer; const Value: TFont);


procedure SetFontFixedRow(ARow: integer; const Value: TFont);

@\\\*) (*@/// procedure TStringAlignGrid.SetFontFixedRow(ARow: integer; const Value: TFont);


procedure SetFontRow(ARow: integer; const Value: TFont);

@\\\*) (*@/// procedure TStringAlignGrid.SetFontRow(ARow: integer; const Value: TFont);


procedure SetHintCell(ACol,ARow: integer; const Value: string);

@\\\*) (*@/// procedure TStringAlignGrid.SetHintCell(ACol,ARow: integer; const Value: string);


procedure SetSelCellColor(Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetSelCellColor(Value: TColor);


procedure SetSelColorCell(ACol,ARow: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetSelColorCell(ACol,ARow:integer; const Value: TColor);


procedure SetSelColorCol(ACol: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetSelColorCol(ACol:integer; const Value: TColor);


procedure SetSelColorRow(ARow:integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetSelColorRow(ARow:integer; const Value: TColor);


procedure SetSelFontColor(Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetSelFontColor(Value: TColor);


procedure SetSelFontColorCell(ACol,ARow: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetSelFontColorCell(ACol,ARow:integer; const Value: TColor);


procedure SetSelFontColorCol(ACol: integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetSelFontColorCol(ACol:integer; const Value: TColor);


procedure SetSelFontColorRow(ARow:integer; const Value: TColor);

@\\\*) (*@/// procedure TStringAlignGrid.SetSelFontColorRow(ARow:integer; const Value: TColor);


procedure ShowHintCell(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);

@\\\*) (*@\\\*) (*@/// Utility methods for the cell-specific hints *) (*@/// procedure TStringAlignGrid.ShowHintCell(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);


function textheight(ACol,ARow:integer):integer;

@\\\*) (*@/// function TStringAlignGrid.textheight(ACol,ARow:integer):integer;


function textwidth(ACol,ARow:integer):integer;

@\\\*) (*@/// function TStringAlignGrid.textwidth(ACol,ARow:integer):integer;


procedure WMChar(var Msg: TWMChar);

@\\\*) (*@/// procedure TStringAlignGrid.WMChar(var Msg: TWMChar);


procedure WriteAlignCell(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.WriteAlignCell(Stream: TStream);


procedure WriteAlignCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.WriteAlignCol(Stream: TStream);


procedure WriteAlignColRow(Stream: TStream; count: integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.WriteAlignColRow(Stream: TStream; count: integer; list:TList);


procedure WriteAlignRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.WriteAlignRow(Stream: TStream);


procedure WriteBrush(Writer: TWriter; v:TBrush);

@\\\*) { Writing and reading a single Brush entry } (*@/// procedure TStringAlignGrid.WriteBrush(Writer: TWriter; v:TBrush); *) { The same comment as in WriteFont applies here


procedure WriteBrushCell(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteBrushCell(Writer: TWriter);


procedure WriteBrushCellInt(Writer: TWriter; x,y:integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.WriteBrushCellInt(Writer: TWriter; x,y:integer; list:TList);


procedure WriteBrushCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteBrushCol(Writer: TWriter);


procedure WriteBrushColRow(Writer: TWriter; count: integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.WriteBrushColRow(Writer:TWriter; count:integer; list:TList);


procedure WriteBrushRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteBrushRow(Writer: TWriter);


procedure WriteCells(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteCells(Writer: TWriter);


procedure WriteEditCell(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.WriteEditCell(Stream: TStream);


procedure WriteEditCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.WriteEditCol(Stream: TStream);


procedure WriteEditColRow(Stream: TStream; count: integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.WriteEditColRow(Stream: TStream; count: integer; list:TList);


procedure WriteEditRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.WriteEditRow(Stream: TStream);


procedure WriteFixedAlignCol(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.WriteFixedAlignCol(Stream: TStream);


procedure WriteFixedAlignRow(Stream: TStream);

@\\\*) (*@/// procedure TStringAlignGrid.WriteFixedAlignRow(Stream: TStream);


procedure WriteFixedBrushCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteFixedBrushCol(Writer: TWriter);


procedure WriteFixedBrushRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteFixedBrushRow(Writer: TWriter);


procedure WriteFixedFontCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteFixedFontCol(Writer: TWriter);


procedure WriteFixedFontRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteFixedFontRow(Writer: TWriter);


procedure WriteFont(Writer: TWriter; v:TFont);

@\\\*) { Writing and reading a single font entry } (*@/// procedure TStringAlignGrid.WriteFont(Writer: TWriter; v:TFont); *) { I HATE Borland - here a simple Writer.WriteProperties() would do, but these } { idiots have made this method private and only the trivial ones are public. } { They invent such powerfull mechanisms to access properties at design time } { and then they destroy any way to use these for advanced components :-( } { So I have to write every property and not only those that are changed } { from the default, and I have to do the assumption that they won't change } { the TFontStyles and TFontPitch types as that would run this into great } { problems. And of course what to do with a beast like a TButton instead of } { a TFont - then the mechanism below won't be enough. } { So anyone knowing a better way to do it is greatly welcome!


procedure WriteFontCell(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteFontCell(Writer: TWriter);


procedure WriteFontCellInt(Writer: TWriter; x,y:integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.WriteFontCellInt(Writer: TWriter; x,y:integer; list:TList);


procedure WriteFontCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteFontCol(Writer: TWriter);


procedure WriteFontColRow(Writer: TWriter; count: integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.WriteFontColRow(Writer:TWriter; count:integer; list:TList);


procedure WriteFontRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteFontRow(Writer: TWriter);


procedure WriteHint(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteHint(Writer: TWriter);


procedure WriteSelColorCell(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteSelColorCell(Writer: TWriter);


procedure WriteSelColorCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteSelColorCol(Writer: TWriter);


procedure WriteSelColorColRow(Writer: TWriter; count:integer; list:TList);

@\\\*) (*@/// procedure TStringAlignGrid.WriteSelColorColRow(Writer:TWriter; count:integer; list:TList);


procedure WriteSelColorRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteSelColorRow(Writer: TWriter);


procedure WriteSelFontColorCell(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteSelFontColorCell(Writer: TWriter);


procedure WriteSelFontColorCol(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteSelFontColorCol(Writer: TWriter);


procedure WriteSelFontColorRow(Writer: TWriter);

@\\\*) (*@/// procedure TStringAlignGrid.WriteSelFontColorRow(Writer: TWriter);


Properties


property AfterLastCellEdit : t_lastcell


property AfterLastCellTab : t_lastcell


property Alignment : TMyAlign

@\\\


property AutoEditNextCell : boolean


property DrawSelection : boolean


property Editable : boolean

@\\\


property FixedColor :

@\\\


property NextCellEdit : T_nextcell


property NextCellTab : T_nextcell


property SelectedCellColor : TColor


property SelectedFontColor : TColor


property ShowCellHints : boolean


property AlignCell : TMyAlign

@/// property AlignCell/AlignCol/FixAlignCol/AlignRow/FixAlignRow


property AlignCol : TMyAlign


property AlignRow : TMyAlign


property CellBrush : TBrush

@/// property CellBrush/ColBrush/FixedColBrush/RowBrush/FixedRowBrush *) { The Brush for each cell and for col and row


property CellFont : TFont

@/// property CellFont/ColFont/FixedColFont/RowFont/FixedRowFont


property ColBrush : TBrush


property ColFont : TFont


property ColorCell : TColor

@/// property ColorCell/ColorCol/FixColorCol/ColorRow/FixColorRow


property ColorCol : TColor


property ColorRow : TColor


property EditCell : Boolean

@/// property EditCell/EditCol/EditRow


property EditCol : Boolean


property EditRow : Boolean


property FixAlignCol : TMyAlign


property FixAlignRow : TMyAlign


property FixColorCol : TColor


property FixColorRow : TColor


property FixedColBrush : TBrush


property FixedColFont : TFont


property FixedRowBrush : TBrush


property FixedRowFont : TFont


property HintCell : string


property RowBrush : TBrush


property RowFont : TFont


property SelectedColorCell : TColor

@/// property ColorCell/ColorCol/FixColorCol/ColorRow/FixColorRow


property SelectedColorCol : TColor


property SelectedColorRow : TColor


property SelectedFontColorCell : TColor

@/// property ColorCell/ColorCol/FixColorCol/ColorRow/FixColorRow


property SelectedFontColorCol : TColor


property SelectedFontColorRow : TColor


Events


event OnAfterEdit : TCellEvent


event OnBeforeEdit : TCellEvent


event OnCancelEdit : TCellEvent


event OnColWidthsChanged : TNotifyEvent


event OnCompareCol : TCompareFunction


event OnCompareRow : TCompareFunction


event OnRowHeightsChanged : TNotifyEvent


Variables


edit_visible : boolean;

@\\\*) (*@/// The Inplace-Edit and it's events sent to the grid


FAlign : TMyAlign;

@\\\*) (*@/// Routines and variables for the alignments


FAlignCell : TList;


FAlignCol : TList;

@/// The lists


FAlignRow : TList;


FAlwaysEdit : boolean;

allow switching on editing for single objects only


FBrushCell : TList;


FBrushCol : TList;

@/// The lists


FBrushRow : TList;


FCell : TList;

@\\\*) (*@/// Routines and variables for the cells itself


FEditable : boolean;

@\\\*) (*@/// Routines and variables for the edit-enabled


FEditCell : TList;


FEditCol : TList;

for the component editor to have all cell editable } (*@/// The lists


FEditRow : TList;


FFAlignCol : TList;


FFAlignRow : TList;


FFBrushCol : TList;


FFBrushRow : TList;


FFFontCol : TList;


FFFontRow : TList;


FFixedBrush : TBrush;


FFontCell : TList;


FFontCol : TList;

@/// The lists


FFontRow : TList;


fheightschanged : TNotifyEvent;


FHintCell : TList;


FHintCellLast : TPoint;

@\\\*) (*@\\\*) (*@/// Routines and variables for the hints


FSaveAlignCell : Boolean;

@\\\*) (*@/// The save flags


FSaveAlignCol : Boolean;


FSaveAlignRow : Boolean;


FSaveBrushCell : Boolean;

@\\\*) (*@/// The save flags


FSaveBrushCol : Boolean;


FSaveBrushRow : Boolean;


FSaveCells : Boolean;

Only for loading and saving the cells property


FSaveEditCell : Boolean;

@\\\*) (*@/// The save flags


FSaveEditCol : Boolean;


FSaveEditRow : Boolean;


FSaveFixedAlignCol : Boolean;


FSaveFixedAlignRow : Boolean;


FSaveFixedBrushCol : Boolean;


FSaveFixedBrushRow : Boolean;


FSaveFixedFontCol : Boolean;


FSaveFixedFontRow : Boolean;


FSaveFontCell : Boolean;

@\\\*) (*@/// The save flags


FSaveFontCol : Boolean;


FSaveFontRow : Boolean;


FSaveHint : Boolean;


FSaveSelColorCell : Boolean;

@\\\*) (*@/// The save flags


FSaveSelColorCol : Boolean;


FSaveSelColorRow : Boolean;


FSaveSelFontColorCell : Boolean;

@\\\*) (*@/// The save flags


FSaveSelFontColorCol : Boolean;


FSaveSelFontColorRow : Boolean;


FSelColorCell : TList;


FSelColorCol : TList;

@/// The lists


FSelColorRow : TList;


FSelFontColorCell : TList;


FSelFontColorCol : TList;

@/// The lists


FSelFontColorRow : TList;


FShowCellHints : Boolean;


fwidthschanged : TNotifyEvent;

@\\\*) (*@/// Events for col and row resizing


f_drawselect : boolean;


f_fixedcols : integer;


f_fixedrows : integer;


f_lastcell_edit : t_lastcell;


f_lastcell_tab : t_lastcell;


f_last_sel_len : integer;


f_last_sel_pos : integer;


f_nextcell : Boolean;


f_nextcell_edit : T_nextcell;


f_nextcell_tab : T_nextcell;


f_on_after_edit : TCellEvent;


f_on_before_edit : TCellEvent;


f_on_cancel_edit : TCellEvent;


f_reshow_edit : boolean;


f_SelCellColor : TColor;


f_SelFontColor : TColor;

@\\\*) (*@/// The other properties


f_compare_col : TCompareFunction;

@\\\*) (*@/// Sorting


f_compare_row : TCompareFunction;