Вот и подошёл к концу наш конкурс! Поздравляем победителей!!! Подробнее.

Проект Programmers.kz и школа hotPen3D2D предлагает Вам курсы по веб-дизайну, веб-программированию и компьютерной графике. Подробности здесь.

 
Информация к новости
 (голосов: 0)

Урок Delphi 7.3. Диалоги открытия и сохранения файлов

Категория: Программирование » Delphi » Уроки Delphi

   То, что мы узнали в предыдущей части урока, позволяет работать с файлами по адресу, жёстко записанному в тексте программы. Мы же хотим просматривать любые файлы по нашему выбору. Естественно, Delphi предоставляет нам такую возможность. Рассмотрим компоненты, позволяющие в работающей программе осуществлять выбор файлов. Delphi диалоги выбора файла позволяют указать програме, с каким файлом мы хотим работать.

   На вкладке палитры компонентов Dialogs находятся компоненты OpenDialog и SaveDialog. Все Delphi диалоги, находящиеся на этой вкладке, в том числе и Delphi диалоги выбора файла, невизуальные, т.е. при переносе их на Форму в работающей программе их не видно, они видны только на этапе конструирования. Компонент OpenDialog позволяет открыть в нашей программе стандартное Windows-окно открытия файла, компонент SaveDialog - окно сохранения.

Delphi компоненты выбора файла
   Delphi диалоги выбора файла сами по себе ничего не делают, а только предоставляют настройки, сделанные пользователем при выборе файла. Самый важный метод Delphi диалогов - Execute. Он срабатывает в момент нажатия кнопки "открыть" или "сохранить" в окне выбора файла. Для примера давайте введём в программу возможность выбора файла для загрузки в редактор Memo, и сохранения после редактирования.

   Итак, кидаем на Форму оба Delphi диалога, текстовый редактор Memo, и три кнопки Button. В свойство Caption одной из них записываем "Открыть...", другой - "Сохранить", третьей - "Сохранить как..."

Работа с диалогами выбора файла
В обработчике onclick кнопки "Открыть..." пишем:

   if OpenDialog1.Execute then
      Memo1.Lines.LoadFromFile('OpenDialog1.FileName');

В результате выбора файла свойство FileName компонента OpenDialog получает значение полного адреса выбранного файла, который мы и вставляем в функцию загрузки файла компонента Memo.
Всё это хорошо, но только в данном случае, когда записанное выражение записывается в одну строку. Если программа использует несколько раз выражение OpenDialog1.FileName, то писать руками устанешь. В Delphi для такого случая есть так называемый "оператор присоединения" with. Он используется для любых объектов, имеющих длинный "хвост" из свойств, которые приходится записывать многократно. Вот как он записывается:

   with Объект do
     begin

     end;

Свойства Объекта внутри логических скобок begin/end можно записывать непосредственно. Естественно, в случае, когда внутри скобок находится один оператор, они необязательны. Перепишем фрагмент загрузки файла с использованием оператора присоединения:

   with OpenDialog1 do
      if Execute then
         Memo1.Lines.LoadFromFile('FileName');

Запись получается более компактной.
Так как свойства компонентов OpenDialog и SaveDialog одинаковы, сохранение текста выглядит абсолютно аналогично. Создаём обработчик нажатия кнопки "Сохранить как..." и пишем:

   with SaveDialog1 do
      if Execute then
        begin
           Memo1.Lines.SaveToFile('FileName');
           OpenDialog1.FileName:=FileName; // Чтобы исправленный текст не затёр источник
        end;

Наконец, для кнопки "Сохранить" пишем:

   Memo1.Lines.SaveToFile('OpenDialog1.FileName'); // Сохраняем туда, откуда считали

При работе этих фрагментов можно заметить, что выбирать приходится из всех файлов в нужной директории. Удобнее видеть только, например, текстовые файлы, или другой тип файлов по нашему выбору. Для этого используются фильтры, свойство Filter в наших компонентах. Настраивается оно в Инспекторе Объектов. При выборе его можно перейти в редактор фильтров:

Редактор фильтров
 

В колонке FilterName записываем имена фильтров, в колонке Filter - список масок файлов, разделённых точкой с запятой. Маска файла в данном случае выглядит как

    * . расширение_файла ;

Звёздочка означает, что выбираются файлы с любыми именами, подходящие по расширению.

   Свойство Delphi диалогов Title позволяет записать в заголовок нужную нам фразу. Если оставить его пустым, то в заголовке будут стандартные "открыть" или "сохранить"
   Свойство InitialDir позволяет в момент открытия оказаться в нужной нам директории. Оно доступно как на этапе "конструирования", так и программно.

 

Источник: delphi-manual.ru

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Введите два слова, показанных на изображении: *