// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'siComp.pas' rev: 5.00

#ifndef siCompHPP
#define siCompHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <MemIni.hpp>	// Pascal unit
#include <ExtCtrls.hpp>	// Pascal unit
#include <ShellAPI.hpp>	// Pascal unit
#include <TypInfo.hpp>	// Pascal unit
#include <StdCtrls.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Registry.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Sicomp
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TTextStyle { tsNone, tsRaised, tsRecessed, tsShadow };
#pragma option pop

class DELPHICLASS ELanguageError;
class PASCALIMPLEMENTATION ELanguageError : public Sysutils::Exception 
{
	typedef Sysutils::Exception inherited;
	
public:
	#pragma option push -w-inl
	/* Exception.Create */ inline __fastcall ELanguageError(const AnsiString Msg) : Sysutils::Exception(
		Msg) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmt */ inline __fastcall ELanguageError(const AnsiString Msg, const System::TVarRec 
		* Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateRes */ inline __fastcall ELanguageError(int Ident)/* overload */ : Sysutils::Exception(
		Ident) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmt */ inline __fastcall ELanguageError(int Ident, const System::TVarRec * Args
		, const int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateHelp */ inline __fastcall ELanguageError(const AnsiString Msg, int AHelpContext)
		 : Sysutils::Exception(Msg, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateFmtHelp */ inline __fastcall ELanguageError(const AnsiString Msg, const System::TVarRec 
		* Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext
		) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResHelp */ inline __fastcall ELanguageError(int Ident, int AHelpContext)/* overload */
		 : Sysutils::Exception(Ident, AHelpContext) { }
	#pragma option pop
	#pragma option push -w-inl
	/* Exception.CreateResFmtHelp */ inline __fastcall ELanguageError(System::PResStringRec ResStringRec
		, const System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(
		ResStringRec, Args, Args_Size, AHelpContext) { }
	#pragma option pop
	
public:
	#pragma option push -w-inl
	/* TObject.Destroy */ inline __fastcall virtual ~ELanguageError(void) { }
	#pragma option pop
	
};


class DELPHICLASS TsiLabel;
class PASCALIMPLEMENTATION TsiLabel : public Stdctrls::TLabel 
{
	typedef Stdctrls::TLabel inherited;
	
private:
	TTextStyle FTextStyle;
	Graphics::TColor FShadowColor;
	Graphics::TColor FThreeDColor;
	int FShadowDepth;
	int FWidthDepth;
	bool FShadowUp;
	bool FThreeDLeft;
	void __fastcall SetTextStyle(TTextStyle Value);
	void __fastcall SetShadowColor(Graphics::TColor Value);
	void __fastcall SetShadowDepth(int Value);
	void __fastcall SetWidthDepth(int Value);
	void __fastcall SetShadowUp(bool Value);
	void __fastcall SetThreeDLeft(bool Value);
	void __fastcall SetThreeDColor(Graphics::TColor Value);
	void __fastcall Draw3DText(const Windows::TRect &R, Word Flags);
	
protected:
	virtual void __fastcall Paint(void);
	
public:
	__fastcall virtual TsiLabel(Classes::TComponent* AOwner);
	__fastcall virtual ~TsiLabel(void);
	
__published:
	__property Graphics::TColor ShadowColor = {read=FShadowColor, write=SetShadowColor, default=-2147483632
		};
	__property Graphics::TColor ThreeDColor = {read=FThreeDColor, write=SetThreeDColor, default=-2147483628
		};
	__property int ShadowDepth = {read=FShadowDepth, write=SetShadowDepth, default=2};
	__property int WidthDepth = {read=FWidthDepth, write=SetWidthDepth, default=-1};
	__property bool ShadowUp = {read=FShadowUp, write=SetShadowUp, default=0};
	__property bool ThreeDLeft = {read=FThreeDLeft, write=SetThreeDLeft, default=0};
	__property TTextStyle TextStyle = {read=FTextStyle, write=SetTextStyle, default=2};
};


typedef Classes::TStrings* *pStrings;

#pragma option push -b-
enum TStringsType { stCaptions, stHints, stDisplayLabels, stFonts, stMultiLines, stDlgsCaptions, stStrings, 
	stOtherStrings, stLocales, stCollections, stCharSets, stListView_TreeView_Items };
#pragma option pop

#pragma option push -b-
enum TTranslateType { ttNoChange, ttGetDefault };
#pragma option pop

#pragma option push -b-
enum TsiLangOption { loUseExtUDStrings, loUseExtCommonStrings };
#pragma option pop

typedef Set<TsiLangOption, loUseExtUDStrings, loUseExtCommonStrings>  TsiLangOptions;

typedef AnsiString siComp__4[11];

class DELPHICLASS TsiCustomLang;
class DELPHICLASS TsiLangDispatcher;
class PASCALIMPLEMENTATION TsiLangDispatcher : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	Classes::TList* FSIComponents;
	int FActiveLanguage;
	int FNumOfLanguages;
	AnsiString FLanguage;
	Classes::TStrings* FLangNames;
	void __fastcall SetActiveLanguage(const int Value);
	void __fastcall SetNumOfLanguages(const int Value);
	void __fastcall SetLangNames(const Classes::TStrings* Value);
	void __fastcall SetLanguage(const AnsiString Value);
	
protected:
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
		);
	void __fastcall AddReference(TsiCustomLang* AComponent);
	void __fastcall RemovePossibleReference(TsiCustomLang* AComponent);
	
public:
	__fastcall virtual TsiLangDispatcher(Classes::TComponent* AOwner);
	__fastcall virtual ~TsiLangDispatcher(void);
	virtual void __fastcall Loaded(void);
	
__published:
	__property int ActiveLanguage = {read=FActiveLanguage, write=SetActiveLanguage, nodefault};
	__property int NumOfLanguages = {read=FNumOfLanguages, write=SetNumOfLanguages, nodefault};
	__property Classes::TStrings* LangNames = {read=FLangNames, write=SetLangNames};
	__property AnsiString Language = {read=FLanguage, write=SetLanguage};
};


class PASCALIMPLEMENTATION TsiCustomLang : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	int FPropForChange;
	Classes::TStrings* FCaptions;
	Classes::TStrings* FHints;
	Classes::TStrings* FDisplayLabels;
	Classes::TStrings* FStrings;
	Classes::TStrings* FFonts;
	Classes::TStrings* FMultiLines;
	Classes::TStrings* FDlgsCaptions;
	Classes::TStrings* FOthers;
	Classes::TStrings* FSystem;
	Classes::TStrings* FCharSets;
	Classes::TStrings* FCollections;
	int FActLang;
	int FNumLang;
	bool FSysChange;
	bool FDontChange;
	Classes::TStrings* FTmpStrings;
	AnsiString MyLocales[11];
	Classes::TNotifyEvent FOnChangeLanguage;
	TsiLangDispatcher* FLangDispatcher;
	Byte FLangDelim;
	Classes::TStrings* FDoNotList;
	AnsiString FVersion;
	AnsiString FLanguage;
	Classes::TStrings* FLangNames;
	TTranslateType FTranslateType;
	TsiLangOptions FOptions;
	void __fastcall SetLangDispatcher(const TsiLangDispatcher* Value);
	void __fastcall SetActLang(int Value);
	void __fastcall SetNumLang(int Value);
	void __fastcall SetCaptions(Classes::TStrings* Value);
	void __fastcall SetHints(Classes::TStrings* Value);
	void __fastcall SetLabels(Classes::TStrings* Value);
	void __fastcall SetStrings(Classes::TStrings* Value);
	void __fastcall SetFonts(Classes::TStrings* Value);
	void __fastcall SetMultiLines(Classes::TStrings* Value);
	void __fastcall SetDlgsCaptions(Classes::TStrings* Value);
	void __fastcall SetOthers(Classes::TStrings* Value);
	void __fastcall SetSystem(Classes::TStrings* Value);
	void __fastcall SetCharSets(Classes::TStrings* Value);
	void __fastcall SetCollections(Classes::TStrings* Value);
	void __fastcall SetLangDelim(Byte Value);
	void __fastcall SetDoNotList(Classes::TStrings* Value);
	void __fastcall SetVersion(const AnsiString Value);
	void __fastcall SetLangNames(const Classes::TStrings* Value);
	void __fastcall SetLanguage(const AnsiString Value);
	void __fastcall SetOptions(const TsiLangOptions Value);
	
protected:
	Forms::TForm* __fastcall CreateMessageDialog(const AnsiString Msg, Dialogs::TMsgDlgType DlgType, Dialogs::TMsgDlgButtons 
		Buttons);
	virtual void __fastcall MakeNotification(pStrings AStrings, Classes::TComponent* AComponent, Classes::TOperation 
		Operation, TStringsType Propty);
	virtual void __fastcall Notification(Classes::TComponent* AComponent, Classes::TOperation Operation
		);
	void __fastcall CheckRmdProps(void);
	virtual Classes::TStrings* __fastcall GetPropListByType(TStringsType PropType);
	void __fastcall FillNewDialogs(void);
	
public:
	virtual void __fastcall ReplaceStringValue(pStrings AStrings, AnsiString Value, AnsiString AName, int 
		ALang);
	void __fastcall DelOldNames(pStrings AStrings, TStringsType Propty);
	virtual void __fastcall BuildList(void);
	virtual void __fastcall ChangeLanguage(void);
	__fastcall virtual TsiCustomLang(Classes::TComponent* AOwner);
	virtual void __fastcall Loaded(void);
	__fastcall virtual ~TsiCustomLang(void);
	AnsiString __fastcall GetStringValue(pStrings AStrings, AnsiString AName, int ALang);
	AnsiString __fastcall GetTextFrom(pStrings AStrings, AnsiString TextID, bool GetDefault);
	AnsiString __fastcall GetTextFromByIndex(pStrings AStrings, int ID, bool GetDefault);
	void __fastcall ChangeLangDelim(Byte OldDelim, Byte NewDelim);
	void __fastcall ReBuildDoNotList(void);
	virtual int __fastcall LoadFromFile(TStringsType PropType, AnsiString AFileName, bool CanRewrite);
	virtual int __fastcall SaveToFile(TStringsType PropType, AnsiString AFileName, char Delimiter);
	virtual void __fastcall LoadAllFromFile(AnsiString AFileName, bool CanRewrite);
	virtual void __fastcall SaveAllToFile(AnsiString AFileName, char Delimiter);
	virtual int __fastcall LoadStringsFromFile(AnsiString AFileName, bool CanRewrite);
	virtual int __fastcall SaveStringsToFile(AnsiString AFileName, char Delimiter);
	virtual bool __fastcall MergeFromFile(const TStringsType PropType, const AnsiString AFileName);
	virtual bool __fastcall MergeAllFromFile(AnsiString AFileName);
	virtual void __fastcall LoadAllFromFileDNC(AnsiString AFileName, bool CanRewrite);
	virtual bool __fastcall MergeAllFromFileDNC(AnsiString AFileName);
	AnsiString __fastcall GetText(AnsiString TextID);
	AnsiString __fastcall GetTextOrDefault(AnsiString TextID);
	AnsiString __fastcall GetTextbyInt(int ID);
	bool __fastcall AddString(AnsiString TextID, const AnsiString * AStrings, const int AStrings_Size);
		
	bool __fastcall DeleteString(AnsiString TextID);
	int __fastcall MessageDlg(const AnsiString Msg, Dialogs::TMsgDlgType DlgType, Dialogs::TMsgDlgButtons 
		Buttons, int HelpCtx);
	int __fastcall MessageDlgPos(const AnsiString Msg, Dialogs::TMsgDlgType DlgType, Dialogs::TMsgDlgButtons 
		Buttons, int HelpCtx, int X, int Y);
	int __fastcall MessageDlgPosHelp(const AnsiString Msg, Dialogs::TMsgDlgType DlgType, Dialogs::TMsgDlgButtons 
		Buttons, int HelpCtx, int X, int Y, const AnsiString HelpFileName);
	void __fastcall ShowMessage(const AnsiString Msg);
	void __fastcall ShowMessageFmt(const AnsiString Msg, const System::TVarRec * Params, const int Params_Size
		);
	void __fastcall ShowMessagePos(const AnsiString Msg, int X, int Y);
	AnsiString __fastcall InputBox(const AnsiString ACaption, const AnsiString APrompt, const AnsiString 
		ADefault);
	bool __fastcall InputQuery(const AnsiString ACaption, const AnsiString APrompt, AnsiString &Value);
		
	__property Classes::TStrings* Captions = {read=FCaptions, write=SetCaptions, stored=true};
	__property Classes::TStrings* Hints = {read=FHints, write=SetHints, stored=true};
	__property Classes::TStrings* DisplayLabels = {read=FDisplayLabels, write=SetLabels, stored=true};
	__property Classes::TStrings* Strings = {read=FStrings, write=SetStrings, stored=true};
	__property Classes::TStrings* Fonts = {read=FFonts, write=SetFonts, stored=true};
	__property Classes::TStrings* MultiLines = {read=FMultiLines, write=SetMultiLines, stored=true};
	__property Classes::TStrings* DlgsCaptions = {read=FDlgsCaptions, write=SetDlgsCaptions, stored=true
		};
	__property Classes::TStrings* OtherStrings = {read=FOthers, write=SetOthers, stored=true};
	__property Classes::TStrings* Locales = {read=FSystem, write=SetSystem, stored=true};
	__property Classes::TStrings* CharSets = {read=FCharSets, write=SetCharSets, stored=true};
	__property Classes::TStrings* Collections = {read=FCollections, write=SetCollections, stored=true};
		
	__property int NumOfLanguages = {read=FNumLang, write=SetNumLang, default=1};
	__property int ActiveLanguage = {read=FActLang, write=SetActLang, default=1};
	__property bool ChangeLocales = {read=FSysChange, write=FSysChange, default=0};
	__property TsiLangDispatcher* LangDispatcher = {read=FLangDispatcher, write=SetLangDispatcher};
	__property Classes::TNotifyEvent OnChangeLanguage = {read=FOnChangeLanguage, write=FOnChangeLanguage
		};
	__property Byte LangDelim = {read=FLangDelim, write=SetLangDelim, default=9};
	__property Classes::TStrings* DoNotTranslate = {read=FDoNotList, write=SetDoNotList, stored=true};
	__property Classes::TStrings* LangNames = {read=FLangNames, write=SetLangNames};
	__property AnsiString Language = {read=FLanguage, write=SetLanguage};
	__property TTranslateType TranslateType = {read=FTranslateType, write=FTranslateType, default=0};
	__property TsiLangOptions Options = {read=FOptions, write=SetOptions, default=0};
	
__published:
	__property AnsiString Version = {read=FVersion, write=SetVersion};
};


class DELPHICLASS TsiLang;
class PASCALIMPLEMENTATION TsiLang : public TsiCustomLang 
{
	typedef TsiCustomLang inherited;
	
__published:
	__property Captions ;
	__property Hints ;
	__property DisplayLabels ;
	__property Strings ;
	__property Fonts ;
	__property MultiLines ;
	__property DlgsCaptions ;
	__property OtherStrings ;
	__property Locales ;
	__property CharSets ;
	__property Collections ;
	__property NumOfLanguages ;
	__property ActiveLanguage ;
	__property ChangeLocales ;
	__property LangDispatcher ;
	__property OnChangeLanguage ;
	__property LangDelim ;
	__property DoNotTranslate ;
	__property LangNames ;
	__property Language ;
	__property TranslateType ;
	__property Options ;
public:
	#pragma option push -w-inl
	/* TsiCustomLang.Create */ inline __fastcall virtual TsiLang(Classes::TComponent* AOwner) : TsiCustomLang(
		AOwner) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TsiCustomLang.Destroy */ inline __fastcall virtual ~TsiLang(void) { }
	#pragma option pop
	
};


#pragma option push -b-
enum TMyHKeyType { siHKEY_CURRENT_USER, siHKEY_CLASSES_ROOT, siHKEY_LOCAL_MACHINE, siHKEY_USERS, siHKEY_CURRENT_CONFIG, 
	siHKEY_DYN_DATA };
#pragma option pop

class DELPHICLASS TsiFormStorage;
class PASCALIMPLEMENTATION TsiFormStorage : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	bool FActive;
	AnsiString FSubKey;
	TMyHKeyType FRegRootKey;
	HKEY FRootKey;
	Forms::TForm* FForm;
	void __fastcall SetMyActive(bool Value);
	void __fastcall SetSubKey(AnsiString Value);
	void __fastcall SetRegRootKey(TMyHKeyType Value);
	Forms::TForm* __fastcall GetForm(void);
	
protected:
	__property Forms::TForm* Form = {read=GetForm};
	void __fastcall FormDestroing(System::TObject* Sender);
	
public:
	__fastcall virtual TsiFormStorage(Classes::TComponent* AOwner);
	__fastcall virtual ~TsiFormStorage(void);
	virtual void __fastcall Loaded(void);
	
__published:
	__property bool Active = {read=FActive, write=SetMyActive, default=1};
	__property TMyHKeyType RegRootKey = {read=FRegRootKey, write=SetRegRootKey, default=0};
	__property AnsiString SubKey = {read=FSubKey, write=SetSubKey};
};


