Delphi диалоги открытия и сохранения файла. Растолкуйте пожалуйста
Delphi диалоги открытия и сохранения файла. Растолкуйте пожалуйста
Задать свой вопросСоставляющие OpenDialog диалог Открыть файл и SaveDialog диалог Сохранить файл как..., пожалуй, употребляются почаще всего, в большинстве прибавлений.
Все характеристики этих компонент схожи, только их смысл несколько разен для открытия и закрытия файлов. Главное свойство, в котором ворачивается в виде строчки избранный пользователем файл, FileName. Значение этого характеристики можно задать и перед воззванием к диалогу. Тогда оно появится в разговоре как значение по умолчанию в окне Имя файла (см. рис.1,2).
Типы искомых файлов, появляющиеся в разговоре в выпадающем перечне Тип файла (рис.1,2), задаются свойством Filter. В процессе проектирования это свойство проще всего задать с подмогою редактора фильтров, который вызывается нажатием кнопки с многоточием около имени этого характеристики в Инспекторе Объектов. При этом открывается окно редактора, вид которого представлен на рис.3. В его левой панели Filter Name вы записываете тот текст, который увидит юзер в выпадающем перечне Тип файла разговора. А в правой панели Filter записываются разделенные точками с запятой шаблоны фильтра. В образце рис.3 задано два фильтра: текстовых файлов с расширениями .txt и .doc и всех файлов с шаблоном *.*.
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); // Сохраняем туда, откуда считали
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.