// CodeGear C++Builder
// Copyright (c) 1995, 2013 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'FMX.TMSCustomGrid.pas' rev: 26.00 (Windows)

#ifndef Fmx_TmscustomgridHPP
#define Fmx_TmscustomgridHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <Winapi.Windows.hpp>	// Pascal unit
#include <FMX.Printer.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <System.UITypes.hpp>	// Pascal unit
#include <FMX.ListBox.hpp>	// Pascal unit
#include <FMX.Types.hpp>	// Pascal unit
#include <System.Types.hpp>	// Pascal unit
#include <FMX.TMSGridData.hpp>	// Pascal unit
#include <FMX.TMSGridDataUtil.hpp>	// Pascal unit
#include <FMX.TMSXUtil.hpp>	// Pascal unit
#include <FMX.TMSBaseControl.hpp>	// Pascal unit
#include <FMX.TMSGridOptions.hpp>	// Pascal unit
#include <FMX.Layouts.hpp>	// Pascal unit
#include <FMX.Edit.hpp>	// Pascal unit
#include <FMX.Objects.hpp>	// Pascal unit
#include <FMX.Controls.hpp>	// Pascal unit
#include <System.Math.hpp>	// Pascal unit
#include <FMX.TMSGridCell.hpp>	// Pascal unit
#include <FMX.TMSBitmapContainer.hpp>	// Pascal unit
#include <FMX.TMSEdit.hpp>	// Pascal unit
#include <FMX.ExtCtrls.hpp>	// Pascal unit
#include <FMX.Colors.hpp>	// Pascal unit
#include <FMX.Forms.hpp>	// Pascal unit
#include <FMX.TMSBitmap.hpp>	// Pascal unit
#include <FMX.Dialogs.hpp>	// Pascal unit
#include <FMX.StdCtrls.hpp>	// Pascal unit
#include <System.UIConsts.hpp>	// Pascal unit
#include <FMX.Styles.hpp>	// Pascal unit
#include <FMX.Graphics.hpp>	// Pascal unit
#include <FMX.DateTimeCtrls.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Fmx
{
namespace Tmscustomgrid
{
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TTMSFMXGridScrollMode : unsigned char { smPixelScrolling, smCellScrolling };

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellClass)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObjectClass &CellClassType);

typedef void __fastcall (__closure *TTMSFMXGridTopLeftChanged)(System::TObject* Sender, int ATopRow, int ALeftCol);

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellControl)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* &AControl);

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellData)(System::TObject* Sender, int ACol, int ARow, System::UnicodeString &CellString);

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellProperties)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* Cell);

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellAppearance)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* Cell, Fmx::Tmsgriddata::TCellState ACellState);

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellMergeInfo)(System::TObject* Sender, int ACol, int ARow, int &ABaseCol, int &ABaseRow, int &AColSpan, int &ARowSpan);

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellEditorCustomClassType)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObjectClass &CellEditorCustomClassType);

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellEditorType)(System::TObject* Sender, int ACol, int ARow, Fmx::Tmsgriddata::TTMSFMXGridEditorType &CellEditorType);

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellEditorProperties)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor);

typedef void __fastcall (__closure *TTMSFMXGridOnCellEditGetData)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::UnicodeString &CellString);

typedef void __fastcall (__closure *TTMSFMXGridOnCellEditValidateData)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::UnicodeString &CellString, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnCellEditSetData)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::UnicodeString &CellString);

typedef void __fastcall (__closure *TTMSFMXGridOnCellEditGetColor)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::Uitypes::TAlphaColor &CellColor);

typedef void __fastcall (__closure *TTMSFMXGridOnCellEditValidateColor)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::Uitypes::TAlphaColor &CellColor, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnCellEditSetColor)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::Uitypes::TAlphaColor &CellColor);

typedef void __fastcall (__closure *TTMSFMXGridOnCellEditDone)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor);

typedef void __fastcall (__closure *TTMSFMXGridOnCellEditCancel)(System::TObject* Sender, int ACol, int ARow);

typedef void __fastcall (__closure *TTMSFMXGridOnCanSizeColumn)(System::TObject* Sender, int ACol, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnCanSizeRow)(System::TObject* Sender, int ARow, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnColumnSize)(System::TObject* Sender, int ACol, float &NewWidth);

typedef void __fastcall (__closure *TTMSFMXGridOnRowSize)(System::TObject* Sender, int ARow, float &NewHeight);

typedef void __fastcall (__closure *TTMSFMXGridOnColumnSized)(System::TObject* Sender, int ACol, float NewWidth);

typedef void __fastcall (__closure *TTMSFMXGridOnRowSized)(System::TObject* Sender, int ARow, float NewHeight);

typedef void __fastcall (__closure *TTMSFMXGridOnColumnDragged)(System::TObject* Sender, int FromCol, int ToCol);

typedef void __fastcall (__closure *TTMSFMXGridOnRowDragged)(System::TObject* Sender, int FromRow, int ToRow);

typedef void __fastcall (__closure *TTMSFMXGridOnCanSortColumn)(System::TObject* Sender, int ACol, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnColumnSorted)(System::TObject* Sender, int ACol, Fmx::Tmsgriddata::TSortDirection Direction);

typedef void __fastcall (__closure *TTMSFMXGridOnCellAnchorClick)(System::TObject* Sender, int ACol, int ARow, System::UnicodeString AAnchor);

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellReadOnly)(System::TObject* Sender, int ACol, int ARow, bool &AReadOnly);

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellLayout)(System::TObject* Sender, int ACol, int ARow, Fmx::Tmsgridcell::TTMSFMXGridCellLayout* ALayout, Fmx::Tmsgriddata::TCellState ACellState);

typedef void __fastcall (__closure *TTMSFMXGridOnCellClick)(System::TObject* Sender, int ACol, int ARow);

typedef void __fastcall (__closure *TTMSFMXGridOnGetCellIsFixed)(System::TObject* Sender, int ACol, int ARow, bool &ACellFixed);

typedef void __fastcall (__closure *TTMSFMXGridOnPrintProgress)(System::TObject* Sender, int APageIndex, Fmx::Printer::TPrinter* APrinter, float APrintProgress);

typedef void __fastcall (__closure *TTMSFMXGridOnPrintNewPage)(System::TObject* Sender, int APageIndex, Fmx::Printer::TPrinter* APrinter);

typedef void __fastcall (__closure *TTMSFMXGridOnPrintEndPage)(System::TObject* Sender, int APageIndex, Fmx::Printer::TPrinter* APrinter);

typedef void __fastcall (__closure *TTMSFMXGridOnPrintEvent)(System::TObject* Sender, Fmx::Printer::TPrinter* APrinter);

typedef void __fastcall (__closure *TTMSFMXGridOnPrintBeforeDrawCell)(System::TObject* Sender, int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect, int ACol, int ARow, Fmx::Types::TFmxObject* ACell);

typedef void __fastcall (__closure *TTMSFMXGridOnPrintDrawCell)(System::TObject* Sender, int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect, int ACol, int ARow, Fmx::Types::TFmxObject* ACell, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnPrintAfterDrawCell)(System::TObject* Sender, int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect, int ACol, int ARow, Fmx::Types::TFmxObject* ACell);

