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 += "\\";
}
}
ищу OpenDialog, но для папок
и только для папок, если делать самому то все имеющиеся стандартные компоненты или морально устарели (DirectoryListBox из Win 3.1) или смотрятся как-то некрасиво (CDirectoryOutline из Samples), а хочется как всегда большого и светлого, например как стандартное окошко открытия папки в самом BCB6(чтоб и рабочий стол в дереве папок был). Возможно, я что-то где-то пропустил и вышеуказанные компоненты можно привести к желаемому виду если настроить хитро, но в настройках как-то ничего подходящего не нашел. А может у кого-нибудь есть готовый компонент или код. Хелп ми, плиз)))
Вот тебе пример моей функции
Цитата:
Originally posted by SEDEGOFF
Я использую Api
Вот тебе пример моей функции
Я использую Api
Вот тебе пример моей функции
по-моему это несколько не в тему, да и я не настолько опытный чтобы откомпилить данный файл и получить что-то на выходе, как вы предлагаете это компилить под bcb? если никак, то данное предложение было офтопик)))
Цитата:
Originally posted by zja
по-моему это несколько не в тему, да и я не настолько опытный чтобы откомпилить данный файл и получить что-то на выходе, как вы предлагаете это компилить под bcb? если никак, то данное предложение было офтопик)))
по-моему это несколько не в тему, да и я не настолько опытный чтобы откомпилить данный файл и получить что-то на выходе, как вы предлагаете это компилить под bcb? если никак, то данное предложение было офтопик)))
В Билдере есть функция SelectDirectory():
AnsiString anSelectedDir;
SelectDirectory("Выберите каталог","",anSelectedDir);
Если юзер нажмет [x] или [Cancel], в anSelectedDir будет пустая строка. А еще обычно не добавляется slash к выбранному пути (добавляется только если выбран корень диска, напр. "C:\", иначе - нет: "C:\Games"). Поэтому я написал такую функцию:
Код:
Добавь ее в Unit1.cpp, а в Unit1.h вверху, около других include напиши:
#include <Filectrl.hpp>
И в секции public в class TForm1:public TForm напиши:
void MySelectDir(AnsiString &anDir);
тогда вызывать свой диалог (при условии что у тебя создана переменная AnsiString MyDir) будешь так:
MySelectDir(MyDir);
String SelDir = ChoisDir(Handle, "Укажите путь к вашим файлам", "c:\\");
пасиба за ответы, буду экспериментировать)))
кстати в стандартных диалогах наверное все заметили глюк с пробелами, это так о птичках
SLA - гуру)))) огромное пасибо, вот простое, быстрое и грамотное решение))))