ايران ويج

نسخه‌ی کامل: نام کاربری در مسیر My Documents و چگونگی تعریف به برنامه!!
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
از توابع ویندوزه و باید shlobj رو uses کنید
سلام به همه
با کمک دوستان این کد تو دلفی آماده شد
شاید بشه متغیر Temp رو حذف کرد ولی من تو دلفی آماتور هستم و بلد نیستم
نکته اینجاست که طول pszPath باید برابر MAX_PATH یعنی 260 باشه.
شما لطف کنین کد رو ساده تر کنید.
function TForm1.func1: PAnsiChar;
var
ppidl: PItemIDList;
pszPath: PAnsiChar;
bln: Boolean;
Temp: String;
begin
SetLength(Temp, 260);
Result := PChar(Temp);
SHGetSpecialFolderLocation(Self.Handle, CSIDL_PERSONAL, ppidl);
bln := SHGetPathFromIDList(ppidl, Result);
if not bln then Result := '';
end;
میتونی بجای استفاده از pchar و تعیین طول برای اون از یه ارایه از نوع char استفاده کنی
کد:
procedure TForm1.Button1Click(Sender: TObject);
var
pid: PItemIDList;
a:array[0..256]of char;
begin
SHGetSpecialFolderLocation(form1.Handle,CSIDL_DESKTOP,pid);
SHGetPathFromIDList(pid,a);
edit1.Text:=a;
end;
موفق باشی
صفحه‌ها: 1 2