![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OpenDialog [D7, WinXP]
#Deus © (2002-12-07 16:38:00)1)Как сделать чтобы через OpenDialog можно было выбирать целые директории? А не только файлы?
Спасибо!
Song (2002-12-07 22:19:00) [1]>>Позволяет выбирать несколько файлов, хоть все сразу.
А при чём тут файлы? Автор директории просил..
Можно SelectDirectory() использовать.
Vcoder (2002-12-07 22:03:00) [2]А если
ofAllowMiltiSelect:=True;
Не пойдет?
Позволяет выбирать несколько файлов, хоть все сразу.
#Deus (2002-12-07 17:25:00) [3]Большое спасибо!
neodiX (2002-12-07 17:00:00) [4]а потом так:
procedure TfrMain.btnBrowseClick(Sender: TObject);
var sTitle, sFolder: string;
iFlag : integer;
begin
sTitle:="Choose a " +
rgBrowseFor.Items[rgBrowseFor.ItemIndex];
case rgBrowseFor.ItemIndex of
0: iFlag := BIF_RETURNONLYFSDIRS;
1: iFlag := BIF_BROWSEINCLUDEFILES;
2: iFlag := BIF_BROWSEFORCOMPUTER;
3: iFlag := BIF_BROWSEFORPRINTER;
end;
sFolder := BrowseDialog(sTitle, iFlag);
if sFolder <> "" then
edSelected.text := sFolder
else
edSelected.text := "Nothing selected";
end;
neodiX (2002-12-07 16:56:00) [5]делай так:
uses ShellAPI, ShlObj;
...
function BrowseDialog
(const Title: string; const Flag: integer): string;
var
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
TempPath : array[0..MAX_PATH] of char;
begin
Result:="";
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
with BrowseInfo do begin
hwndOwner := Application.Handle;
pszDisplayName := @DisplayName;
lpszTitle := PChar(Title);
ulFlags := Flag;
end;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then begin
SHGetPathFromIDList(lpItemID, TempPath);
Result := TempPath;
GlobalFreePtr(lpItemID);
end;
end;
PaRL (2002-12-07 16:51:00) [6]Никак. Зачем. Сделай своё окно и используй например DirectoryListBox, DriveComboBox.
Страница Win 3.1