русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Стандартные файловые диалоги

При работе с файлами пользователь часто должен либо указать, какой файл на диске открыть, либо ввести имя файла для сохранения информации. Нудное впечатывание полного имени файла с путем в компонент типа TEdit – явно не лучший способ. В Delphi предусмотрен ряд средств для отображения стандартных диалогов открытия и сохранения файлов. Данные компоненты являются невизуальными и находятся на закладке Dialogs палитры компонентов (Рис. 14.1).


Рис. 18.1 Панель Dialogs палитры инструментов.

Напишем программу, загружающую выбранный пользователем текстовый файл в компонент Memo1 типа TMemo. Поместим на форму компонент TOpenDialog и настроим его свойства (Табл. 14.1):

Табл. 18.1

Свойство Что это такое? Значение
DefaultExt Расширение имени файла, которое добавляется автоматически, если пользователь ввел только имя без расширения txt
Filter Список типов файлов и их расширений. в левой колонке – текст, отображаемый на экране, в правой – маска имени файла вида *.расширение
FilterIndex Номер пункта в списке типов файлов, который отображается по умолчанию (нумерация с единицы) 1 в данном примере соответствует фильтру "Текстовые файлы *.txt"
Title Текстовая строка в заголовке диалогового окна "Выберите файл"
Options
NoChangeDir Не менять текущую директорию, как бы пользователь не лазил по дискам True
ofPathMustExist Введенный путь должен существовать True
ofFileMustExist Выбранный файл должен существовать True, если это диалог открытия файла, и False – если это диалог сохранения
ofCreatePrompt Выдача подсказки при создании нового файла False
ofAllowMultiSelect Разрешает выбратьнесколько имен aфайлов при помощи клавиш Shift и Ctrl False

Разместим на форме кнопку и напишем следующий обработчик:

procedure TForm1.Button1Click(Sender: TObject);

begin

WITH OpenDialog1 DO

IF Execute THEN

Memo1.Lines.LoadFromFile(FileName);

end;

Здесь вызывается метод Execute компонента TOpenDialog, который собственно и открывает окно выбора файла (Рис. 14.2).

Рис. 18.2 Диалоговое окно открытия файла.

Метод Execute возвращает логическое значение True или False в зависимости от того, выбрал ли пользователь файл или просто закрыл диалоговое окно. Если получено значение True, то в компонент Memo1 загружается файл с именем, которое хранится в свойстве OpenDialog1.FileName.

Диалог сохранения файла TSaveDialog работает аналогично. Давайте добавим его на форму (не забыв в свойстве Options установить ofPathMustExist=True, ofFileMustExist=False) и на еще одну кнопку повесим код сохранения текста из Memo1:

procedure TForm1.Button2Click(Sender: TObject);

begin

WITH SaveDialog1 DO

IF Execute THEN

Memo1.Lines.SaveToFile(FileName)

end;

Вот и получился примитивный текстовый редактор!

Компоненты TOpenPictureDialog и TsavePictureDialog отличаются наличием в них окна предварительного просмотра графических файлов, для загрузки и сохранения которых они и предназначены. В паре с компонентом Timage легко сделать простой графический редактор.

Кстати, все эти диалоги не имеют проблем с открытием файлов, у которых в имени или пути есть русские буквы или пробелы. Никаких дополнительных усилий по этому поводу (скажем, заключения имени файла в кавычки) прилагать не требуется.

Если надо сразу открыть несколько файлов, то надо установить в свойстве Options значение foAllowMultiSelect в True. В этом случае список выбранных файлов будет записан в свойство Files. Далее его можно, к примеру, показать в компоненте типа TListBox следующим образом:

ListBox1.Items.Assign(OpenDialog1.Files);

В ряде случаев необходимо, чтобы пользователь выбирал не файл, а директорию (например, надо указать программе, где хранятся временные файлы). Обычные диалоги для этого не годятся. Однако, в модуле FileCtrl, который нужно не забыть добавить в оператор Uses, имеется функция SelectDirectory(const Caption: string; const Root: WideString; out Directory: string): Boolean. Параметр Caption задает текст в заголовке диалога, параметр Root – начальную директорию, которая будет текущей в окне (можно поставить пустую строку), а в переменную Directory запишется выбранная пользователем директория. Функция возвращает логическое значение в зависимости от того, сделан выбор или нет. Чтобы выбратьдиректорию, можно использовать следующий код:

USES FileCtrl;

if SelectDirectory('Выберите директорию', '',dir) then

MessageDlg('Выбрана директория '+dir, mtInformation,[mbOK],0)

Просмотров: 938


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.