private void ApplyValue(TrackBarRange value) { RepositoryItemRangeTrackBar properties = rangeTrackBarControl1.Properties; properties.Minimum = Math.Min(properties.Minimum, value.Minimum); properties.Maximum = Math.Max(properties.Maximum, value.Maximum); rangeTrackBarControl1.Value = value; }
public static TrackBarRange StringToTrackBarRange(string value) { TrackBarRange result = TrackBarRange.Empty; string[] values = value.Split(','); if (values.Length == 2) { int min = Convert.ToInt32(values[0]); int max = Convert.ToInt32(values[1]); result = new TrackBarRange(min, max); } return(result); }
private void OnQueryPopup(object sender, CancelEventArgs e) { TrackBarRange value = ValuesConverter.StringToTrackBarRange((sender as PopupContainerEdit).Text); if (value.IsEmpty) { e.Cancel = true; } else { ApplyValue(value); } }
private void TrackBarEditValueChanged(object sender, EventArgs e) { var obj = (RangeTrackBarControl)sender; TrackBarRange val = obj.Value; if (val.Minimum == val.Maximum) { if (val.Minimum > 0) { val.Minimum -= 1; } else { val.Maximum += 1; } } obj.Value = val; }
public static void SetRangeLabel( RangeTrackBarControl bar, string label, LabelControl labelCtl) { TrackBarRange r = bar.Value; string txt = ""; txt += r.Minimum.ToString(); if (r.Maximum != r.Minimum) { txt += "-" + r.Maximum; } if (Lex.IsDefined(label)) { txt += " " + label; } labelCtl.Text = txt; return; }
public static string TrackBarRangeToString(TrackBarRange range) { return(string.Format("{0},{1}", range.Minimum, range.Maximum)); }
void Up_textChanged(object sender, EventArgs e) { if (!image.IsInitialized() || Runflag2 || RunFlag3) { return; } RunFlag = true; NumericUpDown numericUpDown = (NumericUpDown)sender; if (numericUpDown.Name == "numericUpDown1" || numericUpDown.Name == "numericUpDown2") { //全局阈值分割 setting.LocalOrGlobal = false; int low = (int)numericUpDown1.Value; int high = (int)numericUpDown2.Value; if (low >= high) { //MessageBox.Show("最小阈值设置不能大于最大阈值设置!"); return; } else { setting.minThreshold = low; setting.maxThreshold = high; TrackBarRange range = new TrackBarRange(0, 255); range.Minimum = low; range.Maximum = high; rangeTrackBarControl1.Value = range; HObject Region = new HObject(); Region.Dispose(); string Error = RunThreshold(image, out Region); if (window != null && Error == "OK") { HOperatorSet.SetColor(window.HWindowHalconID, "red"); HOperatorSet.DispObj(Region, window.HWindowHalconID); } else { MessageBox.Show(Error); } } } else //本地阈值 { int width = (int)numericUpDown3.Value; int high = (int)numericUpDown4.Value; int offset = (int)numericUpDown5.Value; trackBarControl1.Value = width; trackBarControl2.Value = high; trackBarControl3.Value = offset; HObject Region = new HObject(); Region.Dispose(); setting.maskWith = width; setting.maskHeight = high; setting.LocalOrGlobal = true; setting.thresholdOffset = offset; string Error = RunThreshold(image, out Region); if (window != null && Error == "OK") { HOperatorSet.SetColor(window.HWindowHalconID, "red"); HOperatorSet.DispObj(Region, window.HWindowHalconID); } else { MessageBox.Show(Error); } } RunFlag = false; }
public void Setup(ColumnInfo colInfo) { InSetup = true; ColInfo = colInfo; // save ref to colInfo QueryColumn qc = colInfo.Qc; Stats = colInfo.Rfld.GetStats(); RangeFilter.Properties.Minimum = 0; RangeFilter.Properties.Maximum = Stats.DistinctValueList.Count - 1; ParsedSingleCriteria psc = MqlUtil.ParseSingleCriteria(ColInfo.Qc.SecondaryCriteria); // parse criteria TrackBarRange tbr = new TrackBarRange(0, Stats.DistinctValueList.Count - 1); RangeFilter.Value = tbr; if (psc != null && psc.OpEnum == CompareOp.Between && Stats.DistinctValueList.Count > 0) // setup prev value { MetaColumnType type = ColInfo.Mc.DataType; MobiusDataType lowVal = MobiusDataType.New(type, psc.Value); MobiusDataType highVal = MobiusDataType.New(type, psc.Value2); if (MetaColumn.IsDecimalMetaColumnType(type)) { // adjust decimal comparison values by an epsilon double e = MobiusDataType.GetEpsilon(Stats.MaxValue.FormattedText); lowVal.NumericValue += e; highVal.NumericValue -= e; } int lowPos = -1; for (int i1 = 0; i1 < Stats.DistinctValueList.Count; i1++) { MobiusDataType mdt = Stats.DistinctValueList[i1]; string fTxt = mdt.FormattedText; if (mdt.CompareTo(lowVal) <= 0 || Lex.Eq(fTxt, psc.Value)) { lowPos = i1; } else { break; } } int highPos = -1; for (int i1 = Stats.DistinctValueList.Count - 1; i1 >= 0; i1--) { MobiusDataType mdt = Stats.DistinctValueList[i1]; string fTxt = mdt.FormattedText; if (mdt.CompareTo(highVal) >= 0 || Lex.Eq(fTxt, psc.Value2)) { highPos = i1; } else { break; } } if (lowPos >= 0 && highPos >= 0) { tbr = new TrackBarRange(lowPos, highPos); RangeFilter.Value = tbr; } } UpdateLabels(); RangeFilter.Focus(); InSetup = false; return; }