Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > не работает DlgDirList


Автор: BLACK_KOT 21.7.2010, 12:56
Код

procedure TForm1.ListBox1DblClick(Sender: TObject);

var s:string;

begin

s:=listbox1.Items[SendMessage(ListBox1.Handle,lb_GetCurSel,0,0)];

if edit1.Text[length(edit1.text)]<>'\' then edit1.text:=concat(edit1.text+'\');

if (not FileExists(edit1.text+s)) and (s[1]='[')and(s[length(s)]=']') then

DlgDirList( handle,

PChar(edit1.text+copy(s,2,length(s)-2)),

ListBox1.Handle,

Edit1.Handle,

faAnyFile

);

if edit1.Text[length(edit1.text)]<>'\' then edit1.text:=concat(edit1.text+'\');

if FileExists(edit1.text+s) then

begin

caption:=edit1.text+s;

ShellExecute(handle,'open',PChar(edit1.text+s),'','c:\',sw_show);

end

end;

 

procedure TForm1.FormShow(Sender: TObject);

begin

edit1.Width:=1024*8-1;

edit1.Visible:=false;

DlgDirList(handle,

PChar('c:\'),

ListBox1.Handle,

Edit1.Handle,

faAnyFile

);

listbox1.Sorted:=false;

listbox1.Sorted:=true;

end;


это пример из Delphi Russian Knowledge Base

но у меня он почему то не работает. не могли бы вы выложить пример рабочей программы, где используется DlgDirList

Автор: Snowy 21.7.2010, 14:23
А в чём выражается "не работает"?
Какие-то ошибки, или ещё что?
Навскидку - не будет работать в 2010-й дельфе.
До 2010 будет работать во всех. 
Хотя за Windows 7 не ручаюсь... Не юзал, не знаю...

Автор: BLACK_KOT 21.7.2010, 20:57
ну то есть в прямом смысле не выводит мне в листбокс содержимое диска С:\ . уж по всякому колдовал, в итоге нашёл альтарнативу. но всё таки интересно. у меня делфи 7. не могли бы вы выложить исходник с примером?

Автор: Snowy 22.7.2010, 11:02
Замени faAnyFile на faDirectory

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)