
- •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;
5.5. Процедуры и функции, реализующие диалоги
Процедура ShowMessage, функции MessageDlg и MessageDlgPos отображают окно (панель) вывода сообщений; функции InputBox и InputQuery отображают окно (панель) для ввода информации.
Процедура ShowMessage (const Msg: String) отображает окно сообщения с кнопкой ОК. Заголовок содержит название исполняемого файла приложения, а строка Msg выводится как текст сообщения.
Пример отображения простейшего окна сообщений:
procedure TForm1.btnDialog1Click(Sender: TObject);
begin
ShowMessage('Простейшее диалоговое окно');
end;
Функция MessageDlg (const Msg: String; AType: TMsgDlgType; AButtons: TMsgDlgButtons; HelpCtx: Longint): Word отображает окно сообщений в центре экрана для получения ответа пользователя. Параметр Msg содержит отображаемое сообщение. Параметр АTуре определяет тип окна сообщения и может принимать следующие значения:
• mtWarning – черный восклицательный знак в желтом треугольнике и заголовок Warning;
• mtError – белый косой крест в красном круге и заголовок Error;
• mtInformation – синяя буква "i" в белом круге и заголовок Information;
• mtConfirmation – синий знак "?" в белом круге и заголовок Confirmation;
• mtCustom – картинки нет, в заголовке – название исполняемого файла приложения.
Параметр AButtons задает набор кнопок окна:
• mbYes – кнопка с надписью Yes;
• mbNo – кнопка с надписью No;
• mbOk – кнопка с надписью ОК;
• mbCancel – кнопка с надписью Cancel;
• mbHelp – кнопка с надписью Help;
• mbAbort – кнопка с надписью Abort;
• mbRetry – кнопка с надписью Retry;
• mbIgnore – кнопка с надписью Ignore;
• mbAll – кнопка с надписью Аll.
Для параметра AButtons имеются две константы mbYesNoCancel и mbOKCancel, определяющие предопределенные наборы кнопок:
• mbYesNoCancel = [mbYes, mbNo, mbCancel];
• mbOKCancel = [mbOK, mbCancel].
При нажатии любой из этих кнопок, кроме кнопки Help, диалог закрывается и функция MessageDlg возвращает результат в свойство ModalResult.
Параметр HelpCtx определяет контекст (тему) справки, которая появляется во время отображения диалога при нажатии <F1>. Обычно значение HelpCtx равно нулю.
Пример использования функции MessageDlg:
procedure TForm1.btnTestDateClick(Sender: TObject);
var rez :TModalResult;
begin
if length(edtDate.Text) < 8 then
begin
rez := MessageDlg('неправильная дата!' +
#10#13’Исправить автоматически?', mtError, [mbOK, mbNo], 0);
if rez = mrOK then edtDate.Text := DateToStr(Date);
if rez = mrNo then if edtDate.CanFocus then edtDate.SetFocus;
end;
end;
При нажатии на кнопку btnTestDate производится проверка длины даты, введенной в
поле редактирования edtDate. Если длина даты меньше допустимой, выдается предупреждение и запрос на автоматическую коррекцию. При утвердительном ответе в поле даты записывается текущая дата, при отрицательном – фокус передается полю ввода даты.
5.6. Стандартные диалоги
Стандартные – это диалоги общего назначения, которые используются многими Windows-приложениями для выполнения таких операций, как открытие, сохранение и печать файлов. Поскольку стандартные диалоги определяются средой Windows, то их внешний вид, в том числе язык интерфейсных элементов, зависит от версии установленной на компьютере Windows.
На странице Dialogs Палитры компонентов содержатся следующие компоненты, реализующие стандартные диалоги:
• OреnDiаlоg – выбор открываемого файла;
• SaveDialog – выбор сохраняемого файла;
• OреnРiсtureDialog – выбор открываемого графического файла;
• SavePictureDialog – выбор сохраняемого графического файла;
• FontDialog – настройка параметров шрифта;
• ColorDialog – выбор цвета;
• PrintDialog – вывод на принтер;
• PrinterSetupDialog – выбор принтера и настройка его параметров;
• FindDialog – ввод строки текста для поиска;
• ReplaceDialog – ввод строк текста для поиска и для замены.
Основные свойства компонентов OpenDialog и SaveDialog:
• FileName типа String – указывает имя и полный путь файла, выбранного в диалоге. Имя файла отображается в строке редактирования с названием имя файла и является результатом диалога;
• Title типа String – задает заголовок окна. Если свойство Title не установлено, то по умолчанию используется заголовок Open для OpenDialog и заголовок Save – для SaveDialog;
• InitialDir типа String – определяет каталог, содержимое которого отображается при вызове окна диалога. Если каталог не задан, то отображается содержимое текущего каталога;
• DefaultExt типа String – задает расширение, автоматически подставляемое к имени файла, если пользователем расширение имени не указано;
• Options типа TOpenOptions – настройка параметров, управляющих внешним видом и функциональными возможностями диалога;
• Filter типа String – задает маски имен файлов, отображаемых в раскрывающемся списке под названием Files of type. В окне диалога видны имена файлов, которые совпадают с указанной маской. По умолчанию значением Filter является пустая строка, что соответствует отображению имен файлов всех типов;
• FilterIndex типа Integer – указывает, какая из масок фильтра отображается в списке. По умолчанию свойство FilterIndex имеет значение 1 и используется первая маска.
Фильтр – это последовательность значений, разделенных знаком |. Каждое значение состоит из описания и маски, также разделенных знаком |. Описание представляет собой обычный текст, поясняющий пользователю данную маску. Маска является шаблоном отображаемых файлов и состоит из имени и расширения. Если для одного описания приводится несколько масок, то они разделяются знаком ;. Фильтр обычно формируется при проектировании приложения. Редактор фильтра (Filter Editor) вызывается через свойство Filter Инспектора объектов.
Пример формирования фильтра с двумя масками – маской для текстовых файлов и
маской для всех файлов:
OpenDialog1.Filter:='Текстовые файлы| *.txt;*.doс|Все файлы| *.*';
Так как в раскрывающемся списке диалога отображается только описание фильтра, то в описание целесообразно включить маску, например: OpenDialog1.Filter:= 'Текстовые файлы *.txt;*.doc|*.txt;*.doc' + '|Все файлы *.*|*.*';
Для вызова любого стандартного диалога используется метод Execute тип Boolean. При закрытии диалога кнопкой Open или Save (Открыть или Сохранить) функция Execute возвращает значение True, а при отмене диалога – значение False. После закрытия стандартного диалога он через свои свойства возвращает значения, выбранные или установленные в процессе диалога.
Пример использования стандартного диалога OpenDialog:
procedure TForm1.Button2Click(Sender: TObject); // нажатие на кнопку Button2
begin