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

Вниз

DlgDirList   Найти похожие ветки 

 
alexa   (2005-09-08 22:39) [0]

Не получается верно задать путь к директории, при использовании этой функции ( Описание:
function DlgDirList(Dlg: HWnd; PathSpec: PChar; IDListBox, IDStaticPath: Integer; FileType: Word): Integer;

Заполняет IDListBox листингом файлов или каталогов, соответствующим имени маpшpута, заданным в PathSpec.

    Паpаметpы:
Dlg: Блок диалога, содеpжащий IDListBox.

PathSpec: Стpока имени маpшpута (заканчивающаяся пустым символом).

IDListBox: Идентификатоp оpгана упpавления блока списка.

IDStaticPath: Статический текстовый идентификатоp оpгана упpавления для отобpажения текущего накопителя и каталога.

    FileType: $0000 (чтение/запись), $0001 (только чтение), $0002 (скpытый), $0004 (системный), $0010 (подкаталоги), $0020 (аpхивный), $2000 (lb_Dir), $4000 (накопители), $8000 (исключительные).

    Возвpащаемое значение:
Не нуль, если листинг получен; нуль - в случае невеpного маpшpута поиска.)

Uses shellapi
begin
DlgDirList(handle,pchar("c:/*"),listBox1.Handle,0, DDL_DIRECTORY or DDL_ARCHIVE);
End;
Такой вариант не работает
___________________________________________________________________________

Uses shellapi;
Var p:^pchar;
Begin
getmem(p,300);
p^:="c:/*";
DlgDirList(handle, p^,listBox1.Handle,0, DDL_DIRECTORY or DDL_ARCHIVE);
End;
Такой тоже
___________________________________________________________________________
Uses shellapi
begin
DlgDirList(handle,0,listBox1.Handle,0, DDL_DIRECTORY or DDL_ARCHIVE);
End;
А здесь
Показывает текущий диалог
___________________________________________________________________________

Вот так тоже работает, но с использованием sendmessage.
var
 Mask: string;
 c:integer;
begin
 Mask := "c:\*";
 SendMessage(ListBox1.Handle, LB_DIR, DDL_ARCHIVE or
   DDL_DIRECTORY or DDL_DRIVES or DDL_HIDDEN or DDL_READONLY or
   DDL_READWRITE or DDL_SYSTEM, Integer(@Mask[1]));
end;
_________________________________________________________________

Скажите, пожалуйста,как правильно задать путь.
Заранее спапсибо.


 
alexa   (2005-09-09 20:48) [1]

Что никто не знает?


 
begin...end ©   (2005-09-09 21:29) [2]


> alexa   (08.09.05 22:39)
> Скажите, пожалуйста,как правильно задать путь.

Путь задать так: "C:\" или так: "C:\*".

Я чего понять не могу: почему в DlgDirList на место ресурсных идентификаторов подставляются хэндлы контролов?


 
MBo ©   (2005-09-09 21:38) [3]

procedure TForm1.Button1Click(Sender: TObject);
var
 Pth:array[0..MAX_PATH] of Char;
begin
 Pth:="C:\*.*";
 DlgDirList(Handle,Pth,ListBox1.Handle,0,DDL_DIRECTORY or DDL_ARCHIVE);
end;


 
MBo ©   (2005-09-09 21:42) [4]

P.S.
Первый вариант не работает из-за использования константной строки там, где нужна позволяюшая модификацию, а второй, возможно - из-за извращений с памятью


 
begin...end ©   (2005-09-09 21:50) [5]

Сорри, фигню сморозил в [2].


 
alexa   (2005-09-09 22:00) [6]

Спасибо, я второй вариант пробовал, но вместо Char написал PChar случайно.
 Все правильно, там должна выделяться память под путь к файлу, поэтому обычная строка не работает.



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

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

Наверх





Память: 0.46 MB
Время: 0.039 c
2-1129569313
Bogdan1024
2005-10-17 21:15
2005.11.13
типо createprocess


14-1130122794
-[ HAWK ]-
2005-10-24 06:59
2005.11.13
Исходник теста


3-1128080674
SERGEY-ZZZ
2005-09-30 15:44
2005.11.13
Базы данных через интернет


14-1129973372
xroot
2005-10-22 13:29
2005.11.13
Волшебная палочка аля photoshop


14-1129899414
ilya39
2005-10-21 16:56
2005.11.13
сайт по ASP.NET





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский