delphi4arab منتديات دلفي للعرب
كيف استخراج يقونة مجلد ؟ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف استخراج يقونة مجلد ؟ (/showthread.php?tid=3193)



كيف استخراج يقونة مجلد ؟ - AnoirsoftDeveloper - 15-06-2011

السلام عليكم


أود أن أستخرج أيقونة مجلد

بحيث كتابة المسار ويقوم تلقائيا باستخراج الأيقونة ووضعها في Timage

مثلا :
كود :
C:\New folder

أود أيقونة هذا المجلد تظهر في Timage


كيف استخراج يقونة مجلد ؟ - kachwahed - 15-06-2011

وعليكم السلام ورحمة الله
المجلد ليست له أيقونة خاصة في Windows
ما تراه (في XP ونحوه) هو أيقونة ضمن المكتبة SHELL32.dll للنظام
أين تجد ذلك؟
ستجد ملف INI في المجلد تحت اسم Desktop.ini (بخصائص مخفي/نظام عادة)
تقوم بقراءة الملف (كما تقرأ أي INI استخدم البحث)
تقرأ منه السطر:
PHP كود :
IconFile=%SystemRoot%\system32\SHELL32.dll 
في الـ Section (عادة)
PHP كود :
[.ShellClassInfo] 
وترتيب الأيقونة في الملف، مثال:
PHP كود :
IconIndex=7 
بعد أن حصلت على العنوان والترتيب، تقرأ الأيقونة من خلال Handle بمثل هذا:
PHP كود :
uses
  ShellAPI
;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application
.Icon.Handle := ExtractIcon(Application.Handle, '%SystemRoot%\system32\SHELL32.dll', 7);
end; 
أضيف شيء آخر، لاستخدام علبة اختيار أيقونة من النظام:
PHP كود :
uses
    ShellApi
;
    
function 
PickIconDlgA(OwnerWnd: HWND; lpstrFile: PAnsiChar; var nMaxFile: LongInt;
  var 
lpdwIconIndex: LongInt): LongBool; stdcall; external 'SHELL32.DLL' index 62;

// Example (changes application icon):

var
  
FileName: String;
  
Size, Index: LongInt;
begin
  Size 
:= MAX_PATH;
  
FileName := 'Shell32.dll';
  if 
PickIconDlgA(0, PChar(FileName), Size, Index) then
  begin
    
if Index <> -1 then
      Application
.Icon.Handle := ExtractIcon(hInstance, PChar(FileName), Index);
  
end;
end; 
أي نقطة لم تفهمها ابحث في المنتدى...
بالتوفيق.



كيف استخراج يقونة مجلد ؟ - gladiator16 - 17-06-2011

جميل لاكن ايقونة البرنامج لا تتغير ! تتغير ايقونة البرنامج في المنيو بار (ان صحت التسمية) فقط
مثلا الاتوران وتلك الفيروسات التي تاخذ اسم ملفاتك وايقونة المجلد كيف ذلك ؟