كيف استخراج يقونة مجلد ؟
#1
السلام عليكم


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

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

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

أود أيقونة هذا المجلد تظهر في Timage
الرد
#2
وعليكم السلام ورحمة الله
المجلد ليست له أيقونة خاصة في 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; 
أي نقطة لم تفهمها ابحث في المنتدى...
بالتوفيق.
الرد
#3
جميل لاكن ايقونة البرنامج لا تتغير ! تتغير ايقونة البرنامج في المنيو بار (ان صحت التسمية) فقط
مثلا الاتوران وتلك الفيروسات التي تاخذ اسم ملفاتك وايقونة المجلد كيف ذلك ؟
الرد


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


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