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

// (DO NOT EDIT: machine generated header) 'QImport3WideStringGrid.pas' rev: 34.00 (Windows)

#ifndef Qimport3widestringgridHPP
#define Qimport3widestringgridHPP

#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>
#include <SysInit.hpp>
#include <System.WideStrings.hpp>
#include <System.Classes.hpp>
#include <System.Math.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.Graphics.hpp>
#include <Vcl.Grids.hpp>
#include <Vcl.Mask.hpp>
#include <Vcl.Menus.hpp>
#include <Vcl.StdCtrls.hpp>
#include <System.SysUtils.hpp>
#include <System.Types.hpp>
#include <System.UITypes.hpp>
#include <Winapi.Messages.hpp>
#include <Winapi.Windows.hpp>
#include <QImport3CustomControl.hpp>
#include <QImport3WideStringCanvas.hpp>

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

namespace Qimport3widestringgrid
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TEmsInplaceEdit;
class DELPHICLASS TEmsCustomGrid;
class DELPHICLASS TEmsDrawGrid;
class DELPHICLASS TEmsWideStringGridStrings;
class DELPHICLASS TEmsWideStringGrid;
//-- type declarations -------------------------------------------------------
class PASCALIMPLEMENTATION TEmsInplaceEdit : public Vcl::Mask::TCustomMaskEdit
{
	typedef Vcl::Mask::TCustomMaskEdit inherited;
	
private:
	TEmsCustomGrid* FGrid;
	int FClickTime;
	void __fastcall InternalMove(const System::Types::TRect &Loc, bool Redraw);
	void __fastcall SetGrid(TEmsCustomGrid* Value);
	HIDESBASE MESSAGE void __fastcall CMShowingChanged(Winapi::Messages::TMessage &Message);
	MESSAGE void __fastcall WMGetDlgCode(Winapi::Messages::TWMNoParams &Message);
	HIDESBASE MESSAGE void __fastcall WMPaste(void *Message);
	HIDESBASE MESSAGE void __fastcall WMCut(void *Message);
	MESSAGE void __fastcall WMClear(void *Message);
	
protected:
	virtual void __fastcall CreateParams(Vcl::Controls::TCreateParams &Params);
	DYNAMIC void __fastcall DblClick();
	DYNAMIC bool __fastcall DoMouseWheel(System::Classes::TShiftState Shift, int WheelDelta, const System::Types::TPoint &MousePos);
	virtual bool __fastcall EditCanModify();
	DYNAMIC void __fastcall KeyDown(System::Word &Key, System::Classes::TShiftState Shift);
	DYNAMIC void __fastcall KeyPress(System::WideChar &Key);
	DYNAMIC void __fastcall KeyUp(System::Word &Key, System::Classes::TShiftState Shift);
	virtual void __fastcall BoundsChanged();
	virtual void __fastcall UpdateContents();
	virtual void __fastcall WndProc(Winapi::Messages::TMessage &Message);
	__property TEmsCustomGrid* Grid = {read=FGrid};
	
public:
	__fastcall virtual TEmsInplaceEdit(System::Classes::TComponent* AOwner);
	void __fastcall Deselect();
	HIDESBASE void __fastcall Hide();
	HIDESBASE void __fastcall Invalidate();
	void __fastcall Move(const System::Types::TRect &Loc);
	bool __fastcall PosEqual(const System::Types::TRect &Rect);
	HIDESBASE void __fastcall SetFocus();
	void __fastcall UpdateLoc(const System::Types::TRect &Loc);
	HIDESBASE bool __fastcall Visible();
public:
	/* TWinControl.CreateParented */ inline __fastcall TEmsInplaceEdit(HWND ParentWindow) : Vcl::Mask::TCustomMaskEdit(ParentWindow) { }
	/* TWinControl.Destroy */ inline __fastcall virtual ~TEmsInplaceEdit() { }
	
};


