- •2. Визуальные компоненты
- •2.1. Свойства
- •2.2. События
- •2.3. Методы
- •If Edit1.CanFocus then Edit1.SetFocus; {перед получением фокуса производится проверка на возможность передачи фокуса компоненту}
- •3. Работа с текстом
- •3.1. Использование надписей
- •3.2. Однострочный редактор
- •3.3. Общие свойства, события и методы компонентов редактирования
- •3.4. Класс tStrings
- •3.5. Многострочный редактор
- •3.6. Использование списков
- •3.7. Таблица String Grid
- •4. Кнопки и переключатели
- •4.1. Работа с кнопками
- •4.1.1. Стандартная кнопка
- •4.1.2. Кнопка с рисунком
- •4.2. Работа с переключателями
- •4.2.1. Переключатель с независимой фиксацией
- •If CheckBox1.Checked then MessageDlg ('Время истекло! ', mtError, [mbОк], 0);
- •4.2.2. Переключатель с зависимой фиксацией
- •4.3. Объединение элементов управления
- •5. Использование форм
- •5.1. Свойства, методы и события форм
- •5.2. Организация взаимодействия форм
- •5.3. Особенности модальных форм
- •5.4. Шаблоны форм
- •5.5. Процедуры и функции, реализующие диалоги
- •5.6. Стандартные диалоги
- •If OpenDialog1.Execute then // при отмене диалога открытие файла не происходит
- •If SaveDialog1.Execute then { Получить имя файла }
- •6.Главное и контекстное меню, панели инструментов
- •6.1. Класс tMenuItem
- •6.2. Cоздание главного и контекстного меню
- •6.3. Динамическая настройка меню
- •6.4. Панели инструментов
- •7. Создание графических изображений
- •7.1. Классы для работы с графикой
- •7.2. Основные компоненты для размещения изображений
- •7.3. Типы графических объектов
- •7.4. Создание диаграмм
- •8. Печать объектов
- •8.1. Класс tPrinter
- •8.2. Печать текста
- •Var fPrn: Text; // объявлена переменная типа Text.
- •8.3. Диалоговые окна для работы с принтером
- •8.4. Печать графических изображений
- •8.4.1. Печать форм
- •8.4.2. Печать диаграмм
- •9. Работа с датами
- •9.1. Преобразование даты
- •9.2. Компоненты для ввода дат
- •10. Сохранение параметров программы.
- •Ini : tIniFile; //объявляем переменную типа inifile
- •Ini : tIniFile; //объявляем переменную типа inifile
- •11. Обработка исключительных ситуаций
- •Var f: File; begin AssignFile(f, 'Somefile.Ext'); try // оператор, в котором возможна ошибка Reset(f); // работы с файлом finally CloseFile(f) end;
7.2. Основные компоненты для размещения изображений
Компонент TShape класса TShape (страница Палитры Компонентов Additional) выводит на экран фигуру (круг, эллипс, прямоугольник и т.п.) и может быть использован для оформления приложения. Помимо унаследованных из класса TGraphicControl, в классе TShape определены свойства:
• property Brush: TBrush; определяет кисть для закрашивания поверхности фигуры.
• property Pen: ТРеn; определяет карандаш для рисования контура фигуры.
• property Shape: TShapeType; определяет фигуру, выводимую на экран: stRectangle – прямоугольник, stSquare – квадрат, stRoundRect – прямоугольник с закругленными краями, stRoundSquare – квадрат с закругленными краями, stEllipse – эллипс, stCircle – круг.
Пример настройки свойств компонента Shape:
procedure TForm1.FormCreate(Sender: TObject);
begin
with Shape1 do begin
Pen.Color:=clRed; // цвет контурной линии
Pen.Style:=psDash; //стиль контурной линии (пунктирная)
Brush.Color:=clWhite; // цвет фигуры
Shape:=stEllipse; // определяется фигура
end;
end;
Событием по умолчанию для компонента Shape является OnDragDrop.
Компонент Image представляет собой контейнер, который может содержать и отображать графический объект.
Помимо наследуемых из класса TGraphicControl, в классе TImage определены следующие свойства:
• Picture: TPicture; указывает графический объект, который будет содержаться в компоненте Image. Файл изображения может быть битовой пиктограммой;
• Canvas: TCanvas; предназначено для формирования изображения на этапе выполнения программы;
• Center: Boolean; изображение помещается в центр компонента, если свойство имеет значение True, иначе – в левом верхнем углу компонента;
• property Stretch: Boolean; изображение увеличивается или уменьшается до размеров компонента, если свойство имеет значение True;
Пример построения эллипса в компоненте Image:
procedure TForm1.Button1Click(Sender: TObject);
begin
with Image1 do begin
Canvas.Brush.Color := clRed;
Canvas.Brush.Style := bsDiagCross;
Canvas.Ellipse(0, 0, Image1.Width, Image1.Height);
end;
end;
Во время работы приложения многие объекты на экране изменяют свое состояние. Для отображения изменений на экране необходимо обновление объектов. Обновление (refresh) объектов – это процесс, выполняемый операционной системой для перерисовки окон и компонентов, расположенных внутри окон. Для самостоятельного вызова метода обновления компонента используется метод Refresh. При обновлении объекта генерируется событие OnPaint.
Пример перехвата события обновления формы. При обновлении формы выводится
окно с сообщением.
procedure TForm1.FormPaint(Sender: TObject); // обработчик события OnPaint формы Form1
begin
MessageDlg('Произошло обновление формы', mtInformation,[mbOK],0);
end;
procedure TForm1.Button1Сlick(Sender: TObject); // код обработки события OnСlick
begin
Form1.Refresh; // вызов метода обновления формы
end;
Таймер класса TTimer является невизуальным компонентом и предназначен для инициирования какой-либо операции через заданные промежутки времени. Основные свойства класса TTimer:
• property Enabled: Boolean; если свойство имеет значение True, то таймер реагирует на собственное событие OnТimer.
• property Interval: Cardinal; определяет временной интервал в миллисекундах, после которого возбуждается событие OnTimer. По умолчанию равно 1000 (1 секунда).
В классе TTimer определено событие ОnТimеr: TNotifyEvent;, которое возникает периодически по истечении интервала времени, определяемого свойством Interval. Оно является событием, используемым по умолчанию.
Пример построения в компоненте Image прямоугольников случайного цвета в случайном месте через случайный интервал времени
procedure TForm1.Timer1Timer(Sender: TObject);
var X,Y: integer;
begin
Randomize;
Timer1.Interval:=Random(1000);
Image1.Canvas.Brush.Color:=Random($ffffff);
X:=Image1.Height; Y:=Image1.Width;
Image1.Canvas.Rectangle(Random(X), Random(Y), Random(X), Random(Y));
end;