Пишем компонент окно выбора папки


Окна Windows: изменение, перемещение, содержимое, работа с элементами окон. Выбор носителя, создание папки и файла в среде Windows. Типовые расширения имен файлов

Изменение размеров и перемещение окон

Обычно размеры окон можно изменять. Те, для которых разрешена эта операция, имеют специально обозначенный уголок в нижнем правом углу (рис. 8.8).

Рис. 8.8. Угол «перемещения»

После наведения на этот элемент указатель мыши примет форму двунаправленной стрелки. Щелкните кнопкой мыши и перемещайте границу в любом направлении – окно будет изменять размер.

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

Есть также специальные кнопки, размещенные в правой части заголовка окна (см. рис. 8.3). При нажатии кнопки Свернуть окно свернется на Панель задач (подробнее о ней рассказывается в гл. 10), то есть пропадет с экрана.

Кнопка Развернуть/Свернуть в окно используется для увеличения размеров окна до размеров экрана и затем для восстановления прежних размеров. Проделать эти же действия можно, дважды щелкнув кнопкой мыши на заголовке окна.

Помимо изменения размеров, окно можно перемещать по экрану. Это часто необходимо, чтобы оно не закрывало другие окна, содержание которых для вас в данный момент наиболее важно. Для этого следует навести указатель мыши на заголовок окна и, щелкнув кнопкой мыши, начать перемещение в нужном направлении: окно «потянется» за указателем. Кстати, в зависимости от настроек передвигаться может как окно целиком, так и его контур (рис. 8.9).

Рис. 8.9. Перемещение контура окна

В таких случаях, переместив контур в нужное место, просто отпустите кнопку мыши – на месте контура появится само окно

Элементы управления бывают нескольких видов. Часто используемые и простые для восприятия – кнопки (рис. 8.10).

Они бывают разных размеров, форм и цветов. На них могут быть нанесены как текст, так и изображение, а иногда и текст, и изображение. Пользоваться кнопками предельно просто – наведите на них указатель и щелкните кнопкой мыши. После этого осуществится заданное действие.

Не менее важными являются текстовые поля (рис. 8.11). Они предназначены для введения информации. В текстовые поля вносятся имя при регистрации (помните о вводе имени и названия организации при установке Windows XP?), текущее время, какой-либо текст. В общем все, что вам угодно или необходимо программе. Часто такие поля имеют надписи, с помощью которых можно узнать, что требуется ввести.

Рис. 8.11. Текстовые поля

Флажки (рис. 8.12) служат для выбора различных параметров, например, при настройке чего-либо.

Установить флажок можно, щелкнув кнопкой мыши на квадрате, рядом с которым обычно располагается поясняющий текст. Чтобы снять флажок, следует щелкнуть кнопкой мыши на квадрате (в котором поставлена «галочка», говорящая о том, что флажок установлен) повторно.

Переключатель (рис. 8.13) позволяет выбрать только один из нескольких возможных вариантов.

Рис. 8.13. Переключатель

Чаще всего они выделяются в группу, из которой может быть выбран только один переключатель. В то же время флажков вы можете выбрать сколько угодно.

Раскрывающийся список похож на текстовое поле за тем исключением, что в его правой части располагается кнопка со стрелкой, направленной вниз (рис. 8.14).

Рис. 8.14. Раскрывающийся список (вверху закрытый, внизу открытый)

После нажатия стрелки появится список элементов для выбора. Если их много, предусмотрена полоса прокрутки. Когда вы найдете необходимый пункт, щелкните на нем кнопкой мыши, после чего список закроется, а в строке рядом с кнопкой появится выбранный элемент. Можно вводить элементы самостоятельно с клавиатуры. Для этого щелкните кнопкой мыши на текстовом поле списка и наберите то, что требуется.

Обычный список отличается от раскрывающегося только тем, что он всегда находится в развернутом состоянии (рис. 8.15).


Для его просмотра не нужно нажимать кнопку. Как и раскрывающийся, обычный список может иметь полосу прокрутки, причем не только вертикальную, но и горизонтальную. Кроме того, в нем позволяется выделять сразу несколько элементов. Если разработчик программы предоставил такую возможность, то об этом обычно сообщается в надписи к списку. Несколько элементов выбирается тем же способом, что и один, – просто щелкните кнопкой мыши на нужных элементах, и они выделятся. Чтобы снять выделение, щелкните на них кнопкой мыши еще раз

