Beispiel #1
0
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 폼 초기화
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public bool InitializeForm()
        {
            bool bReturn = false;

            do
            {
                // 카메라 화면 초기화
                m_objFormDisplay.Initialize(( int )CDefine.enumCamera.CAMERA_1, "CAMERA");
                m_objFormDisplay.SetSize(panelVision.Location.X, panelVision.Location.Y, panelVision.Width, panelVision.Height, false);
                SetFormDockStyle(m_objFormDisplay, panelVision);
                // 버튼 색상 정의
                SetButtonColor();
                // 설비 타입에 따라 버튼 숨김 처리 필요
                SetChangeMachineTypeButton();

                bReturn = true;
            } while(false);

            return(bReturn);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 폼 초기화
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public bool InitializeForm()
        {
            bool bReturn = false;

            do
            {
                var pDocument = CDocument.GetDocument;
                m_iCameraCount = ( int )CDefine.enumCamera.CAMERA_FINAL;
                // 검사 결과 ( 디스플레이 & 데이터 갱신 )
                m_delegateUpdateDisplayResultVIDI    = new DelegateUpdateDisplay(UpdateDisplayResultVIDI);
                m_delegateUpdateDisplayResultMeasure = new DelegateUpdateDisplay(UpdateDisplayResultMeasure);
                m_delegateUpdateDisplayOriginal      = new DelegateUpdateDisplay(UpdateDisplayOriginal);
                m_delegateUpdateDisplayPMS           = new DelegateUpdateDisplay(UpdateDisplayPMS);
                m_delegateUpdateResult = new DelegateUpdateResult(UpdateResult);
                // 라이브 결과 ( 디스플레이 )
                m_delegateUpdateDisplayLive = new DelegateUpdateDisplayLive(UpdateDisplayLive);
                // 이미지 저장
                m_delegateSaveImage = new DelegateSaveImage(SaveImage);
                // 리스트 로그
                m_objListLog = new ListBox[m_iCameraCount];
                m_objListLog[( int )CDefine.enumCamera.CAMERA_1] = this.listLogInputTray1;

                // 디스플레이 화면 생성
                {
                    m_iDisplayIndex   = ( int )enumDisplayIndex.DISPLAY_FINAL;
                    m_objPanelDisplay = new Panel[m_iDisplayIndex];
                    m_objPanelDisplay[( int )enumDisplayIndex.PMS]      = this.panelDisplayPMS;
                    m_objPanelDisplay[( int )enumDisplayIndex.ORIGIN_1] = this.panelDisplayOriginalImage1;
                    m_objPanelDisplay[( int )enumDisplayIndex.ORIGIN_2] = this.panelDisplayOriginalImage2;
                    m_objPanelDisplay[( int )enumDisplayIndex.ORIGIN_3] = this.panelDisplayOriginalImage3;
                    m_objPanelDisplay[( int )enumDisplayIndex.ORIGIN_4] = this.panelDisplayOriginalImage4;

                    m_objPanelDisplay[( int )enumDisplayIndex.VIDI_1]    = this.panelDisplayVidi1;
                    m_objPanelDisplay[( int )enumDisplayIndex.VIDI_2]    = this.panelDisplayVidi2;
                    m_objPanelDisplay[( int )enumDisplayIndex.VIDI_3]    = this.panelDisplayVidi3;
                    m_objPanelDisplay[( int )enumDisplayIndex.MEASURE_1] = this.panelDisplayVidi4;
                    m_objPanelDisplay[( int )enumDisplayIndex.MEASURE_2] = this.panelDisplayVidi5;
                    m_objPanelDisplay[( int )enumDisplayIndex.MEASURE_3] = this.panelDisplayVidi6;

                    // 폼 디스플레이 생성
                    m_objFormDisplay     = new Form[m_iDisplayIndex];
                    m_objDisplaySize     = new Size[m_iDisplayIndex];
                    m_objDisplayLocation = new Point[m_iDisplayIndex];

                    string[] strDisplayName = new string[m_objFormDisplay.Length];
                    strDisplayName[( int )enumDisplayIndex.PMS]      = enumDisplayIndex.PMS.ToString();
                    strDisplayName[( int )enumDisplayIndex.ORIGIN_1] = enumDisplayIndex.ORIGIN_1.ToString();
                    strDisplayName[( int )enumDisplayIndex.ORIGIN_2] = enumDisplayIndex.ORIGIN_2.ToString();
                    strDisplayName[( int )enumDisplayIndex.ORIGIN_3] = enumDisplayIndex.ORIGIN_3.ToString();
                    strDisplayName[( int )enumDisplayIndex.ORIGIN_4] = enumDisplayIndex.ORIGIN_4.ToString();

                    strDisplayName[( int )enumDisplayIndex.VIDI_1]    = enumDisplayIndex.VIDI_1.ToString();
                    strDisplayName[( int )enumDisplayIndex.VIDI_2]    = enumDisplayIndex.VIDI_2.ToString();
                    strDisplayName[( int )enumDisplayIndex.VIDI_3]    = enumDisplayIndex.VIDI_3.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_1] = enumDisplayIndex.MEASURE_1.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_2] = enumDisplayIndex.MEASURE_2.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_3] = enumDisplayIndex.MEASURE_3.ToString();

                    for (int iLoopCount = 0; iLoopCount < m_objFormDisplay.Length; iLoopCount++)
                    {
                        // 디스플레이 화면 생성 & 초기화
                        CFormDisplay objForm     = new CFormDisplay();
                        int          iImageIndex = 0;
                        if (( int )enumDisplayIndex.VIDI_1 > iLoopCount && ( int )enumDisplayIndex.PMS < iLoopCount)
                        {
                            iImageIndex = iLoopCount - ( int )enumDisplayIndex.ORIGIN_1;
                        }
                        else if (( int )enumDisplayIndex.VIDI_1 <= iLoopCount && ( int )enumDisplayIndex.MEASURE_1 > iLoopCount)
                        {
                            iImageIndex = iLoopCount - ( int )enumDisplayIndex.VIDI_1;
                        }
                        else if (( int )enumDisplayIndex.MEASURE_1 <= iLoopCount)
                        {
                            iImageIndex = iLoopCount - ( int )enumDisplayIndex.MEASURE_1;
                        }


                        objForm.Initialize(( int )CDefine.enumCamera.CAMERA_1, string.Format("{0}", strDisplayName[iLoopCount]), false, iImageIndex);
                        objForm.SetDisplayIndex(iLoopCount);

                        objForm.Visible = true;
                        objForm.SetTimer(true);
                        // 사이즈 조정
                        Panel objPanel = m_objPanelDisplay[iLoopCount];
                        objForm.SetSize(objPanel.Location.X, objPanel.Location.Y, objPanel.Width, objPanel.Height, true);
                        // 디스플레이 사이즈 변경 이벤트 추가
                        objForm.EventChangeSizeDisplay += new CFormDisplay.DelegateChangeSizeDisplay(ChangeDisplaySize);
                        // 패널에 화면 붙임
                        SetFormDockStyle(objForm, objPanel);
                        m_objFormDisplay[iLoopCount] = objForm;
                        // 원본 패널 사이즈 및 위치 저장
                        m_objDisplaySize[iLoopCount]     = m_objPanelDisplay[iLoopCount].Size;
                        m_objDisplayLocation[iLoopCount] = m_objPanelDisplay[iLoopCount].Location;
                    }
                }

                // 디스플레이 확대 화면 생성
                m_objFormDisplayChangeSize = new CFormDisplayChangeSize();

                // 버튼 색상 정의
                SetButtonColor();
                // 초기화 언어 변경
                SetChangeLanguage();
                // 버튼 이벤트 로그 정의
                SetButtonEventChange();
                // 타이머 외부에서 제어
                timer.Interval = 100;
                timer.Enabled  = false;

                bReturn = true;
            } while(false);

            return(bReturn);
        }
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        //생성 :
        //추가 :
        //목적 : 초기화
        //설명 :
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private bool Initialize()
        {
            bool bReturn   = false;
            var  pDocument = CDocument.GetDocument;

            do
            {
                InitializeForm();
                m_delegateUpdateDisplayResult        = new DelegateUpdateDisplay(UpdateDisplayResult);
                m_delegateUpdateDisplayResultHistory = new DelegateUpdateDisplayHistory(UpdateDisplayResultHistory);

                // 디스플레이 화면 생성
                {
                    m_iDisplayIndex       = ( int )enumDisplayIndex.DISPLAY_FINAL;
                    m_objPanelDisplayLeft = new Panel[m_iDisplayIndex];
                    m_objPanelDisplayLeft[( int )enumDisplayIndex.OIRGINAL] = this.panelDisplayPosition22;

                    m_objPanelDisplayLeft[( int )enumDisplayIndex.MEASURE_1] = this.panelDisplayMeasure11;
                    m_objPanelDisplayLeft[( int )enumDisplayIndex.MEASURE_2] = this.panelDisplayMeasure12;
                    m_objPanelDisplayLeft[( int )enumDisplayIndex.MEASURE_3] = this.panelDisplayMeasure13;
                    m_objPanelDisplayLeft[( int )enumDisplayIndex.MEASURE_4] = this.panelDisplayMeasure14;
                    m_objPanelDisplayLeft[( int )enumDisplayIndex.MEASURE_5] = this.panelDisplayMeasure15;
                    m_objPanelDisplayLeft[( int )enumDisplayIndex.MEASURE_6] = this.panelDisplayMeasure16;

                    // 폼 디스플레이 생성
                    m_objFormDisplayLeft = new Form[m_iDisplayIndex];

                    string[] strDisplayName = new string[m_objFormDisplayLeft.Length];
                    strDisplayName[( int )enumDisplayIndex.OIRGINAL]  = enumDisplayIndex.OIRGINAL.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_1] = enumDisplayIndex.MEASURE_1.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_2] = enumDisplayIndex.MEASURE_2.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_3] = enumDisplayIndex.MEASURE_3.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_4] = enumDisplayIndex.MEASURE_4.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_5] = enumDisplayIndex.MEASURE_5.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_6] = enumDisplayIndex.MEASURE_6.ToString();

                    for (int iLoopCount = 0; iLoopCount < m_objFormDisplayLeft.Length; iLoopCount++)
                    {
                        // 디스플레이 화면 생성 & 초기화
                        CFormDisplay objForm     = new CFormDisplay();
                        int          iImageIndex = 0;
                        if (( int )enumDisplayIndex.OIRGINAL == iLoopCount)
                        {
                            iImageIndex = iLoopCount;
                        }
                        else if (( int )enumDisplayIndex.MEASURE_1 <= iLoopCount)
                        {
                            iImageIndex = iLoopCount - ( int )enumDisplayIndex.MEASURE_1;
                        }


                        objForm.Initialize(( int )CDefine.enumCamera.CAMERA_1, string.Format("{0}", strDisplayName[iLoopCount]), false, iImageIndex);
                        objForm.UseMeasureInfo3D();

                        objForm.Visible = true;
                        objForm.SetTimer(true);
                        // 사이즈 조정
                        Panel objPanel = m_objPanelDisplayLeft[iLoopCount];
                        objForm.SetSize(objPanel.Location.X, objPanel.Location.Y, objPanel.Width, objPanel.Height, false, false);
                        // 패널에 화면 붙임
                        SetFormDockStyle(objForm, objPanel);
                        m_objFormDisplayLeft[iLoopCount] = objForm;
                    }
                }

                // 디스플레이 화면 생성
                {
                    m_iDisplayIndex        = ( int )enumDisplayIndex.DISPLAY_FINAL;
                    m_objPanelDisplayRight = new Panel[m_iDisplayIndex];
                    m_objPanelDisplayRight[( int )enumDisplayIndex.OIRGINAL] = this.panelDisplayPosition24;

                    m_objPanelDisplayRight[( int )enumDisplayIndex.MEASURE_1] = this.panelDisplayMeasure21;
                    m_objPanelDisplayRight[( int )enumDisplayIndex.MEASURE_2] = this.panelDisplayMeasure22;
                    m_objPanelDisplayRight[( int )enumDisplayIndex.MEASURE_3] = this.panelDisplayMeasure23;
                    m_objPanelDisplayRight[( int )enumDisplayIndex.MEASURE_4] = this.panelDisplayMeasure24;
                    m_objPanelDisplayRight[( int )enumDisplayIndex.MEASURE_5] = this.panelDisplayMeasure25;
                    m_objPanelDisplayRight[( int )enumDisplayIndex.MEASURE_6] = this.panelDisplayMeasure26;

                    // 폼 디스플레이 생성
                    m_objFormDisplayRight = new Form[m_iDisplayIndex];

                    string[] strDisplayName = new string[m_objFormDisplayRight.Length];
                    strDisplayName[( int )enumDisplayIndex.OIRGINAL]  = enumDisplayIndex.OIRGINAL.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_1] = enumDisplayIndex.MEASURE_1.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_2] = enumDisplayIndex.MEASURE_2.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_3] = enumDisplayIndex.MEASURE_3.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_4] = enumDisplayIndex.MEASURE_4.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_5] = enumDisplayIndex.MEASURE_5.ToString();
                    strDisplayName[( int )enumDisplayIndex.MEASURE_6] = enumDisplayIndex.MEASURE_6.ToString();

                    for (int iLoopCount = 0; iLoopCount < m_objFormDisplayRight.Length; iLoopCount++)
                    {
                        // 디스플레이 화면 생성 & 초기화
                        CFormDisplay objForm     = new CFormDisplay();
                        int          iImageIndex = 0;
                        if (( int )enumDisplayIndex.OIRGINAL == iLoopCount)
                        {
                            iImageIndex = iLoopCount;
                        }
                        else if (( int )enumDisplayIndex.MEASURE_1 <= iLoopCount)
                        {
                            iImageIndex = iLoopCount - ( int )enumDisplayIndex.MEASURE_1;
                        }


                        objForm.Initialize(( int )CDefine.enumCamera.CAMERA_1, string.Format("{0}", strDisplayName[iLoopCount]), false, iImageIndex);
                        objForm.SetDisplayIndex(iLoopCount);

                        objForm.Visible = true;
                        objForm.SetTimer(true);
                        // 사이즈 조정
                        Panel objPanel = m_objPanelDisplayRight[iLoopCount];
                        objForm.SetSize(objPanel.Location.X, objPanel.Location.Y, objPanel.Width, objPanel.Height, false, false);
                        // 패널에 화면 붙임
                        SetFormDockStyle(objForm, objPanel);
                        m_objFormDisplayRight[iLoopCount] = objForm;
                    }
                }

                bReturn = true;
            } while(false);

            return(bReturn);
        }