Пример #1
0
        public StandartOptionsPanel(TransformManager manager) : base()
        {
            transform = manager;

            var table = new TableLayoutPanel();

            table.Dock = DockStyle.Fill;

            table.RowStyles.Add(new RowStyle(SizeType.Percent, 30));
            table.RowStyles.Add(new RowStyle(SizeType.Percent, 30));
            table.RowStyles.Add(new RowStyle(SizeType.Percent, 40));

            table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));
            table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));

            //число частот
            var freqCountPan = IFG.InitInputField("Кол-во частот:", (box) =>
            {
                var iValue = 0;
                if (!TryAnyParse(box.Text, ref iValue))
                {
                    MessageBox.Show("Количество частот должно быть целым числом.");
                    box.Text = opts.CountFreq.ToString();
                }
                else
                {
                    try
                    {
                        opts.CountFreq = iValue;
                    } catch (ArgumentException ex)
                    {
                        MessageBox.Show(ex.Message);
                        box.Text = opts.CountFreq.ToString();
                    }
                }
            }, opts.CountFreq);


            //шаг частоты
            var freqStartPan = IFG.InitInputField("Начальная частота:", (box) =>
            {
                var dValue = 0d;
                if (!TryAnyParse(box.Text, ref dValue))
                {
                    MessageBox.Show("Стартовая частота должна быть десятичным числом.");
                    box.Text = opts.StartFreq.ToString();
                }
                else
                {
                    try
                    {
                        opts.StartFreq = dValue;
                    }
                    catch (ArgumentException ex)
                    {
                        MessageBox.Show(ex.Message);
                        box.Text = opts.StartFreq.ToString();
                    }
                }
            }, opts.StartFreq);

            //стартовая частота
            var freqStepPan = IFG.InitInputField("Сдвиг частоты:", (box) =>
            {
                var dValue = 0d;
                if (!TryAnyParse(box.Text, ref dValue))
                {
                    MessageBox.Show("Сдвиг частоты должен быть десятичным числом.");
                    box.Text = opts.StepFreq.ToString();
                }
                else
                {
                    try
                    {
                        opts.StepFreq = dValue;
                    }
                    catch (ArgumentException ex)
                    {
                        MessageBox.Show(ex.Message);
                        box.Text = opts.StepFreq.ToString();
                    }
                }
            }, opts.StartFreq);

            //кнопка обновления
            var updateButton = new Button
            {
                Text = "Обновить",
            };

            updateButton.Click += (sender, ev) =>
            {
                Invalidate();
            };

            table.Controls.Add(freqStartPan, 0, 0);
            table.Controls.Add(freqStepPan, 1, 0);
            table.Controls.Add(freqCountPan, 0, 1);
            table.Controls.Add(new Panel(), 1, 1);
            table.Controls.Add(updateButton, 0, 2);
            table.Controls.Add(new Panel(), 1, 2);
            table.SetColumnSpan(updateButton, 2);
            Controls.Add(table);
        }
Пример #2
0
        public OptionsPanel(TransformManager manager) : base()
        {
            transform = manager;

            var table = new TableLayoutPanel();

            table.Dock = DockStyle.Fill;

            table.RowStyles.Add(new RowStyle(SizeType.Percent, 30));
            table.RowStyles.Add(new RowStyle(SizeType.Percent, 30));
            table.RowStyles.Add(new RowStyle(SizeType.Percent, 40));

            table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));
            table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));

            freqCount = transform.FreqSize;
            freqStart = transform.StartFreq;
            freqStep  = transform.FreqStep;

            //число частот
            var freqCountPan = IFG.InitInputField("Кол-во частот:", (value) =>
            {
                var iValue = 0;
                if (int.TryParse(value, out iValue))
                {
                    freqCount = iValue;
                }
            },
                                                  freqCount);


            //шаг частоты
            var freqStartPan = IFG.InitInputField("Начальная частота:", (value) =>
            {
                var dValue = 0d;
                if (double.TryParse(value, out dValue))
                {
                    freqStart = dValue;
                }
            },
                                                  freqStart);

            //стартовая частота
            var freqStepPan = IFG.InitInputField("Изменение частоты:", (value) =>
            {
                var dValue = 0d;
                if (double.TryParse(value, out dValue))
                {
                    freqStep = dValue;
                }
            },
                                                 freqStep);

            //кнопка обновления
            var updateButton = new Button
            {
                Text = "Обновить",
            };

            updateButton.Click += (sender, ev) =>
            {
                //TODO: здесь должен быть ворох исключений
                transform.SetParams(freqCount, freqStep, freqStart);
            };

            table.Controls.Add(freqStartPan, 0, 0);
            table.Controls.Add(freqStepPan, 1, 0);
            table.Controls.Add(freqCountPan, 0, 1);
            table.Controls.Add(new Panel(), 1, 1);
            table.Controls.Add(updateButton, 0, 2);
            table.Controls.Add(new Panel(), 1, 2);
            table.SetColumnSpan(updateButton, 2);
            Controls.Add(table);
        }
Пример #3
0
 private Panel InitFreqField()
 {
     return(IFG.InitDoubleField("Частота (тактов в повторе): ", (dTimes) => { freq = 1 / dTimes; }, freq));
 }
Пример #4
0
 private Panel InitConstField()
 {
     return(IFG.InitDoubleField("Константа: ", (dConst) => { c = dConst; }, c));
 }
Пример #5
0
 private Panel InitMultField()
 {
     return(IFG.InitDoubleField("Множитель: ", (dMult) => { mult = dMult; }, mult));
 }
Пример #6
0
 private Panel InitDurField()
 {
     return(IFG.InitDoubleField("Длительность: ", (dDur) => { dur = dDur; }, dur));
 }
Пример #7
0
 private Panel InitStartField()
 {
     return(IFG.InitDoubleField("Начало: ", (dStart) => { start = dStart; }, start));
 }