Процедуры и функции вызова диалоговых окон
Процедура ShowMessage (‘<строка>’) отображающая окно с сообщением и кнопкой ОК. Пример: ShowMessage (‘До свидания!’)
Процедура ShowMessageFmt(‘Задано %d параметров из %d ’, [n1,n2]) Последний оператор при n1=5 и n2=7 выдаст сообщение с текстом: «Задано 5 параметров из 7»
Функции отображают окна, в которых пользователю задается какой-либо вопрос и анализируется полученный ответ.
Функция MessageDlg (<строка>, AType, Abuttons, HelpCtx) отображает диалоговое окно и ожидает ответ пользователя. Вид отображения окна задается параметром AType.
| Значение | Описание |
| MtWarning | Окно замечаний |
| MtError | Окно ошибок |
| MtInformation | Информационное окно |
| MtConfirmation | Окно подтверждения |
| mtCustom | Заказное окно без рисунка |
Параметр Abuttons определяет, какие кнопки будут присутствовать в окне.
| Значение | Надпись на кнопке |
| MbYes | Yes |
| MbNo | No |
| MbOk | Ok |
| MbCancel | Cancel |
| MbHelp | Help |
| MbAbort | Abort |
| MbRetry | Retry |
| MbIgnore | Ignore |
| MbAll | All |
Определены 3 константы, соответствующие часто используемым сочетанием кнопок
| MbYesNoCancel | Входят кнопки Yes, No, Cancel |
| mbOkCancel | Входят кнопки Ok, Cancel |
| mbAbortRetryIgnore | Входят кнопки Abort, Retry, Ignore |
Лабораторная работа №14
Пример: В теле процедуры запишем
Begin
…
if MessageDlg('Yo!',mtWarning,[mbYes, mbNo],0)=mrYes
then close;
end.
Получим:

Задания для самостоятельной работы:
1.Перераспределить значения переменных x и y так, чтобы в х оказалось большее, а в у – меньшее.
2.Посетитель проиграл в казино a рублей. У него есть фишки 2, 5, 15, 20, 50, 100, 500$. Сколько фишек разного достоинства отдаст игрок, если будет платить с самых дорогих?
Работа с датой и временем
Тип TDateTime
Var t: TDateTime;
Для обработки даты и времени модуль SysUtils содержит следующие основные функции:
function Date: TDataTime;-возвращает текущую дату как значение типа TDateTime.
function DateToStr(Date: TDateTime): string;-преобразовывает дату, указанную параметром Date, в строку.
function DayOfWeek(Date: TDateTime): Integer;-возвращает номер дня недели для даты, указанной параметром Date. Для воскресенья возвращается значение 1, для понедельника - 2 и т. д.
function EncodeDate(Year, Month, Day: Word): TDateTime;-собирает значение даты из заданных составляющих Year, Month и Day и возвращает его как значение типа TDateTime.
function DecodeDate(Date: TDateTime): Word;-собирает значение типа TDateTime и возвращает его как значение типа дата из заданных составляющих Year, Month и Day.
function Now: TDateTime;-возвращает значение текущей даты и времени.
function StrToDate(const S; string): TDateTime;-преобразовывает значение строки, указываемое параметром S, в дату типа TDateTime.
function Time: TDateTime;-возвращает текущее значение времени.
function TimeToStr(Time: TDateTime): string;-преобразовывает время в строку в соответствии с форматом, определяемым глобальной переменной LongTimeFormat.
TDateTimePocker – ввод и отобрание даты/времен
Свойства компонента:
| Свойство | Описание |
| CalAlignment | Определяет положение раскрывающегося календаря: dtaLeft – слева от компонента; dtaRight – справа от компонента. Учитывается только для Kind=dtkDate и DateMode=dmComoBox |
| CalColors | Цвет календаря |
| Checked | Если выполняются условия Checked=True и ShowCheckBox=True, то флажок рядом с полем даты (времени) будет показан и установлен. Наличие флажка или его отсутствие разрешает или запрещает ручной ввод даты или времени |
| Date | Содержит введенную дату |
| DateFormat | Определяет формат показа даты: dfShort – 11.01.04; dfLong – 5 сентября 2004 г. |
| DateMode | Определяет способ выбора даты: dmComboBox – с помощью раскрывающегося календаря; dmUpDown – с помощью встроенного компонента TUpDown |
| Kind | Определяет содержимое компонента: dtkDate – дата; dtkTime – время |
| MaxDate | Определяет максимальную дату, которую может выбрать или ввести пользователь |
| MinDate | Определяет минимальную дату, которую может выбрать или ввести пользователь |
| Time | Содержит введенное пользователем время |
TMonthCalendar – календарь
Предназначен для выбора и отображения даты. Очень похож на календарь, рассмотренный выше, но в отличие от него может одновременно отображать несколько смежных месяцев – в зависимости от своих размеров.
Свойства компонента:
| Свойство | Описание |
| CalColors | Цвет календаря (фона, дат, заголовков) |
| Date | Определяет выбранную дату |
| EndDate | Определяет конечную дату диапазона выбранных дат |
| FirstDayOfWeek | Определяет первый день недели |
| MaxDate | Определяет максимальную дату, месяц которой еще будет доступен для отображения в компоненте. Если свойство содержит пустое значение, то отображается любой следующий месяц |
| MinDate | Определяет минимальную дату, месяц которой еще будет доступен для отображения в компоненте. Если свойство содержит пустое значение, то отображается любой предыдущий месяц |
| ShowTodayCircle | Разрешает/запрещает обводить кружком текущую дату |
| WeekNumbers | Разрешает/запрещает показ порядковых номеров недель от начала года в левой колонке |
TTimer – таймер
Данный компонент служит для отсчета интервалов реального времени. Минимальный реально достижимый интервал отсчета времени в ОС MS-DOS, Windows 95/98/ME не может быть меньше 55 миллисекунд (этот интервал называется тиком). Для ОС Windows NT Server, Windows 2000, Windows XP длительность тика составляет 10 миллисекунд.
TCalenar – календарь
Компонент календарь отображает календарь на выбранный месяц и год. Его свойства Day, Month, Year могут содержать любую дату от 1 до 9999 года от Рождества Христова.

Лабораторная работа №15
Рассмотрим пример, в котором числа 2006, 1, 1 выводятся в формате даты 1.1.2006.
var MyTime: TDateTime;
begin
MyTime := EncodeDate(2006, 1, 1);
Edit1.Text := DateToStr(MyTime); end;
Для вывода в однострочное окно текущей записи на экран необходимо Edit1.Text := DateToStr(Now);
Задания для самостоятельной работы:
1. По введенному номеру года найти количество понедельников в этом году.
2. По введенному номеру года найти количество пятниц 13.