class PASCALIMPLEMENTATION TEmsCustomGrid : public Qimport3customcontrol::TEmsCustomControl
{
	typedef Qimport3customcontrol::TEmsCustomControl inherited;
	
private:
	Vcl::Grids::TGridCoord FAnchor;
	Vcl::Forms::TFormBorderStyle FBorderStyle;
	bool FCanEditModify;
	int FColCount;
	void *FColWidths;
	void *FTabStops;
	Vcl::Grids::TGridCoord FCurrent;
	int FDefaultColWidth;
	int FDefaultRowHeight;
	int FFixedCols;
	int FFixedRows;
	System::Uitypes::TColor FFixedColor;
	int FGridLineWidth;
	Vcl::Grids::TGridOptions FOptions;
	int FRowCount;
	void *FRowHeights;
	System::Uitypes::TScrollStyle FScrollBars;
	Vcl::Grids::TGridCoord FTopLeft;
	int FSizingIndex;
	int FSizingPos;
	int FSizingOfs;
	int FMoveIndex;
	int FMovePos;
	System::Types::TPoint FHitTest;
	TEmsInplaceEdit* FInplaceEdit;
	int FInplaceCol;
	int FInplaceRow;
	int FColOffset;
	bool FDefaultDrawing;
	bool FEditorMode;
	Vcl::Grids::TGridCoord __fastcall CalcCoordFromPoint(int X, int Y, const Vcl::Grids::TGridDrawInfo &DrawInfo);
	void __fastcall CalcDrawInfoXY(Vcl::Grids::TGridDrawInfo &DrawInfo, int UseWidth, int UseHeight);
	Vcl::Grids::TGridCoord __fastcall CalcMaxTopLeft(const Vcl::Grids::TGridCoord &Coord, const Vcl::Grids::TGridDrawInfo &DrawInfo);
	void __fastcall CancelMode();
	void __fastcall ChangeGridOrientation(bool RightToLeftOrientation);
	void __fastcall ChangeSize(int NewColCount, int NewRowCount);
	void __fastcall ClampInView(const Vcl::Grids::TGridCoord &Coord);
	void __fastcall DrawSizingLine(const Vcl::Grids::TGridDrawInfo &DrawInfo);
	void __fastcall DrawMove();
	void __fastcall FocusCell(int ACol, int ARow, bool MoveAnchor);
	void __fastcall GridRectToScreenRect(const Vcl::Grids::TGridRect &GridRect, System::Types::TRect &ScreenRect, bool IncludeLine);
	void __fastcall HideEdit();
	void __fastcall Initialize();
	void __fastcall InvalidateGrid();
	void __fastcall InvalidateRect(const Vcl::Grids::TGridRect &ARect);
	void __fastcall ModifyScrollBar(unsigned ScrollBar, unsigned ScrollCode, unsigned Pos, bool UseRightToLeft);
	void __fastcall MoveAdjust(int &CellPos, int FromIndex, int ToIndex);
	void __fastcall MoveAnchor(const Vcl::Grids::TGridCoord &NewAnchor);
	void __fastcall MoveAndScroll(int Mouse, int CellHit, Vcl::Grids::TGridDrawInfo &DrawInfo, Vcl::Grids::TGridAxisDrawInfo &Axis, int Scrollbar, const System::Types::TPoint &MousePt);
	void __fastcall MoveCurrent(int ACol, int ARow, bool MoveAnchor, bool Show);
	void __fastcall MoveTopLeft(int ALeft, int ATop);
	void __fastcall ResizeCol(int Index, int OldSize, int NewSize);
	void __fastcall ResizeRow(int Index, int OldSize, int NewSize);
	void __fastcall SelectionMoved(const Vcl::Grids::TGridRect &OldSel);
	void __fastcall ScrollDataInfo(int DX, int DY, Vcl::Grids::TGridDrawInfo &DrawInfo);
	void __fastcall TopLeftMoved(const Vcl::Grids::TGridCoord &OldTopLeft);
	void __fastcall UpdateScrollPos();
	void __fastcall UpdateScrollRange();
	int __fastcall GetColWidths(int Index);
	int __fastcall GetRowHeights(int Index);
	Vcl::Grids::TGridRect __fastcall GetSelection();
	bool __fastcall GetTabStops(int Index);
	int __fastcall GetVisibleColCount();
	int __fastcall GetVisibleRowCount();
	bool __fastcall IsActiveControl();
	void __fastcall ReadColWidths(System::Classes::TReader* Reader);
	void __fastcall ReadRowHeights(System::Classes::TReader* Reader);
	void __fastcall SetBorderStyle(Vcl::Forms::TBorderStyle Value);
	void __fastcall SetCol(int Value);
	void __fastcall SetColCount(int Value);
	void __fastcall SetColWidths(int Index, int Value);
	void __fastcall SetDefaultColWidth(int Value);
	void __fastcall SetDefaultRowHeight(int Value);
	void __fastcall SetEditorMode(bool Value);
	void __fastcall SetFixedColor(System::Uitypes::TColor Value);
	void __fastcall SetFixedCols(int Value);
	void __fastcall SetFixedRows(int Value);
	void __fastcall SetGridLineWidth(int Value);
	void __fastcall SetLeftCol(int Value);
	void __fastcall SetOptions(Vcl::Grids::TGridOptions Value);
	void __fastcall SetRow(int Value);
	void __fastcall SetRowCount(int Value);
	void __fastcall SetRowHeights(int Index, int Value);
	void __fastcall SetScrollBars(System::Uitypes::TScrollStyle Value);
	void __fastcall SetSelection(const Vcl::Grids::TGridRect &Value);
	void __fastcall SetTabStops(int Index, bool Value);
	void __fastcall SetTopRow(int Value);
	void __fastcall UpdateEdit();
	void __fastcall UpdateText();
	void __fastcall WriteColWidths(System::Classes::TWriter* Writer);
	void __fastcall WriteRowHeights(System::Classes::TWriter* Writer);
	MESSAGE void __fastcall CMCancelMode(Winapi::Messages::TMessage &Msg);
	HIDESBASE MESSAGE void __fastcall CMFontChanged(Winapi::Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMCtl3DChanged(Winapi::Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall CMDesignHitTest(Winapi::Messages::TWMMouse &Msg);
	MESSAGE void __fastcall CMWantSpecialKey(Winapi::Messages::TWMKey &Msg);
	HIDESBASE MESSAGE void __fastcall CMShowingChanged(Winapi::Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall WMChar(Winapi::Messages::TWMKey &Msg);
	HIDESBASE MESSAGE void __fastcall WMCancelMode(Winapi::Messages::TWMNoParams &Msg);
	HIDESBASE MESSAGE void __fastcall WMCommand(Winapi::Messages::TWMCommand &Message);
	MESSAGE void __fastcall WMGetDlgCode(Winapi::Messages::TWMNoParams &Msg);
	HIDESBASE MESSAGE void __fastcall WMHScroll(Winapi::Messages::TWMScroll &Msg);
	HIDESBASE MESSAGE void __fastcall WMKillFocus(Winapi::Messages::TWMKillFocus &Msg);
	HIDESBASE MESSAGE void __fastcall WMLButtonDown(Winapi::Messages::TMessage &Message);
	HIDESBASE MESSAGE void __fastcall WMNCHitTest(Winapi::Messages::TWMNCHitTest &Msg);
	HIDESBASE MESSAGE void __fastcall WMSetCursor(Winapi::Messages::TWMSetCursor &Msg);
	HIDESBASE MESSAGE void __fastcall WMSetFocus(Winapi::Messages::TWMSetFocus &Msg);
	HIDESBASE MESSAGE void __fastcall WMSize(Winapi::Messages::TWMSize &Msg);
	MESSAGE void __fastcall WMTimer(Winapi::Messages::TWMTimer &Msg);
	HIDESBASE MESSAGE void __fastcall WMVScroll(Winapi::Messages::TWMScroll &Msg);
	
protected:
	Vcl::Grids::TGridState FGridState;
	bool FSaveCellExtents;
	Vcl::Grids::TGridOptions DesignOptionsBoost;
	bool VirtualView;
	void __fastcall CalcDrawInfo(Vcl::Grids::TGridDrawInfo &DrawInfo);
	void __fastcall CalcFixedInfo(Vcl::Grids::TGridDrawInfo &DrawInfo);
	virtual void __fastcall CalcSizingState(int X, int Y, Vcl::Grids::TGridState &State, int &Index, int &SizingPos, int &SizingOfs, Vcl::Grids::TGridDrawInfo &FixedInfo);
	virtual TEmsInplaceEdit* __fastcall CreateEditor();
	virtual void __fastcall CreateParams(Vcl::Controls::TCreateParams &Params);
	DYNAMIC void __fastcall KeyDown(System::Word &Key, System::Classes::TShiftState Shift);
	DYNAMIC void __fastcall KeyPress(System::WideChar &Key);
	DYNAMIC void __fastcall MouseDown(System::Uitypes::TMouseButton Button, System::Classes::TShiftState Shift, int X, int Y);
	DYNAMIC void __fastcall MouseMove(System::Classes::TShiftState Shift, int X, int Y);
	DYNAMIC void __fastcall MouseUp(System::Uitypes::TMouseButton Button, System::Classes::TShiftState Shift, int X, int Y);
	HIDESBASEDYNAMIC void __fastcall AdjustSize(int Index, int Amount, bool Rows);
	System::Types::TRect __fastcall BoxRect(int ALeft, int ATop, int ARight, int ABottom);
	DYNAMIC void __fastcall DoExit();
	System::Types::TRect __fastcall CellRect(int ACol, int ARow);
	DYNAMIC bool __fastcall CanEditAcceptKey(System::WideChar Key);
	DYNAMIC bool __fastcall CanGridAcceptKey(System::Word Key, System::Classes::TShiftState Shift);
	DYNAMIC bool __fastcall CanEditModify();
	virtual bool __fastcall CanEditShow();
	DYNAMIC bool __fastcall DoMouseWheelDown(System::Classes::TShiftState Shift, const System::Types::TPoint &MousePos);
	DYNAMIC bool __fastcall DoMouseWheelUp(System::Classes::TShiftState Shift, const System::Types::TPoint &MousePos);
	DYNAMIC System::WideString __fastcall GetEditText(int ACol, int ARow);
	DYNAMIC void __fastcall SetEditText(int ACol, int ARow, const System::WideString Value);
	DYNAMIC System::WideString __fastcall GetEditMask(int ACol, int ARow);
	DYNAMIC int __fastcall GetEditLimit();
	int __fastcall GetGridWidth();
	int __fastcall GetGridHeight();
	void __fastcall HideEditor();
	void __fastcall ShowEditor();
	void __fastcall ShowEditorChar(System::WideChar Ch);
	void __fastcall InvalidateEditor();
	void __fastcall MoveColumn(int FromIndex, int ToIndex);
	DYNAMIC void __fastcall ColumnMoved(int FromIndex, int ToIndex);
	void __fastcall MoveRow(int FromIndex, int ToIndex);
	DYNAMIC void __fastcall RowMoved(int FromIndex, int ToIndex);
	virtual void __fastcall DrawCell(int ACol, int ARow, const System::Types::TRect &ARect, Vcl::Grids::TGridDrawState AState) = 0 ;
	virtual void __fastcall DefineProperties(System::Classes::TFiler* Filer);
	void __fastcall MoveColRow(int ACol, int ARow, bool MoveAnchor, bool Show);
	virtual bool __fastcall SelectCell(int ACol, int ARow);
	DYNAMIC void __fastcall SizeChanged(int OldColCount, int OldRowCount);
	bool __fastcall Sizing(int X, int Y);
	void __fastcall ScrollData(int DX, int DY);
	void __fastcall InvalidateCell(int ACol, int ARow);
	void __fastcall InvalidateCol(int ACol);
	void __fastcall InvalidateRow(int ARow);
	DYNAMIC void __fastcall TopLeftChanged();
	DYNAMIC void __fastcall TimedScroll(Vcl::Grids::TGridScrollDirection Direction);
	virtual void __fastcall Paint();
	DYNAMIC void __fastcall ColWidthsChanged();
	DYNAMIC void __fastcall RowHeightsChanged();
	virtual void __fastcall DeleteColumn(int ACol);
	virtual void __fastcall DeleteRow(int ARow);
	void __fastcall UpdateDesigner();
	DYNAMIC bool __fastcall BeginColumnDrag(int &Origin, int &Destination, const System::Types::TPoint &MousePt);
	DYNAMIC bool __fastcall BeginRowDrag(int &Origin, int &Destination, const System::Types::TPoint &MousePt);
	DYNAMIC bool __fastcall CheckColumnDrag(int &Origin, int &Destination, const System::Types::TPoint &MousePt);
	DYNAMIC bool __fastcall CheckRowDrag(int &Origin, int &Destination, const System::Types::TPoint &MousePt);
	DYNAMIC bool __fastcall EndColumnDrag(int &Origin, int &Destination, const System::Types::TPoint &MousePt);
	DYNAMIC bool __fastcall EndRowDrag(int &Origin, int &Destination, const System::Types::TPoint &MousePt);
	__property Vcl::Forms::TBorderStyle BorderStyle = {read=FBorderStyle, write=SetBorderStyle, default=1};
	__property int Col = {read=FCurrent.X, write=SetCol, nodefault};
	__property Color = {default=-16777211};
	__property int ColCount = {read=FColCount, write=SetColCount, default=5};
	__property int ColWidths[int Index] = {read=GetColWidths, write=SetColWidths};
	__property int DefaultColWidth = {read=FDefaultColWidth, write=SetDefaultColWidth, default=64};
	__property bool DefaultDrawing = {read=FDefaultDrawing, write=FDefaultDrawing, default=1};
	__property int DefaultRowHeight = {read=FDefaultRowHeight, write=SetDefaultRowHeight, default=24};
	__property bool EditorMode = {read=FEditorMode, write=SetEditorMode, nodefault};
	__property System::Uitypes::TColor FixedColor = {read=FFixedColor, write=SetFixedColor, default=-16777201};
	__property int FixedCols = {read=FFixedCols, write=SetFixedCols, default=1};
	__property int FixedRows = {read=FFixedRows, write=SetFixedRows, default=1};
	__property int GridHeight = {read=GetGridHeight, nodefault};
	__property int GridLineWidth = {read=FGridLineWidth, write=SetGridLineWidth, default=1};
	__property int GridWidth = {read=GetGridWidth, nodefault};
	__property System::Types::TPoint HitTest = {read=FHitTest};
	__property TEmsInplaceEdit* InplaceEditor = {read=FInplaceEdit};
	__property int LeftCol = {read=FTopLeft.X, write=SetLeftCol, nodefault};
	__property Vcl::Grids::TGridOptions Options = {read=FOptions, write=SetOptions, default=31};
	__property ParentColor = {default=0};
	__property int Row = {read=FCurrent.Y, write=SetRow, nodefault};
	__property int RowCount = {read=FRowCount, write=SetRowCount, default=5};
	__property int RowHeights[int Index] = {read=GetRowHeights, write=SetRowHeights};
	__property System::Uitypes::TScrollStyle ScrollBars = {read=FScrollBars, write=SetScrollBars, default=3};
	__property Vcl::Grids::TGridRect Selection = {read=GetSelection, write=SetSelection};
	__property bool TabStops[int Index] = {read=GetTabStops, write=SetTabStops};
	__property int TopRow = {read=FTopLeft.Y, write=SetTopRow, nodefault};
	__property int VisibleColCount = {read=GetVisibleColCount, nodefault};
	__property int VisibleRowCount = {read=GetVisibleRowCount, nodefault};
	
public:
	__fastcall virtual TEmsCustomGrid(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TEmsCustomGrid();
	Vcl::Grids::TGridCoord __fastcall MouseCoord(int X, int Y);
	
__published:
	__property TabStop = {default=1};
public:
	/* TWinControl.CreateParented */ inline __fastcall TEmsCustomGrid(HWND ParentWindow) : Qimport3customcontrol::TEmsCustomControl(ParentWindow) { }
	
};


typedef void __fastcall (__closure *TGetEditEventW)(System::TObject* Sender, int ACol, int ARow, System::WideString &Value);

typedef void __fastcall (__closure *TSetEditEventW)(System::TObject* Sender, int ACol, int ARow, const System::WideString Value);

typedef void __fastcall (__closure *TMovedEvent)(System::TObject* Sender, int FromIndex, int ToIndex);

class PASCALIMPLEMENTATION TEmsDrawGrid : public TEmsCustomGrid
{
	typedef TEmsCustomGrid inherited;
	
private:
	TMovedEvent FOnColumnMoved;
	Vcl::Grids::TDrawCellEvent FOnDrawCell;
	TGetEditEventW FOnGetEditMask;
	TGetEditEventW FOnGetEditText;
	TMovedEvent FOnRowMoved;
	Vcl::Grids::TSelectCellEvent FOnSelectCell;
	TSetEditEventW FOnSetEditText;
	System::Classes::TNotifyEvent FOnTopLeftChanged;
	
protected:
	DYNAMIC void __fastcall ColumnMoved(int FromIndex, int ToIndex);
	virtual void __fastcall DrawCell(int ACol, int ARow, const System::Types::TRect &ARect, Vcl::Grids::TGridDrawState AState);
	DYNAMIC System::WideString __fastcall GetEditMask(int ACol, int ARow);
	DYNAMIC System::WideString __fastcall GetEditText(int ACol, int ARow);
	DYNAMIC void __fastcall RowMoved(int FromIndex, int ToIndex);
	virtual bool __fastcall SelectCell(int ACol, int ARow);
	DYNAMIC void __fastcall SetEditText(int ACol, int ARow, const System::WideString Value);
	DYNAMIC void __fastcall TopLeftChanged();
	
public:
	HIDESBASE System::Types::TRect __fastcall CellRect(int ACol, int ARow);
	void __fastcall MouseToCell(int X, int Y, int &ACol, int &ARow);
	__property Canvas;
	__property Col;
	__property ColWidths;
	__property EditorMode;
	__property GridHeight;
	__property GridWidth;
	__property LeftCol;
	__property Selection;
	__property Row;
	__property RowHeights;
	__property TabStops;
	__property TopRow;
	
__published:
	__property Align = {default=0};
	__property Anchors = {default=3};
	__property BiDiMode;
	__property BorderStyle = {default=1};
	__property Color = {default=-16777211};
	__property ColCount = {default=5};
	__property Constraints;
	__property Ctl3D;
	__property DefaultColWidth = {default=64};
	__property DefaultRowHeight = {default=24};
	__property DefaultDrawing = {default=1};
	__property DragCursor = {default=-12};
	__property DragKind = {default=0};
	__property DragMode = {default=0};
	__property Enabled = {default=1};
	__property FixedColor = {default=-16777201};
	__property FixedCols = {default=1};
	__property RowCount = {default=5};
	__property FixedRows = {default=1};
	__property Font;
	__property GridLineWidth = {default=1};
	__property Options = {default=31};
	__property ParentBiDiMode = {default=1};
	__property ParentColor = {default=0};
	__property ParentCtl3D = {default=1};
	__property ParentFont = {default=1};
	__property ParentShowHint = {default=1};
	__property PopupMenu;
	__property ScrollBars = {default=3};
	__property ShowHint;
	__property TabOrder = {default=-1};
	__property TabStop = {default=1};
	__property Visible = {default=1};
	__property VisibleColCount;
	__property VisibleRowCount;
	__property OnClick;
	__property TMovedEvent OnColumnMoved = {read=FOnColumnMoved, write=FOnColumnMoved};
	__property OnContextPopup;
	__property OnDblClick;
	__property OnDragDrop;
	__property OnDragOver;
	__property Vcl::Grids::TDrawCellEvent OnDrawCell = {read=FOnDrawCell, write=FOnDrawCell};
	__property OnEndDock;
	__property OnEndDrag;
	__property OnEnter;
	__property OnExit;
	__property TGetEditEventW OnGetEditMask = {read=FOnGetEditMask, write=FOnGetEditMask};
	__property TGetEditEventW OnGetEditText = {read=FOnGetEditText, write=FOnGetEditText};
	__property OnKeyDown;
	__property OnKeyPress;
	__property OnKeyUp;
	__property OnMouseDown;
	__property OnMouseMove;
	__property OnMouseUp;
	__property OnMouseWheelDown;
	__property OnMouseWheelUp;
	__property TMovedEvent OnRowMoved = {read=FOnRowMoved, write=FOnRowMoved};
	__property Vcl::Grids::TSelectCellEvent OnSelectCell = {read=FOnSelectCell, write=FOnSelectCell};
	__property TSetEditEventW OnSetEditText = {read=FOnSetEditText, write=FOnSetEditText};
	__property OnStartDock;
	__property OnStartDrag;
	__property System::Classes::TNotifyEvent OnTopLeftChanged = {read=FOnTopLeftChanged, write=FOnTopLeftChanged};
public:
	/* TEmsCustomGrid.Create */ inline __fastcall virtual TEmsDrawGrid(System::Classes::TComponent* AOwner) : TEmsCustomGrid(AOwner) { }
	/* TEmsCustomGrid.Destroy */ inline __fastcall virtual ~TEmsDrawGrid() { }
	
public:
	/* TWinControl.CreateParented */ inline __fastcall TEmsDrawGrid(HWND ParentWindow) : TEmsCustomGrid(ParentWindow) { }
	
};


#pragma pack(push,4)
class PASCALIMPLEMENTATION TEmsWideStringGridStrings : public System::Widestrings::TWideStrings
{
	typedef System::Widestrings::TWideStrings inherited;
	
private:
	TEmsWideStringGrid* FGrid;
	int FIndex;
	void __fastcall CalcXY(int Index, int &X, int &Y);
	
protected:
	virtual System::WideString __fastcall Get(int Index);
	virtual int __fastcall GetCount();
	virtual System::TObject* __fastcall GetObject(int Index);
	virtual void __fastcall Put(int Index, const System::WideString S);
	virtual void __fastcall PutObject(int Index, System::TObject* AObject);
	virtual void __fastcall SetUpdateState(bool Updating);
	
public:
	__fastcall TEmsWideStringGridStrings(TEmsWideStringGrid* AGrid, int AIndex);
	virtual int __fastcall Add(const System::WideString S);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	virtual void __fastcall Clear();
	virtual void __fastcall Delete(int Index);
	virtual void __fastcall Insert(int Index, const System::WideString S);
public:
	/* TWideStrings.Destroy */ inline __fastcall virtual ~TEmsWideStringGridStrings() { }
	
};

#pragma pack(pop)

class PASCALIMPLEMENTATION TEmsWideStringGrid : public TEmsDrawGrid
{
	typedef TEmsDrawGrid inherited;
	
private:
	void *FData;
	void *FRows;
	void *FCols;
	bool FUpdating;
	bool FNeedsUpdating;
	int FEditUpdate;
	void __fastcall DisableEditUpdate();
	void __fastcall EnableEditUpdate();
	HIDESBASE void __fastcall Initialize();
	HIDESBASE void __fastcall Update(int ACol, int ARow);
	void __fastcall SetUpdateState(bool Updating);
	System::WideString __fastcall GetCells(int ACol, int ARow);
	System::Widestrings::TWideStrings* __fastcall GetCols(int Index);
	System::TObject* __fastcall GetObjects(int ACol, int ARow);
	System::Widestrings::TWideStrings* __fastcall GetRows(int Index);
	void __fastcall SetCells(int ACol, int ARow, const System::WideString Value);
	void __fastcall SetCols(int Index, System::Widestrings::TWideStrings* Value);
	void __fastcall SetObjects(int ACol, int ARow, System::TObject* Value);
	void __fastcall SetRows(int Index, System::Widestrings::TWideStrings* Value);
	TEmsWideStringGridStrings* __fastcall EnsureColRow(int Index, bool IsCol);
	void * __fastcall EnsureDataRow(int ARow);
	
protected:
	DYNAMIC void __fastcall ColumnMoved(int FromIndex, int ToIndex);
	virtual void __fastcall DrawCell(int ACol, int ARow, const System::Types::TRect &ARect, Vcl::Grids::TGridDrawState AState);
	DYNAMIC System::WideString __fastcall GetEditText(int ACol, int ARow);
	DYNAMIC void __fastcall SetEditText(int ACol, int ARow, const System::WideString Value);
	DYNAMIC void __fastcall RowMoved(int FromIndex, int ToIndex);
	
public:
	__fastcall virtual TEmsWideStringGrid(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TEmsWideStringGrid();
	__property System::WideString Cells[int ACol][int ARow] = {read=GetCells, write=SetCells};
	__property System::Widestrings::TWideStrings* Cols[int Index] = {read=GetCols, write=SetCols};
	__property System::TObject* Objects[int ACol][int ARow] = {read=GetObjects, write=SetObjects};
	__property System::Widestrings::TWideStrings* Rows[int Index] = {read=GetRows, write=SetRows};
public:
	/* TWinControl.CreateParented */ inline __fastcall TEmsWideStringGrid(HWND ParentWindow) : TEmsDrawGrid(ParentWindow) { }
	
};


//-- var, const, procedure ---------------------------------------------------
}	/* namespace Qimport3widestringgrid */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_QIMPORT3WIDESTRINGGRID)
using namespace Qimport3widestringgrid;
#endif
#pragma pack(pop)
#pragma option pop

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