Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Delphi: SelectDirectory() доп. фнкц. в виде создать катало

Автор: Delphi6
Дата сообщения: 28.07.2006 23:26
Всем доброе время суток,

Как можно заставить что бы у SelectDirectory() были следующие фишки:

1) Кнопки создать и удалить каталог
2) При открытии автоматом переходил на нужный каталог (который я укажу), как показано на ScreenShort-е



Заранее всем благодарен

п.с. Пытался воспользоваться другим вариантом этой же функции но без результата, в инете уже целый день ищу но тоже без результатов.
Автор: stusivanv
Дата сообщения: 29.07.2006 00:38
SHBrowseForFolder
Автор: ShIvADeSt
Дата сообщения: 29.07.2006 12:48
Delphi6

Цитата:
Всем доброе время суток,

Как можно заставить что бы у SelectDirectory() были следующие фишки:

смотри тут, делается аналогично.
http://forum.ru-board.com/topic.cgi?forum=33&topic=5903#1

Цитата:
2) При открытии автоматом переходил на нужный каталог (который я укажу), как показано на ScreenShort-е

Если не найдешь, в понедельник дам код, делается фонарно, читай про флаги при создании и колбэк функцию, которая будет ставить нужный каталог.
Автор: FireZone
Дата сообщения: 29.07.2006 17:37
Delphi6
Когда-то я делал так [more]
Код: var
d: String;

function BrowseCallbackProc(hwnd: HWND; uMsg: DWORD; lParam: Integer; lpData: Integer): Integer; stdcall;
begin
if uMsg = BFFM_INITIALIZED then begin
SendMessage(hwnd, BFFM_SETSELECTION, -1, Integer(PChar(d)))
end;
result := 0;
end;
//}
function SelectDir(const TitleName: String; var Dir: String): Boolean;
var
lpItemID: PItemIDList;
BrowseInfo: TBrowseInfo;
DisplayName: array[0..MAX_PATH] of char;
TempPath: array[0..MAX_PATH] of char;
begin
d := Dir;
FillChar( BrowseInfo, SizeOf( TBrowseInfo ), #0 );
BrowseInfo.hwndOwner := GetActiveWindow;
BrowseInfo.pszDisplayName := @DisplayName;
BrowseInfo.lpszTitle := PChar( TitleName );
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
BrowseInfo.lpfn := @BrowseCallbackProc;
lpItemID := SHBrowseForFolder( BrowseInfo );
result := lpItemId <> nil;
if result then
begin
SHGetPathFromIDList( lpItemID, TempPath );
Dir := IncludeTrailingPathDelimiter(TempPath);
GlobalFreePtr( lpItemID );
end;
end;
Автор: Delphi6
Дата сообщения: 29.07.2006 18:52
stusivanv
Спасибо интерестная функция

ShIvADeSt
Спасибо, ваш пост помог мне найти хорошое решение:
http://www.swissdelphicenter.ch/torry/showcode.php?id=1509


Добавлено:
FireZone
Спасибо, я часть твоего кода уже заюзал Надеюсь авторские права не нарушил

Страницы: 1

Предыдущая тема: Вопросы по BDS 2006


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.