easyDelphi Q&A
+1 تصويت
39 مشاهدات
في بعض الحالات اضيع الوقت في البحت على ايقونات استعملها في برنامجي و لاحظت انه نظام التسغيل له ايقونات خاصة به ففكرة

في استعمالها و ربح بعض الوقت  اريد مساعدة في هدا  و مشكورين

سلام
سُئل في تصنيف vcl بواسطة (5,790 نقاط) | 39 مشاهدات
 

2 إجابة

+2 تصويتات
أفضل إجابة

 

هذه العملية تنادي "Shell32.dll" و قد أجاب عليها المرحوم "" في هذه المداخلة هنا و لتحميل المثال من أمباركاديرو سنترال  من هنا

و قد فمت بعمل تعديل على المثال و كانت التجربة كالأتي:

و لتحميل المثال جاهز للتجريب من هنا و شكرا.

تم الرد عليه بواسطة (12,070 نقاط)
مختارة بواسطة
+1 تصويت

للحصول على ImageList الخاصة بالنظام (خاصة الملفات)، اخذتها من مشروع قديم لا اعلم اذا كان مازال يعمل على الانظمة القديمة

 

var
  FileInfo: TSHFileInfo;
  ImageListHandle: THandle;
begin
  ImageListHandle := SHGetFileInfo('C:\',
    0,
    FileInfo,
    SizeOf(FileInfo),
    SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
  SmallSysImageList.Handle := ImageListHandle;
  ImageListHandle := SHGetFileInfo('C:\',
    0,
    FileInfo,
    SizeOf(FileInfo),
    SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
  LargeSysImageList.Handle := ImageListHandle;

 

للحصول على رقم الصورة index الخاصة بالملف

 

function GetShellImage(FileName: string; Large, Open, Dir: Boolean): Integer;
var
  FileInfo: TSHFileInfo;
  FileAttribute, Flags: Integer;
begin
  FillChar(FileInfo, SizeOf(FileInfo), #0);
  if Dir then
    FileAttribute := FILE_ATTRIBUTE_DIRECTORY
  else
    FileAttribute := FILE_ATTRIBUTE_NORMAL;
  Flags := SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_USEFILEATTRIBUTES;
  if Open then
    Flags := Flags or SHGFI_OPENICON;
  if Large then
    Flags := Flags or SHGFI_LARGEICON
  else
    Flags := Flags or SHGFI_SMALLICON;
    SHGetFileInfo(PChar(FileName),
    FileAttribute,
    FileInfo,
    SizeOf(FileInfo),
    Flags);
  Result := FileInfo.iIcon;
end;

 

تم الرد عليه بواسطة (9,270 نقاط)

اسئلة متعلقة

+4 تصويتات
2 إجابة
+1 تصويت
1 إجابة
سُئل أكتوبر 2 في تصنيف vcl بواسطة youcef (170 نقاط) | 38 مشاهدات
+2 تصويتات
2 إجابة
سُئل سبتمبر 26 في تصنيف vcl بواسطة Yamada Fakir (1,250 نقاط) | 55 مشاهدات
+1 تصويت
1 إجابة
سُئل أغسطس 31 في تصنيف vcl بواسطة Yamada Fakir (1,250 نقاط) | 53 مشاهدات
ادعُ اصدقائك في الفايسبوك لمشاركتك

مرحبًا بك إلى EasyDelphi Q&A، حيث يمكنك طرح الأسئلة والحصول على الإجابة عليها من المستخدمين الآخرين.

لا يسمح بطلب او السؤال عن كراك او تفعيل او كسر او فك او اي شيء يخالف اتفاقيات الترخيص  مهما كان السبب ومهما كان البرنامج ونوعه. ولا حتى نشر روابط تحتوي على مثل هذه الاشياء لا في الاسئلة ولا في الاجابات ولا التعليقات . نهائيا

249 سؤال
451 إجابة
790 تعليق
148 مستخدم