|
Я делал так:
Кнопки:
ESC, Enter
Вправо, Вниз.
При редактировании Вправо двигает курсор по цифрам (по кругу - после последней перескакивает на первую), Вниз меняет число. Enter проверяет Дату(время) на допустимость, ESC выбрасывает обратно в меню без изменения.
Реализовано дофольно просто: На каждую цифру (ед. года, десятки года, единицы месяца, десятки месяца, месяц в виде текстового названия (JAN, FEB, MAR...) своя функция для Влево и Вниз. Далее двумерный массив указателей на эти функции - по формату и позиции курсора.
Функции для Влево указывают на какую позицию перескочить, для Вниз - меняют соответствующее число и проверяют на ограничение (десятки часов не более 2, десятки месяца не более 1, десятки секунд не более 6).
Таким образом очень легко оказалось организовать коррекцию даты в любом формате (дд-мм-гг, дд-ммм-гг, мм-дд-гг, ммм-дд-гг, ...) и времени в форматах чч:мм:сс, РМ/АМ чч:мм, чч:мм РМ/АМ.
Разделитель (:/-,) хранится в отдельном массиве.
E-mail: info@telesys.ru