Читайте также:
|
|
Компонент | Страница | Описание |
OpenDialog «Открыть файл» | Dialogs | Предназначен для создания окна диалога «Открыть файл» |
SaveDialog «Сохранить файл» | Dialogs | Предназначен для создания окна диалога «Сохранить файл» |
OpenPictureDialog «Открыть рисунок» | Dialogs | Предназначен для создания окна диалога «Открыть рисунок», открывающего графический файл |
SavePictureDialog «Сохранить рисунок» | Dialogs | Предназначен для создания окна диалога «Сохранить рисунок» — сохранение изображения в графическом файле |
FontDialog «Шрифты» | Dialogs | Предназначен для создания окна диалога «Шрифты» — выбор атри бутов шрифта |
ColorDiolog «Цвет» | Dialogs | Предназначен для создания окна диалога «Цвет» — выбор цвета |
ColorBox выбор цвета | Additional | Выпадающий список для выбора пользователем цвета. Только в Delphi 6 |
PrintDialog «Печать» | Dialogs | Предназначен для создания окна диалога «Печать» |
PrinterSetupDialog «Установка принтера» | Dialogs | Предназначен для создания окна диалога «Установка принтера» |
FindDialog «Найти» | Dialogs | Предназначен для создания окна «Найти» |
ReplaceDialog «Заменить» | Dialogs | Предназначен для создания окна диалога «Заменить» |
Все компоненты стандартных диалогов со страницы Dialogs являются невизуальными компонентами, так что место их размещения на форме не имеет значения. При обращении к этим компонентам вызываются стандартные диалоги, вид которых зависит от версии Windows и настройки системы. Так что при запуске одного того же приложения на компьютерах с разными системами диалоги будут выглядеть по-разному. Например, при русифицированной версии Windows все их надписи будут русскими, а при англоязычной версии надписи будут на английском язы-е.
Основной метод, которым производится обращение к любому диалогу, — Ехесate. Эта функция открывает диалоговое окно и, если пользователь произвел в нем какой-то выбор, то функция возвращает true. При этом в свойствах компонента — налога запоминается выбор пользователя, который можно прочитать и использовать в дальнейших операциях. Если же пользователь в диалоге нажал кнопку Отмна или клавишу Esc, то функция Execute возвращает false. Поэтому стандартное обращение к диалогу имеет вид:
if <имя компонента-диалога> Execute then <операторы, использующие выбор пользователя>
Компоненты OpenDialog — диалог «Открыть файл» и SaveDialog — диалог «Сохранить файл как», пожалуй, используются чаще всего, в большинстве приложений.
Все свойства этих компонентов одинаковы, только их смысл несколько различен для открытия и сохранения файлов. Основное свойство, в котором возвращается в виде строки выбранный пользователем файл, — FileName. Значение этого свойства можно задать и перед обращением к диалогу. Тогда оно появится в диалоге как значение по умолчанию в окне Имя файла.
Типы искомых файлов, появляющиеся в диалоге в выпадающем списке Тип файлов, задаются свойством Filter. В процессе проектирования это свойство проще всего задать с помощью редактора фильтров, который вызывается нажатием кнопки с многоточием около имени этого свойства в Инспекторе Объектов. В его левой панели Filter Name вы записываете тот текст, который увидит пользователь в выпадающем списке Тип файла диалога. А в правой панели Filter записываются разделенные точками с запятой шаблоны фильтра.
После выхода из окна редактирования фильтров заданные вами шаблоны появятся в свойстве Filter в виде строки вида:
текстовые (*.txt, *.doc)|*.txt; *.doc|Bce файлы!*.*
В этой строке тексты и шаблоны разделяются вертикальными линиями. В логичном виде, если требуется, можно задавать свойство Filter программно во время выполнения приложения.
Свойство Filterlndex определяет номер фильтра, который будет по умолчанию сазан пользователю в момент открытия диалога. Например, значение Filterln-; = 1 задает по умолчанию первый фильтр.
Свойство InitialDir определяет начальный каталог, который будет открыт в дент начала работы пользователя с диалогом. Если значение этого свойства не ано, то открывается текущий каталог или тот, который был открыт при последнем обращении пользователя к соответствующему диалогу в процессе выполнения даного приложения.
Свойство DefaultExt определяет значение расширения файла по умолчанию. и значение этого свойства не задано, пользователь должен указать в диалоге даное имя файла с расширением. Если же задать значение DefaultExt, то пользователь может писать в диалоге имя без расширения. В этом случае будет принято данное расширение.
Свойство Title позволяет вам задать заголовок диалогового окна. Если это свойство не задано, окно открывается с заголовком, определенным в системе.
В компонентах диалогов открытия и сохранения файлов предусмотрена возможность обработки ряда событий. Такая обработка может потребоваться, если осмотренных опций, несмотря на их количество, не хватает, чтобы установить э диктуемые конкретным приложением ограничения на выбор файлов. Событие LCanClose возникает при нормальном закрытии пользователем диалогового окна еле выбора файла. При отказе пользователя от диалога — нажатии кнопки Отме-, клавиши Esc и т.д. событие OnCanClose не наступает. В обработке события ОnClose вы можете произвести дополнительные проверки выбранного пользователем файла и, если по условиям вашей задачи этот выбор недопустим, вы можете известить об этом пользователя и задать значение false передаваемому в обработку параметру CanClose. Это не позволит пользователю закрыть диалоговое окно.
Компоненты FindDialog и ReplaceDialog, вызывающие диалоги поиска и замены фрагментов текста, очень похожи и имеют одинаковые свойства, кроме одного, задающего заменяющий текст в компоненте ReplaceDialog. Такое сходство не удивительно, поскольку ReplaceDialog — производный класс от FindDialog.
Сами по себе компоненты FindDialog и ReplaceDialog не осуществляют ни поиска, ни замены. Они только обеспечивают интерфейс с пользователем. А поиск и замену надо осуществлять программно. Для этого можно пользоваться событием OnFind, происходящим, когда пользователь нажал в диалоге кнопку Найти далее, и событием OnReplace, возникающим, если пользователь нажал кнопку Заменить или Заменить все. В событии OnReplace узнать, какую именно кнопку нажал пользователь, можно по значениям флагов frReplace и frReplaceAll.
Поиск заданного фрагмента легко проводить, пользуясь функцией Object Pascal Pos, которая определена в модуле System следующим образом:
function Pos(Substr: string; S: string): Byte;
где S — строка, в которой ищется фрагмент текста, a Substr — искомый фрагмент. Функция возвращает позицию первого символа первого вхождения искомого фрагмента в строку. Если Substr в S не найден, возвращается 0.
Для организации поиска нам потребуется еще две функции: Copy и AnsiLo-werCase. Первая из них определена как:
function Copy(S: string; Index, Count: Integer): string;
Она возвращает фрагмент строки S, начинающийся с позиции Index и содержащий число символов, не превышающее Count. Функция AnsiLowerCase, определенная как
function AnsiLowerCase(const S: string): string;
возвращает строку символов S, переведенную в нижний регистр.
Тема 13. Основы теории конфликтов
Дата добавления: 2014-12-20; просмотров: 21 | Поможем написать вашу работу | Нарушение авторских прав |