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

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

#ifndef AHMTFormExplodeHPP
#define AHMTFormExplodeHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <AHMSystemConst.hpp>	// Pascal unit
#include <AHMSystemClass.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Ahmtformexplode
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TAHMWipeType { wsFormTopBorder, wsFormBottomBorder, wsFormLeftBorder, wsFormRightBorder, wsScreenTopBorder, 
	wsScreenBottomBorder, wsScreenLeftBorder, wsScreenRightBorder, wsFormTopLeft, wsFormBottomLeft, wsFormTopRight, 
	wsFormBottomRight, wsScreenTopLeft, wsScreenBottomLeft, wsScreenTopRight, wsScreenBottomRight, wsFormMiddle, 
	wsScreenMiddle, wsCustompoint };
#pragma option pop

#pragma option push -b-
enum TAHMShowType { onAlways, onShow, onHide };
#pragma option pop

typedef void __fastcall (__closure *TAHMOnGetPoints)(System::TObject* Sender, int &CustomLeft, int &
	CustomTop, int &CustomRight, int &CustomBottom);

class DELPHICLASS TAHMFormExplode;
class PASCALIMPLEMENTATION TAHMFormExplode : public Ahmsystemclass::TAHMSystemsComponent 
{
	typedef Ahmsystemclass::TAHMSystemsComponent inherited;
	
private:
	TAHMWipeType FOnShowType;
	TAHMWipeType FOnCloseType;
	Word FNoOfSteps;
	TAHMOnGetPoints FOnGetPoints;
	TAHMShowType FShowType;
	Word FCustomLeft;
	Word FCustomTop;
	Word FCustomWidth;
	Word FCustomHeight;
	Classes::TNotifyEvent OwnerOnShow;
	Classes::TNotifyEvent OwnerOnPaint;
	Classes::TNotifyEvent OwnerOnHide;
	int FDelay;
	void __fastcall SetShow(TAHMShowType Value);
	
protected:
	bool Explode;
	HDC Dc;
	HPEN OldPen;
	HPEN NewPen;
	HBRUSH OldBrush;
	HBRUSH NewBrush;
	int OldROP;
	void __fastcall MyOnShow(System::TObject* Sender);
	void __fastcall MyOnPaint(System::TObject* Sender);
	void __fastcall MyOnHide(System::TObject* Sender);
	void __fastcall ShowForm(HDC Dc, Forms::TForm* Dest, int Steps);
	void __fastcall HideForm(HDC Dc, Forms::TForm* Dest, int Steps);
	
public:
	__fastcall virtual TAHMFormExplode(Classes::TComponent* AOwner);
	void __fastcall GetSrect(int &x, int &y, int &w, int &h, TAHMWipeType ws);
	
__published:
	__property Word NoOfSteps = {read=FNoOfSteps, write=FNoOfSteps, default=40};
	__property TAHMShowType ShowType = {read=FShowType, write=SetShow, default=0};
	__property int Delay = {read=FDelay, write=FDelay, default=2};
	__property TAHMWipeType OnShowType = {read=FOnShowType, write=FOnShowType, default=16};
	__property TAHMWipeType OnCloseType = {read=FOnCloseType, write=FOnCloseType, default=16};
	__property Word CustomLeft = {read=FCustomLeft, write=FCustomLeft, default=0};
	__property Word CustomTop = {read=FCustomTop, write=FCustomTop, default=0};
	__property Word CustomBottom = {read=FCustomHeight, write=FCustomHeight, default=0};
	__property Word CustomRight = {read=FCustomWidth, write=FCustomWidth, default=0};
	__property TAHMOnGetPoints OnGetPoints = {read=FOnGetPoints, write=FOnGetPoints};
public:
	#pragma option push -w-inl
	/* TComponent.Destroy */ inline __fastcall virtual ~TAHMFormExplode(void) { }
	#pragma option pop
	
};


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

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

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