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

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

#ifndef Fmx_TmseditHPP
#define Fmx_TmseditHPP

#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 <System.Classes.hpp>	// Pascal unit
#include <FMX.Edit.hpp>	// Pascal unit
#include <FMX.Types.hpp>	// Pascal unit
#include <System.Character.hpp>	// Pascal unit
#include <System.Types.hpp>	// Pascal unit
#include <FMX.Objects.hpp>	// Pascal unit
#include <FMX.Controls.hpp>	// Pascal unit
#include <System.UITypes.hpp>	// Pascal unit
#include <FMX.ListBox.hpp>	// Pascal unit
#include <FMX.Forms.hpp>	// Pascal unit
#include <System.Math.hpp>	// Pascal unit
#include <FMX.TMSBitmap.hpp>	// Pascal unit
#include <FMX.TMSBaseControl.hpp>	// Pascal unit
#include <FMX.TMSPopup.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.Layouts.hpp>	// Pascal unit

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

namespace Fmx
{
namespace Tmsedit
{
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TTMSEditType : unsigned char { etString, etNumeric, etSignedNumeric, etFloat, etSignedFloat, etUppercase, etMixedCase, etLowerCase, etMoney, etHex, etAlphaNumeric, etValidChars };

enum DECLSPEC_DENUM TPrecisionDisplay : unsigned char { pdNormal, pdShortest };

class DELPHICLASS TLookupSettings;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TLookupSettings : public System::Classes::TPersistent
{
	typedef System::Classes::TPersistent inherited;
	
private:
	System::Classes::TStringList* FDisplayList;
	System::Classes::TStringList* FValueList;
	int FDisplayCount;
	System::Uitypes::TAlphaColor FColor;
	bool FEnabled;
	int FNumChars;
	bool FCaseSensitive;
	bool FHistory;
	bool FMulti;
	System::WideChar FSeparator;
	bool FAcceptOnTab;
	int FWidth;
	int FHeight;
	void __fastcall SetDisplayList(System::Classes::TStringList* const Value);
	void __fastcall SetValueList(System::Classes::TStringList* const Value);
	void __fastcall SetNumChars(const int Value);
	void __fastcall SetHeight(const int Value);
	void __fastcall SetWidth(const int Value);
	
protected:
	__property bool AcceptOnTab = {read=FAcceptOnTab, write=FAcceptOnTab, default=0};
	__property System::Uitypes::TAlphaColor Color = {read=FColor, write=FColor, default=-1};
	
public:
	__fastcall TLookupSettings(void);
	__fastcall virtual ~TLookupSettings(void);
	virtual void __fastcall Assign(System::Classes::TPersistent* Source);
	
__published:
	__property bool CaseSensitive = {read=FCaseSensitive, write=FCaseSensitive, default=0};
	__property int DisplayCount = {read=FDisplayCount, write=FDisplayCount, default=4};
	__property System::Classes::TStringList* DisplayList = {read=FDisplayList, write=SetDisplayList};
	__property bool Enabled = {read=FEnabled, write=FEnabled, default=0};
	__property bool History = {read=FHistory, write=FHistory, default=0};
	__property int NumChars = {read=FNumChars, write=SetNumChars, default=2};
	__property System::Classes::TStringList* ValueList = {read=FValueList, write=SetValueList};
	__property bool Multi = {read=FMulti, write=FMulti, default=0};
	__property System::WideChar Separator = {read=FSeparator, write=FSeparator, nodefault};
	__property int Width = {read=FWidth, write=SetWidth, default=0};
	__property int Height = {read=FHeight, write=SetHeight, default=0};
};

#pragma pack(pop)

class DELPHICLASS TListBoxTab;
class DELPHICLASS TTMSFMXEdit;
class PASCALIMPLEMENTATION TListBoxTab : public Fmx::Listbox::TListBox
{
	typedef Fmx::Listbox::TListBox inherited;
	
private:
	bool FHandleTab;
	System::Uitypes::TAlphaColor FColor;
	bool FMouseCaptured;
	TTMSFMXEdit* FEdit;
	void __fastcall SetColor(const System::Uitypes::TAlphaColor Value);
	
protected:
	Fmx::Objects::TRectangle* __fastcall GetBackGround(void);
	void __fastcall UpdateBkgColor(void);
	void __fastcall SetCapture(void);
	void __fastcall ReleaseCaptureEx(void);
	void __fastcall CloseLookup(void);
	__property TTMSFMXEdit* Edit = {read=FEdit, write=FEdit};
	
public:
	__fastcall virtual TListBoxTab(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TListBoxTab(void);
	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);
	
__published:
	__property System::Uitypes::TAlphaColor Color = {read=FColor, write=SetColor, nodefault};
	__property bool HandleTab = {read=FHandleTab, write=FHandleTab, nodefault};
};


class DELPHICLASS TListWindow;
class PASCALIMPLEMENTATION TListWindow : public Fmx::Forms::TCustomForm
{
	typedef Fmx::Forms::TCustomForm inherited;
	
private:
	Fmx::Listbox::TCustomListBox* FListControl;
	
protected:
	virtual void __fastcall SetActive(const bool Value);
	
__published:
	__property Fmx::Listbox::TCustomListBox* ListControl = {read=FListControl, write=FListControl};
public:
	/* TCustomForm.Create */ inline __fastcall virtual TListWindow(System::Classes::TComponent* AOwner) : Fmx::Forms::TCustomForm(AOwner) { }
	/* TCustomForm.CreateNew */ inline __fastcall virtual TListWindow(System::Classes::TComponent* AOwner, NativeInt Dummy) : Fmx::Forms::TCustomForm(AOwner, Dummy) { }
	/* TCustomForm.Destroy */ inline __fastcall virtual ~TListWindow(void) { }
	
};


typedef void __fastcall (__closure *TLookupSelectEvent)(System::TObject* Sender, System::UnicodeString &Value);

typedef void __fastcall (__closure *TLookupIndexSelectEvent)(System::TObject* Sender, int Index, System::UnicodeString &Value);

class PASCALIMPLEMENTATION TTMSFMXEdit : public Fmx::Edit::TEdit
{
	typedef Fmx::Edit::TEdit inherited;
	
private:
	TTMSEditType FEditType;
	int FMaxLength;
	System::UnicodeString FValidChars;
	Fmx::Objects::TText* FEmptyTextCtrl;
	System::UnicodeString FEmptyText;
	TListWindow* FLookupList;
	TListBoxTab* FLookupListBox;
	TLookupSettings* FLookup;
	TLookupSelectEvent FOnLookupSelect;
	TLookupIndexSelectEvent FOnLookupIndexSelect;
	bool FSigned;
	System::UnicodeString FPrefix;
	System::UnicodeString FSuffix;
	bool FIsModified;
	short FLengthLimit;
	bool FFullTextSearch;
	bool FAutoThousandSeparator;
	short FPrecision;
	TPrecisionDisplay FPrecisionDisplay;
	bool FBlockChange;
	bool FAllowNumericNullValue;
	bool FAutoComplete;
	System::Classes::TNotifyEvent FOnCloseWithEscape;
	bool FCanEditObserve;
	System::UnicodeString __fastcall GetVersion(void);
	int __fastcall GetVersionNr(void);
	void __fastcall SetVersion(const System::UnicodeString Value);
	void __fastcall ListKeyUp(System::TObject* Sender, System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	void __fastcall ListMouseUp(System::TObject* Sender, System::Uitypes::TMouseButton Button, System::Classes::TShiftState Shift, float X, float Y);
	void __fastcall SetEmptyText(const System::UnicodeString Value);
	void __fastcall CloseLookup(void);
	void __fastcall DoneLookup(void);
	void __fastcall UpdateLookup(void);
	void __fastcall UpdateAutoComplete(void);
	void __fastcall SetLookup(TLookupSettings* const Value);
	bool __fastcall AllowMin(System::WideChar ch);
	int __fastcall FixedLength(System::UnicodeString s);
	void __fastcall SetPrefix(const System::UnicodeString Value);
	void __fastcall SetSuffix(const System::UnicodeString Value);
	void __fastcall SetModified(const bool Value);
	int __fastcall DecimalPos(void);
	void __fastcall AutoSeparators(void);
	double __fastcall GetFloat(void);
	void __fastcall SetFloat(const double Value);
	void __fastcall SetAutoThousandSeparator(const bool Value);
	void __fastcall SetPrecision(const short Value);
	void __fastcall SetPrecisionDisplay(const TPrecisionDisplay Value);
	System::Extended __fastcall EStrToFloat(System::UnicodeString s);
	int __fastcall GetInt(void);
	void __fastcall SetInt(const int Value);
	void __fastcall SetEditType(const TTMSEditType Value);
	bool __fastcall IsLookupListVisible(void);
	
protected:
	virtual bool __fastcall CanObserve(const int ID);
	__property System::Classes::TNotifyEvent OnCloseWithEscape = {read=FOnCloseWithEscape, write=FOnCloseWithEscape};
	virtual System::UnicodeString __fastcall GetDefaultStyleLookupName(void);
	virtual void __fastcall SetText(const System::UnicodeString Value);
	HIDESBASE void __fastcall InsertText(const System::UnicodeString AText);
	virtual Fmx::Types::TFmxObject* __fastcall GetStyleObject(void)/* overload */;
	virtual void __fastcall ApplyStyle(void);
	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 KeyDown(System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	virtual void __fastcall KeyUp(System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	virtual void __fastcall DoEnter(void);
	virtual void __fastcall DoExit(void);
	__property bool Signed = {read=FSigned, write=FSigned, default=0};
	__property System::UnicodeString Prefix = {read=FPrefix, write=SetPrefix};
	__property System::UnicodeString Suffix = {read=FSuffix, write=SetSuffix};
	
public:
	TListBoxTab* __fastcall LookupListbox(void);
	TListWindow* __fastcall LookupList(void);
	__fastcall virtual TTMSFMXEdit(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXEdit(void);
	__property bool Modified = {read=FIsModified, write=SetModified, nodefault};
	__property double FloatValue = {read=GetFloat, write=SetFloat};
	__property int IntValue = {read=GetInt, write=SetInt, nodefault};
	__property bool CanEditObserve = {read=FCanEditObserve, write=FCanEditObserve, nodefault};
	
__published:
	__property System::UnicodeString Version = {read=GetVersion, write=SetVersion};
	__property bool AutoComplete = {read=FAutoComplete, write=FAutoComplete, default=0};
	__property TTMSEditType EditType = {read=FEditType, write=SetEditType, default=0};
	__property System::UnicodeString EmptyText = {read=FEmptyText, write=SetEmptyText};
	__property TLookupSettings* Lookup = {read=FLookup, write=SetLookup};
	__property int MaxLength = {read=FMaxLength, write=FMaxLength, default=0};
	__property System::UnicodeString ValidChars = {read=FValidChars, write=FValidChars};
	__property bool AllowNumericNullValue = {read=FAllowNumericNullValue, write=FAllowNumericNullValue, default=0};
	__property bool AutoThousandSeparator = {read=FAutoThousandSeparator, write=SetAutoThousandSeparator, default=1};
	__property bool FullTextSearch = {read=FFullTextSearch, write=FFullTextSearch, default=0};
	__property short LengthLimit = {read=FLengthLimit, write=FLengthLimit, default=0};
	__property short Precision = {read=FPrecision, write=SetPrecision, default=0};
	__property TPrecisionDisplay PrecisionDisplay = {read=FPrecisionDisplay, write=SetPrecisionDisplay, default=0};
	__property TLookupSelectEvent OnLookupSelect = {read=FOnLookupSelect, write=FOnLookupSelect};
	__property TLookupIndexSelectEvent OnLookupIndexSelect = {read=FOnLookupIndexSelect, write=FOnLookupIndexSelect};
/* Hoisted overloads: */
	
protected:
	inline Fmx::Types::TFmxObject* __fastcall  GetStyleObject(const bool Clone){ return Fmx::Controls::TStyledControl::GetStyleObject(Clone); }
	
};


class DELPHICLASS TTMSFMXEditPopup;
class PASCALIMPLEMENTATION TTMSFMXEditPopup : public Fmx::Tmspopup::TTMSFMXPopup
{
	typedef Fmx::Tmspopup::TTMSFMXPopup inherited;
	
private:
	TTMSFMXEdit* FEdit;
	
protected:
	virtual void __fastcall DialogKey(System::Word &Key, System::Classes::TShiftState Shift);
public:
	/* TTMSFMXPopup.Create */ inline __fastcall virtual TTMSFMXEditPopup(System::Classes::TComponent* AOwner) : Fmx::Tmspopup::TTMSFMXPopup(AOwner) { }
	/* TTMSFMXPopup.Destroy */ inline __fastcall virtual ~TTMSFMXEditPopup(void) { }
	
};


class DELPHICLASS TTMSFMXEditBtn;
class PASCALIMPLEMENTATION TTMSFMXEditBtn : public TTMSFMXEdit
{
	typedef TTMSFMXEdit inherited;
	
private:
	bool FBlockDropDown;
	TTMSFMXEditPopup* FPopup;
	Fmx::Stdctrls::TButton* FButton;
	Fmx::Controls::TControl* FPopupControl;
	Fmx::Graphics::TBitmap* FBitmap;
	System::Classes::TNotifyEvent FOnButtonClick;
	void __fastcall SetBitmap(Fmx::Graphics::TBitmap* const Value);
	Fmx::Stdctrls::TButton* __fastcall GetButton(void);
	Fmx::Tmsbitmap::TTMSFMXBitmap* __fastcall GetButtonBitmap(void);
	
protected:
	virtual void __fastcall KeyDown(System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	virtual void __fastcall Notification(System::Classes::TComponent* AComponent, System::Classes::TOperation Operation);
	void __fastcall PopupKeyDown(System::TObject* Sender, System::Word &Key, System::WideChar &KeyChar, System::Classes::TShiftState Shift);
	void __fastcall ButtonClick(System::TObject* Sender);
	void __fastcall ButtonDblClick(System::TObject* Sender);
	virtual Fmx::Types::TFmxObject* __fastcall GetStyleObject(void)/* overload */;
	virtual void __fastcall ApplyStyle(void);
	void __fastcall AssignEvents(void);
	
public:
	__fastcall virtual TTMSFMXEditBtn(System::Classes::TComponent* AOwner);
	__fastcall virtual ~TTMSFMXEditBtn(void);
	virtual void __fastcall DropDown(void);
	__property TTMSFMXEditPopup* Popup = {read=FPopup, write=FPopup};
	__property Fmx::Stdctrls::TButton* Button = {read=GetButton};
	__property Fmx::Tmsbitmap::TTMSFMXBitmap* ButtonBitmap = {read=GetButtonBitmap};
	
__published:
	__property Fmx::Graphics::TBitmap* Bitmap = {read=FBitmap, write=SetBitmap};
	__property Fmx::Controls::TControl* PopupControl = {read=FPopupControl, write=FPopupControl};
	__property System::Classes::TNotifyEvent OnButtonClick = {read=FOnButtonClick, write=FOnButtonClick};
/* Hoisted overloads: */
	
protected:
	inline Fmx::Types::TFmxObject* __fastcall  GetStyleObject(const bool Clone){ return Fmx::Controls::TStyledControl::GetStyleObject(Clone); }
	
};


//-- var, const, procedure ---------------------------------------------------
static const System::Int8 MAJ_VER = System::Int8(0x1);
static const System::Int8 MIN_VER = System::Int8(0x5);
static const System::Int8 REL_VER = System::Int8(0x1);
static const System::Int8 BLD_VER = System::Int8(0x4);
static const System::Int8 LOOKUPITEMHEIGHT = System::Int8(0xc);
}	/* namespace Tmsedit */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSEDIT)
using namespace Fmx::Tmsedit;
#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_TmseditHPP