class DELPHICLASS TsiPropInfoList;
class PASCALIMPLEMENTATION TsiPropInfoList : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Typinfo::PPropInfo *FList;
	int FCount;
	int FSize;
	Typinfo::PPropInfo __fastcall Get(int Index);
	
public:
	__fastcall TsiPropInfoList(System::TObject* AObject, Typinfo::TTypeKinds Filter);
	__fastcall virtual ~TsiPropInfoList(void);
	bool __fastcall Contains(Typinfo::PPropInfo P);
	Typinfo::PPropInfo __fastcall Find(const AnsiString AName);
	void __fastcall Delete(int Index);
	void __fastcall Intersect(TsiPropInfoList* List);
	__property int Count = {read=FCount, nodefault};
	__property Typinfo::PPropInfo Items[int Index] = {read=Get/*, default*/};
};


typedef AnsiString siComp__9[19];

typedef AnsiString siComp__01[12];

typedef TSysCharSet TCharSet;
;

//-- var, const, procedure ---------------------------------------------------
extern PACKAGE System::ResourceString _SLangNameSection;
#define Sicomp_SLangNameSection System::LoadResourceString(&Sicomp::_SLangNameSection)
extern PACKAGE System::ResourceString _SLangPrefix;
#define Sicomp_SLangPrefix System::LoadResourceString(&Sicomp::_SLangPrefix)
extern PACKAGE System::ResourceString _SWrongLangSection;
#define Sicomp_SWrongLangSection System::LoadResourceString(&Sicomp::_SWrongLangSection)
extern PACKAGE Word TextAlignments[3];
extern PACKAGE System::SmallString<12>  HookedProps[3];
static const Shortint PROPCOUNT = 0xa;
static const Shortint CHARSETCOUNT = 0x13;
static const char CRMARK = '\x19';
static const char LFMARK = '\x1a';
extern PACKAGE Byte CHARSETVALS[19];
extern PACKAGE AnsiString CHARSETSTR[19];
extern PACKAGE AnsiString IniNames[12];
extern PACKAGE AnsiString __fastcall ExtractWord(int N, const AnsiString S, const Sysutils::TSysCharSet 
	&WordDelims);
extern PACKAGE void __fastcall GetIniNames(Classes::TStrings* AStrings);
extern PACKAGE AnsiString __fastcall XorString(const AnsiString Key, const AnsiString Src);

}	/* namespace Sicomp */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Sicomp;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

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