Mega Code Archive

 
Categories / Delphi / Forms
 

Windowsun standart browsefolder diyalog penceresinin kullanilmasi

unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ShlObj,ActiveX; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var BI:TBrowseInfo; Buf:PChar; Dir,Root:PItemIDList; Alloc:IMalloc; begin SHGetMalloc(Alloc); Buf:=Alloc.Alloc(Max_Path); // Bu satir aranacak dizinleri sinirlar. SHGetSpecialFolderLocation(Handle,CSIDL_PROGRAMS,Root); with BI do begin hwndOwner:=Form1.Handle; pidlRoot:=Root; // Eger Nil olursa, bütün dizinler // görüntülenir. pszDisplayName:=Buf; lpszTitle:=' Istediginiz dizini seciniz'; ulFlags:=0; lpfn:=nil; end; try Dir:=SHBrowseForFolder(BI); if Dir<>Nil then begin SHGetPathFromIDList(Dir,Buf); // Istenen dizinin tam adi ShowMessage(Buf); Alloc.Free(Dir); end; finally Alloc.Free(Root); Alloc.Free(Buf); end; end; end. Secilebilecek, diger özel Klasör tipleri CSIDL_BITBUCKET Geri dönüsüm kutusu CSIDL_CONTROLS Kontrol panel klasörleri CSIDL_DESKTOP Masaüstü klasörleri CSIDL_DESKTOPDIRECTORY Masaüstü nesnelerini barindiran klasör CSIDL_DRIVES Bilgisayarim klasörü CSIDL_FONTS Font klasörü CSIDL_NETHOOD Ag komsulugu klasörü CSIDL_NETWORK Yukaridakinin bir baska versiyonu CSIDL_PERSONAL Sahsi klasör CSIDL_PRINTERS Yazicilar klasörü CSIDL_PROGRAMS Baslat menüsündeki programlar klasörü CSIDL_RECENT Son kullanilan dökümanlar klasörü CSIDL_SENDTO Gönder (SendTo) klasörü CSIDL_STARTMENU Baslat menüsünün tümü CSIDL_STARTUP Otomatik baslat klasörü CSIDL_TEMPLATES Döküman sablonlari