وعليكم السلام ورحمة الله
تكرم يآ غالي
اول شغلة اعمل فورم وضيف عليه
Button , Edit and ProgressBar
طبعا مربع التحرير حط فيه مكان البرنامج الي تحب تجيب الأيقونات منه
الآن اضغط على الزر وحط هذا الكود في حدث الضغط
رح نستخدم الدالة
ExtractIcon
وهي دالة من دوال الويندوز شوف شرحها بالأعلى
المهم قبل ما نبدا ضيف الوحدة She llAPI
على قائمة الوحدات uses
احذف الفراغات
الآن هذا حدث الضغط كامل وان شاء الله رح اشرحه كامل
كود:
[COLOR=Navy]uses [/COLOR][COLOR=Red]She llAPI[/COLOR];
[COLOR=Navy]procedure [/COLOR]TForm1.Button1Click(Sender: TObject);
var
I, ICNS : Integer;
ICON : TIcon;
s : [COLOR=Navy]string[/COLOR];
[COLOR=Navy]begin[/COLOR]
ProgressBar1.Position := 0;
ICON := TIcon.Create;
ICNS := ExtractIconW(Handle, PWideChar(Edit1.Text), UINT(-1));
ProgressBar1.Max := ICNS;
[COLOR=Navy]for [/COLOR]I := 0 [COLOR=Navy]to [/COLOR]ICNS - 1 [COLOR=Navy]do[/COLOR]
[COLOR=Navy]begin[/COLOR]
s := Format('D:\%d.ico', [I]);
ICON.Handle := ExtractIconW(Handle, PWideChar(Edit1.Text), I);
ICON.SaveToFile(s);
ProgressBar1.StepBy(1);
[COLOR=Navy]end[/COLOR];
ICON.Free;
[COLOR=Navy]end[/COLOR];
اول شغله عملناها تصفير قيمة ال ProgressBar
كود:
ProgressBar1.Position := 0;
بعدين المتغير ICON عرفناه بالبداية انشأناه بالسطر الي بعده
السطر الي بعده اسندنا قيمة للمتغير ICNS الي يحمل عدد الأيقونات بالملف
لو تشوف شرح الدالة لو تحط البارمتر الثالث -1 رح يرجع عدد الأيقونات
كود:
ICNS := ExtractIconW(Handle, PWideChar(Edit1.Text), UINT([COLOR=Red]-1[/COLOR]));
البارمتر الأول مقبض الفورم الخاص فينا
الثاني مسار البرنامج الي بدنا نجيب منه الأيقونات
والثالث يرجع مقبض للأيقونة حسب الرقم الي أدخلته
يعني لو كان 0 رح يرجع مقبض الأيقونة الأولى بالبرنامج
كود:
ProgressBar1.Max := ICNS;
هون حطينا اعلى قيمة لل ProgressBar على عدد الأيقونات علشان نعرف نسوي تقدم
الآن نبدا حلقة علشان نستخرج الأيقونات من 0 لعدد الأيقونات - 1
يعني لو كان عدد الأيقونات 6 بالملف
أول ايقونة رقمها 0
وآخر ايقونة رقمها 5
كود:
for I := 0 to ICNS - 1 do
begin
s := Format('D:\%d.ico', [I]);
ICON.Handle := ExtractIconW(Handle, PWideChar(Edit1.Text), I);
ICON.SaveToFile(s);
ProgressBar1.StepBy(1);
end;
أول سطر علشان نعيين اسم الملف حسب رقم الأيقونة
الثاني نجيب مقبض الأيقونة حسب رقم الحلقة ونحطه بمتغير الأيقونة تاعنا
والثالث واضع انو يحفظ الأيقونة
والرابع علشان تقدم ال ProgressBar
وسلامتك أسهل من هيك ما في
