//---------------------------------------------------------------------------

#ifndef CTVM100MFH
#define CTVM100MFH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <DB.hpp>
#include <DBClient.hpp>
#include <FMTBcd.hpp>
#include <Provider.hpp>
#include <SqlExpr.hpp>
#include <Menus.hpp>
#include <ExtCtrls.hpp>
#include <Graphics.hpp>
#include <ComCtrls.hpp>
#include <ADODB.hpp>
#include <Dialogs.hpp>
#include <ExtDlgs.hpp>
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#include "cxButtons.hpp"
#include "cxContainer.hpp"
#include "cxControls.hpp"
#include "cxDropDownEdit.hpp"
#include "cxEdit.hpp"
#include "cxGraphics.hpp"
#include "cxGroupBox.hpp"
#include "cxLabel.hpp"
#include "cxLookAndFeelPainters.hpp"
#include "cxLookAndFeels.hpp"
#include "cxMaskEdit.hpp"
#include "cxSpinEdit.hpp"
#include "cxSplitter.hpp"
#include "cxTextEdit.hpp"
#include "dxSkinBlue.hpp"
#include "dxSkinsCore.hpp"
#include "dxSkinBlack.hpp"
#include "dxSkinMcSkin.hpp"
#include "FRAME_CctvListF.h"
#include "FRAME_OpenMapF.h"
//---------------------------------------------------------------------------

class TCTVM100M : public TForm
{
__published:	// IDE-managed Components
    TTimer *TmrShow;
    TShape *ShpTitle;
    TcxButton *BtnClose;
    TLabel *LblCaption;
    TShape *ShpList;
    TEdit *EdFocus;
    TPanel *PnlBack;
    TPanel *PnlBottom;
    TcxGroupBox *GrpInfo;
    TPanel *PnlMenu;
    TcxButton *BtnEdit;
    TcxButton *BtnInsert;
    TcxButton *BtnDelete;
    TcxButton *BtnSave;
    TcxLabel *cxLabel11;
    TcxLabel *cxLabel12;
    TPanel *PnlEdit;
    TImage *ImgDesc01;
    TImage *ImgDesc02;
    TImage *ImgDesc03;
    TImage *ImgDesc04;
    TImage *ImgDesc06;
    TImage *ImgDesc07;
    TImage *ImgDesc11;
    TcxTextEdit *EdCtlrId;
    TcxTextEdit *EdCtlrNm;
    TcxTextEdit *EdNmbr;
    TcxSpinEdit *SePosX;
    TcxSpinEdit *SePosY;
    TcxLabel *cxLabel1;
    TcxLabel *cxLabel2;
    TcxLabel *cxLabel3;
    TcxLabel *cxLabel6;
    TcxLabel *cxLabel18;
    TcxMaskEdit *EdCtlrIp;
    TcxComboBox *CbType;
    TcxLabel *cxLabel8;
    TcxLabel *cxLabel5;
    TcxLabel *cxLabel15;
    TcxTextEdit *Ed_STRM_SESN_NM;
    TcxTextEdit *EdCmncPort;
    TcxSplitter *cxSplitter2;
    TcxGroupBox *GrpMap;
    TImage *ImgDesc14;
    TcxLabel *lblText1;
    TcxLabel *lblText2;
    TcxLabel *lblText3;
    TcxLabel *lblText4;
    TcxLabel *lblText5;
    TcxLabel *lblText6;
    TcxLabel *lblText7;
    TcxLabel *lblText8;
    TcxLabel *lblText9;
    TFRAMEOpenMap *FRAMEOpenMap1;
    TImage *ImgDesc15;
    TcxLabel *cxLabel4;
    TcxTextEdit *Ed_STRM_RTSP_ADDR;
    TcxLabel *cxLabel7;
    TImage *ImgDesc16;
    TcxTextEdit *Ed_STRM_RTMP_ADDR;
    TcxLabel *cxLabel10;
    TImage *ImgDesc17;
    TcxTextEdit *Ed_STRM_HTTP_ADDR;
    TImage *ImgDesc18;
    TcxLabel *cxLabel13;
    TcxLabel *cxLabel14;
    TcxLabel *cxLabel17;
    TcxTextEdit *ISTL_LCTN_ADDR;
    TImage *ImgDesc25;
    TcxTextEdit *ISTL_LCTN_NM;
    TcxLabel *cxLabel22;
    TImage *ImgDesc05;
    TcxTextEdit *Ed_LINK_ID;
    TcxTextEdit *EdTmpLinkId;
    TButton *BtnApply;
    TImage *ImgDesc24;
    TcxTextEdit *Ed_INTR_RTMP_ADDR;
    TcxSpinEdit *Se_CCTV_CTLR_PORT;
    TcxComboBox *CbLc;
    TPanel *Panel1;
    TcxMaskEdit *Ed_CCTV_ENCD_IP;
    TcxMaskEdit *Ed_CCTV_CAPT_IP;
    TcxSpinEdit *Se_TYPE;
    TcxLabel *cxLabel9;
    TcxLabel *cxLabel16;
    TcxLabel *cxLabel19;
    TcxTextEdit *EdCmraId;
    TcxTextEdit *EdCmraPswd;
    TPanel *PnlLeft;
    TcxGroupBox *cxGroupBox3;
    TFRAMECctvList *FRAMECctvList1;
    TcxSplitter *cxSplitter1;
    TcxTextEdit *EdMacAddr;
    TcxLabel *cxLabel20;
    TImage *ImgDesc051;
    TcxTextEdit *EdSerialNo;
    TcxLabel *cxLabel21;
    TImage *ImgDesc052;
    TcxLabel *cxLabel23;
    TImage *ImgDesc053;
    TcxComboBox *CbTtaYn;
    void __fastcall FormShow(TObject *Sender);
    void __fastcall TmrShowTimer(TObject *Sender);
    void __fastcall BtnCloseClick(TObject *Sender);
    void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
    void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
    void __fastcall BtnEditClick(TObject *Sender);
    void __fastcall BtnInsertClick(TObject *Sender);
    void __fastcall BtnDeleteClick(TObject *Sender);
    void __fastcall BtnSaveClick(TObject *Sender);
    void __fastcall Ed_CMRA_PORTKeyPress(TObject *Sender, wchar_t &Key);
    void __fastcall Se_CMRA_CHNLPropertiesChange(TObject *Sender);
    void __fastcall FRAMECctvList1TvListCellDblClick(TcxCustomGridTableView *Sender, TcxGridTableDataCellViewInfo *ACellViewInfo,
          TMouseButton AButton, TShiftState AShift, bool &AHandled);
    void __fastcall BtnApplyClick(TObject *Sender);



private:	// User declarations
    void __fastcall CommClose();

    TcxDataController  *m_pGDC;
    String              FTitle;
    bool                FUpdate;
    bool                FNewDb;
    bool                EditMode;

public:
    String sJs;
    int    FLayerIdx;

public:		// User declarations
    __fastcall TCTVM100M(TComponent* Owner);

    void __fastcall FormInit();
    void __fastcall UpdateIcon();
    void __fastcall DisplayInfo(TCctvCtlr* AObj, bool AMoveObj=true);
    void __fastcall UpdateEditLink();
    void __fastcall DisplayLink(TCctvCtlr* AObj);

    void __fastcall ChangeEditMode(int AEdit);

    void __fastcall OpenMapCallback(TObject *ASender, const String AFunc, const String AArgs, const bool AFirst);
};
//---------------------------------------------------------------------------
extern PACKAGE TCTVM100M *CTVM100M;
//---------------------------------------------------------------------------

#endif

