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

// (DO NOT EDIT: machine generated header) 'AHMTHotKeyHolder.pas' rev: 3.00

#ifndef AHMTHotKeyHolderHPP
#define AHMTHotKeyHolderHPP
#include <Controls.hpp>
#include <AHMSystemClass.hpp>
#include <Menus.hpp>
#include <Classes.hpp>
#include <SysUtils.hpp>
#include <Messages.hpp>
#include <Windows.hpp>
#include <SysInit.hpp>
#include <System.hpp>

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

namespace Ahmthotkeyholder
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TAHMHotKey;
class DELPHICLASS TAHMHotKeyHolder;
class DELPHICLASS TAHMHotKeys;
class PASCALIMPLEMENTATION TAHMHotKeys : public Classes::TCollection 
{
	typedef Classes::TCollection inherited;
	
private:
	TAHMHotKeyHolder* FAHMHotKeyHolder;
	TAHMHotKey* __fastcall GetAHMHotKey(int Index);
	void __fastcall SetAHMHotKey(int Index, TAHMHotKey* Value);
	
protected:
	DYNAMIC Classes::TPersistent* __fastcall GetOwner(void);
	
public:
	__fastcall TAHMHotKeys(TAHMHotKeyHolder* AOwner);
	HIDESBASE TAHMHotKey* __fastcall Add(void);
	bool __fastcall Delete(int Index);
	__property TAHMHotKeyHolder* Owner = {read=FAHMHotKeyHolder};
	__property TAHMHotKey* Items[int Index] = {read=GetAHMHotKey, write=SetAHMHotKey/*, default*/};
public:
		
	/* TCollection.Destroy */ __fastcall virtual ~TAHMHotKeys(void) { }
	
};

class PASCALIMPLEMENTATION TAHMHotKeyHolder : public Ahmsystemclass::TAHMSystemsComponent 
{
	typedef Ahmsystemclass::TAHMSystemsComponent inherited;
	
private:
	TAHMHotKeys* FAHMHotKeys;
	Controls::TKeyEvent FOnKeyDown;
	void __fastcall SetAHMHotKeys(TAHMHotKeys* Value);
	
public:
	__fastcall virtual TAHMHotKeyHolder(Classes::TComponent* AOwner);
	__fastcall virtual ~TAHMHotKeyHolder(void);
	
__published:
	__property Controls::TKeyEvent OnKeyDown = {read=FOnKeyDown, write=FOnKeyDown};
	__property TAHMHotKeys* GlobalKeys = {read=FAHMHotKeys, write=SetAHMHotKeys};
};

class PASCALIMPLEMENTATION TAHMHotKey : public Classes::TCollectionItem 
{
	typedef Classes::TCollectionItem inherited;
	
private:
	TAHMHotKeyHolder* FAHMHotKeyHolder;
	Word FAtom;
	bool FActive;
	Controls::TKeyEvent FOnKeyDown;
	Menus::TShortCut FGlobalKey;
	HWND FWndHandle;
	void __fastcall SetActive(const bool Value);
	void __fastcall SetHotKey(const Menus::TShortCut Value);
	void __fastcall NewWndProc(Messages::TMessage &Message);
	
protected:
	virtual System::AnsiString __fastcall GetDisplayName(void);
	
public:
	__fastcall virtual TAHMHotKey(Classes::TCollection* Collection);
	__fastcall virtual ~TAHMHotKey(void);
	virtual void __fastcall Assign(Classes::TPersistent* Source);
	__property TAHMHotKeyHolder* Owner = {read=FAHMHotKeyHolder};
	__property System::AnsiString DisplayName = {read=GetDisplayName};
	
__published:
	__property bool Active = {read=FActive, write=SetActive, default=1};
	__property Menus::TShortCut GlobalKey = {read=FGlobalKey, write=SetHotKey, default=0};
	__property Controls::TKeyEvent OnKeyDown = {read=FOnKeyDown, write=FOnKeyDown};
};

//-- var, const, procedure ---------------------------------------------------

}	/* namespace Ahmthotkeyholder */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Ahmthotkeyholder;
#endif
//-- end unit ----------------------------------------------------------------
#endif	// AHMTHotKeyHolder
