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

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

#ifndef Fmx_EctxmlHPP
#define Fmx_EctxmlHPP

#pragma delphiheader begin
#pragma option push
#if defined(__BORLANDC__) && !defined(__clang__)
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#endif
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <System.Classes.hpp>
#include <System.SysUtils.hpp>
#include <FMX.uecMapUtil.hpp>

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

namespace Fmx
{
namespace Ectxml
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TectXML;
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TectState : unsigned char { esText, esTag, esParam };

#pragma pack(push,4)
class PASCALIMPLEMENTATION TectXML : public System::TObject
{
	typedef System::TObject inherited;
	
private:
	System::UnicodeString FTag;
	System::UnicodeString FText;
	System::UnicodeString FParams;
	System::UnicodeString FLine;
	System::Classes::TStringList* FLParams;
	int FOffset;
	int FLen;
	bool FUseParam;
	bool FTagCDATA;
	bool FNodeClose;
	TectState FState;
	void __fastcall Parse();
	void __fastcall ParseParams();
	System::UnicodeString __fastcall getText();
	void __fastcall setXml(const System::UnicodeString value);
	
protected:
	virtual void __fastcall doOnText();
	virtual void __fastcall doOnTag();
	
public:
	__fastcall TectXML();
	__fastcall virtual ~TectXML();
	void __fastcall LoadFromFile(const System::UnicodeString filename);
	void __fastcall LoadFromStream(System::Classes::TStream* const stream);
	__property System::UnicodeString Xml = {read=FLine, write=setXml};
	__property bool UseParam = {read=FUseParam, write=FUseParam, nodefault};
	__property System::UnicodeString NodeText = {read=getText};
	__property System::UnicodeString NodeTag = {read=FTag};
	__property bool NodeClose = {read=FNodeClose, nodefault};
	__property System::Classes::TStringList* NodeParams = {read=FLParams};
};

#pragma pack(pop)

//-- var, const, procedure ---------------------------------------------------
}	/* namespace Ectxml */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_ECTXML)
using namespace Fmx::Ectxml;
#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_EctxmlHPP
