Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л6.doc
Скачиваний:
7
Добавлен:
30.10.2018
Размер:
58.88 Кб
Скачать

3. Введення і відображення дати і часу – компоненти DateTimePicker, MonthCalendar, Calendar

З цих компонентів найбільш зручним є DateTimePicker. Компонент дуже ефектний за рахунок появи випадного календаря (іноді навіть дуже ефектний для строго оформленого застосування) і забезпечує безпомилкове з погляду синтаксису введення дат і часу. Його властивість Kind визначає режим роботи компоненту: dtkDate — введення дати, dtkTime — введення часу.

При введенні дат можна задати властивість DateMode рівним dmComboBox — наявність випадного календаря, або рівним dmUpDown — наявність кнопок збільшення і зменшення що нагадує ті, які використовуються в описаних раніше компонентах UpDown і CSpinEdit. Але в даному випадку за допомогою кнопок користувач може незалежно встановлювати число, місяць і рік. Формат представлення дат визначається властивістю DateFormat, яка може приймати значення dfShort — короткий формат (наприклад, «08.03.02»), або dfLong — повний формат (наприклад, «8 березня 2010р.»).

Значення дати за умовчанням можна задати в Інспекторі Об'єктів через властивість Date. Ця ж властивість читається для визначення заданої користувачем дати. При читанні Date треба враховувати тип цієї властивості — TDateTime, що є числом з плаваючою комою, ціла частина якого містить число днів, відлічене від деякого початку календаря, а дробова частина дорівнює частині 24-годинного дня, тобто характеризує час і не відноситься до дати. За початок календаря прийнята дата 12/31/1899 00 годин.

Для перетворення значення властивості Date в рядок можна скористатися функцією DateToStr, Наприклад, оператор

Memo1->Lines->Add("Дата: " +

DateToStr(DateTimePicker1->Date));

додасть у вікно Memo1 рядок вигляду "Дата: 08.03.2010".

При введенні дат можна задати значення властивостей MaxDate і MinDate, що визначають відповідно максимальну і мінімальну дату, яку може задати користувач.

У режимі введення часу dtkTime введене користувачем значення можна знайти у властивості Time, тип якої — той же розглянутий вище для TDateTime. Перетворити час в рядок можна функцією TimeToStr.

Компонент MonthCalendar схожий на компонент DateTimePicker, що працює в режимі введення дат. Правда, в компоненті MonthCalendar передбачені деякі додаткові можливості: можна допустити множинний вибір дат в деякому діапазоні (властивість MultiSelect), можна указувати в календарі номера тижнів з початку року (властивість WeekNumbers), перебудовувати календар, задаючи перший день кожного тижня (властивість FirstDayOfWeek) і т.п. Для деяких офісних застосувань все це достатньо зручно.

Компонент Calendar є менш зручним і більш буденно оформленим календарем на один місяць. Замість властивості Date в ньому передбачені окремі властивості Year — рік, Month. — місяць, Day — день. Все це цілі числа, з якими іноді зручніше мати справу, чим з типом TDateTime. Перед відображенням на екрані або в процесі проектування треба задати значення Month і Year, щоб компонент відобразив календар на вказаний місяць вказаного року. Втім, якщо вам треба мати календар на поточний місяць, треба встановити в true значення властивості UseCurrentDate (встановлено за умовчанням). В цьому випадку за умовчанням буде показаний календар на поточний місяць з виділеним в ньому поточним днем. Властивість StartOfWeek задає день, з якого починається тиждень. За умовчанням задано 0 — неділя, як це прийнято в західних календарях. Але для нас все-таки якось звичніше починати тиждень з робочого дня — понеділка. Отже бажано задати StartOfWeek = 1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]