Вот и подошёл к концу наш конкурс! Поздравляем победителей!!! Подробнее.
Проект Programmers.kz и школа hotPen3D2D предлагает Вам курсы по веб-дизайну, веб-программированию и компьютерной графике. Подробности здесь.
- Просмотров: 5999
- Автор: AlexanderMS
Урок Delphi 7.3. Диалоги открытия и сохранения файлов
Категория: Программирование » Delphi » Уроки Delphi
То, что мы узнали в предыдущей части урока, позволяет работать с файлами по адресу, жёстко записанному в тексте программы. Мы же хотим просматривать любые файлы по нашему выбору. Естественно, Delphi предоставляет нам такую возможность. Рассмотрим компоненты, позволяющие в работающей программе осуществлять выбор файлов. Delphi диалоги выбора файла позволяют указать програме, с каким файлом мы хотим работать.
На вкладке палитры компонентов Dialogs находятся компоненты OpenDialog и SaveDialog. Все Delphi диалоги, находящиеся на этой вкладке, в том числе и Delphi диалоги выбора файла, невизуальные, т.е. при переносе их на Форму в работающей программе их не видно, они видны только на этапе конструирования. Компонент OpenDialog позволяет открыть в нашей программе стандартное Windows-окно открытия файла, компонент SaveDialog - окно сохранения.
Delphi диалоги выбора файла сами по себе ничего не делают, а только предоставляют настройки, сделанные пользователем при выборе файла. Самый важный метод Delphi диалогов - Execute. Он срабатывает в момент нажатия кнопки "открыть" или "сохранить" в окне выбора файла. Для примера давайте введём в программу возможность выбора файла для загрузки в редактор Memo, и сохранения после редактирования.
Итак, кидаем на Форму оба Delphi диалога, текстовый редактор Memo, и три кнопки Button. В свойство Caption одной из них записываем "Открыть...", другой - "Сохранить", третьей - "Сохранить как..."
В обработчике onclick кнопки "Открыть..." пишем:
if OpenDialog1.Execute thenMemo1.Lines.LoadFromFile('OpenDialog1.FileName');В результате выбора файла свойство FileName компонента OpenDialog получает значение полного адреса выбранного файла, который мы и вставляем в функцию загрузки файла компонента Memo.
Всё это хорошо, но только в данном случае, когда записанное выражение записывается в одну строку. Если программа использует несколько раз выражение OpenDialog1.FileName, то писать руками устанешь. В Delphi для такого случая есть так называемый "оператор присоединения" with. Он используется для любых объектов, имеющих длинный "хвост" из свойств, которые приходится записывать многократно. Вот как он записывается:
with Объект dobeginend;Свойства Объекта внутри логических скобок begin/end можно записывать непосредственно. Естественно, в случае, когда внутри скобок находится один оператор, они необязательны. Перепишем фрагмент загрузки файла с использованием оператора присоединения:
with OpenDialog1 doif Execute thenMemo1.Lines.LoadFromFile('FileName');Запись получается более компактной.
Так как свойства компонентов OpenDialog и SaveDialog одинаковы, сохранение текста выглядит абсолютно аналогично. Создаём обработчик нажатия кнопки "Сохранить как..." и пишем:
with SaveDialog1 doif Execute thenbegin
Memo1.Lines.SaveToFile('FileName');OpenDialog1.FileName:=FileName; // Чтобы исправленный текст не затёр источникend;
Наконец, для кнопки "Сохранить" пишем:
Memo1.Lines.SaveToFile('OpenDialog1.FileName'); // Сохраняем туда, откуда считалиПри работе этих фрагментов можно заметить, что выбирать приходится из всех файлов в нужной директории. Удобнее видеть только, например, текстовые файлы, или другой тип файлов по нашему выбору. Для этого используются фильтры, свойство Filter в наших компонентах. Настраивается оно в Инспекторе Объектов. При выборе его можно перейти в редактор фильтров:
В колонке FilterName записываем имена фильтров, в колонке Filter - список масок файлов, разделённых точкой с запятой. Маска файла в данном случае выглядит как * . расширение_файла ;Звёздочка означает, что выбираются файлы с любыми именами, подходящие по расширению. |
Свойство Delphi диалогов Title позволяет записать в заголовок нужную нам фразу. Если оставить его пустым, то в заголовке будут стандартные "открыть" или "сохранить"
Свойство InitialDir позволяет в момент открытия оказаться в нужной нам директории. Оно доступно как на этапе "конструирования", так и программно.
Источник: delphi-manual.ru
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.