Для того чтобы создать новый файл или папку в любой другой папке на диске вашего компьютера, необходимо проделать следующую последовательность действий:

  • перейдите в папку, в которой вы желаете создать новую папку или файл. Это может быть и корневой раздел вашего диска;
  • щелкните правой кнопкой мыши в любой свободной от значков точке открытой вами папки в основном рабочем окне Проводника;
  • в появившемся меню выберите пункт Создать (New) и в нем укажите тип файлового объекта, который хотите создать.
Илон Маск рекомендует:  bdi в HTML

По умолчанию Windows предлагает создать следующие типы файловых объектов:

  • Папка (Folder)- новая папка;
  • Ярлык (Shortcut)- новый ярлык;
  • Портфель (Briefcase)- портфель;
  • Рисунок (Bitmap Image)- графический файл;
  • Текстовый документ (Text Document)- текстовый документ в формате Pain Text;
  • Звук WAV (Wave Sound)- звуковой файл;
  • Сжатая ZIP-папка (Compressed ZIP folder)- папка, сжатая при помощи встроенного в Windows XP архиватора WinZIP.

Если в вашей системе установлены дополнительные приложения и программные комплексы, например Microsoft Office или какие-либо графические редакторы, данное меню может содержать также иные пункты, такие как векторный рисунок, документ Word или лист Microsoft Excel.

После того как новый объект создан, вам понадобится ввести с клавиатуры его имя. Имя может быть задано как латинским шрифтом, так и кириллицей.

Не нашли то, что искали? Воспользуйтесь поиском:

OpenDialog — диалоговое окно выбора имени файла

Диалоговые окна выбора имени файла используются в процессах открытия и сохранения файла. Часто эти диалоги называют также диалогами открытия/сохранения файла, хотя на самом деле они позволяют только выбрать имя файла, а все действия по открытию или сохранению файла программируются вручную.

Компонент OpenDialog реализует диалог открытия файла. При запуске этого диалога появляется окно (см. скриншот), в котором можно выбрать имя открываемого файла. В случае успешного закрытия диалогового окна (нажатием кнопки Open) в качестве результата возвращается выбранное имя файла.

Основные свойства компонентов OpenDialog и SaveDialog

Далее перечислены основные свойства компонентов OpenDialog и SaveDialog.

FileName типа String — указывает имя и полный путь файла, выбранного в диалоге. Имя файла отображается в строке редактирования списка Имя файла и является результатом диалога.

Title типа String— задает заголовок окна. Если свойство Title не установлено, то по умолчанию используется заголовок Open для OpenDialog и заголовок Save — для SaveDialog.

InitiaLDir типа String— определяет каталог, содержимое которого отображается при вызове диалогового окна. Если каталог не задан, то отображается содержимое текущего каталога.

DefaultExt типа String — задает расширение, автоматически используемое в имени файла, если пользователь не указал расширение.

Filter типа String— задает маски имен файлов, отображаемых в раскрывающемся списке Тип файлов. В диалоговом окне видны имена файлов, совпадающие с указанной маской (см. скриншот) это файл с расширением jpeg). По умолчанию значением Filter является пустая строка, что соответствует отображению имен файлов всех типов.

FilterIndex типа Integer — указывает, какая из масок фильтра отображается в списке. По умолчанию свойство FilterIndex имеет значение 1 (используется первая маска).

Options

Options типа TOpenOptions — применяется для настройки параметров, управляющих внешним видом и функциональными возможностями диалога. Каждый параметр (флажок) может быть установлен или снят. Свойство Options имеет около двух десятков параметров, наиболее важные перечислены ниже:


Основные параметры свойства Options

  • ofAllowMultiSelect (из списка можно выбрать одновременно более одного файла);
  • ofCreatePrompt (при вводе несуществующего имени файла выдается запрос на создание файла);
  • ofNoLongNames (имена файлов отображаются как короткие, не более 8 символов для имени и 3 символов для расширения);
  • ofOldStyleDialog (создает диалоговое окно в стиле Windows 3.11).

Фильтр представляет собой последовательность значений, разделенных знаком |. Каждое значение состоит из описания и маски, также разделенных знаком |. Описание представляет собой обычный текст, поясняющий пользователю данную маску. Маска является шаблоном отображаемых файлов и состоит из имени и расширения. Если для одного описания приводится несколько масок, то они разделяются знаком ;.

Здесь фильтр формируется с двумя масками — маской для текстовых файлов и маской для всех файлов (под текстовыми понимаются файлы типов doc и txt).

Так как в раскрывающемся списке диалогового окна отображается только описание фильтра, то для удобства целесообразно включить в описание и маску, например, так:

Фильтр обычно формируется при проектировании приложения. Для этого из окна Инспектора объектов щелчком в области значения свойства Filter вызывается Редактор фильтра (Filter Editor).

