
- •Лекция № 1. Интегральная среда Delphi. Окна Delphi.
- •1. Среда Delphi. Главное окно.
- •2. Окно Инспектора объектов, Конструктора формы и Редактора кода.
- •Лекция № 2. Характеристика проекта. Компиляция и выполнение проекта.
- •1. Характеристика проекта Delphi.
- •2.Компиляция и выполнение проекта
- •Лекция № 3. Библиотека компонентов (vcl). Понятие класса и объекта.
- •1. Организация библиотеки компонентов
- •2. Понятие класса. Элементы класса.
- •Свойства
- •События
- •Лекция № 4. Общие свойства визуальных компонентов. События, методы. Обращение к объектам.
- •1. Основные общие свойства компонентов.
- •2. Основные общие методы компонентов.
- •3.Обращение к объектам.
- •Основные события.
- •Лекция № 5. Визуальные компоненты для отображения текстовой информации. Основные свойства компонентов.
- •Отображение текста
- •Лекция № 6. Визуальные компоненты для редактирования многострочных данных. Основные свойства компонентов.
- •1. Многострочный редактор
- •2.Общие элементы компонентов редактирования
- •Лекция № 7. Визуальные компоненты: работа со списками: простой, комбинированный. Основные свойства компонентов.
- •1.Работа со списками.
- •2.Комбинированный список
- •3.Общая характеристика списков
- •4.Другие характеристики списков
- •Лекция № 8. Компоненты-кнопки. Переключатели. Основные свойства компонентов.
- •Виды кнопок, используемые компоненты и их свойства.
- •2. Виды переключателей, используемые компоненты и их свойства.
- •Лекция № 9. Визуальные компоненты-контейнеры. Компоненты-закладки. Основные свойства компонентов.
- •1. Основные компоненты, используемые для объединения других компонентов.
- •Лекция № 10. Компоненты для редактирования данных в табличной форме.
- •Лекция № 11. Визуальные компоненты для изменения числового значения в заданном диапазоне. Визуальные компоненты для выбора дат. Основные свойства компонентов.
- •Визуальные компоненты для изменения числового значения в заданном диапазоне.
- •2.Визуальные компоненты для выбора дат.
- •Лекции № 12-13. Форма как Delphi-компонент. Жизненный цикл формы. Отображение формы. Управление доступом к форме. Особенности визуального проектирования форм.
- •1.Форма
- •2.Характеристики формы. Свойства
- •3.Характеристики формы. Методы.
- •4.Характеристики формы. События
- •5.Взаимодействие форм.
- •6.Шаблоны форм.
- •Лекции № 14-15. Главное и контекстное меню. Пункты меню, их свойства. Конструктор меню, настройка меню. Комбинации клавиш.
- •1.Главное и контекстное меню.
- •2.Пункты меню, их свойства, события.
- •3.Конструктор меню, настройка меню. Комбинации клавиш.
- •Лекция № 16. Использование диалоговых компонентов.
- •Лекция № 17. Компоненты-индикаторы. Компоненты для отображения геометрических фигур.
- •Компоненты-индикаторы.
- •Компоненты для отображения геометрических фигур.
- •Лекция № 18. Вывод сложной графической информации.
- •Лекция № 19. Создание элементов справочной системы. Создание строки состояния. Создание подсказок.
- •1. StatusBar (Строка состояния).
- •2. Использование в Delphi подсказок
- •Лекция № 20. Создание заставки, информационных окон.
- •1. Создание заставки.
- •Лекция № 21. Понятие и назначение dll-библиотек. Создание dll-библиотек. Использование dll-библиотек.
- •Создание dll-библиотек.
- •Использование dll-библиотек.
- •Лекция № 22. Понятие исключительной ситуации. Обработка исключений.
- •1. Понятие исключительной ситуации.
- •Обработка исключений.
- •Список использованных источников
- •Содержание
Лекция № 17. Компоненты-индикаторы. Компоненты для отображения геометрических фигур.
Компоненты-индикаторы.
Компонент Progressbar.
Компонент Delphi Progressbar (вкладкаWin32) показывает процесс работы продолжительной операции и по внешнему виду представляет собой графическую полосу. Процесс заполнения полосы идет пропорционально, согласно проценту выполненных действий, слева направо синими кубиками. Цвет компонента изменить нельзя, цвет заполнения имеет синий цвет.
Свойства компонента Min и Max отвечают за диапазон значений, соответственно, минимальной и максимальное значение, принадлежащих к целым числам.
Position - позиция, на которой находится в данный момент индикатор.
Р
асположим
на форме компоненты Label, Button и Progressbar
(см. рисунок).
Мы сделаем перебор целых чисел (переменная i) от 0 до 50000 (Max), компонент Label будет показывать, какое сейчас обрабатывается число и немного притормаживать выполнение приложения. Переменная Proc вычисляет процент проделанной работы.
Напишем обработчик кнопки Пуск.
procedure TForm1.Button1Click(Sender: TObject);
var i, proc, Max : integer;
begin
Max := 50000;
for i:=0 to Max do
begin
proc := ((i * 100) div Max);
Label1.Caption := IntToStr(i);
ProgressBar1.Position := proc ;
Application.ProcessMessages;
end;
end;
Выполняя операции, требующие длительных временных затрат, приложение не реагирует на действия пользователя и не реагирует на события приложения, визуальные изменения на форме не отображаются, программа зависает на некоторое время. Подобные ситуации возможны в работе циклов, когда происходит обработка большого числа данных.
Для того чтобы исправить сложившееся положение необходимо использовать метод ProcessMessages. Этот метод принадлежит классу Application (данный класс автоматически создается при создании приложения). Данный метод обязывает приложение обработать поступившие и ожидающие своей очереди сообщения.
Application.ProcessMessages; - дает возможность нашему приложению не зависнуть в процессе вычисления. В противном случае нам придется дождаться окончания вычислений, после чего мы увидим результат, а до этого приложение не будет подавать признаков жизни.
Компонент Gauge.
Компонент Delphi Gauge (вкладка Samples) предназначен для показа процессов, занимающих заметное время, например, обработка каких либо данных, установка приложения на компьютер, копирование больших файлов, и т.п.
На рисунке показаны различные возможные варианты отображения хода процесса компонентом Gauge в зависимости от свойства King, определяющее внешний вид диаграммы:
горизонтальный прямоугольник - gkHorizontalBar,
вертикальный прямоугольник - gkVerticalBar,
сектор круга - gkPie,
спидометр - gkNeedle,
выводиться только текст -gkText.
Компонент Gauge имеет следующие свойства:
MinValue - целочисленный тип (минимальное значение параметра на диаграмме равное 0 %),
MaxValue - целочисленный тип (максимальное значение параметра на диаграмме равное 100 %).
ForeColor задает цвет индикатора. По умолчанию - черный.
BorderStyle задает внешний вид рамки -
bsSingle - компонент обрамлен рамкой,
bsNone - рамка отсутствует.
BackColor - цвет той части диаграммы, которая свободна от индикатора (по умолчанию белый цвет).
Progress - целочисленный тип, показывает текущее состояние индикатора в процентах.
ShowText - логический тип, при значении TRUE отображает текстовую информацию на диаграмме, при FALSE - цифрового показателя в процентах видно не будет.
Компонент Timer.
Компонент Delphi Timer (вкладка System) - это важный не визуальный компонент, который позволяет задавать в приложении необходимые задержки времени между выполнением тех или иных действий.
Данный компонент имеет два главный свойства:
Enabled - включает (TRUE) или выключает (FALSE) работу таймера,
Interval - задает фиксированный интервал времени в миллисекундах.
Событие, которое может обработано данным компонентом одно, это onTimer. Его можно задать во вкладке Events Инспектора объектов или двойным щелчком на компоненте. Это событие генерируется всякий раз, когда истекает промежуток времени заданный в свойстве Interval с момента последней генерации данного события, пока свойство Enabled будет равно TRUE.
Компонент Delphi Timer недостаточно точный для малых промежутков времени (менее 100 миллисекунд).
Давайте разберем два примера:
1. Установим событие onTimer:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
ShowMessage('Программа уже загружена');
end;
Через время заданное в свойстве Interval появиться однократное сообщение о загрузке программы.
2. Расположим на форме в дополнение к компоненту Timer компонент Label. Обработчик события onTimer:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption := TimeToStr(now);
end;
Мы создали электронные часы. Now - это функция возвращающая дату и время на данный момент. TimeToStr - забирает время и переводит его в строковую переменную.