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

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

#ifndef ElastFrmHPP
#define ElastFrmHPP
#include <TypInfo.hpp>
#include <FileCtrl.hpp>
#include <Grids.hpp>
#include <ComCtrls.hpp>
#include <StdCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Dialogs.hpp>
#include <Forms.hpp>
#include <Controls.hpp>
#include <Graphics.hpp>
#include <Classes.hpp>
#include <Messages.hpp>
#include <Windows.hpp>
#include <SysUtils.hpp>
#include <SysInit.hpp>
#include <System.hpp>

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

namespace Elastfrm
{
//-- type declarations -------------------------------------------------------
typedef int TArrayInteger[16383];

typedef TArrayInteger *pTArrayInteger;

class DELPHICLASS TFrame;
class PASCALIMPLEMENTATION TFrame : public System::TObject 
{
	typedef System::TObject inherited;
	
public:
	int left;
	int width;
	int top;
	int height;
	Graphics::TFont* font;
	double fXResize;
	double fYResize;
	double fFResize;
	bool bStatusBar;
	TArrayInteger *ColumnWidths;
	int ColumnWidthsMax;
	TArrayInteger *PanelWidths;
	int PanelWidthsMax;
	int InitFontSize;
	int InitTitleFontSize;
	int FontSizeBeforeMax;
	int DefaultRowHeight;
	int ButtonHeight;
	int ButtonWidth;
	float BtnAspect;
	__fastcall TFrame(void);
	__fastcall virtual ~TFrame(void);
	void __fastcall preInitialize(Controls::TControl* aControl);
	void __fastcall DBGridInitialize(Controls::TControl* aControl, double ScreenCorrectionH, double ScreenCorrectionV
		);
	void __fastcall initialize(double ScreenCorrectionH, double ScreenCorrectionV, double PixelsCorrection
		, double PurePixelsCorrection, Controls::TControl* aControl);
	void __fastcall resize(bool ElasticH, bool ElasticV, bool ElasticF, int FormClientWidth, int FormClientHeight
		, int cW, int cH, int cF, double FontCorrection, double ScreenCorrectionH, double ScreenCorrectionV
		, double PixelsCorrection, Controls::TControl* aControl);
};

typedef TFrame* TFrameArray[16383];

typedef TFrameArray *pTFrameArray;

class DELPHICLASS TMyControl;
class PASCALIMPLEMENTATION TMyControl : public Controls::TControl 
{
	typedef Controls::TControl inherited;
	
public:
	/* TControl.Create */ __fastcall virtual TMyControl(Classes::TComponent* AOwner) : Controls::TControl(
		AOwner) { }
	/* TControl.Destroy */ __fastcall virtual ~TMyControl(void) { }
	
};

class DELPHICLASS TMyWinControl;
class PASCALIMPLEMENTATION TMyWinControl : public Controls::TWinControl 
{
	typedef Controls::TWinControl inherited;
	
public:
	/* TWinControl.Create */ __fastcall virtual TMyWinControl(Classes::TComponent* AOwner) : Controls::
		TWinControl(AOwner) { }
	/* TWinControl.CreateParented */ __fastcall TMyWinControl(HWND ParentWindow) : Controls::TWinControl(
		ParentWindow) { }
	/* TWinControl.Destroy */ __fastcall virtual ~TMyWinControl(void) { }
	
};

class DELPHICLASS TMyCustomGrid;
class PASCALIMPLEMENTATION TMyCustomGrid : public Grids::TCustomGrid 
{
	typedef Grids::TCustomGrid inherited;
	
public:
	/* TCustomGrid.Create */ __fastcall virtual TMyCustomGrid(Classes::TComponent* AOwner) : Grids::TCustomGrid(
		AOwner) { }
	/* TCustomGrid.Destroy */ __fastcall virtual ~TMyCustomGrid(void) { }
	
public:
	/* TWinControl.CreateParented */ __fastcall TMyCustomGrid(HWND ParentWindow) : Grids::TCustomGrid(ParentWindow
		) { }
	
};

class DELPHICLASS TElasticForm;
class PASCALIMPLEMENTATION TElasticForm : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	void *OldWndProc;
	void *NewWndProc;
	void *OldMDIClientWndProc;
	void *NewMDIClientWndProc;
	bool FHorz;
	bool FVert;
	bool FElasticFont;
	int fResizeCounter;
	int cW;
	int cH;
	int cF;
	int cWc;
	int cHc;
	int cW0;
	int cH0;
	int cF0;
	int L0;
	int T0;
	bool bFirstTime;
	TFrameArray *fFrames;
	int fDesignScreenWidth;
	int fDesignScreenHeight;
	int fDesignPixelsPerInch;
	Extctrls::TTimer* fDesignTimer;
	int fDesignFormWidth;
	int fDesignFormHeight;
	int fDesignFormClientWidth;
	int fDesignFormClientHeight;
	int fDesignFormLeft;
	int fDesignFormTop;
	bool fManualPosition;
	double fManualLeft;
	double fManualTop;
	bool fManualSize;
	double fManualWidth;
	double fManualHeight;
	int fScreenWidth;
	int fScreenHeight;
	int fPixelsPerInch;
	double fScreenCorrectionH;
	double fScreenCorrectionV;
	double fPixelsCorrection;
	Classes::TList* fList;
	int FTotalControls;
	int FInitTotalControls;
	Extctrls::TImage* fBkGrndImage;
	bool FPictureAssigned;
	int fMaximizedWidth;
	int fMaximizedHeight;
	int fMaximizedPosX;
	int fMaximizedPosY;
	int fMinimumTrackWidth;
	int fMinimumTrackHeight;
	int fMaximumTrackWidth;
	int fMaximumTrackHeight;
	TPosition fOwnerFormPosition;
	bool bBeforeShow;
	bool bWasVisible[1001];
	bool bMustShow;
	bool bFirstFormResize;
	bool bOnTheScreen;
	TFormBorderStyle fBorderStyle;
	bool bFormStartsMaximized;
	bool bMaintainProportions;
	bool bIncreasing;
	Graphics::TFont* fFont;
	bool bDisableResize;
	bool bAfterMaximize;
	bool bDBGridSelfResize;
	void __fastcall FindAllControls(Controls::TControl* ofMyControl);
	int __fastcall FormHandle(void);
	int __fastcall MDIClientFormHandle(void);
	void __fastcall NewWndMethod(Messages::TMessage &Msg);
	void __fastcall NewMDIClientWndMethod(Messages::TMessage &Msg);
	bool __fastcall InList(Classes::TList* Container, Controls::TControl* aControl);
	void __fastcall Timer(System::TObject* Sender);
	int __fastcall DefinedMaxLeft(void);
	int __fastcall DefinedMaxTop(void);
	void __fastcall InitializeForm(void);
	void __fastcall ResizeFormMaintainingProportions(void);
	void __fastcall SetFont(Graphics::TFont* aFont);
	void __fastcall TilePicture(HDC DC);
	void __fastcall SetImage(Extctrls::TImage* value);
	
public:
	int GlobalInt;
	Classes::TList* ExcludeList;
	bool ShowMaximized;
	int MessageNumber;
	__fastcall virtual TElasticForm(Classes::TComponent* AOwner);
	__fastcall virtual ~TElasticForm(void);
	void __fastcall ReSizeForm(void);
	void __fastcall UpdateSize(Controls::TControl* aControl);
	void __fastcall EnforceMaximized(void);
	void __fastcall AddToExcludeList(Controls::TControl* aControl);
	void __fastcall DisableResize(void);
	void __fastcall EnableResize(void);
	void __fastcall ReInitializeResizing(void);
	__property bool ManualPosition = {read=fManualPosition, write=fManualPosition, nodefault};
	__property bool ManualSize = {read=fManualSize, write=fManualSize, nodefault};
	__property double ManualLeft = {read=fManualLeft, write=fManualLeft};
	__property double ManualTop = {read=fManualTop, write=fManualTop};
	__property double ManualWidth = {read=fManualWidth, write=fManualWidth};
	__property double ManualHeight = {read=fManualHeight, write=fManualHeight};
	
__published:
	__property bool ElasticHorizontal = {read=FHorz, write=FHorz, default=1};
	__property bool ElasticVertical = {read=FVert, write=FVert, default=1};
	__property bool ElasticFont = {read=FElasticFont, write=FElasticFont, default=1};
	__property int DesignScreenWidth = {read=fDesignScreenWidth, write=fDesignScreenWidth, nodefault};
	__property int DesignScreenHeight = {read=fDesignScreenHeight, write=fDesignScreenHeight, nodefault
		};
	__property int DesignPixelsPerInch = {read=fDesignPixelsPerInch, write=fDesignPixelsPerInch, nodefault
		};
	__property int MaximizedPosX = {read=fMaximizedPosX, write=fMaximizedPosX, default=0};
	__property int MaximizedPosY = {read=fMaximizedPosY, write=fMaximizedPosY, default=0};
	__property int MinimumTrackWidth = {read=fMinimumTrackWidth, write=fMinimumTrackWidth, default=0};
	__property int MinimumTrackHeight = {read=fMinimumTrackHeight, write=fMinimumTrackHeight, default=0
		};
	__property int MaximumTrackWidth = {read=fMaximumTrackWidth, write=fMaximumTrackWidth, default=0};
	__property int MaximumTrackHeight = {read=fMaximumTrackHeight, write=fMaximumTrackHeight, default=0
		};
	__property int DesignFormWidth = {read=fDesignFormWidth, write=fDesignFormWidth, nodefault};
	__property int DesignFormHeight = {read=fDesignFormHeight, write=fDesignFormHeight, nodefault};
	__property int DesignFormClientWidth = {read=fDesignFormClientWidth, write=fDesignFormClientWidth, 
		nodefault};
	__property int DesignFormClientHeight = {read=fDesignFormClientHeight, write=fDesignFormClientHeight
		, nodefault};
	__property int DesignFormLeft = {read=fDesignFormLeft, write=fDesignFormLeft, nodefault};
	__property int DesignFormTop = {read=fDesignFormTop, write=fDesignFormTop, nodefault};
	__property bool MaintainProportions = {read=bMaintainProportions, write=bMaintainProportions, default=0
		};
	__property Graphics::TFont* Font = {read=fFont, write=SetFont};
	__property Extctrls::TImage* BkGrndImage = {read=fBkGrndImage, write=SetImage};
	__property bool DBGridSelfResize = {read=bDBGridSelfResize, write=bDBGridSelfResize, default=0};
};

//-- var, const, procedure ---------------------------------------------------
extern PACKAGE int LabelLines;
extern PACKAGE bool fDBGridSelfResize;
extern PACKAGE void __fastcall Register(void);

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