Рабочее поле окна Редактора фильтра представляет собой таблицу, состоящую из двух столбцов с заголовками Filter Name и Filter. Значения фильтра вводятся построчно, при этом в левом столбце указывается описание фильтра, а в правом — соответствующая маска (скриншот уже был выше).

Стандартные диалоговые окна выбора имени файла для открытия или сохранения файла вызываются на экран методом Execute. Эта функция в качестве результата возвращает логическое значение, позволяющее определить, как закрыт диалог. Если пользователь в процессе диалога нажал кнопку Open или Save, то диалог считается принятым, и функция Execute возвращает значение True. Если диалог был закрыт любым другим способом, то он считается не принятым, и функция возвращает значение False.

При нажатии кнопки Button2 появляется диалоговое окно OpenDialog1 выбора имени файла для открытия. При выборе имени текстового файла его содержимое загружается в компонент Memo1. Напомним, что многострочный редактор Memo позволяет работать с текстами в коде ANSI. При отмене диалога OpenDialog1 открытие файла не происходит.

Компоненты OpenPictureDialog и SavePictureDialog вызывают стандартные диалоги открытия и сохранения графических файлов. Эти стандартные диалоги отличаются от OpenDialog и SaveDialog видом окон (см. скриншот) и установленными значениями свойства Filter.

Так, по умолчанию свойство Filter установлено для отображения графических файлов следующих форматов:

При использовании диалогов OpenPictureDialog и SavePictureDialog, а также OpenDialog и SaveDialog значение свойства Filter можно установить ранее рассмотренными способами, а также с помощью функции GraphicFilter (GraphicClass: TGraphicCiass) : String.

Илон Маск рекомендует:  Что такое код biosmemory

Параметр GraphicClass принадлежит к одному из графических классов: TBitmap, TGraphic (и его потомки), TIcon, TMetafile или TJPEGimage. Для работы с классом TJPEGimage нужно подключить модуль jpeg. В качестве результата функция GraphicFilter () возвращает строку с фильтрами для указанного графического класса:

TBitmap — Bitmaps (*.bmp) |*.bmp;

TIcon—Icons (* . ico) I * . ico;

TMetafile — All (*.emf;*.wmf) |*.emf;*.wmf|Enhanced Metafiles(*.emf)| *.emf|Metafiles(*.wmf) |*.wmf;

TJPEGimage — All (*.jpeg;*.jpg) | *.jpeg;*.jpg| JPEG Image File (*.jpeg) |*.jpeg| JPEG Image File (*.jpg)| *.jpg;

TGraphic — All (*.jpeg;*.jpg;*.bmp;*.ico;*.emf;*.wmf) | *.jpeg;*.jpg; *.bmp;*.ico;*.emf; *.wmf|JPEG Image File (*.jpeg) | *.jpeg| JPEG Image File (*.jpg) |*.jpgI Bitmaps (*.bmp) | *.bmp| Icons(*.ico) |*.ico | Enhanced Metafiles(*.emf)|*.emf|Metafiles(*.wmf)I*.wmf.


Если модуль jpeg в разделе uses не указан, то фильтры, соответствующие формату JPEG, будут отсутствовать.

Например, фильтр, заданный как OpenDialog1.Filter := GraphicFilter(TGraphic); позволяет отображать имена графических файлов допустимых форматов.

Как открыть системный диалог «выбор папки»

Поиск на форуме
Расширенный поиск
Найти все хорошие сообщения
К странице.

Как вызвать этот диалог?
в Win7 он выглядит так:

Вызывают диалог типа:

Как вызвать системный диалог сохранения и открытия файлов — понятно. а вот выбор папки — ну никак не соображу как.

Кто знает, поделитесь. Мне просто интересно каким образом это делается.

C#: FolderBrowserDialog — окно выбора директории (папки)

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

Сразу оговорюсь, что если Вас интересует окно для выбора файла, то Вам нужно смотреть данную заметку.
По сути окно для выбора директории — это обычая форма, которую Вы создаете в привычном конструкторе WinForm приложения в Visual Studio. Если у Вас есть время и желание, Вы можете без труда создать собственную форму, со своими украшениями и фишками. Однако на практике, обычно, программисты прибегают к помощи стандартного класса FolderBrowserDialog. Создадим пустое приложение WinForms, кликнем два раза по нашей форме и в созданном событии загрузки формы, пропишем следующий код:

Пишем компонент окно выбора папки

