www.pudn.com > PtOpenGuiSourceCode.zip > PTx.h


/* 
   This program is free software; you can redistribute it and/or modify 
   it under the terms of the GNU General Public License as published by 
   the Free Software Foundation; either version 2, or (at your option) 
   any later version. 
 
   This program is distributed in the hope that it will be useful, 
   but WITHOUT ANY WARRANTY; without even the implied warranty of 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
   GNU General Public License for more details. 
 
   You should have received a copy of the GNU General Public License 
   along with this program; if not, write to the Free Software 
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */ 
 
/*------------------------------------------------------------*/ 
//--------------------------------------------------------------------------- 
#ifndef PTxH 
#define PTxH 
//--------------------------------------------------------------------------- 
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
// Delphi code for WinProg 
#include "WinProgUnit.hpp" 
#include  
 
#include "UnitPositionSearch.h" 
 
typedef struct { 
	double Left; 
	double Top; 
	bool showLastClick; 
	int clickX; 
	int clickY; 
	bool zoomDisplacedAfterClick;	// 
} TFineTuneDiffRect; 
 
typedef struct { 
	double Left; 
	double Top; 
	double Right; 
	double Bottom; 
	int angle;	// 0 not rotated, 90 
} TMainImageRect; 
 
class TStr : public TObject 
{ 
public: 
	AnsiString str; 
}; 
typedef int * pint; 
typedef TCheckBox * pTCheckBox; 
typedef pTCheckBox * ppTCheckBox; 
typedef ppTCheckBox * pppTCheckBox; 
typedef TEdit * pTEdit; 
typedef pTEdit * ppTEdit; 
typedef TButton * pTButton; 
typedef pTButton * ppTButton; 
const int MaxOptBoxParamCount = 12; 
enum { 
	Param_invalid = -1, 
	Param_y = 0, 
	Param_p, 
	Param_r, 
	Param_v, 
	Param_a, 
	Param_b, 
	Param_c, 
	Param_d, 
	Param_e, 
	Param_g, 
	Param_t, 
	Param_enable, 
	Param_MAX 
}; 
 
// texts for control point alignment 
#define Align_BOTH	"H+V" 
#define Align_VER	"Ver" 
#define Align_HOR	"Hor" 
#define Align_LINE	"Line" 
#define Align_L		'L'		// short for Line 
 
