Главная страница
    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.049 c
4-1126641620
Nick Denry
2005-09-14 00:00
2005.11.13
Требуется создать ListBox


5-1109368172
jonni
2005-02-26 00:49
2005.11.13
Multi Line property


14-1129751460
Prohodil Mimo
2005-10-19 23:51
2005.11.13
Почему так пишут компоненты?


2-1129986766
Andrewmx
2005-10-22 17:12
2005.11.13
Как измерить время выполнения фрагмента кода


2-1130174344
sam07
2005-10-24 21:19
2005.11.13
API функции





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