Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
ВнизSelectDirectory with Create Найти похожие ветки
← →
Романов Р.В. (2003-10-22 10:30) [0]Как в функции
function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Longint): Boolean; overload;
добавить кнопку "Создать"?
← →
Юрий Федоров (2003-10-22 10:46) [1]А sdAllowCreate в Options не подходит ?
← →
ZEE (2003-10-22 10:50) [2]Из F1:
SelectDirectory function
function SelectDirectory(const Caption: string; const Root: WideString; out Directory: string): Boolean; overload;
function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Longint): Boolean; overload;
---
TSelectDirOpt, TSelectDirOpts type
type
TSelectDirOpt = ( sdAllowCreate, sdPerformCreate, sdPrompt);
TSelectDirOpts = set of TSelectDirOpt;
← →
Романов Р.В. (2003-10-22 10:52) [3]У второго диалога внешний вид не презентабельный. Хотелось в первой кнопку активизировать
← →
clickmaker (2003-10-22 11:10) [4]SHBrowseForFolder, BIF_NEWDIALOGSTYLE
← →
Романов Р.В. (2003-10-22 11:41) [5]Спасибо.
А чему равна константа BIF_NEWDIALOGSTYLE? А то у меня она нигде не объявлена.
← →
clickmaker (2003-10-22 11:54) [6]$0040
← →
Романов Р.В. (2003-10-22 12:01) [7]Спасибо!!!
← →
Романов Р.В. (2003-10-22 15:17) [8]Еще вопросик. Теперь кнопка Ок горит постоянно, даже если выбран Мой компьютер (чего раньше не наблюдалось). Это можно победить только обработкой в callback процедуре?
← →
clickmaker (2003-10-22 16:11) [9]BIF_RETURNONLYFSDIRS
← →
Романов Р.В. (2003-10-23 06:23) [10]BIF_RETURNONLYFSDIRS работало пока я не включил BIF_NEWDIALOGSTYLE
:(
Пытаюсь сделать отключение кнопки при изменении выбранной папки
function BrCbProc(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer stdcall;
const
_left = 60;
_top = 150;
var
R: TRect;
// Buffer: array [0..MAX_PATH] of Char;
Buffer: PChar;
ShellMalloc: IMalloc;
Directory: string;
begin
Result := 0;
if uMsg = BFFM_INITIALIZED then
begin
GetWindowRect(Wnd, R);
SetWindowPos(Wnd, 0, _left, _top, R.Right - R.Left, R.Bottom - R.Top,
SWP_NOZORDER + SWP_NOACTIVATE);
end;
if (uMsg = BFFM_INITIALIZED) and (lpData <> 0) then
SendMessage(Wnd, BFFM_SETSELECTION, Integer(True), lpdata);
{ if uMsg = BFFM_SELCHANGED then
if (ShGetMalloc(ShellMalloc) = S_OK) and (ShellMalloc <> nil) then
begin
Buffer := ShellMalloc.Alloc(MAX_PATH);
begin
// ShGetPathFromIDList(PItemIDList(lpData), Buffer);
// ShellMalloc.Free(PItemIDList(lpData));
// Directory := Buffer;
// if Directory = "" then
ShGetPathFromIDList(PItemIDList(lpData), Buffer); В этой строке возникает AV :((((
SendMessage(Wnd, BFFM_ENABLEOK, 0, 0);
end;
ShellMalloc.Free(Buffer);
end; }
end;
Где грабли???
← →
Романов Р.В. (2003-10-23 11:37) [11]up
← →
clickmaker (2003-10-23 11:58) [12]function BrCbProc(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer; stdcall;
var Path: array[0..MAX_PATH] of char;
begin
Result := 0;
if uMsg = BFFM_SELCHANGED then begin
if (lParam <> 0) then begin
if SHGetPathFromIDList(PItemIDlist(lParam), Path) and DirectoryExists(Path) then
Windows.SendMessage(Wnd, BFFM_ENABLEOK, 0, 1)
else
Windows.SendMessage(Wnd, BFFM_ENABLEOK, 0, 0);
end else
Windows.SendMessage(Wnd, BFFM_ENABLEOK, 0, 0);
end;
end;
← →
Романов Р.В. (2003-10-23 12:29) [13]Спасибо еще раз
← →
Aleksey V.P. (2003-10-23 13:16) [14]Зацени ShlObj.pas в:
Delphi7\Source\Rtl\Win
← →
Романов Р.В. (2003-10-23 13:39) [15]
> Aleksey V.P. (23.10.03 13:16) [14]
> Зацени ShlObj.pas в:
> Delphi7\Source\Rtl\Win
По крайней мере в D6 в этом файле ничего экстраординарного я не обнаружил
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c