//typedef char * pchar; 
//--------------------------------------------------------------------------- 
class TFormMain : public TForm 
{ 
__published:	// IDE-managed Components 
		TTabbedNotebook *TabbedNotebook1; 
		TStringGrid *ImageFiles; 
        TMainMenu *MainMenu1; 
        TMenuItem *File1; 
	TMenuItem *NewProject; 
        TMenuItem *Open1; 
	TMenuItem *CloseProject; 
        TMenuItem *Exit1; 
        TMenuItem *Help1; 
        TPanel *PanelLeft; 
		TPanel *PanelRight; 
        TImage *ImageLeft; 
        TPanel *PanelControlBottom; 
        TOpenDialog *OpenDialogImage; 
        TOpenDialog *OpenDialogProject; 
		TComboBox *ComboBoxLensType; 
        TLabel *LabelLensType; 
        TRadioGroup *RadioGroupHFOV; 
        TGroupBox *GroupBox1; 
		TLabel *Label6; 
        TLabel *Label7; 
        TEdit *EditFoc; 
        TLabel *Label8; 
        TEdit *EditSca; 
        TLabel *Label9; 
        TLabel *Label10; 
        TComboBox *ComboBoxOri; 
        TEdit *EditDeg; 
        TGroupBox *GroupBox2; 
        TLabel *Label1; 
        TLabel *Label2; 
        TLabel *Label3; 
		TEdit *EditA; 
        TEdit *EditB; 
        TEdit *EditC; 
        TGroupBox *GroupBoxShift; 
        TLabel *Label4; 
		TLabel *Label5; 
        TEdit *EditD; 
        TEdit *EditE; 
	TGroupBox *GroupBoxPreview; 
        TImage *ImagePreviewFile; 
        TScrollBar *ScrollBarLH; 
        TScrollBar *ScrollBarLV; 
        TScrollBar *ScrollBarRV; 
        TScrollBar *ScrollBarRH; 
        TImage *ImageRight; 
        TMenuItem *Saveproject1; 
        TTabControl *TabControlL; 
        TTabControl *TabControlR; 
        TStatusBar *StatusBar1; 
		TGroupBox *GroupBoxFiles; 
        TButton *ButtonAddFile; 
        TButton *ButtonRemoveFile; 
        TMemo *MemoProject; 
	TLabel *LabelMemoProject; 
        TSaveDialog *SaveDialogProject; 
        TButton *ButtonReadChangedProject; 
        TButton *ButtonUpdateProjectMemo; 
    TButton *ButtonShowCurrentData; 
	TStringGrid *StringGridCP; 
	TEdit *EditLX; 
	TEdit *EditLY; 
	TEdit *EditRX; 
	TEdit *EditRY; 
	TButton *ButtonAddCP; 
	TButton *ButtonDeleteCP; 
	TImage *ImageLZ; 
	TLabel *LabelLX; 
	TLabel *LabelLY; 
	TLabel *LabelRX; 
	TLabel *LabelRY; 
	TImage *ImageRZ; 
	TLabel *LabelLZ; 
	TLabel *Label14; 
	TLabel *Label15; 
	TButton *ButtonUpdateCP; 
	TComboBox *ComboBoxT; 
	TButton *ButtonOptimize; 
	TButton *ButtonWriteOptimizeScript; 
	TMemo *MemoOptimize; 
	TButton *ButtonReadOptimizeScript; 
	TButton *ButtonSetOptimizedToProject; 
	TLabel *Label19; 
	TMenuItem *Optimize1; 
	TMenuItem *Run1; 
	TMenuItem *Accept1; 
	TButton *ButtonScrollOldData; 
	TButton *ButtonShowEditCoord; 
	TComboBox *ComboBoxZoomSmall; 
	TLabel *Label21; 
	TLabel *LabelRZ; 
	TPopupMenu *PopupMenuOpt; 
	TLabel *Label22; 
	TComboBox *ComboBoxImSelect; 
	TCheckBox *CheckBoxChangeSingleOnly; 
	TButton *ButtonStitch; 
	TMemo *MemoStitchScript; 
	TButton *ButtonWriteStitchScript; 
	TEdit *EditOutputName; 
	TLabel *Label23; 
	TMenuItem *Edit1; 
	TMenuItem *Projectintextformat1; 
	TLabel *Label11; 
	TEdit *EditComment; 
	TMenuItem *About1; 
	TMenuItem *SaveprojectAs1; 
	TMenuItem *View1; 
	TMenuItem *Controlpointtable1; 
	TMenuItem *Optimizationresult1; 
	TTimer *TimerOpt; 
	TCheckBox *CheckBoxBGOpt; 
	TLabel *Label32; 
	TLabel *Label33; 
	TStringGrid *StringGridImageInfo; 
	TPanel *Panel1; 
	TMenuItem *OptimizePop; 
	TMenuItem *LinkPop; 
	TMenuItem *PresetPop; 
	TLabel *Label13; 
	TMenuItem *Equalize1; 
	TLabel *Label31; 
	TComboBox *ComboBoxSetOptimizationParameters; 
	TLabel *Label34; 
	TPanel *Panel2; 
	TLabel *Label35; 
	TLabel *Label36; 
	TGroupBox *GroupBox3; 
	TEdit *EditPH; 
	TLabel *Label27; 
	TEdit *EditPW; 
	TLabel *Label26; 
	TLabel *Label38; 
	TComboBox *ComboBoxPanoFileType; 
	TEdit *EditJpegQ; 
	TLabel *Label39; 
	TCheckBox *CheckBoxProgressiveJpeg; 
	TGroupBox *GroupBox4; 
	TGroupBox *GroupBox5; 
	TLabel *Label28; 
	TEdit *EditPU; 
	TLabel *Label29; 
	TEdit *EditPG; 
	TLabel *Label30; 
	TComboBox *ComboBoxPI; 
	TGroupBox *GroupBox6; 
	TLabel *Label24; 
	TComboBox *ComboBoxPF; 
	TLabel *Label25; 
	TEdit *EditPV; 
	TButton *ButtonGetFovFromOptimization; 
	TMenuItem *Settozero1; 
	TButton *ButtonRunPreviewStitch; 
	TMemo *MemoPreviewScript; 
	TTimer *TimerPreview; 
	TCheckBox *CheckBoxAutoPreviewUpdate; 
	TPanel *Panel3; 
	TComboBox *ComboBoxZoomMain; 
	TGroupBox *GroupBox7; 
	TLabel *Label37; 
	TEdit *EditPreWidth; 
	TLabel *Label40; 
	TEdit *EditPreHeight; 
	TCheckBox *CheckBoxPreHeightPropotional; 
	TGroupBox *GroupBox8; 
	TComboBox *ComboBoxPreInterpolator; 
	TLabel *Label41; 
	TMenuItem *Lastpreviewstitch1; 
	TButton *ButtonEditPreviewScript; 
	TGroupBox *GroupBox9; 
	TLabel *Label42; 
	TEdit *EditExportScale; 
	TButton *ButtonExport; 
	TMenuItem *Hidestatusbar1; 
	TButton *ButtonImageUp; 
	TButton *ButtonImageDown; 
	TLabel *Label44; 
	TEdit *EditImageData; 
	TButton *ButtonUpdateImageData; 
	TButton *ButtonSliceOptimization; 
	TButton *ButtonLoopRun; 
	TEdit *EditLoopChange; 
	TLabel *Label45; 
	TTimer *TimerLoopRun; 
	TLabel *Label46; 
	TEdit *EditMaxLoopTime; 
	TMenuItem *Preview1; 
	TMenuItem *Options1; 
	TMenuItem *AutoOptimize1; 
	TPopupMenu *PopupMenuImage; 
	TMenuItem *Settoeditcoordinates1; 
	TMenuItem *Finetune1; 
	TTimer *TimerMouseMoveInterpolate; 
	TMenuItem *OtherOptions1; 
	TCheckBox *CheckBoxColorCorrectionInUse; 
	TLabel *Label48; 
	TLabel *Label49; 
	TComboBox *ComboBoxColorRef; 
	TComboBox *ComboBoxColorCorrectType; 
	TLabel *Label12; 
	TButton *Button1; 
	TMenuItem *optimizeRow1; 
	TMenuItem *optimizeColumn1; 
	TMenuItem *linkRow1; 
	TMenuItem *linkColumn1; 
	TMenuItem *presetRow1; 
	TMenuItem *presetColumn1; 
	TMenuItem *Finetunecontrolpoint1; 
	TCheckBox *CheckBoxExportRound; 
	TButton *ButtonHideStitchScript; 
	TGroupBox *GroupBoxStitchImageSelection; 
	TMenuItem *Addcontrolpoint1; 
	TMenuItem *Updatecontrolpoint1; 
	TButton *ButtonHideOptimizationScript; 
	TButton *ButtonShowOptimizationScript; 
	TScrollBox *ScrollBoxOptY; 
	TCheckBox *CheckBoxOpt; 
	TScrollBox *ScrollBoxOptP; 
	TScrollBox *ScrollBoxOptR; 
	TScrollBox *ScrollBoxOptA; 
	TScrollBox *ScrollBoxOptB; 
	TScrollBox *ScrollBoxOptC; 
	TScrollBox *ScrollBoxOptV; 
	TScrollBox *ScrollBoxOptD; 
	TScrollBox *ScrollBoxOptE; 
	TScrollBox *ScrollBoxOptG; 
	TScrollBox *ScrollBoxOptT; 
	TCheckBox *CheckBoxLink; 
	TEdit *EditLink; 
	TLabel *Label18; 
	TLabel *Label20; 
	TLabel *Label50; 
	TLabel *Label51; 
	TLabel *Label52; 
	TLabel *Label53; 
	TLabel *Label54; 
	TLabel *Label55; 
	TLabel *Label56; 
	TLabel *Label57; 
	TLabel *Label58; 
	TLabel *Label17; 
	TLabel *Label47; 
	TEdit *EditG; 
	TLabel *Label59; 
	TEdit *EditT; 
	TLabel *Label60; 
	TLabel *Label61; 
	TScrollBox *ScrollBoxUse; 
	TButton *ButtonSetOpt; 
	TButton *ButtonClrOpt; 
	TButton *ButtonSetLink; 
	TButton *ButtonClrLink; 
	TComboBox *ComboBoxSelectReferenceImage; 
	TLabel *Label62; 
	TMenuItem *Preferences1; 
	TCheckBox *CheckBoxEna; 
	TButton *ButtonSetUse; 
	TButton *ButtonClrUse; 
	TLabel *Label63; 
	TGroupBox *GroupBoxActiveStitchImages; 
	TScrollBox *ScrollBoxPreviewImages; 
	TCheckBox *CheckBoxPreviewImage; 
	TScrollBox *ScrollBoxFinalStitchImages; 
	TCheckBox *CheckBoxActiveStitchImage; 
	TLabel *Label64; 
	TLabel *Label65; 
	TButton *ButtonStopLoop; 
	TCheckBox *CheckBoxUseWritten; 
	TCheckBox *CheckBoxPreFeather; 
	TRadioGroup *RadioGroupLineType; 
	TLabel *Label66; 
	TButton *ButtonFineTune; 
	TMenuItem *N1; 
	TMenuItem *Originalangle1; 
	TMenuItem *Rotateleft1; 
	TMenuItem *Rotateright1; 
	TMenuItem *Flip1; 
	TGroupBox *GroupBox10; 
	TButton *ButtonSetOptValZero; 
	TButton *ButtonSetToMemory; 
	TButton *ButtonTakeValuesBack; 
	TButton *ButtonSwapSettings; 
	TButton *ButtonStitchSeparately; 
        void __fastcall FormShow(TObject *Sender); 
        void __fastcall ButtonAddFileClick(TObject *Sender); 
        void __fastcall Exit1Click(TObject *Sender); 
        void __fastcall ScrollBarLHChange(TObject *Sender); 
        void __fastcall ScrollBarLHKeyDown(TObject *Sender, WORD &Key, 
          TShiftState Shift); 
        void __fastcall TabControlLChange(TObject *Sender); 
        void __fastcall Open1Click(TObject *Sender); 
        void __fastcall Saveproject1Click(TObject *Sender); 
		void __fastcall CloseProjectClick(TObject *Sender); 
		void __fastcall FormResize(TObject *Sender); 
        void __fastcall RadioGroupHFOVClick(TObject *Sender); 
        void __fastcall EditDegChange(TObject *Sender); 
        void __fastcall FormCreate(TObject *Sender); 
        void __fastcall FormClose(TObject *Sender, TCloseAction &Action); 
        void __fastcall ButtonRemoveFileClick(TObject *Sender); 
        void __fastcall ButtonReadChangedProjectClick(TObject *Sender); 
        void __fastcall ButtonUpdateProjectMemoClick(TObject *Sender); 
        void __fastcall ButtonShowCurrentDataClick(TObject *Sender); 
	void __fastcall ImageFilesEnter(TObject *Sender); 
	void __fastcall NewProjectClick(TObject *Sender); 
	void __fastcall ImageLeftMouseMove(TObject *Sender, TShiftState Shift, 
          int X, int Y); 
	void __fastcall ImageLeftMouseDown(TObject *Sender, TMouseButton Button, 
          TShiftState Shift, int X, int Y); 
	void __fastcall ImageLZMouseDown(TObject *Sender, TMouseButton Button, 
          TShiftState Shift, int X, int Y); 
	void __fastcall StringGridCPSelectCell(TObject *Sender, int ACol, 
          int ARow, bool &CanSelect); 
	void __fastcall StringGridCPClick(TObject *Sender); 
	void __fastcall StringGridCPDblClick(TObject *Sender); 
	void __fastcall StringGridCPEnter(TObject *Sender); 
	void __fastcall ButtonAddCPClick(TObject *Sender); 
	void __fastcall ComboBoxTExit(TObject *Sender); 
	void __fastcall ButtonOptimizeClick(TObject *Sender); 
	bool __fastcall RunOptimize(TObject *Sender); 
	void __fastcall ButtonWriteOptimizeScriptClick(TObject *Sender); 
	void __fastcall ButtonReadOptimizeScriptClick(TObject *Sender); 
	void __fastcall ButtonSetOptimizedToProjectClick(TObject *Sender); 
	void __fastcall TabbedNotebook1Change(TObject *Sender, int NewTab, 
          bool &AllowChange); 
	void __fastcall Run1Click(TObject *Sender); 
	void __fastcall Accept1Click(TObject *Sender); 
	void __fastcall ImageFilesSelectCell(TObject *Sender, int ACol, int ARow, 
          bool &CanSelect); 
	void __fastcall ButtonScrollOldDataClick(TObject *Sender); 
	void __fastcall ButtonShowEditCoordClick(TObject *Sender); 
	void __fastcall ComboBoxZoomSmallChange(TObject *Sender); 
	void __fastcall ImageLZMouseMove(TObject *Sender, TShiftState Shift, 
          int X, int Y); 
	void __fastcall ComboBoxImSelectEnter(TObject *Sender); 
	void __fastcall ComboBoxImSelectChange(TObject *Sender); 
	void __fastcall EditDegEnter(TObject *Sender); 
	void __fastcall EditFocEnter(TObject *Sender); 
	void __fastcall ComboBoxOriEnter(TObject *Sender); 
	void __fastcall EditScaEnter(TObject *Sender); 
	void __fastcall EditScaExit(TObject *Sender); 
	void __fastcall ComboBoxLensTypeChange(TObject *Sender); 
	void __fastcall ComboBoxLensTypeEnter(TObject *Sender); 
	void __fastcall EditAEnter(TObject *Sender); 
	void __fastcall EditLensEnter(TObject *Sender,bool direct); 
	void __fastcall EditAExit(TObject *Sender); 
	void __fastcall CheckBoxChangeSingleOnlyEnter(TObject *Sender); 
	void __fastcall CheckBoxChangeSingleOnlyClick(TObject *Sender); 
	void __fastcall RadioGroupHFOVEnter(TObject *Sender); 
	void __fastcall ButtonStitchClick(TObject *Sender); 
	void __fastcall ButtonWriteStitchScriptClick(TObject *Sender); 
	void __fastcall EditOutputNameExit(TObject *Sender); 
	void __fastcall EditOutputNameEnter(TObject *Sender); 
	void __fastcall MemoProjectEnter(TObject *Sender); 
	void __fastcall Projectintextformat1Click(TObject *Sender); 
	void __fastcall FormPaint(TObject *Sender); 
	void __fastcall Button1Click(TObject *Sender); 
	void __fastcall About1Click(TObject *Sender); 
	void __fastcall SaveprojectAs1Click(TObject *Sender); 
	void __fastcall ButtonGetFovFromOptimizationClick(TObject *Sender); 
	void __fastcall EditPVChange(TObject *Sender); 
	void __fastcall EditPVEnter(TObject *Sender); 
	void __fastcall ComboBoxPFChange(TObject *Sender); 
	void __fastcall ComboBoxPFEnter(TObject *Sender); 
	void __fastcall Optimizationresult1Click(TObject *Sender); 
	void __fastcall Controlpointtable1Click(TObject *Sender); 
	void __fastcall TimerOptTimer(TObject *Sender); 
	void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose); 
	void __fastcall StringGridImageInfoEnter(TObject *Sender); 
	void __fastcall StringGridImageInfoSelectCell(TObject *Sender, int ACol, 
          int ARow, bool &CanSelect); 
	void __fastcall OptimizePopClick(TObject *Sender); 
	void __fastcall LinkPopClick(TObject *Sender); 
	void __fastcall PresetPopClick(TObject *Sender); 
	void __fastcall Equalize1Click(TObject *Sender); 
	void __fastcall ComboBoxSetOptimizationParametersChange(TObject *Sender); 
	void __fastcall ComboBoxSetOptimizationParametersEnter(TObject *Sender); 
	void __fastcall CheckBoxBGOptEnter(TObject *Sender); 
	void __fastcall CheckBoxBGOptClick(TObject *Sender); 
	void __fastcall ComboBoxPanoFileTypeEnter(TObject *Sender); 
	void __fastcall ComboBoxPanoFileTypeChange(TObject *Sender); 
	void __fastcall EditJpegQEnter(TObject *Sender); 
	void __fastcall EditJpegQChange(TObject *Sender); 
	void __fastcall CheckBoxProgressiveJpegEnter(TObject *Sender); 
	void __fastcall CheckBoxProgressiveJpegClick(TObject *Sender); 
	void __fastcall Settozero1Click(TObject *Sender); 
	void __fastcall ButtonRunPreviewStitchClick(TObject *Sender); 
	void __fastcall TimerPreviewTimer(TObject *Sender); 
	void __fastcall EditPreWidthEnter(TObject *Sender); 
	void __fastcall EditPreWidthExit(TObject *Sender); 
	void __fastcall Lastpreviewstitch1Click(TObject *Sender); 
	void __fastcall ButtonEditPreviewScriptClick(TObject *Sender); 
	void __fastcall EditExportScaleExit(TObject *Sender); 
	void __fastcall EditExportScaleEnter(TObject *Sender); 
	void __fastcall ButtonExportClick(TObject *Sender); 
	void __fastcall ImagePreviewFileProgress(TObject *Sender, 
          TProgressStage Stage, BYTE PercentDone, bool RedrawNow, 
          const TRect &R, const AnsiString Msg); 
	void __fastcall Hidestatusbar1Click(TObject *Sender); 
	void __fastcall ButtonImageUpClick(TObject *Sender); 
	void __fastcall ButtonImageDownClick(TObject *Sender); 
	void __fastcall EditImageDataEnter(TObject *Sender); 
	void __fastcall EditImageDataExit(TObject *Sender); 
	void __fastcall ButtonUpdateImageDataClick(TObject *Sender); 
	void __fastcall EditImageDataChange(TObject *Sender); 
	void __fastcall GroupBoxPreviewClick(TObject *Sender); 
	void __fastcall ButtonSliceOptimizationClick(TObject *Sender); 
	void __fastcall EditLoopChangeExit(TObject *Sender); 
	void __fastcall ButtonLoopRunClick(TObject *Sender); 
	void __fastcall TimerLoopRunTimer(TObject *Sender); 
	void __fastcall EditMaxLoopTimeExit(TObject *Sender); 
	void __fastcall AutoOptimize1Click(TObject *Sender); 
	void __fastcall Settoeditcoordinates1Click(TObject *Sender); 
	void __fastcall Finetune1Click(TObject *Sender); 
	void __fastcall EditLXChange(TObject *Sender); 
	void __fastcall EditLYChange(TObject *Sender); 
	void __fastcall EditRXChange(TObject *Sender); 
	void __fastcall EditRYChange(TObject *Sender); 
	void __fastcall EditCommentChange(TObject *Sender); 
	void __fastcall EditPreWidthChange(TObject *Sender); 
	void __fastcall TimerMouseMoveInterpolateTimer(TObject *Sender); 
	void __fastcall OtherOptions1Click(TObject *Sender); 
	void __fastcall CheckBoxColorCorrectionInUseClick(TObject *Sender); 
	void __fastcall ComboBoxColorRefChange(TObject *Sender); 
	void __fastcall ComboBoxColorRefEnter(TObject *Sender); 
	void __fastcall ComboBoxColorRefExit(TObject *Sender); 
	void __fastcall ComboBoxColorCorrectTypeChange(TObject *Sender); 
	void __fastcall ComboBoxColorCorrectTypeEnter(TObject *Sender); 
	void __fastcall ComboBoxColorCorrectTypeExit(TObject *Sender); 
	void __fastcall CheckBoxColorCorrectionInUseEnter(TObject *Sender); 
	void __fastcall EditLoopChangeEnter(TObject *Sender); 
	void __fastcall optimizeRow1Click(TObject *Sender); 
	void __fastcall optimizeColumn1Click(TObject *Sender); 
	void __fastcall linkRow1Click(TObject *Sender); 
	void __fastcall linkColumn1Click(TObject *Sender); 
	void __fastcall presetRow1Click(TObject *Sender); 
	void __fastcall presetColumn1Click(TObject *Sender); 
	void __fastcall Finetunecontrolpoint1Click(TObject *Sender); 
	void __fastcall ButtonHideStitchScriptClick(TObject *Sender); 
	void __fastcall Addcontrolpoint1Click(TObject *Sender); 
	void __fastcall Updatecontrolpoint1Click(TObject *Sender); 
	void __fastcall ComboBoxZoomMainEnter(TObject *Sender); 
	void __fastcall ButtonHideOptimizationScriptClick(TObject *Sender); 
	void __fastcall ButtonShowOptimizationScriptClick(TObject *Sender); 
	void __fastcall ScrollBoxOptYEnter(TObject *Sender); 
	void __fastcall CheckBoxOptClick(TObject *Sender); 
	void __fastcall FormDestroy(TObject *Sender); 
	void __fastcall CheckBoxOptEnter(TObject *Sender); 
	void __fastcall CheckBoxLinkClick(TObject *Sender); 
	void __fastcall CheckBoxLinkEnter(TObject *Sender); 
	void __fastcall EditLinkChange(TObject *Sender); 
	void __fastcall EditLinkEnter(TObject *Sender); 
	void __fastcall ImageFilesExit(TObject *Sender); 
	void __fastcall ButtonSetOptClick(TObject *Sender); 
	void __fastcall ButtonClrOptClick(TObject *Sender); 
	void __fastcall ButtonSetLinkClick(TObject *Sender); 
	void __fastcall ButtonClrLinkClick(TObject *Sender); 
	void __fastcall ComboBoxSelectReferenceImageEnter(TObject *Sender); 
	void __fastcall ComboBoxSelectReferenceImageChange(TObject *Sender); 
	void __fastcall ComboBoxSelectReferenceImageExit(TObject *Sender); 
	void __fastcall Preferences1Click(TObject *Sender); 
	void __fastcall ButtonSetUseClick(TObject *Sender); 
	void __fastcall ButtonClrUseClick(TObject *Sender); 
	void __fastcall GroupBoxActiveStitchImagesEnter(TObject *Sender); 
	void __fastcall CheckBoxPreviewImageClick(TObject *Sender); 
	void __fastcall ScrollBoxPreviewImagesEnter(TObject *Sender); 
	void __fastcall CheckBoxActiveStitchImageClick(TObject *Sender); 
	void __fastcall ButtonStopLoopClick(TObject *Sender); 
	void __fastcall MemoOptimizeChange(TObject *Sender); 
	void __fastcall StringGridImageInfoGetEditText(TObject *Sender, int ACol, 
          int ARow, AnsiString &Value); 
	void __fastcall StringGridImageInfoSetEditText(TObject *Sender, int ACol, 
          int ARow, const AnsiString Value); 
	void __fastcall RadioGroupLineTypeClick(TObject *Sender); 
	void __fastcall ComboBoxTEnter(TObject *Sender); 
	void __fastcall ImageLeftMouseUp(TObject *Sender, TMouseButton Button, 
          TShiftState Shift, int X, int Y); 
	void __fastcall ButtonFineTuneClick(TObject *Sender); 
	void __fastcall ScrollBarLHScroll(TObject *Sender, TScrollCode ScrollCode, 
          int &ScrollPos); 
	void __fastcall Originalangle1Click(TObject *Sender); 
	void __fastcall EditPVExit(TObject *Sender); 
	void __fastcall ButtonSetOptValZeroClick(TObject *Sender); 
	void __fastcall ButtonSetToMemoryClick(TObject *Sender); 
	void __fastcall ButtonTakeValuesBackClick(TObject *Sender); 
	void __fastcall ButtonSwapSettingsClick(TObject *Sender); 
	void __fastcall ButtonStitchSeparatelyClick(TObject *Sender); 