typedef void __fastcall (__closure *TTMSFMXGridOnPrintBeforeDraw)(System::TObject* Sender, int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnPrintAfterDraw)(System::TObject* Sender, int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect);

typedef void __fastcall (__closure *TTMSFMXGridOnGetRowIsBand)(System::TObject* Sender, int ARow, bool &ARowBand);

typedef void __fastcall (__closure *TTMSFMXGridOnCanInsertRow)(System::TObject* Sender, int ARow, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnCanDeleteRow)(System::TObject* Sender, int ARow, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnCanAppendColumn)(System::TObject* Sender, int ACol, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnCanAppendRow)(System::TObject* Sender, int ARow, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnInsertRow)(System::TObject* Sender, int ARow);

typedef void __fastcall (__closure *TTMSFMXGridOnDeleteRow)(System::TObject* Sender, int ARow);

typedef void __fastcall (__closure *TTMSFMXGridOnAppendColumn)(System::TObject* Sender, int ACol);

typedef void __fastcall (__closure *TTMSFMXGridOnAppendRow)(System::TObject* Sender, int ARow);

typedef void __fastcall (__closure *TTMSFMXGridOnSelectCell)(System::TObject* Sender, int ACol, int ARow, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridOnPrintDrawText)(System::TObject* Sender, int APageIndex, Fmx::Graphics::TCanvas* ACanvas, System::Types::TRectF &ARect, System::UnicodeString &AText, bool &Allow);

typedef void __fastcall (__closure *TTMSFMXGridCellControlEvent)(System::TObject* Sender, int ACol, int ARow, Fmx::Types::TFmxObject* Cell);

typedef System::DynamicArray<Fmx::Types::TFmxObject*> Fmx_Tmscustomgrid__1;

typedef System::DynamicArray<System::DynamicArray<Fmx::Types::TFmxObject*> > TGridCellArray;

enum DECLSPEC_DENUM TTMSFMXGridSizeMode : unsigned char { smColumnSizing, smRowSizing, smPreviousColumnSizing, smPreviousRowSizing };

enum DECLSPEC_DENUM TTMSFMXGridDraggingMode : unsigned char { dmNone, dmRowDragging, dmColumnDragging };

class DELPHICLASS TProtectedButton;
class PASCALIMPLEMENTATION TProtectedButton : public Fmx::Stdctrls::TButton
{
	typedef Fmx::Stdctrls::TButton inherited;
	
public:
	/* TCustomButton.Create */ inline __fastcall virtual TProtectedButton(System::Classes::TComponent* AOwner) : Fmx::Stdctrls::TButton(AOwner) { }
	
public:
	/* TTextControl.Destroy */ inline __fastcall virtual ~TProtectedButton(void) { }
	
};


class DELPHICLASS TProtectedControl;
class PASCALIMPLEMENTATION TProtectedControl : public Fmx::Controls::TControl
{
	typedef Fmx::Controls::TControl inherited;
	
public:
	/* TControl.Create */ inline __fastcall virtual TProtectedControl(System::Classes::TComponent* AOwner) : Fmx::Controls::TControl(AOwner) { }
	/* TControl.Destroy */ inline __fastcall virtual ~TProtectedControl(void) { }
	
};


typedef void __fastcall (__closure *TTMSFMXGridCellBeforeDraw)(System::TObject* Sender, int ACol, int ARow, Fmx::Graphics::TCanvas* ACanvas, System::Types::TRectF &ARect, System::Types::TRectF &ATextRect, bool &ADrawText, bool &ADrawBackGround, bool &AllowDraw);

typedef void __fastcall (__closure *TTMSFMXGridCellAfterDraw)(System::TObject* Sender, int ACol, int ARow, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect);

enum DECLSPEC_DENUM TEditCellStart : unsigned char { csNone, csStart, csEnd };

class DELPHICLASS TCellCalendarBox;
class PASCALIMPLEMENTATION TCellCalendarBox : public Fmx::Datetimectrls::TCalendarEdit
{
	typedef Fmx::Datetimectrls::TCalendarEdit inherited;
	
__published:
	__fastcall virtual TCellCalendarBox(System::Classes::TComponent* AOwner);
public:
	/* TCustomCalendarEdit.Destroy */ inline __fastcall virtual ~TCellCalendarBox(void) { }
	
};


class DELPHICLASS TControlProtected;
class PASCALIMPLEMENTATION TControlProtected : public Fmx::Controls::TControl
{
	typedef Fmx::Controls::TControl inherited;
	
public:
	/* TControl.Create */ inline __fastcall virtual TControlProtected(System::Classes::TComponent* AOwner) : Fmx::Controls::TControl(AOwner) { }
	/* TControl.Destroy */ inline __fastcall virtual ~TControlProtected(void) { }
	
};


