- •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;
If OpenDialog1.Execute then // при отмене диалога открытие файла не происходит
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
Пример сохранения графического образа в файл:
На форме Form1 расположено меню с двумя пунктами Save и SaveAs, компонент
SaveDialog и компонент Image1 для хранения графического образа. Если вызывается пункт Save, то проверяется, был ли уже создан файл для данного графического образа. Если был создан, то образ сохраняется. Если файл не был создан, вызывается метод SaveAs, который открывает окно SaveDialog1 и запрашивает имя файла для графического образа, после этого управление передается методу Save.
var Form1: TForm1;
CurrentFile:String;
implementation
{$R *.DFM}
procedure TForm1.Save1Click (Sender: TObject);
begin
if CurrentFile <> ' ' then Image1.Picture.SaveToFile(CurrentFile) { файл уже существует }
else SaveAs1Click(Sender);{ иначе нужно ввести имя файла }
end;
ргосеdurе ТFоrm1.SaveAs1Click(Sender: TObject);
begin
If SaveDialog1.Execute then { Получить имя файла }
begin
СurrentFile := SaveDialog1.FileName;
{ сохранить файл с именем, заданным пользователем }
Save1Click(Sender); { вызов метода сохранения файла }
end;
еnd;
Компоненты OpenPictureDialog и SavePictureDialog вызывают стандартные диалоги открытия и сохранения графических файлов. Эти стандартные диалоги отличаются от OpenDialog и SaveDialog видом окон и установленными значениями свойства Filter.
Свойства компонентов OpenPictureDialog и SavePictureDialog ничем не отличаются от свойств компонентов OpenDialog и SaveDialog. Единственное отличие — заданное значение по умолчанию свойства Filter в OpenPictureDialog и SavePictureDialog. В этих компонентах заданы следующие фильтры:
*.jpg; *.jpeg; *.bmp; *.ico; *.emf; *.wmf
В этих фильтрах перечислены все типы графических файлов, с которыми может работать диалог. Так что вам остается удалить, если хотите, фильтры тех файлов, с которыми вы не хотите работать, добавить, может быть, фильтр «Все файлы (*.*)» и перевести на русский язык названия типов.
Пусть ваше приложение включает окно редактирования Memo1, шрифт в котором пользователь может выбирать командой меню Шрифт.
Вы ввели в приложение компонент FontDialog, имя которого по умолчанию FontDialog1.
Обработчик команды Шрифт может иметь вид:
if FontDialog1.Execute then Memo1.Font.Assign(FontDialog1.Font);
Приведенный оператор вызывает диалог выбора атрибутов шрифта и, если пользователь произвел выбор, то значения всех выбранных атрибутов, содержащиеся в свойстве FontDialog1.Font, присваиваются атрибутам окна редактирования, содержащимся в свойстве Memo1.Font.
Шрифт в окне редактирования немедленно изменится.
Если вы установите в компоненте FontDialog1 опцию fdApplyButton, то можете написать обработчик события OnApply:
Memo1.Font.Assign(FontDialog1.Font);
Тогда пользователь может наблюдать изменения в окне Memo1, нажимая в диалоговом окне кнопку Применить и не прерывая диалога.
Если в качестве окна редактирования в вашем приложении вы используете RichEdit, то можно выбирать атрибуты шрифта для выделенного фрагмента текста или для вновь вводимого текста. Тогда выполнение команды меню Шрифт может осуществляться операторами:
if FontDialog1.Execute then RichEdit1.SelAttributes.Assign(FontDialog1.Font);
Вы можете разрешить пользователю изменять шрифт не только отдельных компонентов, но и всех компонентов и надписей на форме.
if FontDialog1.Execute then Font.Assign(FontDialog1.Font);
В этом операторе свойство Font без ссылки на компонент подразумевает шрифт формы.
Компонент ColorDialog вызывает диалоговое окно выбора цвета.
В нем пользователь может выбрать цвет из базовой палитры или, нажав кнопку Определить цвет, раскрыть дополнительную панель, позволяющую синтезировать цвет, отличный от базовых. Синтезированный цвет можно добавить кнопкой Добавить в набор в палитру дополнительных цветов на левой панели и использовать его в дальнейшем.
Основное свойство компонента ColorDialog — Color.
Это свойство соответствует тому цвету, который выбрал пользователь.
Каждый цвет определяется строкой вида
<Имя цвета>=<шестнадцатиричное представление цвета>;
Имена цветов задаются от ColorA (первый цвет) до ColorP (шестнадцатый, последний).
Например, строка ColorA=808022 задает первый заказной цвет.
Если вы хотите, чтобы пользователь мог задать цвет какого-то объекта, например, цвет фона компонента Memo1, то это можно реализовать оператором
if ColorDialog1.Execute then
Memo1.Color := ColorDialog1.Color;