Въвеждане и показване на дати и часове - компоненти DateTimePicker, MonthCalendar, Calendar
Въвеждане и показване на дати и часове - компоненти DateTimePicker, MonthCalendar, Calendar
- размер на шрифта намалете размера на шрифта увеличете размера на шрифта
- Тюлен
Въвеждане и показване на дати и часове - компоненти DateTimePicker, MonthCalendar, Calendar
Примери за входни компоненти и показване на дати и часове са показани на фигура 1.
Примери за компоненти за показване на дата и час
От тези компоненти най-удобен е DateTimePicker (на фиг. 1, горе вляво, този компонент е показан в режим на въвеждане на време, а по-долу - в два варианта на режим на въвеждане на дата). Компонентът е много ефективен поради появата на падащ календар (понякога дори твърде ефективен за стриктно проектирано приложение) и осигурява безгрешно въвеждане на дата и час от гледна точка на синтаксиса. Неговото свойство Kind определя режима на работа на компонента: dtkDate — въвеждане на дата, dtkTime — въвеждане на време.
Стойността на датата по подразбиране може да бъде зададена в инспектора на обекти чрез свойството Date. Същото свойство се чете, за да се определи зададената от потребителя дата. Когато четете Date, трябва да вземете предвид вида на това свойство - TDateTime, което е число с плаваща запетая, чиято цяла част съдържа броя на дните, броени от някакво начало на календара, а дробната част е равна на частта от 24-часовия ден, т.е. характеризира времето и не се отнася до датата. За 32-битовите версии на Delphi началната дата на календара е 30.12.1899 00 часа. В Delphi 1 година 1 е взета като начало, т.е. за да конвертирате датата 1 на Delphi в датата на по-късните версии на Delphi, извадете числото 693594 от датата.
Можете да използвате функцията DateToStr, за да конвертирате стойност на свойство Date в низ. Например операторът
ще добави ред като "Дата: 12/01/98" към прозореца Memo1.
Когато въвеждате дати, можете да зададете стойностите на свойствата MaxDate и MinDate, които определят съответно максималните и минималните дати, които потребителят може да зададе.
В режима за въвеждане на време dtkTime стойността, въведена от потребителя, може да бъде намерена в свойството Time, чийто тип е същият TDateTime, обсъден по-горе. Можете да конвертирате времето в низ с помощта на функцията TimeToStr.
Компонентът MonthCalendar е подобен на компонента DateTimePicker, който работи в режим на въвеждане на дата. Вярно е, че компонентът MonthCalendar предоставя някои допълнителни функции: можете да разрешите многократен избор на дати в определен диапазон (свойство MultiSelect), можете да посочите номерата на седмиците от началото на годината в календара (свойство WeekNumbers), да изградите отново календара, като зададете първия ден от всяка седмица (свойство FirstDayOfWeek) и т.н. За някои офис приложения всичко това е доста удобно.
Компонентът Календар е по-малко цветен и по-традиционен едномесечен календар. Вместо свойството Date, той предоставя отделни свойства Year - година, Month - месец, Day - ден. Всички те са цели числа, с които понякога е по-удобно да се работи от типа TDateTime. Преди показване на екрана или по време на процеса на проектиране, трябва да зададете стойностите за месец и година, така че компонентът да показва календар за посочения месец от определената година. Ако обаче трябва да имате календар за текущия месец, трябва да зададете стойността на свойството UseCurrentDate на true (то е зададено по подразбиране). В този случай календарът за текущия месец ще бъде показан по подразбиране с маркиран текущият ден в него. Свойството StartOfWeek указва деня, в който започва седмицата. По подразбиране е зададено 0 - неделя, както е обичайно в западните календари. Но някак за насПо-прието е седмицата да започва с работен ден - понеделник. Затова е желателно да зададете StartOfWeek = 1.