Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.03;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
8-8548
J.
2003-07-01 21:30
2003.11.03
1.Desktop 2.Image


1-8343
Talla2k
2003-10-22 21:42
2003.11.03
поиск компонента


1-8389
DolginD
2003-10-21 16:09
2003.11.03
Как грамотно организовать много потоков


7-8678
Эл
2003-08-24 19:40
2003.11.03
Получение информации о системе


1-8451
Islander
2003-10-24 17:56
2003.11.03
Как из Dword a получить два Word a