/// <summary> /// Добавляет ответ в коллекцию на основе данных о ячейках /// </summary> /// <param name="image">Ссылка на изображение</param> /// <param name="ID">Идентификатор ответа</param> /// <param name="CellsCount">Число ячеек</param> /// <param name="FirstCellDistances">Коллекция расстояний до превой ячейки</param> /// <param name="intercentresdistX">Расстояние между сетнтрами ячеек в пискселях</param> /// <param name="cellswidth">Ширина ячеек</param> /// <param name="cellsheight">Высота ячеек</param> public void Add(Bitmap image, int ID, int CellsCount, Distances FirstCellDistances, int intercentresdistX, int cellswidth, int cellsheight) { Answer a = new Answer(image, ID, CellsCount, FirstCellDistances, intercentresdistX, cellswidth, cellsheight); this.Add(a); }
/// <summary> /// Добавляет ответ в коллекцию /// </summary> /// <param name="answer">Ответ</param> public void Add(Answer answer) { _answers.Add(answer); }
private void RecogForm_Load(object sender, EventArgs e) { answs = new Answers(); testsparam t = _ge.testsparams.First(tp => tp.idt == _testid); t.answersparams.Load(); foreach (answersparam ap in t.answersparams) { Answer aga = new Answer(); aga.Id = ap.num.Value; ap.cellsparams.Load(); foreach (cellsparam cp in ap.cellsparams) { Cell c = new Cell(); c.ContentDescription = cp.description.Trim(); aga.Cells.Add(c); } answs.Add(aga); } human h = _fe.humans.First(hh => hh.idh == _humanid); this.Text = "Распознавание бланка: " + t.description + " для " + h.secondname + " " + h.firstname; }
public void CreateCells(Answer Answer) { this.SuspendLayout(); _answer = Answer; //add button whith number of button btn_ans = new Button(); this.btn_ans.Location = new Point(0, 2); this.btn_ans.Size = new Size(95, 30); this.btn_ans.FlatStyle = FlatStyle.Popup; this.btn_ans.TextAlign = ContentAlignment.MiddleCenter; this.btn_ans.Text = _answer.Id.ToString(); this.Controls.Add(btn_ans); int _rbcount = _answer.Cells.Count; //addbutton_noanswer rb = new RadioButton(); rb.Location = new Point(100, 2); rb.Size = new Size(40, 30); rb.Appearance = Appearance.Button; rb.FlatStyle = FlatStyle.Flat; rb.TextAlign = ContentAlignment.MiddleCenter; rb.Text = "Б/О"; rb.CheckedChanged += new EventHandler(rb_CheckedChanged); this.RedLight(); _null = rb; this.Controls.Add(rb); //add all buttons int x = 145; for (int i = 0; i < _rbcount; i++) { RadioButton newrb = new RadioButton(); newrb.Location = new Point(x, 2); newrb.Size = new Size(40, 30); newrb.Appearance = Appearance.Button; newrb.FlatStyle = FlatStyle.Flat; newrb.TextAlign = ContentAlignment.MiddleCenter; newrb.Text = _answer.Cells[i].ContentDescription; newrb.CheckedChanged += new EventHandler(newrb_CheckedChanged); _controlcells.Add(newrb); this.Controls.Add(newrb); x += 40 + 5; } //add textedit with flatstile newtb = new TextBox(); newtb.Location = new Point(x, 6); newtb.Size = new Size(20, 30); newtb.BorderStyle = BorderStyle.FixedSingle; newtb.MaxLength = 1; newtb.TextChanged += new EventHandler(newtb_TextChanged); newtb.GotFocus += new EventHandler(newtb_GotFocus); this.Controls.Add(newtb); x += 20; this.ShowContent(); this.Width = x + 5; this.ResumeLayout(true); }
private void FillAnswerGrid() { _answers = new Answers(); _testparam.answersparams.Load(); foreach (answersparam ap in _testparam.answersparams) { Answer aga = new Answer(); aga.Id = ap.num.Value; ap.cellsparams.Load(); foreach (cellsparam cp in ap.cellsparams) { Cell c = new Cell(); c.ContentDescription = cp.description.Trim(); aga.Cells.Add(c); } _answers.Add(aga); } }
public void Prerecognize() { try { _canvas = new Canvas((Bitmap)_image.Clone(), 8.0d); _canvas.RecognizeImage(); testsparam t = _ge.testsparams.First(tp => tp.idt == _testid); t.answersparams.Load(); IEnumerable<answersparam> answers = t.answersparams.Where(a => a.idt == t.idt); foreach (answersparam a in answers) { Distances _distances = new Distances(); _distances.Add(_canvas.TopLeftMarker, (double)a.toplx, (double)a.toply); _distances.Add(_canvas.TopRightMarker, (double)a.toprx, (double)a.topry); _distances.Add(_canvas.BottomLeftMarker, (double)a.blx, (double)a.bly); _distances.Add(_canvas.BottomRightMarker, (double)a.brx, (double)a.bry); Answer _answer = new Answer(_canvas.CorrectedImage, (int)a.num, (int)a.cellscount, _distances, (int)a.intercellswidth, (int)a.cellswidth, (int)a.cellshight); IEnumerable<cellsparam> cells = a.cellsparams.Where(c => c.ida == a.ida); a.cellsparams.Load(); int i = 0; foreach (cellsparam cp in cells) { _answer.Cells[i].ContentDescription = cp.description.Trim(); i++; } _canvas.Answers.Add(_answer); } OnRecItem(); } catch (Exception ex) { throw ex; } }
private void cmd_addtest_Click(object sender, EventArgs e) { this.lst_answ.Items.Clear(); _canvas = new Canvas((Bitmap)this.pb_img.Image,8d); _canvas.RecognizeImage(); this.pb_img.Image = _canvas.CorrectedImage; //KetelData td = new KetelData(); pBaseEntities pb = new pBaseEntities(); // modulData md = new modulData(); // testsparam tst = testsparam.Createtestsparam(0, "ОПРОСНИК МОДУЛЬ", 200, true); // for (int a = 0; a < tst.answerscount; a++) // { // answersparam ap = answersparam.Createanswersparam(0, tst.idt, "Вопрос № " + (a + 1), 2); // ap.num = a + 1; // ap.buttondescription = md.answers[a].text; // ap.intercellswidth = 27; // ap.cellshight = 25; // ap.cellswidth = 25; // ap.toplx = 0; // ap.toply = 0; // ap.toprx = 0; // ap.topry = 0; // ap.blx = 0; // ap.bly = 0; // ap.brx = 0; // ap.bry = 0; // cellsparam cp = cellsparam.Createcellsparam(0, ap.ida); // cp.description = "Да"; // cp.buttonsescription = "Да"; // cp.mark = md.answers[a].isYes?md.answers[a].mark:0; // cellsparam cp1 = cellsparam.Createcellsparam(0, ap.ida); // cp1.description = "Нет"; // cp1.buttonsescription = "Нет"; // cp1.mark = md.answers[a].isYes ? 0 : md.answers[a].mark; // ap.cellsparams.Add(cp); // ap.cellsparams.Add(cp1); // tst.answersparams.Add(ap); // } //pb.testsparams.AddObject(tst); // pb.SaveChanges(); testsparam t = pb.testsparams.First(tp => tp.idt == (int)EnumPTests.NPNA); t.answersparams.Load(); IEnumerable<answersparam> answers = t.answersparams; foreach (answersparam ap in answers) { ListViewItem it = new ListViewItem(ap.num.ToString()); it.SubItems.Add(ap.ida.ToString()); it.SubItems.Add(ap.description.ToString()); it.SubItems.Add(ap.intercellswidth.ToString()); it.SubItems.Add(ap.cellswidth.ToString()); it.SubItems.Add(ap.cellshight.ToString()); it.SubItems.Add(ap.toplx.ToString()); it.SubItems.Add(ap.toply.ToString()); this.lst_answ.Items.Add(it); //добавляем вопросы на грид //создаем коллекцию дистанций для каждого ответа Distances _distances = new Distances(); _distances.Add(_canvas.TopLeftMarker, (double)ap.toplx, (double)ap.toply); _distances.Add(_canvas.TopRightMarker, (double)ap.toprx, (double)ap.topry); _distances.Add(_canvas.BottomLeftMarker, (double)ap.blx, (double)ap.bly); _distances.Add(_canvas.BottomRightMarker, (double)ap.brx, (double)ap.bry); //_distances.Add(_canvas.TopLeftMarker, 100, 100); //_distances.Add(_canvas.TopRightMarker, 100, 100); //_distances.Add(_canvas.BottomLeftMarker, 100, 100); //_distances.Add(_canvas.BottomRightMarker, 100, 100); //создаем ответы Answer _answer = new Answer(_canvas.CorrectedImage, (int)ap.ida, (int)ap.cellscount, _distances, (int)ap.intercellswidth, (int)ap.cellswidth, (int)ap.cellshight); _answer.Select(); _canvas.Answers.Add(_answer); } }