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

Ваш аккаунт

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

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

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

Диалог открытия ПАПКИ. Где???

415
02 октября 2003 года
SLA
274 / / 08.08.2003
Как воспользоваться СИСТЕМНЫМ диалогом открытия папки?
(В смысле - как его вызвать из моей программы?)

В палитре Билдера его нет. Но такой существует! Вы все его много раз видели. Его можно увидеть, например, в Билдере, в меню
Project / Options / Directories нажимаем любую кнопку [...] и видим окно "Browse for folder".
487
03 октября 2003 года
ddnh_bc
301 / / 16.09.2003
Цитата:
Originally posted by SLA
Как воспользоваться СИСТЕМНЫМ диалогом открытия папки?
(В смысле - как его вызвать из моей программы?)

В палитре Билдера его нет. Но такой существует! Вы все его много раз видели. Его можно увидеть, например, в Билдере, в меню
Project / Options / Directories нажимаем любую кнопку [...] и видим окно "Browse for folder".



Это тебе нужно воспользоваться функцией SelectDirectory из <filectrl.hpp> - она аж в двух вариантах там имеется. Вобщем смотри хелп - там все подробно расписано + экзампл имеется.

293
03 октября 2003 года
SEDEGOFF
586 / / 06.10.2002
Вот тебе пример
[COLOR=darkblue]
//В самом верху
#define NO_WIN32_LEAN_AND_MEAN
#include <shlobj.h>
//********************
//в фунцции
BROWSEINFO dir;
char folder[MAX_PATH];
LPITEMIDLIST item;
memset(&dir,0,sizeof(BROWSEINFO));
dir.hwndOwner = Handle;
dir.pszDisplayName = folder;
dir.lpszTitle = "Выберите путь";
item = SHBrowseForFolder(&dir);
char p[MAX_PATH];
SHGetPathFromIDList(item,p);
if(p[0] != '\0')
Edit4->Text = p;
//******************
[/COLOR]
9.8K
14 марта 2006 года
AlexSob
24 / / 14.02.2006
Подскажите, а если я хочу, чтобы диалог открывался и в нем уже была выбрана некая папка, например
ExtractFileDir(Application->ExeName)
как это сделать..
(и еще как переделать AnsiString в Char*)
Заранее большое спасибо
335
15 марта 2006 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by AlexSob

(и еще как переделать AnsiString в Char*)



мда,

 
Код:
AnsiString a;
    char *b;
    b = a.c_str();
293
15 марта 2006 года
SEDEGOFF
586 / / 06.10.2002
MSDN forever!!!
Вот мой рабочий код - пользуйся! Сохрани в файл CALLBACK.cpp и подключай.
Код:
Цитата:
#define NO_WIN32_LEAN_AND_MEAN
#include <shlobj.h>
#include <windows.h>
#include <system.hpp>
#include <sysUtils.hpp>
static AnsiString CurrentDir__;

int __stdcall CallBack (HWND Wnd, UINT uMsg,LPARAM lParam,LPARAM lpData)
{
  AnsiString Temp;

  if (uMsg == BFFM_INITIALIZED)
  {

     if (CurrentDir__ == "")
        Temp = GetCurrentDir();
      else
        Temp = ExcludeTrailingBackslash (CurrentDir__);
    SendMessage (Wnd,BFFM_SETSELECTION,true,(int )Temp.c_str());


  }
  return 0;
}
//***************************
AnsiString __fastcall ChoisDir(HWND Handle, AnsiString Title, String Dir = "")
{
CurrentDir__ = Dir;
AnsiString return_;
BROWSEINFO dir;
char folder[MAX_PATH];
LPITEMIDLIST item;
memset(&dir,0,sizeof(BROWSEINFO));
dir.hwndOwner = Handle;
dir.pszDisplayName = folder;
dir.lpfn =  CallBack;
dir.lpszTitle = Title.c_str();
item = SHBrowseForFolder(&dir);
char p[MAX_PATH];
SHGetPathFromIDList(item,p);
if(p[0] != '\0')
{
return_ = p;
}
else
return_ = Dir;
return return_;
};
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог