Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ищу OpenDialog, но для папок

1.3K
25 ноября 2003 года
zja
119 / / 25.11.2003
и только для папок, если делать самому то все имеющиеся стандартные компоненты или морально устарели (DirectoryListBox из Win 3.1) или смотрятся как-то некрасиво (CDirectoryOutline из Samples), а хочется как всегда большого и светлого, например как стандартное окошко открытия папки в самом BCB6(чтоб и рабочий стол в дереве папок был). Возможно, я что-то где-то пропустил и вышеуказанные компоненты можно привести к желаемому виду если настроить хитро, но в настройках как-то ничего подходящего не нашел. А может у кого-нибудь есть готовый компонент или код. Хелп ми, плиз)))
293
25 ноября 2003 года
SEDEGOFF
586 / / 06.10.2002
Я использую Api
Вот тебе пример моей функции
1.3K
25 ноября 2003 года
zja
119 / / 25.11.2003
Цитата:
Originally posted by SEDEGOFF
Я использую Api
Вот тебе пример моей функции


по-моему это несколько не в тему, да и я не настолько опытный чтобы откомпилить данный файл и получить что-то на выходе, как вы предлагаете это компилить под bcb? если никак, то данное предложение было офтопик)))

415
25 ноября 2003 года
SLA
274 / / 08.08.2003
Цитата:
Originally posted by zja

по-моему это несколько не в тему, да и я не настолько опытный чтобы откомпилить данный файл и получить что-то на выходе, как вы предлагаете это компилить под bcb? если никак, то данное предложение было офтопик)))



В Билдере есть функция SelectDirectory():

AnsiString anSelectedDir;
SelectDirectory("Выберите каталог","",anSelectedDir);

Если юзер нажмет [x] или [Cancel], в anSelectedDir будет пустая строка. А еще обычно не добавляется slash к выбранному пути (добавляется только если выбран корень диска, напр. "C:\", иначе - нет: "C:\Games"). Поэтому я написал такую функцию:

Код:
void TForm1::MySelectDir(AnsiString &anDir)
    {
    AnsiString anDirCopy = anDir;
    AnsiString anLastSelection = "-";
    if (anDir != "") anLastSelection = anDir;
    if (SelectDirectory("Select directory:\nLast selected: "+anLastSelection, "", anDirCopy))
        {
        anDir = anDirCopy;
        //А теперь добавим слэш (кстати, иногда он уже присутствует, например "C:\").
        if (anDir[anDir.Length()]!='\\') anDir += "\\";
        }
    }


Добавь ее в Unit1.cpp, а в Unit1.h вверху, около других include напиши:

#include <Filectrl.hpp>

И в секции public в class TForm1:public TForm напиши:

void MySelectDir(AnsiString &anDir);

тогда вызывать свой диалог (при условии что у тебя создана переменная AnsiString MyDir) будешь так:

MySelectDir(MyDir);
293
26 ноября 2003 года
SEDEGOFF
586 / / 06.10.2002
Подключи этот файл к Cpp файлу с реализацией обработчика нажатия кнопки и там вызави функцию
String SelDir = ChoisDir(Handle, "Укажите путь к вашим файлам", "c:\\");
1.3K
26 ноября 2003 года
zja
119 / / 25.11.2003
пасиба за ответы, буду экспериментировать)))
1.3K
26 ноября 2003 года
zja
119 / / 25.11.2003
кстати в стандартных диалогах наверное все заметили глюк с пробелами, это так о птичках
1.3K
26 ноября 2003 года
zja
119 / / 25.11.2003
SLA - гуру)))) огромное пасибо, вот простое, быстрое и грамотное решение))))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог