المسارات في دلفي
#1
كود :
uses SHFolder; function GetSpecialFolderPath(folder : integer) : string; const SHGFP_TYPE_CURRENT = 0; var path: array [0..MAX_PATH] of char; begin if SUCCEEDED(SHGetFolderPath(0,folder,0,SHGFP_TYPE_CURRENT,@path[0])) then Result := path else Result := ''; end; //RadioGroup1 OnClick procedure TForm1.RadioGroup1Click(Sender: TObject) ; var index : integer; specialFolder : integer; begin if RadioGroup1.ItemIndex = -1 then Exit; index := RadioGroup1.ItemIndex; case index of //[Current User]\My Documents 0: specialFolder := CSIDL_PERSONAL; //All Users\Application Data 1: specialFolder := CSIDL_COMMON_APPDATA; //[User Specific]\Application Data 2: specialFolder := CSIDL_LOCAL_APPDATA; //Program Files 3: specialFolder := CSIDL_PROGRAM_FILES; //All Users\Documents 4: specialFolder := CSIDL_COMMON_DOCUMENTS; end; Label1.Caption := GetSpecialFolderPath(specialFolder) ; end;
الرد
#2
السلام عليكم

الوحدة SHFolder وفرتها دلفي لتسهل للمستخدم التعامل مع مسارات النضام
وهي تعتمد علي المكتبة shFolder.dll

ويمكن ايضا التعامل مع المسارات في دلفي بدون استعمال المكتبة:SHFolder

فهناك عدة دوال وفرتها ميكروزفت وتدعمها دلفي لتعامل مع المسارات

فلتعامل مع مسار ملف نستعمل الدالة:

PHP كود :
function ExtractFilePath(const FileName: string): string; 

وهذه بعض دوال لتعامل مع بعض مسارات النضام:


PHP كود :
function GetWindowsDirectory(lpBuffer: PChar; uSize: UINT): UINT; stdcall;
function 
GetSystemDirectory(lpBuffer: PChar; uSize: UINT): UINT; stdcall;
function 
GetTempPath(nBufferLength: DWORD; lpBuffer: PChar): DWORD; stdcall; 

وهدفها واضح من اسمها

مجرد اضافة ...
الأعمال أعلى صوتا من الكلمات
[-] كل من 1 user says قال شكرا ل AvimimuS على المشاركة المفيدة
  • wadoud
الرد
#3
جزاك الله خيرا ،
إضافة رائعة .
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد
#4
طريقة مختصرة , لاحظ الأمر (Set) في الـ Dos .
- يمكن أن نستفاد من المسارات المسجلة و أيضا تعريف مسارات أخرى ....
الدالة GetEnvironmentVariable , لجلب المسار المعرف من طرف النظام في قائمة الـ Set

كود :
Var _i: Byte; Const EnVars :Array [0..4]Of String = ( 'TEMP' ,'UserName' ,'UserProfile' ,'ProgramFiles' ,'AppData'); Begin With MyListBox.Items Do For _i:= 0 to High(EnVars) Do Add(GetEnvironmentVariable(EnVars[_i])); End;
بالتوفيق ,,
I'M Fly Like A G6

[-] كل من 1 user says قال شكرا ل TF6M على المشاركة المفيدة
  • mohamed49
الرد
#5
بارك الله فيكم جميعا على الا ضافات الرائعة وعلى المرور
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 2 ) ضيف كريم