- •Часть 1. Среда Delphi Тема 1. Объектно-ориентированное программирование
- •Тема 2. Элементы интерфейса
- •Окно проектировщика формы
- •Окно инспектора объектов
- •С оздание и сохранение проекта и файла модуля Как открыть новый проект?
- •Как открыть существующий проект?
- •Тема 3. Характеристика проекта. Состав проекта
- •Файлы формы
- •Файлы модулей
- •Файл ресурсов
- •Параметры проекта
- •Тема 4. Компиляция и выполнение проекта
- •Тема 5. Основные объекты
- •Основные свойства объектов
- •Основные события
- •Часть 2. Язык Object Pascal
- •Тема 1. Основные понятия
- •Словарь языка
- •Структура программы
- •Комментарии
- •Тема 2. Данные Виды данных
- •Типы данных
- •Простые типы данных
- •Структурные типы данных
- •Тема 3. Выражения
- •Арифметические выражения
- •Логические выражения
- •Строковые выражения
- •Тема 4. Простые операторы Оператор присваивания
- •Оператор перехода
- •Тема 5. Работа с графикой
- •Оператор доступа
- •Рисование многоугольников в Delphi
- •Закрашивание произвольной области в Delphi
- •Работа с несколькими формами
- •Объект Shape (Фигура)
- •Тема 6. Работа с датой и временем Объект Timer
- •Свойства компонента Timer
- •Манипулирование датами и временем
- •Тема 7. Встроенные окна диалога.
- •Окно ввода данных
- •InputВох(заголовок, подсказка, значение)
- •Окно вывода сообщений
- •Тема 8. Структурированные операторы
- •Составной оператор
- •Условный оператор
- •Оператор выбора
- •Операторы цикла
- •Тема 9. Подпрограммы
- •Процедуры
- •Функции
- •Параметры и аргументы
- •Тема 10. Работа с элементами выбора
- •1. Флажок (CheckBox)
- •2. ПереключательRadioButton
- •Свойства компонента RadioButton
- •Свойства компонента tRadioGroup
- •3. Простой список ListBox
- •Свойства компонента ListBox
- •4. Комбинированный список ComboBox
- •Свойства компонента СотbоВох
- •Значения для свойства Style
- •Тема 11. Работа с меню
- •Основные свойства пункта меню:
- •Главное меню
- •Конструктор меню
- •Динамическая настройка меню
- •Тема 12. Массивы
- •Объявление массива
- •Операции с массивами
- •Вывод массива
- •Ввод массива
- •Использование компонента StringGrid
- •Использование компонента Memo
- •Поиск минимального (максимального) элемента массива
- •Сортировка массива
Объект Shape (Фигура)
Размещается на вкладке Additional (Дополнительная).
Вид фигуры задается свойством shape, которое может принимать следующие значения:
stCircle — круг;
stEllipse — эллипс;
stRectangle — прямоугольник;
stRoundRect — прямоугольник со скругленными углами;
s.tRoundSquare — квадрат со скругленными углами;
stSquare — квадрат.
Для задания цвета и способа заливки используется свойство Brush (Кисть).
Тема 6. Работа с датой и временем Объект Timer
В языке Delphi существует возможность выполнения через одинаковые промежутки времени операций, которые не зависят от действий пользователя во время работы приложения. Для этого используется элемент управления Timer; основная область его применения – определение промежутка времени, в течение которого выполняются определенные действия в приложении. Следует отметить, что данный элемент не отображается на форме при работе программы.
Свойства компонента Timer
Свойство |
Описание |
Name |
Имя компонента. Используется для доступа к компоненту |
Interval |
Период генерации события OnTimer. Задается в миллисекундах. Событие Timer выполняется каждый раз, по истечении очередного промежутка времени, заданного свойством Interval. |
Enabled |
Разрешение работы. Разрешает (значение True) или запрещает (значение False) генерацию события OnTimer, то есть позволяет начать отсчет времени или запрещает. |
Пример. Проект «Секундомер».
Форма содержит четыре объекта: метка, две командные кнопки «Старт», «Стоп» и объект таймер. При нажатии на кнопку «Старт» включается таймер и начинается отсчет времени. При нажатии на кнопку «Стоп» действие таймера останавливается и т.д.
Решение: на этапе разработки поместить таймер на форму, задать свойства Interval = 1000 (1 секунда), Enabled = False. На форме создать один объект «Метка» для отображения времени и два объекта «Командная кнопка», свойства Caption для объекта метка принимает значение 0 (ноль), а для объектов «Командная кнопка» - СТАРТ и СТОП соответственно.
Форма имеет вид:
|
Фрагмент программного кода: var Form1: TForm1; a:integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin a:=0; Label1.Caption:=inttostr(a); timer1.Enabled:=true; end; procedure TForm1.Button2Click(Sender: TObject); begin timer1.Enabled:=false; end; procedure TForm1.Timer1Timer(Sender: TObject); begin a:=a+1; Label1.Caption:=inttostr(a); end; |
Манипулирование датами и временем
Большинству функций манипулирования датами в качестве параметра передается переменная типа TDateTime, в качестве которой, как правило, используется значение функции now.
Now |
Системная дата и время – переменная типа TDateTime |
DateToStr(dt) |
Строка символов, изображающая дату в формате dd.mm.yy |
TimeToStr(dt) |
Строка символов, изображающая время в формате hh:mm:ss |
StrToDate (S) |
преобразование строки S в дату; |
StrToTime (S) |
преобразование строки S во время; |
DayOf(dt) |
День (номер дня в месяце), соответствующий дате, указанной в качестве параметра функции |
MonthOf(dt) |
Номер месяца, соответствующий дате, указанной в качестве параметра функции |
WeekOf(dt) |
Номер недели, соответствующий дате, указанной в качестве параметра функции |
YearOf(dt) |
Год, соответствующий указанной дате |
DayOfWeek(dt) |
Номер дня недели, соответствующий указанной дате: 1 – воскресенье, 2 – понедельник, 3 – вторник и т.д. |
StartOfWeek(w) |
Дата первого дня указанной недели |
HourOf(dt) |
Количество часов |
MinuteOf(dt) |
Количество минут |
SecondOf(dt) |
Количество секунд |
DecodeDate(dt, y, m, d) |
Возвращает год, месяц и день, представленные отдельными числами |
DecodeTime(dt, h, m, s, ms) |
Возвращает время (часы, минуты, секунды и миллисекунды), представленное отдельными числами |
FormatDateTime(s, dt) |
Строка символов, представляющая собой дату или время. Способ представления задает строка формата s, например, строка dd/mm/yyyy задает, что значением функции является дата, а строка hh:mm – время |
Пример. Электронные часы
Написать программу, на поверхности формы которой отображаются текущие время и дата.
var
Form1: TForm1; y,m,d,h,min,s,ms:word;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption:=FormatDateTime('hh:mm:ss',now());
Label2.Caption:=FormatDateTime('dd.mm.yy',now());
DecodeDate(now(),y,m,d);
Label3.caption:='год '+intToStr(y);
Label4.caption:='месяц '+intToStr(m);
Label5.caption:='день '+intToStr(d);
DecodeTime(now(),h,min,s,ms);
Label6.caption:='часы '+intToStr(h);
Label7.caption:='минуты '+intToStr(min);
Label8.caption:='секунды '+intToStr(s);
Label9.caption:='миллисекунды '+intToStr(ms);
end;
Задание 2. Секундомер.
При щелчке на кнопке Старт в первом текстовом поле отображается текущее время в момент нажатия кнопки. При нажатии на кнопке Стоп выводится текущее время в момент щелчка на кнопке. При щелчке на кнопке Время в третьем окне показывается, сколько времени прошло между щелчками на кнопках Старт и Стоп.
|
Var Form1: TForm1; t1,t2,t:TDateTime; Implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin t1:=now(); Edit1.Text:=TimeToStr(t1); end; procedure TForm1.Button2Click(Sender: TObject); begin t2:=now(); Edit2.Text:=TimeToStr(t2); end; procedure TForm1.Button3Click(Sender: TObject); begin t:=t2-t1; Edit3.Text:=TimeToStr(t); end; |