Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];

Вниз

Помогите с SaveDialog   Найти похожие ветки 

 
Toha   (2008-03-10 13:03) [0]

Добрый день. Как в SaveDialog выбрать только папку для сохранения?


 
DrPass ©   (2008-03-10 14:15) [1]

Взять вместо SaveDialog функцию SelectDirectory


 
Дмитрий Патрушев ©   (2008-03-11 23:09) [2]

Сделай отдельную форму с Shell-компонентами или DirectoryListBox


 
Loginov Dmitry ©   (2008-03-11 23:40) [3]

Вот один из вариантов диалого выбора папки:


function SelectDirectoryEx(var APath: string; const Title: string = ""; CanCreateDir: Boolean = False): Boolean;

implementation

uses
 ShlObj;

threadvar
 StoreBrowsePath: string;

function SelectDirectoryEx(var APath: string; const Title: string = ""; CanCreateDir: Boolean = False): Boolean;

 function BrowseCallbackProc(hwnd: HWND; uMsg: UINT; lParam: LPARAM; lpData: LPARAM): Integer; stdcall;
 begin
   Result := 0;
   if uMsg = BFFM_INITIALIZED then
     SendMessage(hwnd, BFFM_SETSELECTION, 1, LongInt(PChar(StoreBrowsePath)))
 end;

var
 ItemID: Pointer;
 BrowseInfo: TBrowseInfo;
 DisplayName, Path: array [0..MAX_PATH] of Char;
begin
 Result := False;

 {Запоминаем переданный путь, иначе callback-функция BrowseCallbackProc не сможет
  получить доступ к строке APath}
 StoreBrowsePath := APath;

 ZeroMemory(@BrowseInfo, SizeOf(BrowseInfo));

 BrowseInfo.hwndOwner := GetActiveWindow;
 BrowseInfo.pszDisplayName := @DisplayName;
 BrowseInfo.lpszTitle := PChar(Title);
 BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS or BIF_EDITBOX;
 if CanCreateDir then
   BrowseInfo.ulFlags := BrowseInfo.ulFlags or BIF_NEWDIALOGSTYLE;
 BrowseInfo.lpfn:= @BrowseCallbackProc;

 ItemID:= SHBrowseForFolder(BrowseInfo);
 if ItemID <> nil then
 try
   SHGetPathFromIDList(ItemID, Path);
   if DirectoryExists(Path) then
   begin
     APath := Path;
     Result := True;
   end;
 finally
   GlobalFreePtr(ItemID);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 APath: string;
begin
 APath := Caption;
 if SelectDirectoryEx(APath, "Выберите каталог", True) then
   Caption := APath;
end;



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
9-1168870634
Kav
2007-01-15 17:17
2008.04.06
Glscene скелетная анимация на шейдере


4-1186043421
Dot
2007-08-02 12:30
2008.04.06
управление потоками


15-1203749829
NaRuTo
2008-02-23 09:57
2008.04.06
Protect


2-1205218655
Я
2008-03-11 09:57
2008.04.06
Подскажите компоненты для работы со сканером штрихкодов


3-1194960615
Antoxa2005
2007-11-13 16:30
2008.04.06
Подскажите, а как ограничить доступ к БД FB???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский