Есть ответ 👍

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

281
437
Посмотреть ответы 3

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

ujiuyh
4,7(66 оценок)

компоненты opendialog — диалог «открыть файл» и savedialog — диалог «сохранить файл », , используются чаще всего, в большинстве приложений.

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

типы искомых файлов, появляющиеся в диалоге в списке тип файла (рис.1,2), свойством filter. в процессе проектирования это свойство проще всего задать с редактора фильтров, который вызывается нажатием кнопки с многоточием около имени этого свойства в инспекторе объектов. при этом открывается окно редактора, вид которого представлен на рис.3. в его левой панели filter name вы записываете тот текст, который увидит пользователь в списке тип файла диалога. а в правой панели filter записываются разделенные точками с запятой шаблоны фильтра. в примере рис.3 задано два фильтра: текстовых файлов с расширениями .txt и .doc и любых файлов с шаблоном *.*.


Вобработчике  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, 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);   // сохраняем туда, откуда считали
ErmolinVI
4,4(14 оценок)

Var   x,y,z,m: real; begin   write('x,y,z=? '); read(x,y,z);   if x< y then m: =x else m: =y;   if z< m then m: =z;   writeln(m) end.

Популярно: Информатика