/// <summary> /// Кнопка "ОК /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOk_Click(object sender, EventArgs e) { string enteredPass = tbPass.Text.Trim(); //проверка на пустой ввод if (enteredPass == "") { MessageBox.Show("Пароль не может быть пустым."); return; } //Проверка правильности пароля if (FormSettings.GetPassConfirmed(enteredPass)) { PasswordConfirmed = true; Hide(); } else { PasswordConfirmed = false; MessageBox.Show("Неправильный пароль."); tbPass.Clear(); } }
/// <summary> /// Запуск формы настроек /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSettings_Click(object sender, EventArgs e) { FormSettings fs = new FormSettings(); fs.ShowDialog(); }
/// <summary> /// Формирование отчета /// </summary> /// <param name="tp"></param> /// <returns></returns> private Bitmap DrawResult(TestParams tp) { Bitmap bm = new Bitmap(840, 1188); Graphics gr = Graphics.FromImage(bm); //создание шрифтов Font font = new Font("Times New Roman", 14); Font fontSmall = new Font("Times New Roman", 7); Font fontBold = new Font("Times New Roman", 14, FontStyle.Bold); SolidBrush brush = new SolidBrush(Color.Black); //заливка фона белым цветом gr.FillRectangle(new SolidBrush(Color.White), new Rectangle(0, 0, 840, 1188)); //Название учреждения gr.DrawString(FormSettings.GetInfo()[0], fontBold, brush, new PointF(150, 15)); //Пациент gr.DrawString(String.Format("Пациент: " + tp.Patient.FIO), font, brush, new PointF(30, 50)); gr.DrawString(String.Format("Пол: " + tp.Patient.Sex), font, brush, new PointF(30, 75)); gr.DrawString(String.Format("Дата рождения: " + tp.Patient.DateOfBirth.ToShortDateString()), font, brush, new PointF(30, 100)); //возраст int age = DateTime.Now.Subtract(tp.Patient.DateOfBirth).Days / 365; gr.DrawString(String.Format("Возраст: " + age), font, brush, new PointF(30, 125)); //дата теста gr.DrawString(String.Format("Дата проведения теста: " + tp.DateOfTest.ToShortDateString()), font, brush, new PointF(30, 150)); gr.DrawString(String.Format("Время проведения теста: " + tp.DateOfTest.ToShortTimeString()), font, brush, new PointF(30, 175)); //глаз gr.DrawString(String.Format("Глаз: " + Eyes.GetString(tp.CurrentEye)), font, brush, new PointF(480, 50)); //Время теста gr.DrawString(String.Format("Длительность теста: " + tp.Results.TestTime), font, brush, new PointF(480, 75)); //импульсы gr.DrawString(String.Format("Длительность импульса: " + tp.Results.Duration + " мс"), font, brush, new PointF(480, 100)); gr.DrawString(String.Format("Интервал импульса: " + tp.Results.Interval + " мс"), font, brush, new PointF(480, 125)); //точки gr.DrawString(String.Format("Количество точек: " + tp.Results.IntensityResults.Length), font, brush, new PointF(480, 150)); //стратегия gr.DrawString(String.Format("Стратегия: " + TestMethods.GetString(tp.TestMethod)), font, brush, new PointF(480, 175)); //название теста gr.DrawString(String.Format("Тест: " + tp.TestName), fontBold, brush, new PointF(150, 210)); #region График светочувствительности Pen pen = new Pen(Color.Black, 1); Point center = new Point(420, 670); int diametr = 800; //рисование осей gr.DrawLine(pen, center.X - diametr / 2, center.Y, center.X + diametr / 2, center.Y); gr.DrawLine(pen, center.X, center.Y - diametr / 2, center.X, center.Y + diametr / 2); //определение самой отдаленной точки от центра координат int MaxAngle = 0; for (int i = 0; i < tp.IndexesOfLights.Length; i++) { if (MaxAngle < LibraryOfLights.RadialLights[tp.IndexesOfLights[i]].Distance) { MaxAngle = LibraryOfLights.RadialLights[tp.IndexesOfLights[i]].Distance; } } //определение максимального угла, написанного на осях int MaxAxisAngle = MaxAngle; if (MaxAngle % 10 != 0) { float val = MaxAngle / 10f + 1f; MaxAxisAngle = (int)val * 10; } if (MaxAxisAngle == 0) { MaxAxisAngle = 10; } int numberOfCircles = MaxAxisAngle / 10; //коэффициент растяжения точек float koef = (diametr / 2) / MaxAxisAngle; //рисование окружностей Pen pen2 = new Pen(new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.Percent90, Color.WhiteSmoke), 0.5f); for (int i = 1; i <= numberOfCircles; i++) { int rad = (int)(koef * 10f * i); gr.DrawEllipse(pen2, new Rectangle(center.X - rad, center.Y - rad, rad * 2, rad * 2)); gr.DrawString((i * 10).ToString(), fontSmall, new System.Drawing.Drawing2D.HatchBrush(System.Drawing.Drawing2D.HatchStyle.Percent20, Color.WhiteSmoke), new PointF(center.X + koef * i * 10, center.Y)); } //рисование интенсивностей for (int i = 0; i < tp.IndexesOfLights.Length; i++) { //определение положения Point loc = getLocationOfLabel(LibraryOfLights.RadialLights[tp.IndexesOfLights[i]], center, koef); //рисование gr.DrawString(tp.Results.IntensityResults[i].IntensityLevel.ToString(), fontSmall, brush, loc); } //график светочувствительности gr.DrawString("График светочувствительности, Дб", font, brush, new PointF(250, 1080)); #endregion //врач gr.DrawString(String.Format("Врач: " + FormSettings.GetInfo()[1]), font, brush, new PointF(30, 1130)); return(bm); }