Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

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

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


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

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


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

Никак!


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

Никак!


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

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


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

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


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

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


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

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


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


> почему подобного нет в 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;


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


 
[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 совсем и не нужны.

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


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

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

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


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

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

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

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


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

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

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

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



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

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.04 c
14-1081967346
Ломброзо
2004-04-14 22:29
2004.05.09
techno == virus


1-1082972647
AlexEagle1
2004-04-26 13:44
2004.05.09
Интерфейс в стиле Office2003


1-1082434287
-Maximus-
2004-04-20 08:11
2004.05.09
ScrollBox


4-1079945854
Erik
2004-03-22 11:57
2004.05.09
Открытие родительского процеса.


3-1081587095
ex
2004-04-10 12:51
2004.05.09
Как сделать событие по ячейке двойным кликом?, DevExpress Quantu





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский