Форум: "Основная";
Текущий архив: 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