Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

TDirectoryListBox - Как показать скрытые директории?   Найти похожие ветки 

 
Bohdan ©   (2004-04-19 12:29) [0]

TDirectoryListBox - Как показать скрытые директории?


 
Amoeba ©   (2004-04-19 12:35) [1]

Никак!


 
[lamer]Barmaglot ©   (2004-04-19 13:23) [2]

Использовать SHBrowseForFolder?


 
Bohdan ©   (2004-04-19 13:24) [3]

Вопрос в следующем. Если в TFileListBox есть свойство TFileType в котором можно выбрать атрибуты показываемых файлов, то почему подобного нет в TDirectoryListBox? Или как все же такого добиться?


 
Amoeba ©   (2004-04-19 13:29) [4]


> почему подобного нет в TDirectoryListBox

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


 
[lamer]Barmaglot ©   (2004-04-19 13:32) [5]

Объясни зачем тебе именно TDirectoryListBox? Пользуйся более качественным, быстрым и удобным в настройке, встроенным в виндовс SHBrowseForFolder...

Код приблизительно такой:


function BrowseCallbackProc(DialogHWND: THandle;NINT: Integer; PARAM1: lParam; PARAM2: lParam): integer; stdcall;
var
 s:    String;
begin
if NInt = BFFM_INITIALIZED then
 begin
 s:="d:\";
 SendMessage(DialogHWND,BFFM_SETSELECTION,1,integer(PChar(s)));
 end;
result:=0;
end;

procedure SelectDirClick(Sender: TObject);
var
TitleName: string;
lpItemID: PItemIDList;
BrowseInfo: TBrowseInfo;
DisplayName: array[0..MAX_PATH] of char;
TempPath: array[0..MAX_PATH] of char;
begin
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner:=Form1.handle;
BrowseInfo.lpfn:=@BrowseCallbackProc;
BrowseInfo.pszDisplayName:=@DisplayName;
TitleName:="Please specify a directory";
BrowseInfo.lpszTitle:=PChar(TitleName);
BrowseInfo.ulFlags:=BIF_RETURNONLYFSDIRS;
lpItemID:=SHBrowseForFolder(BrowseInfo);
if lpItemID<>nil then
  begin
    SHGetPathFromIDList(lpItemID, TempPath);
    Form1.Edit1.Text:=TempPath; //Записываем результат выбора
    GlobalFreePtr(lpItemID);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SelectDirClick(nil);
end;


под свои нужды переделай сам...


 
Bohdan ©   (2004-04-19 15:08) [6]

Спасибо Barmaglot, но это не совсем то что нужно, поскольку надо чтобы обзор и выбор директорий и файлов в них присутствовал постоянно на форме... Тем более что SHBrowseForFolder при вызове, проверяет CD приводы и если они без дисков, выдает предупреждение "Устройство не готово к работе", а мне CD совсем и не нужны.

..Пока попробую написать свой компонент...


 
[lamer]Barmaglot ©   (2004-04-19 15:17) [7]

Тем более что SHBrowseForFolder при вызове, проверяет CD приводы и если они без дисков, выдает предупреждение "Устройство не готово к работе", а мне CD совсем и не нужны.

Установить свой pidlRoot.

А вообще ЛистВиев + руки (recurseSearch)



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.038 c
3-1079332505
Nax
2004-03-15 09:35
2004.04.11
SetRange()


11-1068202747
Sagrer
2003-11-07 13:59
2004.04.11
Можно ли сделать MsgOK модальным?


1-1079713013
Nikk
2004-03-19 19:16
2004.04.11
Программный вызов почтового клиента


9-1063739901
DolginD
2003-09-16 23:18
2004.04.11
игра the Empire


6-1075729628
LordBTR
2004-02-02 16:47
2004.04.11
Структура GROUP_USERS_INFO_0.