47 פיט - יפלד
ישאר דומע | םיפיטה דומע רנק ודיע תאמ

תוירפס ינימ לכ תונולח לש ירטסי'גרב אוצמל רשפא הפיא םכל יתרמא ,ילש םינושארה םיפיטה דחאב
.תונולחל רזע
ןתוא תא עצבל תולוכיש SHLOBJ.PAS-ב תואצמנש רזע תודוקפ המכ יתאצמו רצק שופיח יתעצב
.ירטסי'גרל תשגל ילבמ תומישמ

.SHGetPathFromIDList-ו SHGetSpecialFolderLocation :ןה API-ה תויצקנופ יתש

:אוצמל הצרנ התוא הירפסה לע עדימ תלבקמ ,SHGetSpecialFolderLocation תדוקפ
:האבה הרוצב Constant-ב עיפומ הז

CSIDL_BITBUCKET = $000A
!ירטסי'גרב אל אוה ולש םוקימה .רוזחמה לס םוקימ תא ריזחמ

CSIDL_CONTROLS = $0003
.הרקבה חול לש תילאוטריו היירפס

CSIDL_DESKTOP = $0000
.(םלוכ לש אבאה הארנ אוה דימת תוירפס תמישרב) ילאוטריוה הדובעה ןחלוש

CSIDL_DESKTOPDIRECTORY = $0010
.יתימאה הדובעה ןחלוש

CSIDL_DRIVES = $0011
.תוספדמו תרושקת תורדגה ,הרקבה חול ,םיננוכה תא הליכמש תילאוטריו היירפס - "ילש בשחמה"

CSIDL_FONTS = $0014
.ןנוכב םג תמייק איה לבא תילאוטריוכ תרדגומ איה .בשחמה לש םינפוגה תיירפס

CSIDL_NETWORK = $0012
.תילאוטריווה "תשרב םינכש"ה תיירפס

CSIDL_PERSONAL = $0005
."My Documents"-כ עיפומ כ"דב

CSIDL_PRINTERS = $0004
.תוספדמה תרדגה לש תילאוטריו היירפס

CSIDL_PROGRAMS = $0002
.(אשונב הרזעה ץבוקמ ןיבהל רשפאש המכ דע) ""Program files-כ עיפומ כ"דב

CSIDL_RECENT = $0008
.םהב תשמתשהש םינורחאה םיכמסמה לש םוקימה

CSIDL_SENDTO = $0009
.םיטירפתב העיפומש SendTo תיירפס לש םוקימה

CSIDL_STARTMENU = $000B
.(הלש טירפתה תא ץיפקמ "לחתה" רותפכש) "לחתה" תיירפס

CSIDL_STARTUP = $0007
."הלעפה" תיירפס

CSIDL_TEMPLATES = $0015
.(השדח היירפסו ךרד רוציק לש הצובקל תחתמ שדחב םיטירפתב עיפומ) "םיסיפדת" תיירפס

?ולאה תודוקפה םע םידבוע ךיא
...
implementation
uses ShlObj;
...
procedure TForm1.Button1Click(Sender: TObject);
var
PIDL: Pointer;
Path: LPSTR;

begin
Path := StrAlloc(MAX_PATH); // Gets the amount of
                            // memory of 255 character.
SHGetSpecialFolderLocation(Handle, CSIDL_RECENT, @PIDL); 
                       // receive the wanted directory
if SHGetPathFromIDList(PIDL, Path) then
       // returns false if folder isn't part of file system
  begin
  OpenDialog1.InitialDir := Path; 
  // Tell the TOpenDailog the path that it will be opened
  OpenDialog1.Execute; // Open the TOpenDialog in the wanted path
  end;
StrDispose(Path); // remove the pointer of the string from memory
end;

תקדוב זאו םהילע תדבעש םינורחאה םיכמסמה תא הליכמש "Recent" תיירפס תא שפחמ הז דוק
.תונולח לש הירפס וא "הליגר" היירפס איה הירפסה םאה