private void ProcedureTable_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { CurrencyManager cm = (CurrencyManager)this.BindingContext[ProcedureTable.DataSource]; Procedure_Table p = new Procedure_Table(); switch (Camera.Procedure[cm.Position].ProcedureMethod) { case (int)procedure_M.readimage: //載入圖片函式 AccessImage readthefuckingimage = new AccessImage(); //由檔案載入圖片 readthefuckingimage.ImagefromFile(); //設定顯示視窗 //readthefuckingimage.setwindow(MainWindow.HalconWindow); if (readthefuckingimage.getimagebase().GetImage != null) { p.procedurefunction.doprocedurefunction += readthefuckingimage.show; Camera.Object[cm.Position].Image = readthefuckingimage.getimagebase().GetImage; Camera.Procedure[cm.Position].Setornot = true; } break; case (int)procedure_M.Measure_1D: Measure_1D M1_temp = (Measure_1D)Camera.Procedure[cm.Position].SettingForm; if (cm.Position != 0) { M1_temp.MeasureImage = Camera.Object[cm.Position - 1].Image; //暫時使用前一個程序的圖片(載入圖片) M1_temp.O_T = Camera.Object; } M1_temp.ShowDialog(); Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += M1_temp.run; Camera.Procedure[cm.Position].SettingForm = M1_temp; Camera.Procedure[cm.Position].Setornot = M1_temp.setornot; break; case (int)procedure_M.Measure_2D_Circle: Measure_2D_Circle M2DC_temp = (Measure_2D_Circle)Camera.Procedure[cm.Position].SettingForm; if (cm.Position != 0) { M2DC_temp.MeasureImage = Camera.Object[cm.Position - 1].Image; //暫時使用前一個程序的圖片(載入圖片) } M2DC_temp.ShowDialog(); Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += M2DC_temp.run; Camera.Procedure[cm.Position].SettingForm = M2DC_temp; Camera.Procedure[cm.Position].Setornot = M2DC_temp.setornot; break; case (int)procedure_M.Measure_2D_Ellipse: Measure_2D_Ellipse M2DE_temp = (Measure_2D_Ellipse)Camera.Procedure[cm.Position].SettingForm; if (cm.Position != 0) { M2DE_temp.MeasureImage = Camera.Object[cm.Position - 1].Image; //暫時使用前一個程序的圖片(載入圖片) } M2DE_temp.ShowDialog(); Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += M2DE_temp.run; Camera.Procedure[cm.Position].SettingForm = M2DE_temp; Camera.Procedure[cm.Position].Setornot = M2DE_temp.setornot; break; case (int)procedure_M.Measure_2D_Line: Measure_2D_Line M2DL_temp = (Measure_2D_Line)Camera.Procedure[cm.Position].SettingForm; if (cm.Position != 0) { M2DL_temp.MeasureImage = Camera.Object[cm.Position - 1].Image; //暫時使用前一個程序的圖片(載入圖片) } M2DL_temp.ShowDialog(); Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += M2DL_temp.run; Camera.Procedure[cm.Position].SettingForm = M2DL_temp; Camera.Procedure[cm.Position].Setornot = M2DL_temp.setornot; break; case (int)procedure_M.CreateMatchingModel: CreateMatchingModel CMM_temp = (CreateMatchingModel)Camera.Procedure[cm.Position].SettingForm; if (cm.Position != 0) { CMM_temp.TemplateImage = Camera.Object[cm.Position - 1].Image; } CMM_temp.ShowDialog(); Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += CMM_temp.run; Camera.Procedure[cm.Position].SettingForm = CMM_temp; Camera.Procedure[cm.Position].Setornot = CMM_temp.setornot; break; } setProcedurecolor(); }
private void ProcedureTable_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { CurrencyManager cm = (CurrencyManager)this.BindingContext[ProcedureTable.DataSource]; Procedure_Table p = new Procedure_Table(); //載入圖片函式 switch (Camera.Procedure[cm.Position].ProcedureMethod) { case (int)PROCEDURE.readimage: AccessImage readthefuckingimage = new AccessImage(); //由檔案載入圖片 readthefuckingimage.ImagefromFile(); if (readthefuckingimage.getimagebase().GetImage != null) { p.procedurefunction.doprocedurefunction += readthefuckingimage.show; string temp = "(procedure_" + cm.Position + ",Image_" + Camera.Object[cm.Position].OImage.Count + ")"; if (readthefuckingimage.getimagebase().GetImage != null) { Camera.Object[cm.Position].OImage.Clear(); Camera.Object[cm.Position].OImageName.Clear(); } Camera.Object[cm.Position].OImage.Add(readthefuckingimage.getimagebase().GetImage); Camera.Object[cm.Position].OImageName.Add(temp); Camera.Procedure[cm.Position].Setornot = true; } break; case (int)PROCEDURE.ImageFromCamera: ImageFromCamera IFC_temp = (ImageFromCamera)Camera.Procedure[cm.Position].SettingForm; IFC_temp.ShowDialog(); if (IFC_temp.setornot == true) { if (IFC_temp.dstImage != null) { Camera.Object[cm.Position].OImage.Clear(); Camera.Object[cm.Position].OImageName.Clear(); } Camera.Object[cm.Position].OImage.Add(IFC_temp.dstImage); Camera.Object[cm.Position].OImageName.Add("(procedure_" + cm.Position + ",Image_" + Camera.Object[cm.Position].OImage.Count + ")"); } Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += IFC_temp.run; Camera.Procedure[cm.Position].SettingForm = IFC_temp; Camera.Procedure[cm.Position].Setornot = IFC_temp.setornot; break; case (int)PROCEDURE.Measure_1D: Measure_1D M1_temp = (Measure_1D)Camera.Procedure[cm.Position].SettingForm; if (cm.Position != 0) { M1_temp.M1DP_in.O_T = Camera.Object; } M1_temp.ShowDialog(); if (M1_temp.M1DP_form.setornot == true) { Camera.Object[cm.Position].OPoint.Clear(); Camera.Object[cm.Position].OPointName.Clear(); if (M1_temp.M1DP_out.dstfirstpoint != null) { for (int i = 0; i < M1_temp.M1DP_out.dstfirstpoint.Count; i++) { Camera.Object[cm.Position].OPoint.Add(M1_temp.M1DP_out.dstfirstpoint[i]); Camera.Object[cm.Position].OPointName.Add("dstfirstpoint" + i); } } if (M1_temp.M1DP_out.dstsecondpoint != null) { for (int i = 0; i < M1_temp.M1DP_out.dstsecondpoint.Count; i++) { Camera.Object[cm.Position].OPoint.Add(M1_temp.M1DP_out.dstsecondpoint[i]); Camera.Object[cm.Position].OPointName.Add("dstsecondpoint" + i); } } } Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += M1_temp.run; Camera.Procedure[cm.Position].SettingForm = M1_temp; Camera.Procedure[cm.Position].Setornot = M1_temp.M1DP_form.setornot; break; case (int)PROCEDURE.Measure_2D_Circle: Measure_2D_Circle M2DC_temp = (Measure_2D_Circle)Camera.Procedure[cm.Position].SettingForm; if (cm.Position != 0) { M2DC_temp.M2DCP_in.O_T = Camera.Object; //暫時使用前一個程序的圖片(載入圖片) } M2DC_temp.ShowDialog(); if (M2DC_temp.M2DCP_out.setornot == true) { Camera.Object[cm.Position].OCircle.Clear(); Camera.Object[cm.Position].OCircleName.Clear(); if (M2DC_temp.M2DCP_out.dst_circle != null) { Camera.Object[cm.Position].OCircle.Add(M2DC_temp.M2DCP_out.dst_circle); Camera.Object[cm.Position].OCircleName.Add("testcircle"); } } Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += M2DC_temp.run; Camera.Procedure[cm.Position].SettingForm = M2DC_temp; Camera.Procedure[cm.Position].Setornot = M2DC_temp.M2DCP_out.setornot; break; case (int)PROCEDURE.Measure_2D_Line: Measure_2D_Line M2DL_temp = (Measure_2D_Line)Camera.Procedure[cm.Position].SettingForm; if (cm.Position != 0) { M2DL_temp.M2DLP_in.O_T = Camera.Object; //暫時使用前一個程序的圖片(載入圖片) } M2DL_temp.ShowDialog(); if (M2DL_temp.M2DLP_out.setornot == true) { Camera.Object[cm.Position].OLine.Clear(); Camera.Object[cm.Position].OLineName.Clear(); if (M2DL_temp.M2DLP_out.dst_line != null) { Camera.Object[cm.Position].OLine.Add(M2DL_temp.M2DLP_out.dst_line); Camera.Object[cm.Position].OLineName.Add("TheVerticalLine"); } } Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += M2DL_temp.run; Camera.Procedure[cm.Position].SettingForm = M2DL_temp; Camera.Procedure[cm.Position].Setornot = M2DL_temp.M2DLP_out.setornot; break; case (int)PROCEDURE.CreateMatchingModel: CreateMatchingModel CMM_temp = (CreateMatchingModel)Camera.Procedure[cm.Position].SettingForm; if (cm.Position != 0) { CMM_temp.CMMP_in.O_T = Camera.Object; } CMM_temp.ShowDialog(); if (CMM_temp.CMMP_out.setornot ==true) { Camera.Object[cm.Position].OImage.Clear(); Camera.Object[cm.Position].OImageName.Clear(); if (CMM_temp.CMMP_out.dst_Image.GetImage != null) { Camera.Object[cm.Position].OImage.Add(CMM_temp.CMMP_out.dst_Image.GetImage); Camera.Object[cm.Position].OImageName.Add("CreateMatchingModel"); } } Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += CMM_temp.run; Camera.Procedure[cm.Position].SettingForm = CMM_temp; Camera.Procedure[cm.Position].Setornot = CMM_temp.CMMP_out.setornot; break; case (int)PROCEDURE.TheVerticalLine: TheVerticalLine TVL_temp = (TheVerticalLine)Camera.Procedure[cm.Position].SettingForm; if (cm.Position != 0) { TVL_temp.TVL_in.O_T = Camera.Object; } TVL_temp.ShowDialog(); if (TVL_temp.TVL_out.setornot == true) { Camera.Object[cm.Position].OLine.Clear(); Camera.Object[cm.Position].OLineName.Clear(); if (TVL_temp.TVL_out.dst_Line != null) { Camera.Object[cm.Position].OLine.Add(TVL_temp.TVL_out.dst_Line); Camera.Object[cm.Position].OLineName.Add("TheVerticalLine"); } } Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += TVL_temp.run; Camera.Procedure[cm.Position].SettingForm = TVL_temp; Camera.Procedure[cm.Position].Setornot = TVL_temp.TVL_out.setornot; break; case (int)PROCEDURE.PL_distance: PL_distance PLD_temp = (PL_distance)Camera.Procedure[cm.Position].SettingForm; if (cm.Position != 0) { PLD_temp.O_T = Camera.Object; } PLD_temp.ShowDialog(); Camera.Procedure[cm.Position].procedurefunction.doprocedurefunction += PLD_temp.run; Camera.Procedure[cm.Position].SettingForm = PLD_temp; Camera.Procedure[cm.Position].Setornot = PLD_temp.setornot; break; } setProcedurecolor(); }