Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > TOpenDialog: добавить боковую панель


Автор: Alca 4.3.2008, 15:12
Создаю динамичечки диалог.
Как добавить боковую панель ("мой комп", "мои документы", ...)?
Код

    TOpenDialog *pOpenDialog = new TOpenDialog(this);
    try {
        pOpenDialog->Title       = "xxxx";
        pOpenDialog->InitialDir  = ExcludeTrailingPathDelimiter(ExtractFileDir(Application->ExeName));
        pOpenDialog->Filter      = "Ôàéëû MS Access (*.mdb)|*.mdb|Âñå ôàéëû              (*.*)|*.*";
        pOpenDialog->FilterIndex = 1;
        pOpenDialog->DefaultExt  = ".mdb";
        pOpenDialog->Options.Clear();
        pOpenDialog->Options << ofReadOnly << ofPathMustExist << ofFileMustExist << ofNoDereferenceLinks << ofEnableSizing;
        pOpenDialog->OptionsEx.Clear();
        pOpenDialog->OptionsEx << ofExNoPlacesBar;    //как поставить этот флаг в false?
        if (pOpenDialog->Execute() && !pOpenDialog->FileName.IsEmpty()) {
            //...
        }
    }
    __finally {
        delete pOpenDialog;
        pOpenDialog = NULL;
    }


Автор: volvo877 4.3.2008, 15:36
Цитата(Alca @  4.3.2008,  14:12 Найти цитируемый пост)
// как поставить этот флаг в false?

Не устанавливай его вообще, тогда получишь боковую панель...

Автор: Perun 4.3.2008, 15:51
Код

pOpenDialog->OptionsEx << ofExNoPlacesBar;    //как поставить этот флаг в false?


В другую сторону поставь угловые скобки >>

Код

pOpenDialog->OptionsEx >> ofExNoPlacesBar;    //как поставить этот флаг в false?

Автор: volvo877 4.3.2008, 16:03
Perun, Вот расскажи, на фига удалять что-то из Set-а, если перед этим сделали его очистку? Там что, по мановению волшебной палочки что-то появляется?

Автор: Alca 4.3.2008, 16:16
Ни один из вышеперечисленных советов не дал желаемого результата.

Автор: mrbrooks 4.3.2008, 16:36
Цитата(volvo877 @ 4.3.2008,  16:03)
Perun, Вот расскажи, на фига удалять что-то из Set-а, если перед этим сделали его очистку? Там что, по мановению волшебной палочки что-то появляется?

Но комрад - сий пример есть в хелпе Билдера. 

Автор: volvo877 4.3.2008, 16:41
Цитата(mrbrooks @  4.3.2008,  15:36 Найти цитируемый пост)
сий пример есть в хелпе Билдера.  

И там что, сразу после очистки что-то удаляется из Set-а? (у меня BDS 2007, там с примерами напряженка, так что проверить не могу)?

Автор: mrbrooks 4.3.2008, 16:42
Alca у меня все работает.  
Попробуй выкинуть 
Код

pOpenDialog->OptionsEx.Clear();

я безэтого делал

Автор: volvo877 4.3.2008, 16:42
Цитата(Alca @  4.3.2008,  15:16 Найти цитируемый пост)
Ни один из вышеперечисленных советов не дал желаемого результата. 

Да ты что?

Код

    try {
        pOpenDialog->Title       = "xxxx";
        pOpenDialog->InitialDir  = ExcludeTrailingPathDelimiter(ExtractFileDir(Application->ExeName));
        pOpenDialog->Filter      = "Ôàéëû MS Access (*.mdb)|*.mdb|Âñå ôàéëû              (*.*)|*.*";
        pOpenDialog->FilterIndex = 1;
        pOpenDialog->DefaultExt  = ".mdb";
        pOpenDialog->Options.Clear();
        pOpenDialog->Options << ofReadOnly << ofPathMustExist << ofFileMustExist << ofNoDereferenceLinks << ofEnableSizing;
        pOpenDialog->OptionsEx.Clear();
        // pOpenDialog->OptionsEx << ofExNoPlacesBar;
        if (pOpenDialog->Execute() && !pOpenDialog->FileName.IsEmpty()) {
            //...
            ShowMessage(pOpenDialog->FileName);
        }
    }
...
Скрин показать?

Автор: mrbrooks 4.3.2008, 16:47
Код

pOpenDialog->OptionsEx >> ofExNoPlacesBar;


Вот так у меня работает

Добавлено через 2 минуты и 47 секунд
Цитата(volvo877 @ 4.3.2008,  16:41)
Цитата(mrbrooks @  4.3.2008,  15:36 Найти цитируемый пост)
сий пример есть в хелпе Билдера.  

И там что, сразу после очистки что-то удаляется из Set-а? (у меня BDS 2007, там с примерами напряженка, так что проверить не могу)?

Точно комрад. Так и на писано в хелпе. Правда это описано для свойства Options. Но суть то думается одна.

Добавлено через 6 минут и 30 секунд
А ИМХО я кажется просек о чем ты говоришь  smile  В хелпе сказано что мол либо метод Clear() либо >>. Пардон комрад. Мне надо комменты внимательней читать. 

Автор: Alca 4.3.2008, 17:31
Делаю новый пустой проект, туда вставляю мой код (закомментировал строку):
Код

// pOpenDialog->OptionsEx << ofExNoPlacesBar;

Вау, работает.
Делаю Ctrl+C в рабочий проект (тотже самый код) - не работает!
Фантастика.
Надо прыгать на студию... 
Ребут даже не помог.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)