В создаваемых приложениях Windows пользователям часто приходится выбирать папку, обычно для сохранения набора файлов. С помощью компонента Windows Forms FolderBrowserDialog эта задача легко решается.

Выбор папок с помощью компонента FolderBrowserDialog

В процедуре проверьте свойство компонента FolderBrowserDialog, чтобы узнать, как было закрыто диалоговое окно и получить значение свойства компонента FolderBrowserDialog.

Если необходимо задать папку самого верхнего уровня, которая будет отображаться в дереве этого диалогового окна, задайте свойство , которое выбирает член перечисления SpecialFolder.

Кроме того, можно задать свойство , которое указывает строку текста, появляющуюся вверху дерева обозревателя папок.

В приведенном ниже примере компонент FolderBrowserDialog используется для выбора папки в случае, подобном тому, когда при создании проекта в Visual Studio пользователя просят выбрать папку для сохранения в ней проекта. В данном примере имя папки затем отображается в элементе управления TextBox этой формы. Прекрасное решение — поместить расположение в область, доступную для изменения, например элемент управления TextBox, чтобы пользователь имел возможность изменить свой выбор в случае ошибки или других проблем. В этом примере предполагается форма с компонентом FolderBrowserDialog и элементом управления TextBox.

Как вызвать диалог выбора папки?

OpenFileDialog открывает только файлы а как выбрать папку?

Для WPF ничего не могу найти.

1 ответ 1

Используйте FolderBrowserDialog класс.


Всё ещё ищете ответ? Посмотрите другие вопросы с метками c# wpf или задайте свой вопрос.

Связанные

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.11.12.35408

Диалог выбора каталога

Если во время разработки программы, Вы столкнулись с проблемой выбора каталога – этот материал то, что Вам нужно.

Среди многочисленных модулей, разработанных для Delphi, есть модуль FileCtrl. Именно в нем хранится интересующая нас функция – SelectDirectory. Функция имеет два варианта исполнения, но нас интересует только один. Его нам будет достаточно, чтобы удовлетворить наши потребности.

Параметры функции SelectDirectory:

  1. Caption– заголовок окна
  2. Root– корневой каталог
  3. Directory– выходной параметр в котором будет сохранен полный путь к выбранному каталогу. Сама же функция возвращает булево значение – удачно ли все прошло.

Окно выбора папки.

Диалоговое окно, вызываемое в результате выполнения функции SelectDirectory, выглядит следующим образом.

Пример использования SelectDirectory.

Давайте попробуем вызвать такое же окно как на рисунке выше. Делать это традиционно будем по клику на кнопке.

Как видно из примера мы передали заголовок ‘Выбор папки’, корневой каталог ‘C:\’, результат работы будет сохранен в переменной s. Для того, чтобы посмотреть на содержимое переменной s– выведем её.

Вот в принципе все знания, необходимые для вызова диалогового окна выбора папки в Delphi.

Окно выбора директорий с checkbox

Можно ли как-то реализовать диалог выбора папок с checkbox’ами возле каждой папки, чтобы можно было за один вызов диалога отметить все необходимые пути и разом их добавить в список для поиска?


Но сам он искать его на всемирной помойке не хочет.

это занимает огромное количество времен

а перечисленные выше диалоги отображают древо, построенное самой ОС.

то есть ОС строит этот диалог как-то по другому?

*овнокод занимает огромное количество времени

то прошу поделится этим способом.

Оценку своим навыкам программирования я могу дать и сам

не перебирая поиском все каталоги и для них создавая Items и их Child

Чтобы в TreeView или ListView отобразить всё древо папок от корня надо при старте программы процедурно создавать все их Items

как explorer.exe строит дерево каталогов

а потом проверяет его актуальность

По запросам на множественный выбор папок выдаются ответы по процедурному заполнению TreeView

OpenDialog

Компонент delphi OpenDialog не визуальный компонент предназначенный для поддержки операции открытия файлов способный работать с любыми типами файлов. При обращении к этому компоненту вызывается стандартное диалоговое окно открытия файла.

Илон Маск рекомендует:  Что такое код dosexterr

Типы искомых файлов задаются в свойстве Filter. В процессе проектирования это свойство проще всего задать с помощью редактора фильтров, который вызывается при нажатии кнопки с многоточием возле этого свойства в инспекторе объектов. При этом открывается окно редактора вид, которого представлен на рисунке 1. В его левой панели Filter Name вы записываете тот текст, который увидит пользователь в выпадающем списке «тип файла» диалога. А в правой панели Filter записывается разделенные точками с запятой шаблоны фильтра.

Для записи этого программным путем просто вписываем в нашу программу код представленный ниже.

