Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
28
Добавлен:
16.04.2013
Размер:
87.04 Кб
Скачать

Компоненты вызова стандартных диалоговых окон открытия и сохранения файлов

TOpenDialog (TSaveDialog) отображают диалоговые окна Windows для открытия (сохранения) файлов. Компоненты TOpenDialog и TSaveDialog работают с файлами любого типа.

Открытие соответствующего диалога осуществляется методом Execute. Если в диалоге пользователь нажмет кнопку Открыть (Сохранить), диалог закрывается, метод Execute возвращает True и выбранный файл отображается в свойстве компонента-диалога FileName. Если же пользователь отказался от диалога (нажал кнопку Отмена или клавишу Esc), то метод Execute возвращает False.

Значение свойства FileName можно задать и перед обращением к диалогу. Тогда оно появится в диалоге как значение по умолчанию в окне Имя файла. Таким образом, например, выполнение команды Сохранить как ..., по которой в файле с выбранным пользователем именем надо сохранить текст окна редактирования Memo1, может иметь вид:

// Задание имени по умолчанию SaveDialog1.FileName:=FName;

if SaveDialog1.Execute

then begin

FName:= SaveDialog1.FileName;

Memo1.Lines.SaveToFile(FName);

end;

В этом коде предполагается, что имя файла хранится в строковой переменной FName. Перед вызовом диалога это имя передается в него как имя файла по умолчанию, а после выбора пользователем файла его выбор запоминается в той же переменной FName и текст сохраняется в этом файле методом SaveToFile.

Компонент вызова стандартного диалогового окна для выбора цвета

Компонент TColorDialog отображает диалоговое окно Windows для выбора цветов. Диалоговое окно не появляется во время выполнения, пока это не активизировано обращением к методу Execute. Когда пользователь выбирает цвет и нажимает OK, диалоговое окно закрывается, и выбранный цвет сохраняется в свойстве Color. Это основное свойство компонента TColorDialog.

Следующий оператор позволяет пользователю выбрать цвет фона компонента Memo1:

if ColorDialog1.Execute then Memo1.Color:=ColorDialog1.Color;

Компонент вызова стандартного диалогового окна для выбора шрифта

Компонент TFontDialog отображает стандартное диалоговое окно Windows для выбора шрифта.

Открытие диалогового окна осуществляется методом Execute. Если в диалоге пользователь нажмет кнопку Открыть (Сохранить), диалог закрывается, метод Execute возвращает True и выбранные атрибуты шрифта передаются в свойство Font компонента-диалога. Если же пользователь отказался от диалога (нажал кнопку Отмена или клавишу Esc), то метод Execute возвращает False.

Значение свойства Font можно задать и перед обращением к диалогу. Тогда оно определит значения атрибутов шрифта по умолчанию, которые увидит пользователь в момент открытия диалога. Таким образом, например, выполнение команды Шрифт, по которой пользователь может задать текущее значение шрифта для компонента RichEdit1, может иметь вид:

// Задание в качестве атрибутов по умолчанию

// атрибутов шрифта текущей позиции курсора в тексте

FontDialog1.Font.Assign(RichEdit1.SelAttributes);

// Открытие диалога

if(FontDialog1.Execute) then

RichEdit1.SelAttributes.Assign(FontDialog1.Font);

Свойства MaxFontSize и MinFontSize устанавливают ограничения на максимальный и минимальный размеры шрифта. Если значения этих свойств равны 0 (по умолчанию), то никакие ограничения на размер не накладываются. Если же значения свойств заданы (обычно это целесообразно делать исходя из размеров компонента приложения, для которого выбирается шрифт), то в списке Размер диалогового окна (см. приведенный рисунок) появляются только размеры, укладывающиеся в заданный диапазон. При попытке пользователя задать недопустимый размер ему будет выдано предупреждение вида "Размер должен лежать в интервале ..." и выбор пользователя отменится. Свойства MaxFontSize и MinFontSize действуют только при включенной опции fdLimitSize.

Свойство Device определяет, из какого списка возможных шрифтов будет предложен выбор в диалоговом окне: fdScreen - из списка экрана (по умолчанию), fdPrinter - из списка принтера, fdBoth - из обоих.

Свойство Options содержит множество опций диалога. По умолчанию все эти опции, кроме fdEffects, отключены.

Если установить опцию fdApplyButton, то при нажатии пользователем кнопки Применить возникает событие OnApply, в обработчике которого вы можете написать код, который применит выбранные пользователем атрибуты, не закрывая диалогового окна. Например:

RichEdit1.SelAttributes.Assign(FontDialog1.Font);

Тогда пользователь может наблюдать изменения в окне RichEdit1, нажимая в диалоговом окне кнопку Применить и не прерывая диалога. Это очень удобно, так как позволяет пользователю правильно подобрать атрибуты шрифта. При работе с окном редактирования Memo аналогичный оператор может иметь вид: Memo1.Font.Assign(FontDialog1.Font);

Пусть форма содержит окно редактирования Memo1, шрифт в котором может выбирать пользователь командой меню Шрифт. Тогда обработчик команды Шрифт может иметь вид:

if FontDialog1.Execute then

Memo1.Font.Assign(FontDialog1.Font);

Если вы установите в компоненте FontDialog1 опцию fdApplyButton, то можете написать обработчик события OnApply:

Memo1.Font.Assign(FontDialog1.Font);

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.

Соседние файлы в папке ВМИП