class DELPHICLASS TTMSFMXCustomGrid;
class PASCALIMPLEMENTATION TTMSFMXCustomGrid : public Fmx::Tmsgriddata::TTMSFMXGridData
{
	typedef Fmx::Tmsgriddata::TTMSFMXGridData inherited;
	
private:
	int FTopr;
	int FLeftC;
	bool FDblClick;
	bool FCellKeyDown;
	Fmx::Types::TFmxObject* FSaveTopCell;
	Fmx::Tmsgriddata::TCellRange FPrevSelection;
	Fmx::Tmsgriddata::TCell FCellAnchor;
	System::UnicodeString FCellAnchorString;
	System::UnicodeString FLookupString;
	TTMSFMXGridDraggingMode FDraggingMode;
	Fmx::Objects::TImage* FDragBitmap;
	bool FDragFixed;
	bool FTouchScrolling;
	Fmx::Tmsgriddata::TCell FDragCell;
	Fmx::Tmsgriddata::TCell FDragScrollCell;
	Fmx::Tmsgriddata::TCell FEditCell;
	Fmx::Types::TFmxObject* FEditControl;
	Fmx::Tmsedit::TTMSFMXEdit* FCellEdit;
	Fmx::Listbox::TComboBox* FCellComboBox;
	Fmx::Tmsgriddata::TCell FRealCell;
	float FX;
	float FY;
	float FPrevX;
	float FPrevY;
	float FSizeX;
	float FSaveDragX;
	float FSaveDragY;
	float FSizeY;
	float FDragX;
	float FDragY;
	float FDownX;
	float FDownY;
	float FTouchX;
	float FTouchY;
	Fmx::Types::TTimer* FScrollTimer;
	Fmx::Types::TTimer* FDragTimer;
	Fmx::Types::TFmxObject* FSaveC;
	Fmx::Tmsgriddata::TCell FPrevSelectedCell;
	Fmx::Tmsgriddata::TCell FFirstCell;
	Fmx::Tmsgriddata::TCell FSaveCell;
	bool FMouseDown;
	bool FMouseDblClick;
	bool FMouseUp;
	bool FMouseSizing;
	bool FSizing;
	TTMSFMXGridSizeMode FSizeMode;
	bool FMouseDragging;
	bool FUpdatingGrid;
	int FCStart;
	int FRStart;
	int FCStop;
	int FRStop;
	bool FReset;
	TGridCellArray FCellArray;
	TTMSFMXGridScrollMode FScrollMode;
	TTMSFMXGridOnGetCellClass FOnGetCellClass;
	TTMSFMXGridOnGetCellProperties FOnGetCellProperties;
	TTMSFMXGridOnGetCellData FOnGetCellData;
	int FFreezeRows;
	int FFreezeColumns;
	TTMSFMXGridOnGetCellAppearance FOnGetCellAppearance;
	bool FFixedShowSelection;
	TTMSFMXGridOnGetCellMergeInfo FOnGetCellMergeInfo;
	TTMSFMXGridOnCellEditSetData FOnCellEditSetData;
	TTMSFMXGridOnCellEditDone FOnCellEditDone;
	TTMSFMXGridOnGetCellEditorCustomClassType FOnGetCellEditorCustomClassType;
	TTMSFMXGridOnCellEditValidateData FOnCellEditValidateData;
	TTMSFMXGridOnCellEditGetData FOnCellEditGetData;
	TTMSFMXGridOnGetCellEditorProperties FOnGetCellEditorProperties;
	TTMSFMXGridCellControlEvent FOnCellButtonClick;
	TTMSFMXGridCellControlEvent FOnCellRadioButtonClick;
	TTMSFMXGridCellControlEvent FOnCellCheckBoxClick;
	TTMSFMXGridCellControlEvent FOnCellBitmapClick;
	TTMSFMXGridCellControlEvent FOnCellCommentClick;
	TTMSFMXGridCellControlEvent FOnCellSortClick;
	TTMSFMXGridOnRowSized FOnRowSized;
	TTMSFMXGridOnColumnSized FOnColumnSized;
	TTMSFMXGridOnCanSizeRow FOnCanSizeRow;
	TTMSFMXGridOnCanSizeColumn FOnCanSizeColumn;
	TTMSFMXGridOnCanSizeRow FOnCanDragRow;
	TTMSFMXGridOnCanSizeColumn FOnCanDragColumn;
	TTMSFMXGridOnColumnDragged FOnColumnDragged;
	TTMSFMXGridOnRowDragged FOnRowDragged;
	TTMSFMXGridOnRowSize FOnRowSize;
	TTMSFMXGridOnColumnSize FOnColumnSize;
	TTMSFMXGridCellControlEvent FOnCellNodeClick;
	TTMSFMXGridOnCanSortColumn FOnCanSortColumn;
	TTMSFMXGridOnColumnSorted FOnColumnSorted;
	TTMSFMXGridOnCellAnchorClick FOnCellAnchorClick;
	TTMSFMXGridOnCellClick FOnCellClick;
	TTMSFMXGridOnCellClick FOnFixedCellClick;
	TTMSFMXGridCellControlEvent FOnFixedCellSpinBoxChange;
	TTMSFMXGridCellControlEvent FOnFixedCellBitmapClick;
	TTMSFMXGridCellControlEvent FOnFixedCellCheckBoxClick;
	TTMSFMXGridCellControlEvent FOnFixedCellButtonClick;
	TTMSFMXGridOnGetCellReadOnly FOnGetCellReadOnly;
	TTMSFMXGridOnGetCellLayout FOnGetCellLayout;
	TTMSFMXGridOnGetCellIsFixed FOnGetCellIsFixed;
	TTMSFMXGridOnPrintDrawCell FOnPrintDrawCell;
	TTMSFMXGridOnPrintBeforeDrawCell FOnPrintBeforeDrawCell;
	TTMSFMXGridOnPrintProgress FOnPrintProgress;
	TTMSFMXGridOnPrintEvent FOnPrintEnd;
	TTMSFMXGridOnPrintEvent FOnPrintBegin;
	TTMSFMXGridOnPrintNewPage FOnPrintNewPage;
	TTMSFMXGridOnPrintEndPage FOnPrintEndPage;
	TTMSFMXGridOnPrintAfterDrawCell FOnPrintAfterDrawCell;
	TTMSFMXGridOnPrintDrawText FOnPrintDrawTitle;
	TTMSFMXGridOnPrintDrawText FOnPrintDrawPageNumber;
	TTMSFMXGridOnPrintDrawText FOnPrintDrawDescription;
	TTMSFMXGridOnPrintBeforeDraw FOnPrintBeforeDraw;
	TTMSFMXGridOnPrintAfterDraw FOnPrintAfterDraw;
	TTMSFMXGridOnPrintProgress FOnPrintPreviewProgress;
	TTMSFMXGridOnGetCellControl FOnGetCellControl;
	TTMSFMXGridOnGetCellEditorType FOnGetCellEditorType;
	Fmx::Edit::TSpinBox* FCellSpinBox;
	Fmx::Edit::TComboEdit* FCellComboEdit;
	Fmx::Tmsedit::TTMSFMXEditBtn* FCellEditBtn;
	TCellCalendarBox* FCellDatePicker;
	Fmx::Datetimectrls::TCalendarEdit* FCellDateEdit;
	Fmx::Colors::TColorComboBox* FCellColorComboBox;
	Fmx::Stdctrls::TArcDial* FCellArcDial;
	Fmx::Stdctrls::TTrackBar* FCellTrackBar;
	Fmx::Colors::TComboColorBox* FCellColorPicker;
	TTMSFMXGridOnCellEditGetColor FOnCellEditGetColor;
	TTMSFMXGridOnCellEditSetColor FOnCellEditSetColor;
	TTMSFMXGridOnCellEditValidateColor FOnCellEditValidateColor;
	TTMSFMXGridOnGetRowIsBand FOnGetRowIsBand;
	TTMSFMXGridOnCanDeleteRow FOnCanDeleteRow;
	TTMSFMXGridOnCanAppendRow FOnCanAppendRow;
	TTMSFMXGridOnCanAppendColumn FOnCanAppendColumn;
	TTMSFMXGridOnCanInsertRow FOnCanInsertRow;
	TTMSFMXGridOnDeleteRow FOnDeleteRow;
	TTMSFMXGridOnAppendRow FOnAppendRow;
	TTMSFMXGridOnAppendColumn FOnAppendColumn;
	TTMSFMXGridOnInsertRow FOnInsertRow;
	TTMSFMXGridCellAfterDraw FOnCellAfterDraw;
	TTMSFMXGridCellBeforeDraw FOnCellBeforeDraw;
	TTMSFMXGridCellControlEvent FOnCellShowPopup;
	TTMSFMXGridCellControlEvent FOnCellHidePopup;
	TTMSFMXGridCellControlEvent FOnFixedCellDropDownButtonClick;
	bool FEditing;
	TTMSFMXGridOnSelectCell FOnSelectCell;
	TTMSFMXGridTopLeftChanged FOnTopLeftChanged;
	TTMSFMXGridOnCellEditCancel FOnCellEditCancel;
	System::UnicodeString __fastcall GetVersion(void);
	int __fastcall GetVersionNr(void);
	void __fastcall SetVersion(const System::UnicodeString Value);
	void __fastcall SetScrollMode(const TTMSFMXGridScrollMode Value);
	void __fastcall SetFreezeColumns(const int Value);
	void __fastcall SetFreezeRows(const int Value);
	void __fastcall SetFixedShowSelection(const bool Value);
	int __fastcall GetLeftCol(void);
	int __fastcall GetTopRow(void);
	void __fastcall SetLeftCol(const int Value);
	void __fastcall SetTopRow(const int Value);
	
protected:
	virtual void __fastcall DoExit(void);
	void __fastcall ResetMouseInteraction(void);
	Fmx::Controls::TPopup* __fastcall FindPopup(System::Classes::TComponent* AControl);
	void __fastcall DrawTitle(int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect);
	void __fastcall DrawDescription(int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect);
	void __fastcall DrawPageNumber(int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect);
	int __fastcall GetRealTopRow(void);
	int __fastcall GetRealLeftCol(void);
	Fmx::Tmsgridcell::TTMSFMXGridCellLayout* __fastcall GetCellAppearance(Fmx::Tmsgriddata::TCellState AState, int ACol, int ARow);
	virtual void __fastcall ApplyAdditionalStyle(Fmx::Types::TFmxObject* AControl);
	Fmx::Tmsgriddata::TCell __fastcall GetCellByObject(Fmx::Types::TFmxObject* Cell);
	Fmx::Tmsgriddata::TCell __fastcall GetDisplayCellByObject(Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall UpdateGrid(bool Update = false);
	void __fastcall UpdateHeader(void);
	void __fastcall UpdateFooter(void);
	void __fastcall HideEdit(bool AEnterKey = false);
	virtual void __fastcall CellControlKeyDown(System::TObject* Sender, System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	virtual void __fastcall CellEditKeyDown(System::TObject* Sender, System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	virtual void __fastcall CellEditBtnKeyDown(System::TObject* Sender, System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	virtual void __fastcall CellComboBoxKeyDown(System::TObject* Sender, System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	virtual void __fastcall CellComboBoxChange(System::TObject* Sender);
	void __fastcall ScrollTimer(System::TObject* Sender);
	void __fastcall DragTimer(System::TObject* Sender);
	float __fastcall GetHeaderHeight(void);
	virtual NativeUInt __fastcall GetInstance(void);
	void __fastcall ScrollBarVChanged(System::TObject* Sender);
	void __fastcall ScrollBarHChanged(System::TObject* Sender);
	void __fastcall ApplyCellState(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual Fmx::Tmsgriddata::TCellState __fastcall GetCellState(int ACol, int ARow);
	virtual void __fastcall DblClick(void);
	void __fastcall ClearFixedSorting(Fmx::Types::TFmxObject* ACell);
	virtual void __fastcall MouseDown(System::Uitypes::TMouseButton Button, System::Classes::TShiftState Shift, float X, float Y);
	virtual void __fastcall MouseMove(System::Classes::TShiftState Shift, float X, float Y);
	virtual void __fastcall MouseUp(System::Uitypes::TMouseButton Button, System::Classes::TShiftState Shift, float X, float Y);
	virtual void __fastcall MouseWheel(System::Classes::TShiftState Shift, int WheelDelta, bool &Handled);
	virtual void __fastcall KeyDown(System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	virtual void __fastcall DialogKey(System::Word &Key, System::Classes::TShiftState Shift);
	void __fastcall ProcessTab(System::Word &Key, System::Classes::TShiftState Shift, Fmx::Tmsgridoptions::TTMSFMXGridTabKeyDirection Mode, Fmx::Tmsgridoptions::TTMSFMXGridTabKeyHandling Handling, bool DirectEdit, TEditCellStart CellStart = (TEditCellStart)(0x0));
	void __fastcall DoCellKeyDown(int ACol, int ARow, System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	void __fastcall DoCellKeyUp(int ACol, int ARow, System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	int __fastcall GetPageScrollSize(void);
	virtual void __fastcall KeyUp(System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	void __fastcall LayoutChanged(System::TObject* Sender);
	float __fastcall GetHorizontalPos(int AStartCol, int AStopCol);
	float __fastcall GetVerticalPos(int AStartRow, int AStopRow);
	void __fastcall AutoSizeColumnInt(int ACol, bool Accurate = true);
	void __fastcall AutoSizeRowInt(int ARow);
	float __fastcall GetColumnViewPortSize(void);
	float __fastcall GetRowViewPortSize(void);
	void __fastcall DoCheckBoxClick(System::TObject* Sender);
	void __fastcall DoRadioButtonClick(System::TObject* Sender);
	void __fastcall DoButtonClick(System::TObject* Sender);
	void __fastcall DoComboBoxChange(System::TObject* Sender);
	void __fastcall DoBitmapClick(System::TObject* Sender);
	void __fastcall DoCommentClick(System::TObject* Sender);
	void __fastcall DoShowPopup(System::TObject* Sender);
	void __fastcall DoHidePopup(System::TObject* Sender);
	void __fastcall DoNodeClick(System::TObject* Sender);
	void __fastcall DoFixedCheckBoxClick(System::TObject* Sender);
	void __fastcall DoFixedButtonClick(System::TObject* Sender);
	void __fastcall DoFixedDropDownButtonClick(System::TObject* Sender);
	void __fastcall DoFixedBitmapClick(System::TObject* Sender);
	void __fastcall DoFixedSpinBoxChange(System::TObject* Sender);
	virtual void __fastcall DoCellAnchorClick(int ACol, int ARow, System::UnicodeString AAnchor);
	virtual void __fastcall DoCanSizeColumn(int ACol, bool &Allow);
	virtual void __fastcall DoCanSizeRow(int ARow, bool &Allow);
	virtual void __fastcall DoColumnSize(int ACol, float &NewWidth);
	virtual void __fastcall DoRowSize(int ARow, float &NewHeight);
	virtual void __fastcall DoColumnSized(int ACol, float NewWidth);
	virtual void __fastcall DoRowSized(int ARow, float NewHeight);
	virtual void __fastcall DoCanSortColumn(int ACol, bool &Allow);
	virtual void __fastcall DoColumnSorted(int ACol, Fmx::Tmsgriddata::TSortDirection Direction);
	virtual void __fastcall DoCanDragColumn(int ACol, bool &Allow);
	virtual void __fastcall DoCanDragRow(int ARow, bool &Allow);
	virtual void __fastcall DoColumnDragged(int FromColumn, int ToColumn);
	virtual void __fastcall DoRowDragged(int FromRow, int ToRow);
	virtual bool __fastcall DoIsCellSelected(int ACol, int ARow);
	bool __fastcall DoIsFixedCellSelected(int ACol, int ARow);
	virtual void __fastcall DoFixedCellDropDownButtonClick(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoFixedCellCheckBoxClick(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoFixedCellSpinBoxChange(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoFixedCellButtonClick(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoFixedCellBitmapClick(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoCellShowPopup(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoCellHidePopup(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoCellCheckBoxClick(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoCellRadioButtonClick(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoGetCellIsFixed(int ACol, int ARow, bool &ACellFixed);
	virtual void __fastcall DoGetRowIsBand(int ARow, bool &ARowBand);
	virtual void __fastcall DoCellButtonClick(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoCellBitmapClick(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoCellCommentClick(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoCellSortClick(System::Classes::TShiftState Shift, int ACol, int ARow, Fmx::Types::TFmxObject* Cell, Fmx::Tmsgriddata::TSortDirection Direction);
	virtual void __fastcall DoCellNodeClick(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoInsertRow(int ARow);
	virtual void __fastcall DoDeleteRow(int ARow);
	virtual void __fastcall DoAppendRow(int ARow);
	virtual void __fastcall DoAppendColumn(int ACol);
	virtual void __fastcall DoCanInsertRow(int ARow, bool &Allow);
	virtual void __fastcall DoCanDeleteRow(int ARow, bool &Allow);
	virtual void __fastcall DoCanAppendRow(int ARow, bool &Allow);
	virtual void __fastcall DoCanAppendColumn(int ACol, bool &Allow);
	virtual void __fastcall DoCellClick(int ACol, int ARow);
	virtual void __fastcall DoFixedCellClick(System::Classes::TShiftState Shift, int ACol, int ARow);
	virtual void __fastcall DoGetCellControl(int ACol, int ARow, Fmx::Types::TFmxObject* &AControl);
	virtual void __fastcall DoGetCellClass(int ACol, int ARow, Fmx::Types::TFmxObjectClass &CellClassType);
	virtual void __fastcall DoGetCellData(int ACol, int ARow, System::UnicodeString &CellString);
	virtual void __fastcall DoGetCellProperties(int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	virtual void __fastcall DoGetCellAppearance(int ACol, int ARow, Fmx::Types::TFmxObject* Cell, Fmx::Tmsgriddata::TCellState ACellState);
	virtual void __fastcall DoGetCellLayout(int ACol, int ARow, Fmx::Tmsgridcell::TTMSFMXGridCellLayout* ALayout, Fmx::Tmsgriddata::TCellState ACellState);
	virtual void __fastcall DoGetCellMergeInfo(int ACol, int ARow, int &ABaseCol, int &ABaseRow, int &AColSpan, int &ARowSpan);
	virtual void __fastcall DoGetCellEditorCustomClassType(int ACol, int ARow, Fmx::Types::TFmxObjectClass &CellEditorCustomClassType);
	virtual void __fastcall DoGetCellEditorType(int ACol, int ARow, Fmx::Tmsgriddata::TTMSFMXGridEditorType &CellEditorType);
	virtual void __fastcall DoCellEditGetData(int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::UnicodeString &CellString);
	virtual void __fastcall DoCellEditValidateData(int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::UnicodeString &CellString, bool &Allow);
	virtual void __fastcall DoCellEditSetData(int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::UnicodeString &CellString);
	virtual void __fastcall DoCellEditGetColor(int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::Uitypes::TAlphaColor &CellColor);
	virtual void __fastcall DoCellEditValidateColor(int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::Uitypes::TAlphaColor &CellColor, bool &Allow);
	virtual void __fastcall DoCellEditSetColor(int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor, System::Uitypes::TAlphaColor &CellColor);
	virtual void __fastcall DoCellEditDone(int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor);
	void __fastcall DoCellEditCancel(int ACol, int ARow);
	virtual void __fastcall DoGetCellEditorProperties(int ACol, int ARow, Fmx::Types::TFmxObject* CellEditor);
	void __fastcall DoPrintDrawCell(int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect, int ACol, int ARow, Fmx::Types::TFmxObject* Cell, bool &Allow);
	void __fastcall DoPrintBeforeDrawCell(int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect, int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	void __fastcall DoPrintAfterDrawCell(int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect, int ACol, int ARow, Fmx::Types::TFmxObject* Cell);
	void __fastcall DoPrintDrawTitle(int APageIndex, Fmx::Graphics::TCanvas* ACanvas, System::Types::TRectF &ARect, System::UnicodeString &ATitle, bool &Allow);
	void __fastcall DoPrintDrawDescription(int APageIndex, Fmx::Graphics::TCanvas* ACanvas, System::Types::TRectF &ARect, System::UnicodeString &ADescription, bool &Allow);
	void __fastcall DoPrintDrawPageNumber(int APageIndex, Fmx::Graphics::TCanvas* ACanvas, System::Types::TRectF &ARect, System::UnicodeString &APageNumberText, bool &Allow);
	void __fastcall DoPrintBeforeDraw(int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect, bool &Allow);
	void __fastcall DoPrintAfterDraw(int APageIndex, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect);
	void __fastcall DoPrintBegin(Fmx::Printer::TPrinter* APrinter);
	void __fastcall DoPrintProgress(int APageIndex, Fmx::Printer::TPrinter* APrinter, float APrintProgress);
	void __fastcall DoPrintNewPage(int APageIndex, Fmx::Printer::TPrinter* APrinter);
	void __fastcall DoPrintEndPage(int APageIndex, Fmx::Printer::TPrinter* APrinter);
	void __fastcall DoPrintEnd(Fmx::Printer::TPrinter* APrinter);
	virtual void __fastcall DoGetCellReadOnly(int ACol, int ARow, bool &AReadOnly);
	virtual void __fastcall DoBeforeDrawCell(System::TObject* Sender, Fmx::Graphics::TCanvas* ACanvas, System::Types::TRectF &ARect, System::Types::TRectF &ATextRect, bool &ADrawText, bool &ADrawBackGround, bool &AllowDraw);
	virtual void __fastcall DoAfterDrawCell(System::TObject* Sender, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect);
	virtual void __fastcall DoBeforeDrawGridCell(System::TObject* Sender, int ACol, int ARow, Fmx::Graphics::TCanvas* ACanvas, System::Types::TRectF &ARect, System::Types::TRectF &ATextRect, bool &ADrawText, bool &ADrawBackGround, bool &AllowDraw);
	virtual void __fastcall DoAfterDrawGridCell(System::TObject* Sender, int ACol, int ARow, Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &ARect);
	
public:
	__property TTMSFMXGridOnPrintProgress OnPrintPreviewProgress = {read=FOnPrintPreviewProgress, write=FOnPrintPreviewProgress};
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	virtual void __fastcall EditCell(const Fmx::Tmsgriddata::TCell &ACell, TEditCellStart CellStart = (TEditCellStart)(0x0), bool InsertKey = false, System::WideChar KeyChar = (System::WideChar)(0x0), System::Word Key = (System::Word)(0x0));
	void __fastcall CancelEdit(void);
	void __fastcall StopEdit(void);
	void __fastcall NextPage(void);
	int __fastcall VisibleRowCount(void);
	int __fastcall VisibleColumnCount(void);
	void __fastcall PreviousPage(void);
	Fmx::Tmsgriddata::TCell __fastcall GetDisplayCell(const Fmx::Tmsgriddata::TCell &ACell);
	Fmx::Tmsgriddata::TCell __fastcall GetRealCell(const Fmx::Tmsgriddata::TCell &ACell);
	Fmx::Controls::TControl* __fastcall GetCellObject(const Fmx::Tmsgriddata::TCell &ACell);
	Fmx::Controls::TControl* __fastcall GetCell(const Fmx::Tmsgriddata::TCell &ACell);
	void __fastcall Print(Fmx::Graphics::TCanvas* ACanvas = (Fmx::Graphics::TCanvas*)(0x0));
	int __fastcall GetPrintPageCount(void);
	System::Types::TPoint __fastcall GetPrintDPI(void);
	void __fastcall DoPrint(const Fmx::Tmsgriddata::TCellRange &ASelection, int *APages, const int APages_Size, System::UnicodeString AFileName = System::UnicodeString(), Fmx::Graphics::TCanvas* ACanvas = (Fmx::Graphics::TCanvas*)(0x0), bool AResetPosition = false, int AWidth = 0xffffffff, int AHeight = 0xffffffff);
	void __fastcall PrintPageSelection(const Fmx::Tmsgriddata::TCellRange &ASelection, int APageIndex = 0x1, Fmx::Graphics::TCanvas* ACanvas = (Fmx::Graphics::TCanvas*)(0x0), bool AResetPosition = false, int AWidth = 0xffffffff, int AHeight = 0xffffffff);
	void __fastcall PrintPageSelectionToImage(const Fmx::Tmsgriddata::TCellRange &ASelection, System::UnicodeString AFileName, int APageIndex = 0x1, int AWidth = 0xffffffff, int AHeight = 0xffffffff);
	void __fastcall PrintPagesSelection(const Fmx::Tmsgriddata::TCellRange &ASelection, int *APageIndexes, const int APageIndexes_Size, Fmx::Graphics::TCanvas* ACanvas = (Fmx::Graphics::TCanvas*)(0x0), bool AResetPosition = false, int AWidth = 0xffffffff, int AHeight = 0xffffffff);
	void __fastcall PrintPageFromToSelection(const Fmx::Tmsgriddata::TCellRange &ASelection, int APageFrom, int APageTo, Fmx::Graphics::TCanvas* ACanvas = (Fmx::Graphics::TCanvas*)(0x0), bool AResetPosition = false, int AWidth = 0xffffffff, int AHeight = 0xffffffff);
	void __fastcall PrintPage(int APageIndex = 0x1, Fmx::Graphics::TCanvas* ACanvas = (Fmx::Graphics::TCanvas*)(0x0), bool AResetPosition = false, int AWidth = 0xffffffff, int AHeight = 0xffffffff);
	void __fastcall PrintPages(int *APageIndexes, const int APageIndexes_Size, Fmx::Graphics::TCanvas* ACanvas = (Fmx::Graphics::TCanvas*)(0x0), bool AResetPosition = false, int AWidth = 0xffffffff, int AHeight = 0xffffffff);
	void __fastcall PrintPageFromTo(int APageFrom, int APageTo, Fmx::Graphics::TCanvas* ACanvas = (Fmx::Graphics::TCanvas*)(0x0), bool AResetPosition = false, int AWidth = 0xffffffff, int AHeight = 0xffffffff);
	void __fastcall PrintPageToImage(System::UnicodeString AFileName, int APageIndex = 0x1, int AWidth = 0xffffffff, int AHeight = 0xffffffff);
	void __fastcall PrintSelection(const Fmx::Tmsgriddata::TCellRange &ASelection, Fmx::Graphics::TCanvas* ACanvas = (Fmx::Graphics::TCanvas*)(0x0), bool AResetPosition = false, int AWidth = 0xffffffff, int AHeight = 0xffffffff);
	void __fastcall Scroll(float VerticalValue, float HorizontalValue);
	void __fastcall Navigate(const Fmx::Tmsgriddata::TCell &ACell, bool ForceScroll = false);
	__fastcall virtual TTMSFMXCustomGrid(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXCustomGrid(void);
	virtual void __fastcall ApplyStyle(void);
	virtual void __fastcall BeginUpdate(void);
	virtual void __fastcall EndUpdate(void);
	virtual void __fastcall ResetUpdate(void);
	virtual void __fastcall Resize(void);
	void __fastcall AutoSizeColumn(int ACol, bool Accurate = true);
	void __fastcall AutoSizeColumns(bool Accurate = true);
	void __fastcall AutoSizeRow(int ARow);
	void __fastcall AutoSizeRows(void);
	virtual void __fastcall SelectCell(const Fmx::Tmsgriddata::TCell &Cell, System::Classes::TShiftState Shift = System::Classes::TShiftState() , bool MouseDragging = false);
	virtual void __fastcall UpdateGridCells(void);
	void __fastcall CalculatePosition(int &cStart, int &cStop, int &rStart, int &rStop);
	void __fastcall UpdateGridCellAppearance(void);
	void __fastcall DoUpdateGridCellAppearance(const Fmx::Tmsgriddata::TCellRange &ASelection);
	void __fastcall DisplayCells(Fmx::Controls::TControl* cellContainer, float x, float y, float xOrig, float yOrig, int CStart, int CStop, int RStart, int RStop, int Ci, int Ri, int ResetCi, bool Fixed = false);
	void __fastcall RemoveAllCells(void);
	void __fastcall AssignEvents(void);
	System::Types::TRectF __fastcall GetRealRect(Fmx::Controls::TControl* AContainer, const System::Types::TRectF &ARect);
	Fmx::Controls::TControl* __fastcall GetCellContainer(void);
	Fmx::Controls::TControl* __fastcall GetCellWrapper(void);
	float __fastcall GetTotalColumnWidth(void);
	float __fastcall GetTotalRowHeight(void);
	Fmx::Stdctrls::TScrollBar* __fastcall GetVerticalScrollBar(void);
	Fmx::Stdctrls::TScrollBar* __fastcall GetHorizontalScrollBar(void);
	Fmx::Controls::TControl* __fastcall GetHeader(void);
	Fmx::Controls::TControl* __fastcall GetFooter(void);
	Fmx::Tmsgriddata::TCell __fastcall XYToCell(float X, float Y);
	int __fastcall GetFixedCols(void);
	int __fastcall GetFixedRows(void);
	float __fastcall GetFixedWidth(void);
	float __fastcall GetFixedPrintWidth(void);
	float __fastcall GetFixedPrintHeight(void);
	float __fastcall GetFixedOnlyHeight(void);
	float __fastcall GetFixedOnlyWidth(void);
	float __fastcall GetFixedHeight(void);
	float __fastcall GetFixedRightWidth(void);
	float __fastcall GetFixedFooterHeight(void);
	__property bool Editing = {read=FEditing, nodefault};
	__property Fmx::Tmsedit::TTMSFMXEdit* CellEdit = {read=FCellEdit, write=FCellEdit};
	__property Fmx::Tmsedit::TTMSFMXEditBtn* CellEditBtn = {read=FCellEditBtn, write=FCellEditBtn};
	__property Fmx::Listbox::TComboBox* CellComboBox = {read=FCellComboBox, write=FCellComboBox};
	__property Fmx::Edit::TComboEdit* CellComboEdit = {read=FCellComboEdit, write=FCellComboEdit};
	__property Fmx::Edit::TSpinBox* CellSpinBox = {read=FCellSpinBox, write=FCellSpinBox};
	__property TCellCalendarBox* CellDatePicker = {read=FCellDatePicker, write=FCellDatePicker};
	__property Fmx::Datetimectrls::TCalendarEdit* CellDateEdit = {read=FCellDateEdit, write=FCellDateEdit};
	__property Fmx::Colors::TComboColorBox* CellColorPicker = {read=FCellColorPicker, write=FCellColorPicker};
	__property Fmx::Colors::TColorComboBox* CellColorComboBox = {read=FCellColorComboBox, write=FCellColorComboBox};
	__property Fmx::Stdctrls::TTrackBar* CellTrackBar = {read=FCellTrackBar, write=FCellTrackBar};
	__property Fmx::Stdctrls::TArcDial* CellArcDial = {read=FCellArcDial, write=FCellArcDial};
	__property Fmx::Types::TFmxObject* ActiveEditControl = {read=FEditControl, write=FEditControl};
	
__published:
	__property Anchors;
	__property CanFocus = {default=1};
	__property System::UnicodeString Version = {read=GetVersion, write=SetVersion};
	__property Fill;
	__property Stroke;
	__property StrokeThickness = {default=0};
	__property StrokeCap = {default=0};
	__property StrokeDash = {default=0};
	__property StrokeJoin = {default=0};
	__property int TopRow = {read=GetTopRow, write=SetTopRow, nodefault};
	__property int LeftCol = {read=GetLeftCol, write=SetLeftCol, nodefault};
	__property TTMSFMXGridScrollMode ScrollMode = {read=FScrollMode, write=SetScrollMode, default=1};
	__property bool FixedShowSelection = {read=FFixedShowSelection, write=SetFixedShowSelection, default=1};
	__property int FreezeColumns = {read=FFreezeColumns, write=SetFreezeColumns, default=0};
	__property int FreezeRows = {read=FFreezeRows, write=SetFreezeRows, default=0};
	__property TTMSFMXGridTopLeftChanged OnTopLeftChanged = {read=FOnTopLeftChanged, write=FOnTopLeftChanged};
	__property TTMSFMXGridOnGetCellClass OnGetCellClass = {read=FOnGetCellClass, write=FOnGetCellClass};
	__property TTMSFMXGridOnGetCellControl OnGetCellControl = {read=FOnGetCellControl, write=FOnGetCellControl};
	__property TTMSFMXGridOnGetCellData OnGetCellData = {read=FOnGetCellData, write=FOnGetCellData};
	__property TTMSFMXGridOnGetCellProperties OnGetCellProperties = {read=FOnGetCellProperties, write=FOnGetCellProperties};
	__property TTMSFMXGridOnGetCellAppearance OnGetCellAppearance = {read=FOnGetCellAppearance, write=FOnGetCellAppearance};
	__property TTMSFMXGridOnGetCellLayout OnGetCellLayout = {read=FOnGetCellLayout, write=FOnGetCellLayout};
	__property TTMSFMXGridOnGetCellMergeInfo OnGetCellMergeInfo = {read=FOnGetCellMergeInfo, write=FOnGetCellMergeInfo};
	__property TTMSFMXGridOnGetCellReadOnly OnGetCellReadOnly = {read=FOnGetCellReadOnly, write=FOnGetCellReadOnly};
	__property TTMSFMXGridOnGetRowIsBand OnGetRowIsBand = {read=FOnGetRowIsBand, write=FOnGetRowIsBand};
	__property TTMSFMXGridOnCanInsertRow OnCanInsertRow = {read=FOnCanInsertRow, write=FOnCanInsertRow};
	__property TTMSFMXGridOnCanAppendRow OnCanAppendRow = {read=FOnCanAppendRow, write=FOnCanAppendRow};
	__property TTMSFMXGridOnCanAppendColumn OnCanAppendColumn = {read=FOnCanAppendColumn, write=FOnCanAppendColumn};
	__property TTMSFMXGridOnCanDeleteRow OnCanDeleteRow = {read=FOnCanDeleteRow, write=FOnCanDeleteRow};
	__property TTMSFMXGridOnInsertRow OnInsertRow = {read=FOnInsertRow, write=FOnInsertRow};
	__property TTMSFMXGridOnAppendRow OnAppendRow = {read=FOnAppendRow, write=FOnAppendRow};
	__property TTMSFMXGridOnAppendColumn OnAppendColumn = {read=FOnAppendColumn, write=FOnAppendColumn};
	__property TTMSFMXGridOnDeleteRow OnDeleteRow = {read=FOnDeleteRow, write=FOnDeleteRow};
	__property TTMSFMXGridOnCellAnchorClick OnCellAnchorClick = {read=FOnCellAnchorClick, write=FOnCellAnchorClick};
	__property TTMSFMXGridOnGetCellEditorCustomClassType OnGetCellEditorCustomClassType = {read=FOnGetCellEditorCustomClassType, write=FOnGetCellEditorCustomClassType};
	__property TTMSFMXGridOnGetCellEditorType OnGetCellEditorType = {read=FOnGetCellEditorType, write=FOnGetCellEditorType};
	__property TTMSFMXGridOnCellEditGetData OnCellEditGetData = {read=FOnCellEditGetData, write=FOnCellEditGetData};
	__property TTMSFMXGridOnCellEditValidateData OnCellEditValidateData = {read=FOnCellEditValidateData, write=FOnCellEditValidateData};
	__property TTMSFMXGridOnCellEditSetData OnCellEditSetData = {read=FOnCellEditSetData, write=FOnCellEditSetData};
	__property TTMSFMXGridOnCellEditGetColor OnCellEditGetColor = {read=FOnCellEditGetColor, write=FOnCellEditGetColor};
	__property TTMSFMXGridOnCellEditValidateColor OnCellEditValidateColor = {read=FOnCellEditValidateColor, write=FOnCellEditValidateColor};
	__property TTMSFMXGridOnCellEditSetColor OnCellEditSetColor = {read=FOnCellEditSetColor, write=FOnCellEditSetColor};
	__property TTMSFMXGridOnCellEditDone OnCellEditDone = {read=FOnCellEditDone, write=FOnCellEditDone};
	__property TTMSFMXGridOnCellEditCancel OnCellEditCancel = {read=FOnCellEditCancel, write=FOnCellEditCancel};
	__property TTMSFMXGridOnGetCellEditorProperties OnGetCellEditorProperties = {read=FOnGetCellEditorProperties, write=FOnGetCellEditorProperties};
	__property TTMSFMXGridOnGetCellIsFixed OnGetCellIsFixed = {read=FOnGetCellIsFixed, write=FOnGetCellIsFixed};
	__property TTMSFMXGridCellControlEvent OnFixedCellBitmapClick = {read=FOnFixedCellBitmapClick, write=FOnFixedCellBitmapClick};
	__property TTMSFMXGridCellControlEvent OnFixedCellButtonClick = {read=FOnFixedCellButtonClick, write=FOnFixedCellButtonClick};
	__property TTMSFMXGridCellControlEvent OnFixedCellDropDownButtonClick = {read=FOnFixedCellDropDownButtonClick, write=FOnFixedCellDropDownButtonClick};
	__property TTMSFMXGridCellControlEvent OnFixedCellCheckBoxClick = {read=FOnFixedCellCheckBoxClick, write=FOnFixedCellCheckBoxClick};
	__property TTMSFMXGridCellControlEvent OnFixedCellSpinBoxChange = {read=FOnFixedCellSpinBoxChange, write=FOnFixedCellSpinBoxChange};
	__property TTMSFMXGridCellBeforeDraw OnCellBeforeDraw = {read=FOnCellBeforeDraw, write=FOnCellBeforeDraw};
	__property TTMSFMXGridCellAfterDraw OnCellAfterDraw = {read=FOnCellAfterDraw, write=FOnCellAfterDraw};
	__property TTMSFMXGridCellControlEvent OnCellBitmapClick = {read=FOnCellBitmapClick, write=FOnCellBitmapClick};
	__property TTMSFMXGridCellControlEvent OnCellButtonClick = {read=FOnCellButtonClick, write=FOnCellButtonClick};
	__property TTMSFMXGridCellControlEvent OnCellRadioButtonClick = {read=FOnCellRadioButtonClick, write=FOnCellRadioButtonClick};
	__property TTMSFMXGridCellControlEvent OnCellShowPopup = {read=FOnCellShowPopup, write=FOnCellShowPopup};
	__property TTMSFMXGridCellControlEvent OnCellHidePopup = {read=FOnCellHidePopup, write=FOnCellHidePopup};
	__property TTMSFMXGridCellControlEvent OnCellCheckBoxClick = {read=FOnCellCheckBoxClick, write=FOnCellCheckBoxClick};
	__property TTMSFMXGridCellControlEvent OnCellCommentClick = {read=FOnCellCommentClick, write=FOnCellCommentClick};
	__property TTMSFMXGridCellControlEvent OnCellSortClick = {read=FOnCellSortClick, write=FOnCellSortClick};
	__property TTMSFMXGridCellControlEvent OnCellNodeClick = {read=FOnCellNodeClick, write=FOnCellNodeClick};
	__property TTMSFMXGridOnCanSizeColumn OnCanSizeColumn = {read=FOnCanSizeColumn, write=FOnCanSizeColumn};
	__property TTMSFMXGridOnCanSizeRow OnCanSizeRow = {read=FOnCanSizeRow, write=FOnCanSizeRow};
	__property TTMSFMXGridOnColumnSize OnColumnSize = {read=FOnColumnSize, write=FOnColumnSize};
	__property TTMSFMXGridOnRowSize OnRowSize = {read=FOnRowSize, write=FOnRowSize};
	__property TTMSFMXGridOnColumnSized OnColumnSized = {read=FOnColumnSized, write=FOnColumnSized};
	__property TTMSFMXGridOnRowSized OnRowSized = {read=FOnRowSized, write=FOnRowSized};
	__property TTMSFMXGridOnCanSizeColumn OnCanDragColumn = {read=FOnCanDragColumn, write=FOnCanDragColumn};
	__property TTMSFMXGridOnCanSizeRow OnCanDragRow = {read=FOnCanDragRow, write=FOnCanDragRow};
	__property TTMSFMXGridOnColumnDragged OnColumnDragged = {read=FOnColumnDragged, write=FOnColumnDragged};
	__property TTMSFMXGridOnRowDragged OnRowDragged = {read=FOnRowDragged, write=FOnRowDragged};
	__property TTMSFMXGridOnColumnSorted OnColumnSorted = {read=FOnColumnSorted, write=FOnColumnSorted};
	__property TTMSFMXGridOnCanSortColumn OnCanSortColumn = {read=FOnCanSortColumn, write=FOnCanSortColumn};
	__property TTMSFMXGridOnCellClick OnCellClick = {read=FOnCellClick, write=FOnCellClick};
	__property TTMSFMXGridOnCellClick OnFixedCellClick = {read=FOnFixedCellClick, write=FOnFixedCellClick};
	__property TTMSFMXGridOnPrintEvent OnPrintBegin = {read=FOnPrintBegin, write=FOnPrintBegin};
	__property TTMSFMXGridOnPrintNewPage OnPrintNewPage = {read=FOnPrintNewPage, write=FOnPrintNewPage};
	__property TTMSFMXGridOnPrintDrawCell OnPrintDrawCell = {read=FOnPrintDrawCell, write=FOnPrintDrawCell};
	__property TTMSFMXGridOnPrintBeforeDrawCell OnPrintBeforeDrawCell = {read=FOnPrintBeforeDrawCell, write=FOnPrintBeforeDrawCell};
	__property TTMSFMXGridOnPrintAfterDrawCell OnPrintAfterDrawCell = {read=FOnPrintAfterDrawCell, write=FOnPrintAfterDrawCell};
	__property TTMSFMXGridOnPrintProgress OnPrintProgress = {read=FOnPrintProgress, write=FOnPrintProgress};
	__property TTMSFMXGridOnPrintEvent OnPrintEnd = {read=FOnPrintEnd, write=FOnPrintEnd};
	__property TTMSFMXGridOnPrintEndPage OnPrintEndPage = {read=FOnPrintEndPage, write=FOnPrintEndPage};
	__property TTMSFMXGridOnPrintDrawText OnPrintDrawTitle = {read=FOnPrintDrawTitle, write=FOnPrintDrawTitle};
	__property TTMSFMXGridOnPrintDrawText OnPrintDrawDescription = {read=FOnPrintDrawDescription, write=FOnPrintDrawDescription};
	__property TTMSFMXGridOnPrintDrawText OnPrintDrawPageNumber = {read=FOnPrintDrawPageNumber, write=FOnPrintDrawPageNumber};
	__property TTMSFMXGridOnPrintBeforeDraw OnPrintBeforeDraw = {read=FOnPrintBeforeDraw, write=FOnPrintBeforeDraw};
	__property TTMSFMXGridOnPrintAfterDraw OnPrintAfterDraw = {read=FOnPrintAfterDraw, write=FOnPrintAfterDraw};
	__property TTMSFMXGridOnSelectCell OnSelectCell = {read=FOnSelectCell, write=FOnSelectCell};
};


//-- var, const, procedure ---------------------------------------------------
static const System::Int8 MAJ_VER = System::Int8(0x2);
static const System::Int8 MIN_VER = System::Int8(0x0);
static const System::Int8 REL_VER = System::Int8(0x3);
static const System::Int8 BLD_VER = System::Int8(0x8);
static const System::Int8 CLICKMARGIN = System::Int8(0x2);
extern DELPHI_PACKAGE void __fastcall GetAspectSize(float &x, float &y, float &w, float &h, float ow, float oh, float nw, float nh);
}	/* namespace Tmscustomgrid */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSCUSTOMGRID)
using namespace Fmx::Tmscustomgrid;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX)
using namespace Fmx;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// Fmx_TmscustomgridHPP
