المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : المسارات في دلفي


mobile
23-04-2010, 10:19 AM
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_CU RRENT,@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;

AvimimuS
25-04-2010, 11:27 PM
السلام عليكم

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

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

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

فلتعامل مع مسار ملف نستعمل الدالة:
function ExtractFilePath(const FileName: string): string;

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



function GetWindowsDirectory(lpBuffer: PChar; uSize: UINT): UINT; stdcall;
function GetSystemDirectory(lpBuffer: PChar; uSize: UINT): UINT; stdcall;
function GetTempPath(nBufferLength: DWORD; lpBuffer: PChar): DWORD; stdcall;


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

مجرد اضافة ...

Unprogramme
27-04-2010, 06:38 AM
جزاك الله خيرا ،
إضافة رائعة .

TF6M
29-04-2010, 06:39 PM
طريقة مختصرة , لاحظ الأمر (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;بالتوفيق ,,

mobile
03-05-2010, 12:38 AM
بارك الله فيكم جميعا على الا ضافات الرائعة وعلى المرور