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

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

#ifndef Fmx_UecmapfileHPP
#define Fmx_UecmapfileHPP

#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.SysUtils.hpp>
#include <System.Types.hpp>
#include <System.UITypes.hpp>
#include <System.Rtti.hpp>
#include <System.Classes.hpp>
#include <System.SyncObjs.hpp>
#include <FMX.uecMapUtil.hpp>
#include <FMX.Dialogs.hpp>
#include <FMX.Types.hpp>
#include <FMX.Controls.hpp>
#include <FMX.Forms.hpp>
#include <FMX.Objects.hpp>
#include <FMX.Platform.hpp>

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

namespace Fmx
{
namespace Uecmapfile
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TECParamParser;
class DELPHICLASS TECMapDataFile;
//-- type declarations -------------------------------------------------------
enum DECLSPEC_DENUM TecDataType : unsigned char { dtTxt, dtGpx, dtKml, dtJson, dtNone };

#pragma pack(push,4)
class PASCALIMPLEMENTATION TECParamParser : public System::TObject
{
	typedef System::TObject inherited;
	
public:
	System::UnicodeString operator[](const System::UnicodeString ValueName) { return this->Values[ValueName]; }
	
private:
	System::UnicodeString FBuffer;
	System::WideChar FSeparator;
	System::LongInt FStart;
	System::LongInt FIndex;
	System::LongInt FLength;
	void __fastcall setBuffer(const System::UnicodeString value);
	void __fastcall setSeparator(const System::WideChar value);
	System::UnicodeString __fastcall getParam(const System::UnicodeString ValueName);
	void __fastcall setParam(const System::UnicodeString ValueName, const System::UnicodeString value);
	
public:
	__fastcall TECParamParser(const System::UnicodeString Buf, const System::WideChar Sep);
	__fastcall virtual ~TECParamParser();
	System::UnicodeString __fastcall ToStr(const System::UnicodeString ValueName);
	double __fastcall ToDouble(const System::UnicodeString ValueName, const double DefValue = -1.000000E+00);
	int __fastcall ToInt(const System::UnicodeString ValueName, const int DefValue);
	Fmx::Uecmaputil::TColor __fastcall ToColor(const System::UnicodeString ValueName, const Fmx::Uecmaputil::TColor DefValue);
	bool __fastcall ToBool(const System::UnicodeString ValueName, const bool DefValue = false);
	__property System::UnicodeString Text = {read=FBuffer, write=setBuffer};
	__property System::WideChar Separator = {read=FSeparator, write=setSeparator, nodefault};
	__property System::UnicodeString Values[const System::UnicodeString ValueName] = {read=getParam, write=setParam/*, default*/};
};

#pragma pack(pop)

class PASCALIMPLEMENTATION TECMapDataFile : public System::Classes::TStringList
{
	typedef System::Classes::TStringList inherited;
	
public:
	System::UnicodeString __fastcall ReadSection(const System::UnicodeString section);
public:
	/* TStringList.Create */ inline __fastcall TECMapDataFile()/* overload */ : System::Classes::TStringList() { }
	/* TStringList.Create */ inline __fastcall TECMapDataFile(bool OwnsObjects)/* overload */ : System::Classes::TStringList(OwnsObjects) { }
	/* TStringList.Create */ inline __fastcall TECMapDataFile(System::WideChar QuoteChar, System::WideChar Delimiter)/* overload */ : System::Classes::TStringList(QuoteChar, Delimiter) { }
	/* TStringList.Create */ inline __fastcall TECMapDataFile(System::WideChar QuoteChar, System::WideChar Delimiter, System::Classes::TStringsOptions Options)/* overload */ : System::Classes::TStringList(QuoteChar, Delimiter, Options) { }
	/* TStringList.Create */ inline __fastcall TECMapDataFile(System::Classes::TDuplicates Duplicates, bool Sorted, bool CaseSensitive)/* overload */ : System::Classes::TStringList(Duplicates, Sorted, CaseSensitive) { }
	/* TStringList.Destroy */ inline __fastcall virtual ~TECMapDataFile() { }
	
};


//-- var, const, procedure ---------------------------------------------------
extern DELPHI_PACKAGE void __fastcall SaveMapDataToFile(const System::UnicodeString filename, const System::UnicodeString data);
extern DELPHI_PACKAGE System::UnicodeString __fastcall LoadMapDataFromFile(const System::UnicodeString filename);
extern DELPHI_PACKAGE System::UnicodeString __fastcall DownLoadMapDataFromUrl(const System::UnicodeString Urlfilename);
extern DELPHI_PACKAGE TecDataType __fastcall LoadPlainMapDataFromfile(const System::UnicodeString filename, System::UnicodeString &data, System::UnicodeString &base);
}	/* namespace Uecmapfile */
}	/* namespace Fmx */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FMX_UECMAPFILE)
using namespace Fmx::Uecmapfile;
#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_UecmapfileHPP
