
Delphi диалоги открытия и сохранения файла. Объясните пожалуйста


Ответы на вопрос

if OpenDialog1.Execute then
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
В результате выбора файла свойство FileName компонента OpenDialog получает значение полного адреса выбранного файла, который мы и вставляем в функцию загрузки файла компонента Memo.
Всё это хорошо, но только в данном случае, когда записанное выражение записывается в одну строку. Если программа использует несколько раз выражение OpenDialog1.FileName, то писать руками устанешь. В Delphi для такого случая есть так называемый "оператор присоединения" with. Он используется для любых объектов, имеющих длинный "хвост" из свойств, которые приходится записывать многократно. Вот как он записывается:
with Объект do
begin
end;
Свойства Объекта внутри логических скобок begin/end можно записывать непосредственно. Допускается перечислять через запятую несколько объектов. Естественно, в случае, когда внутри скобок находится один оператор, они необязательны. Перепишем фрагмент загрузки файла с использованием оператора присоединения:
with OpenDialog1, Memo1 do
if Execute then
Lines.LoadFromFile(FileName);
Запись получается более компактной.
Так как свойства компонентов OpenDialog и SaveDialog одинаковы, сохранение текста выглядит абсолютно аналогично. Создаём обработчик нажатия кнопки "Сохранить как..." и пишем:
with SaveDialog1, Memo1 do
if Execute then
begin
Lines.SaveToFile(FileName);
OpenDialog1.FileName:=FileName; // Чтобы исправленный текст не затёр источник
end;
Наконец, для кнопки "Сохранить" пишем:
Memo1.Lines.SaveToFile(OpenDialog1.FileName); // Сохраняем туда, откуда считали



Компоненты OpenDialog — диалог «Открыть файл» и SaveDialog — диалог «Сохранить файл как...», пожалуй, используются чаще всего, в большинстве приложений.
Все свойства этих компонентов одинаковы, только их смысл несколько различен для открытия и закрытия файлов. Основное свойство, в котором возвращается в виде строки выбранный пользователем файл, — FileName. Значение этого свойства можно задать и перед обращением к диалогу. Тогда оно появится в диалоге как значение по умолчанию в окне Имя файла (см. рис.1,2).
Типы искомых файлов, появляющиеся в диалоге в выпадающем списке Тип файла (рис.1,2), задаются свойством Filter. В процессе проектирования это свойство проще всего задать с помощью редактора фильтров, который вызывается нажатием кнопки с многоточием около имени этого свойства в Инспекторе Объектов. При этом открывается окно редактора, вид которого представлен на рис.3. В его левой панели Filter Name вы записываете тот текст, который увидит пользователь в выпадающем списке Тип файла диалога. А в правой панели Filter записываются разделенные точками с запятой шаблоны фильтра. В примере рис.3 задано два фильтра: текстовых файлов с расширениями .txt и .doc и любых файлов с шаблоном *.*.



Компоненты диалогов открытия и сохранения файла в Delphi позволяют вам взаимодействовать с операционной системой для выбора файлов для открытия или сохранения. Это очень полезно для создания пользовательских интерфейсов, где пользователь может выбирать файлы для обработки или сохранения результатов своей работы. В Delphi такие диалоги реализованы с помощью соответствующих классов или компонентов.
TOpenDialog (Диалог открытия файла): Этот компонент позволяет пользователю выбрать файл для открытия. Когда вы добавляете компонент TOpenDialog на форму, вы можете настроить различные параметры:
Title
: Заголовок диалогового окна.InitialDir
: Начальная папка, которая будет отображаться при открытии диалога.Filter
: Фильтры файлов, которые будут отображаться пользователю (например, "Текстовые файлы (.txt)|.txt|Все файлы (.)|.").Options
: Дополнительные опции, такие как возможность выбора нескольких файлов и т.д.
Когда пользователь выбирает файл и подтверждает выбор, вы можете получить путь к выбранному файлу через свойство FileName
.
TSaveDialog (Диалог сохранения файла):
Этот компонент позволяет пользователю выбрать место и указать имя файла для сохранения. Он имеет аналогичные параметры, такие как Title
, InitialDir
, и Options
. Вы также можете указать допустимые расширения для сохраняемого файла через свойство DefaultExt
.
Когда пользователь указывает место и имя файла для сохранения, вы можете получить путь и имя файла через свойство FileName
.
Пример использования:
delphiprocedure TForm1.OpenButtonClick(Sender: TObject); var OpenDialog: TOpenDialog; begin OpenDialog := TOpenDialog.Create(nil); try OpenDialog.Title := 'Выберите файл для открытия'; OpenDialog.Filter := 'Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*'; if OpenDialog.Execute then begin // Действия с выбранным файлом (OpenDialog.FileName) end; finally OpenDialog.Free; end; end; procedure TForm1.SaveButtonClick(Sender: TObject); var SaveDialog: TSaveDialog; begin SaveDialog := TSaveDialog.Create(nil); try SaveDialog.Title := 'Выберите место и имя файла для сохранения'; SaveDialog.DefaultExt := 'txt'; if SaveDialog.Execute then begin // Действия с указанным местом и именем файла (SaveDialog.FileName) end; finally SaveDialog.Free; end; end;
Вы можете добавить кнопки на форму (например, "Открыть" и "Сохранить") и привязать к ним соответствующие обработчики событий, как показано в примере выше.


Похожие вопросы







Топ вопросов за вчера в категории Информатика









Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili