Процедуры и функции вызова диалоговых окон
Процедура 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.