Показать сообщение отдельно

  #6104  
Старый 11.04.2010, 23:04
JnK
Участник форума
Регистрация: 30.03.2007
Сообщений: 121
С нами: 10060964

Репутация: 52
По умолчанию

Цитата:
Сообщение от SkyLine32  
Потому что папка создаётся сразу, юзеру же нет возможности при создании директории видеть эту папку и переименовать. Тоесть эффект должен быть такой: юзер жмет Создать папку, она должна в этом окне что на скрине появится и предложить её переименовать. Ну я думаю ты меня понял...
PHP код:
function BrowseCallbackProc(hwndHWNDuMsgUINTlParamLPARAMlpData:
  
LPARAM): Integerstdcall;
begin
  
if (uMsg BFFM_INITIALIZEDthen
    SendMessage
(hwndBFFM_SETSELECTION1lpData);
  
BrowseCallbackProc := 0;
end;

function 
GetFolderDialog(HandleIntegerCaptionstring; var strFolder:
  
string): Boolean;
const
  
BIF_STATUSTEXT = $0004;
  
BIF_NEWDIALOGSTYLE = $0040;
  
BIF_RETURNONLYFSDIRS = $0080;
  
BIF_SHAREABLE = $0100;
  
BIF_USENEWUI BIF_EDITBOX or BIF_NEWDIALOGSTYLE;
 
var
  
BrowseInfoTBrowseInfo;
  
ItemIDListPItemIDList;
  
JtemIDListPItemIDList;
  
PathPAnsiChar;
begin
  Result 
:= False;
  
Path := StrAlloc(MAX_PATH);
  
SHGetSpecialFolderLocation(HandleCSIDL_DRIVESJtemIDList);
  
with BrowseInfo do
  
begin
    hwndOwner 
:= GetActiveWindow;
    
pidlRoot := JtemIDList;
    
SHGetSpecialFolderLocation(hwndOwnerCSIDL_DRIVESJtemIDList);
 
    { return 
display name of item selected }
    
pszDisplayName := StrAlloc(MAX_PATH);

    { 
set the title of dialog }
    
lpszTitle := PChar(Caption); //'Select the folder';
    
flags that control the return stuff }
    
ulFlags := BIF_RETURNONLYFSDIRS or BIF_NEWDIALOGSTYLE ;
  
//  ulFlags := ulFlags or BIF_NEWDIALOGSTYLE or BIF_RETURNONLYFSDIRS;
 //ulFlags := ulFlags or BIF_RETURNONLYFSDIRS;
    
lpfn := @BrowseCallbackProc;
    { 
extra info that's passed back in callbacks }
    lParam := LongInt(PChar(strFolder));
  end;

  ItemIDList := SHBrowseForFolder(BrowseInfo);

  if (ItemIDList <> nil) then
    if SHGetPathFromIDList(ItemIDList, Path) then
    begin
      strFolder := Path;
      Result := True
    end;
end; 
PHP код:
  if not GetFolderDialog(GetStdHandle(STD_OUTPUT_HANDLE), 'Выберите каталог'Paththen 
в Path окажется выбор пользователя.


P.s. возможно понадобится uses ShlObj;

Последний раз редактировалось JnK; 11.04.2010 в 23:32..
 
Ответить с цитированием