Если понадобится программным образом описать несколько строк фильтра, то отделяйте строку от строки все тем же разделителем – вертикальной чертой(|)

Свойство FilterIndex позволяет использовать по умолчанию один из фильтров, если в вашей программе их несколько.

Для определения имени папки, открываемой в момент первого запуска диалога, воспользуйтесь свойством InitialDir при повторном открытии выбор каталога зависит от флага ofNoChangeDir в свойстве Options диалогового окна. Все флаги этого свойства можно увидеть в таблице ниже.

ofReadOnly Открывает окно в режиме «только для чтения»
ofHideReadOnly Скрывает флажок ReadOnly
ofOverwritePrompt Играет роль в диалогах записи файлов, запрашивает разрешение на перезапись при совпадении имени.
ofNoChangeDir Если флаг установлен, то при повторных запусках диалога он открывает папку определенную в свойстве InitialDir. Иначе будет открыт каталог с которым велась работа в последний раз.
ofShowHelp Дополняет диалог кнопкой помощи.
ofNoValidate Отключает контроль ввода недопустимого символа в имя файла
OfAllowMultiSelect Допускает одновременный выбор нескольких файлов
ofExtensionDifferent Наличие флага обычно контролируется программистом во время выполнения приложения. Он автоматически устанавливается приложениям в случае, когда расширение выбранного файла отличается от заданного в свойстве DefaultExt
ofPathMustExist Вызывает сообщение об ошибке, если пользователь указал неверный путь к файлу.
ofFileMustExist Вызывает сообщение об ошибке, если пользователь указал имя не существующего файла
ofCreatePrompt Запросит подтверждения на создание несуществующего файла.
ofShareAwere Разрешает совместный доступ к одному и тому же файлу
ofNoReadOnlyReturn Инициализирует сообщение об ошибке при попытке обратиться к файлу с атрибутом «только для чтения».
ofNoTestFileCreate Опция применяется при работе с разделяемым сетевым ресурсом в котором пользователь обладает правом создания новых файлов, но не может модифицировать существующие.
ofNoNetworkButton Скрывает кнопку доступа к сетевым ресурсам.
ofNoLongNames Показывает файлы с форматом имени.
ofOldStyleDialog Флаг обратной совместимости, создает диалоговое окно старого стиля.
ofNoDereferenceLinks Определяет порядок взаимодействия с ярлыками файлов.
ofEnableIncludeNotify Работает с Windows2000 и более поздними версиями.
ofEnableSizing Разрешает изменять размеры диалогового окна

Небольшой пример для вызова диалога открытия

Полезный Велосипед – Выбрать каталог на WPF без WinForms

Думаю, что многие не любят «велосипеды» и «костыли», хотя используют частенько. Но иногда без «велосипедов» никуда. Вот один из подобных случаев, когда для выбора каталога, почему-то нужно использовать Windows.Forms, ввиду отсутствия стандартного контрола в WPF.

Но начну сначала. Понадобилось мне использовать диалоговое окно «Выбрать каталог» в своем приложении, которое было написано на WPF. Возможно для многих это давно не новость, но я с удивлением узнал, что стандартного диалога для выбора каталога на WPF — просто нет.

На stackoverflow.com на подобный вопрос посоветовали использовать OpenFileDialog и FolderBrowserDialog из System.Windows.Forms, Microsoft.Win32.OpenFileDialog.

Под катом, «велосипед» позволяющий выбрать каталог на WPF без использования WinForms, пример в картинках, а также ответ чем данный «велосипед» полезен.

Мне не хотелось смешивать Windows.Forms и WPF. Возникает разное отображение контролов. В самом приложении на WPF один (Ваш красивый оригинальный) стиль, а в Диалоговом окне – другой (стандартный и унылый). Об этом написано тут. Скажу честно, сам проверять не стал, поверил статье и своей логике.

Если Вы, как и я используете WPF то, скорее всего, хотите сделать приложение с хорошим дизайном. А иное оформление диалогового окна, при выборе папки может нарушить единство стиля.

Поэтому написал свой «велосипед» для выбора каталога на WPF. Скачать можно здесь. Не скажу что способ идеальный, если он существует, был бы рад услышать в комментариях. Главное в моем способе: работает и позволяет применить единый стиль для всего приложения.

Программа в примере (без стилей, ничего лишнего), выбирает файлы формата mp3 из выбранного каталога и выводит их в ListBox.

Выбираем каталог – Указываем локальный диск, затем требуемый каталог:

После выбора каталога, тут я выделил красным выбранный каталог:

Запускаем обработку – Показать mp3 файлы:

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL