/// <summary> /// Установить значения в столбцы для отображения /// </summary> /// <param name="values">Значения для отображения</param> public void SetValueCells(object [] values) { object value; Color clrCell = Color.Empty; bool enableValuePrevious = Enabled , enableValueCurrrent = false; float mm = -1 // минуты , ss = -1; // секунды - среднее время выполнения задачи foreach (INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL))) { try { if (((int)i < values.Length) && (!(values[(int)i] == null)) //&& (string.IsNullOrEmpty((string)values[(int)i]) == false) ) { m_cell_states[(int)i] = INDEX_CELL_STATE.ERROR; clrCell = Color.Empty; switch (i) { case INDEX_CELL.NAME: case INDEX_CELL.COUNT: continue; break; case INDEX_CELL.STATE: m_cell_states[(int)i] = ((string)values[(int)i])?.Equals(1.ToString()) == true ? INDEX_CELL_STATE.OK : INDEX_CELL_STATE.ERROR; value = s_CellState[(int)m_cell_states[(int)i]].m_Text; break; case INDEX_CELL.DATETIME_VALUE: case INDEX_CELL.DATETIME_VERIFICATION: m_cell_states[(int)i] = isRelevanceDateTime((int)i, (DateTime)values[(int)i]); value = values[(int)i] is DateTime? formatDateTime((DateTime)values[(int)i]) : values[(int)i]; break; case INDEX_CELL.VALUE: m_cell_states[(int)i] = isRelevanceValue((float)values[(int)i]); ss = (float)values[(int)i]; mm = ss / 60; value = string.Format(@"{0:00}:{1:00}", mm, ss % 60); break; default: m_cell_states[(int)i] = /*((string)values[(int)i])?.Equals(EtalonPBR) ==*/ true ? INDEX_CELL_STATE.OK : INDEX_CELL_STATE.ERROR; value = values[(int)i]; break; } Cells[(int)i].Value = value; // изменить цвет ячейки ~ от состояния Cells[(int)i].Style.BackColor = s_CellState[(int)m_cell_states[(int)i]].m_Color; //if (!(m_cell_states[(int)i] == INDEX_CELL_STATE.OK)) // EventUp?.Invoke((int)Tag); //else // ; } else { ; // значение == null } } catch (Exception e) { Logging.Logg().Exception(e, @"PanelTask.DataGridViewTaskRow::SetValueCells () - ...", Logging.INDEX_MESSAGE.NOT_SET); } } // INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL)) // проверить состояние ячеек, при необходимости "поднять вверх" if ((Index > 0) && ((!(m_cell_states[(int)INDEX_CELL.VALUE] == INDEX_CELL_STATE.OK)) || (!(m_cell_states[(int)INDEX_CELL.DATETIME_VALUE] == INDEX_CELL_STATE.OK)) || (!(m_cell_states[(int)INDEX_CELL.STATE] == INDEX_CELL_STATE.OK))) ) { EventUp?.Invoke(Index); } else { ; } }
/// <summary> /// Установить значения в столбцы для отображения /// </summary> /// <param name="values">Значения для отображения</param> public void SetValueCells(object [] values) { object value; Color clrCell = Color.Empty; bool enableValuePrevious = Enabled; float fValue = -1F , mm = -1 // минуты , ss = -1; // секунды - среднее время выполнения задачи foreach (INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL))) { try { if (((int)i < values.Length) && (!(values[(int)i] == null)) //&& (string.IsNullOrEmpty((string)values[(int)i]) == false) ) { m_cell_states[(int)i] = INDEX_CELL_STATE.ERROR; clrCell = s_CellState[(int)INDEX_CELL_STATE.OK].m_Color; switch (i) { case INDEX_CELL.COUNT: // пропустить индекс continue; case INDEX_CELL.NAME: // пропустить применение значения к ячейке, т.к. значение(наименование источника данных) постоянное m_cell_states [(int)i] = INDEX_CELL_STATE.OK; value = null; break; case INDEX_CELL.STATE: m_cell_states[(int)i] = ((string)values[(int)i])?.Equals(1.ToString()) == true ? INDEX_CELL_STATE.OK : INDEX_CELL_STATE.DISABLED; value = s_CellState[(int)m_cell_states[(int)i]].m_Text; break; case INDEX_CELL.DATETIME_VALUE: case INDEX_CELL.DATETIME_VERIFICATION: m_cell_states[(int)i] = ((string)values [(int)INDEX_CELL.STATE])?.Equals(1.ToString ()) == true ? isRelevanceDateTime((int)i, (DateTime)values[(int)i]) : INDEX_CELL_STATE.DISABLED; value = values[(int)i] is DateTime? formatDateTime((DateTime)values[(int)i]) : values[(int)i]; break; case INDEX_CELL.VALUE: if (float.TryParse(values [(int)i].ToString(), out fValue) == true) { m_cell_states [(int)i] = isRelevanceValue(fValue); if (!(m_cell_states [(int)i] == INDEX_CELL_STATE.DISABLED)) { ss = fValue; mm = ss / 60; value = string.Format(@"{0:00}:{1:00}", mm, ss % 60); } else { value = string.Format(@"--:--"); } } else { value = string.Format(@"--:--"); } break; default: m_cell_states[(int)i] = /*((string)values[(int)i])?.Equals(EtalonPBR) ==*/ true ? INDEX_CELL_STATE.OK : INDEX_CELL_STATE.ERROR; value = values[(int)i]; break; } if (!(value == null)) { Cells [(int)i].Value = value; } else { ; } // изменить цвет ячейки ~ от состояния //Cells[(int)i].Style.BackColor = s_CellState[(int)m_cell_states[(int)i]].m_Color; SetStyleCell((int)i, s_CellState [(int)m_cell_states [(int)i]].m_Color); //if (!(m_cell_states[(int)i] == INDEX_CELL_STATE.OK)) // EventUp?.Invoke((int)Tag); //else // ; } else { ; // значение == null } } catch (Exception e) { Logging.Logg().Exception(e, @"PanelTask.DataGridViewTaskRow::SetValueCells () - ...", Logging.INDEX_MESSAGE.NOT_SET); } } // INDEX_CELL i in Enum.GetValues(typeof(INDEX_CELL)) // проверить состояние ячеек, при необходимости "поднять вверх" if ((Index > 0) && ((!(m_cell_states[(int)INDEX_CELL.VALUE] == INDEX_CELL_STATE.OK)) || (!(m_cell_states[(int)INDEX_CELL.DATETIME_VALUE] == INDEX_CELL_STATE.OK)) || (!(m_cell_states[(int)INDEX_CELL.STATE] == INDEX_CELL_STATE.OK))) ) { EventUp?.Invoke(Index); } else { ; } }
public override void Play() { Frame frame = new Frame(); Field f = new Field(); frame.SetFrame(); f.NewFigure(); f.DrawField(); //створення обєктів подій для клавіатури EventUp up = new EventUp(); //вверх EventDown down = new EventDown(); //вниз EventLeft left = new EventLeft(); // вліво EventRight right = new EventRight(); //вправо //<КлассИлиОбъект>.<ИмяСобытия> += <КлассЧейМетодДолженЗапуститься>.<МетодПодходящийПоСигнатуре> up.UpEvent += f.UpFig; down.DownEvent += f.DownFig; left.LeftEvent += f.LeftFig; right.RightEvent += f.RightFig; ConsoleKeyInfo cki; while (true) { if (f.CheckDown() == true) f.Move(); else { while (true) { bool flag = f.CheckLine(); if (flag == false) break; } f.NewFigure(); if (f.IsAtBottom() == true) break; } int dificulty = 11 - 2 * f.Level; for (int i = 0; i < dificulty; i++) //кількість ітерацій імітує швидкість { System.Threading.Thread.Sleep(50); if (Console.KeyAvailable) { cki = Console.ReadKey(); switch (cki.Key) { case ConsoleKey.UpArrow: //перевертає фігуру { up.UpUserEvent(); //обробка події f.DrawField(); //перерисовує поле break; } case ConsoleKey.DownArrow: { down.DownUserEvent(); break; } case ConsoleKey.LeftArrow: { left.LeftUserEvent(); f.DrawField(); break; } case ConsoleKey.RightArrow: { right.RightUserEvent(); f.DrawField(); break; } default: { break; } } } } } Console.Clear(); Console.WriteLine("\n\n\n\n\n GAME OVER"); Console.WriteLine("\n TOTAL SCORES " + (f.Level * 1000 + f.Score) + "\n\n\n\n\n\n\n\n\n"); Console.WriteLine("Press any key"); Console.ReadLine(); }
public void OnPointerUp(PointerEventData eventData) { EventUp?.Invoke(); m_isDown = false; }