private:	// User declarations 
		GuiAlignInfo Fainf;		// this contains project information 
		GuiAlignInfo Faopt,		// optional, used in optimization 
			Fapre,				// preview 
			Fadef;				// default settings 
		double FExportScale; 
		TWinProg *FWinProg,*FWinStitchProg,*FWinPreviewProg; 
		int	FLastControlPointNrClick; 
		int FLastControlPointRow; 
		GuiControlPoint FEditCpt; 
		int FLastImageInfoCol; 
		int FLastImageInfoRow; 
		int FLastImageClickNr; 
		TRect FLZRect;	// small zoom images 
		TRect FRZRect; 
		double FSmallImageZoomRatio,FMainImageZoomRatio; 
		TFineTuneDiffRect FLFineRect, FRFineRect;	// used for "trick" when virtual click is made for main images with preset coordinates 
		TMainImageRect FLMIRect, FRMIRect; 
		//TRect FLIRect;	// big zoom images 
		//TRect FRIRect; 
		double Faverage_distance,Flast_avg_dist,Fepsilon; 
		int Faverage_sums_count,Floops,FLoopI,FLoopTimeCount; 
		Graphics::TBitmap *FLZmembitmap, *FRZmembitmap;	// memory bitmaps 
		Graphics::TBitmap *FLIpbitmap, *FRIpbitmap;	// pointers to bitmaps 
		AnsiString FLastNameForOptimizitation; 
		AnsiString FLastNameForPreview; 
		//TCheckBox **FOptY; 
		ppTCheckBox FOpt[MaxOptBoxParamCount];	// all possible parameters 
		ppTCheckBox FLink[MaxOptBoxParamCount];	// all possible parameters 
		ppTEdit FEdit[MaxOptBoxParamCount];	// all possible parameters 
		pTButton FSetOpt[MaxOptBoxParamCount];	// all possible parameters 
		pTButton FClrOpt[MaxOptBoxParamCount];	// all possible parameters 
		pTButton FSetLink[MaxOptBoxParamCount];	// all possible parameters 
		pTButton FClrLink[MaxOptBoxParamCount];	// all possible parameters 
		// stitched images and checkboxes for them 
		int FStitchBoxCount; 
		ppTCheckBox FPreviewStitchBox; 
		ppTCheckBox FFinalStitchBox; 
		//TCheckBox *FOptY[50]; 
		//int *FOptY[50]; 
		//pint FOptY[50]; 
		int FnumImY;//,FRefImNr; 
		// Image reading options 
		bool FOpenImageAtStart; 
		bool FAutoAddEnabled,FAutoUpdateEnabled; 
		void __fastcall WriteOptimizeScriptClick(GuiAlignInfo *ainf); 
		void __fastcall SaveOptimizationScriptClick(GuiAlignInfo *ainf); 
		bool __fastcall SliceOptimization(int i); 
		void __fastcall SetImageToClickCoord(TObject *Sender,TImage* image); 
		bool __fastcall OpenProject(AnsiString projectName); 
		DelayedInterpolateCommandData FDelayedInterpolate[2]; 
		int getCheckBoxParamNr(TWinControl *Sender); 
		TCheckBox *__fastcall getOptBox(int imNr,int paramNr); 
		TCheckBox *__fastcall getLinkBox(int imNr,int paramNr); 
		TEdit *__fastcall getEditBox(int imNr,int paramNr); 
		int __fastcall getOptParamValue(int imNr,int paramNr); 
		void __fastcall setOptParamValue(int imNr,int paramNr,int value); 
		double __fastcall getParamData(int imNr,int paramNr); 
		void __fastcall setParamData(int imNr,int paramNr,double value); 
		AnsiString __fastcall getParamName(int ParamNr); 
		bool __fastcall OpenImageFileInList(int nr); 
		int __fastcall GetCountOfCPLineNr(int lineNr);	// Used in ButtonAddCPClick 
		int __fastcall GetNewCPLineNr(void);		// Used in ButtonAddCPClick 
		//int __fastcall listCompare(void *a, void *b); 
public:		// User declarations 
		__fastcall TFormMain(TComponent* Owner); 
		void __fastcall DisplayHint(TObject *Sender);  // add this line 
}; 
//--------------------------------------------------------------------------- 
extern PACKAGE TFormMain *FormMain; 
//--------------------------------------------------------------------------- 
#endif