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

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

#ifndef Fmx_TmsledHPP
#define Fmx_TmsledHPP

#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 <FMX.Types.hpp>	// Pascal unit
#include <FMX.Objects.hpp>	// Pascal unit
#include <System.Classes.hpp>	// Pascal unit
#include <System.SysUtils.hpp>	// Pascal unit
#include <System.Types.hpp>	// Pascal unit
#include <System.UITypes.hpp>	// Pascal unit
#include <FMX.TMSBaseControl.hpp>	// Pascal unit
#include <System.UIConsts.hpp>	// Pascal unit
#include <FMX.Styles.hpp>	// Pascal unit
#include <FMX.Graphics.hpp>	// Pascal unit
#include <FMX.Controls.hpp>	// Pascal unit

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

namespace Fmx
{
namespace Tmsled
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TTMSFMXLED;
class PASCALIMPLEMENTATION TTMSFMXLED : public Fmx::Tmsbasecontrol::TTMSFMXBaseShape
{
	typedef Fmx::Tmsbasecontrol::TTMSFMXBaseShape inherited;
	
private:
	System::Uitypes::TAlphaColor FBaseColor;
	System::Uitypes::TAlphaColor FOffColor;
	System::Uitypes::TAlphaColor FOnColor;
	bool FState;
	void __fastcall SetBaseColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetOffColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetOnColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetState(const bool Value);
	
public:
	__fastcall virtual TTMSFMXLED(System::Classes::TComponent* AOwner);
	void __fastcall Draw(Fmx::Graphics::TCanvas* ACanvas, const System::Types::TRectF &R, const System::Types::TRectF &RB, float ARotationAngle);
	virtual void __fastcall Paint(void);
	void __fastcall Toggle(void);
	
__published:
	__property System::Uitypes::TAlphaColor BaseColor = {read=FBaseColor, write=SetBaseColor, default=-65536};
	__property System::Uitypes::TAlphaColor OnColor = {read=FOnColor, write=SetOnColor, nodefault};
	__property System::Uitypes::TAlphaColor OffColor = {read=FOffColor, write=SetOffColor, nodefault};
	__property bool State = {read=FState, write=SetState, default=0};
public:
	/* TShape.Destroy */ inline __fastcall virtual ~TTMSFMXLED(void) { }
	
};


class DELPHICLASS TTMSFMXLEDItem;
class DELPHICLASS TTMSFMXLEDBar;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TTMSFMXLEDItem : public System::Classes::TCollectionItem
{
	typedef System::Classes::TCollectionItem inherited;
	
private:
	TTMSFMXLED* FLed;
	TTMSFMXLEDBar* FOwner;
	System::Uitypes::TAlphaColor __fastcall GetBaseColor(void);
	System::Uitypes::TAlphaColor __fastcall GetOffColor(void);
	System::Uitypes::TAlphaColor __fastcall GetOnColor(void);
	bool __fastcall GetState(void);
	void __fastcall SetBaseColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetOffColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetOnColor(const System::Uitypes::TAlphaColor Value);
	void __fastcall SetState(const bool Value);
	
public:
	__fastcall virtual TTMSFMXLEDItem(System::Classes::TCollection* Collection);
	__fastcall virtual ~TTMSFMXLEDItem(void);
	
__published:
	__property System::Uitypes::TAlphaColor BaseColor = {read=GetBaseColor, write=SetBaseColor, nodefault};
	__property System::Uitypes::TAlphaColor OnColor = {read=GetOnColor, write=SetOnColor, nodefault};
	__property System::Uitypes::TAlphaColor OffColor = {read=GetOffColor, write=SetOffColor, nodefault};
	__property bool State = {read=GetState, write=SetState, nodefault};
};

#pragma pack(pop)

class DELPHICLASS TTMSFMXLEDs;
#pragma pack(push,4)
class PASCALIMPLEMENTATION TTMSFMXLEDs : public Fmx::Tmsbasecontrol::TTMSFMXBaseCollection
{
	typedef Fmx::Tmsbasecontrol::TTMSFMXBaseCollection inherited;
	
public:
	TTMSFMXLEDItem* operator[](int Index) { return Items[Index]; }
	
private:
	TTMSFMXLEDBar* FOwner;
	HIDESBASE TTMSFMXLEDItem* __fastcall GetItem(int Index);
	HIDESBASE void __fastcall SetItem(int Index, TTMSFMXLEDItem* const Value);
	
protected:
	DYNAMIC System::Classes::TPersistent* __fastcall GetOwner(void);
	
public:
	__fastcall TTMSFMXLEDs(TTMSFMXLEDBar* AOwner);
	HIDESBASE TTMSFMXLEDItem* __fastcall Add(void);
	HIDESBASE TTMSFMXLEDItem* __fastcall Insert(int Index);
	__property TTMSFMXLEDItem* Items[int Index] = {read=GetItem, write=SetItem/*, default*/};
public:
	/* TCollection.Destroy */ inline __fastcall virtual ~TTMSFMXLEDs(void) { }
	
};

#pragma pack(pop)

class PASCALIMPLEMENTATION TTMSFMXLEDBar : public Fmx::Tmsbasecontrol::TTMSFMXBaseControl
{
	typedef Fmx::Tmsbasecontrol::TTMSFMXBaseControl inherited;
	
private:
	int FValue;
	TTMSFMXLEDs* FLeds;
	int FSpacing;
	void __fastcall SetCount(const int Value);
	void __fastcall SetLeds(TTMSFMXLEDs* const Value);
	void __fastcall SetValue(const int Value);
	int __fastcall GetCount(void);
	void __fastcall SetSpacing(const int Value);
	System::UnicodeString __fastcall GetVersion(void);
	int __fastcall GetVersionNr(void);
	
protected:
	virtual NativeUInt __fastcall GetInstance(void);
	
public:
	__fastcall virtual TTMSFMXLEDBar(System::Classes::TComponent* AOwner);
	virtual void __fastcall Paint(void);
	__fastcall virtual ~TTMSFMXLEDBar(void);
	
__published:
	__property Fill;
	__property Stroke;
	__property StrokeThickness = {default=0};
	__property StrokeCap = {default=0};
	__property StrokeDash = {default=0};
	__property StrokeJoin = {default=0};
	__property System::UnicodeString Version = {read=GetVersion};
	__property TTMSFMXLEDs* Leds = {read=FLeds, write=SetLeds};
	__property int Count = {read=GetCount, write=SetCount, default=6};
	__property int Value = {read=FValue, write=SetValue, default=0};
	__property int Spacing = {read=FSpacing, write=SetSpacing, default=5};
};


//-- 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(0x0);
static const System::Int8 BLD_VER = System::Int8(0x0);
}	/* namespace Tmsled */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_TMSLED)
using namespace Fmx::Tmsled;
#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_TmsledHPP
