بسم الله الرحمن الرحيم
:)
حبيت أن اقوم بإنزال هذا الموضوع بشكل من التفصيل لكي تعم الفائدة في تجميل البرامج
كما اريد ان تتم المساهم بوضع فكرة أو عمل وشرح مبسط حول الاداه المستخدمه فيه
أو الأكواد المدرجه وكيفية عمل كل كود ولماذا !!!! وهذا الرابط لكيفية التعامل مع الفلاش
والبقية ستأتي الأن . ..
فالنبدأ ...
أولا: الطريقة البرمجيه لتجميل فورم
سنقوم بعمل مثال لتشكيل الفورم على هيئة مستطيل ذو أحرف دائرية وتخرج منه دائرة يظهر بها عنوان الفورم و مستطيل آخر به أزرار شريط العنوان
- الدوال المستخدمة والتي توضع في قسم التصريحات Genaral:
Private Declare Function CreateRectRgn Lib "gdi32" Alias "CreateRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
يستخدم هذا الكود لتحديد جزء معين من الفورم على شكل مستطيل
Private Declare Function CreateRoundRectRgn Lib "gdi32" Alias "CreateRoundRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long
يستخدم هذا الكود لتحديدي جزء معين من الفورم على شكل مستطيل أحرفه دائرية.
بحيث تكون X3 , Y3 هي أبعاد هذه الأحرف الدائرية وكأنها مستطيل صغير .
Private Declare Function CreateEllipticRgn Lib "gdi32" Alias "CreateEllipticRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
يستخدم هذا الكود لتحديد جزء معين من الفورم على شكل دائرة ومشتقاتها
Private Declare Function CombineRgn Lib "gdi32" Alias "CombineRgn" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
وتستخدم لإضافة تحديد مسبق إلى تحديد آخر (دمج تحديدين) كما في برامج الجرافيك.
و شكل التداخل CombineMode يأخذ القيمة 2 أو 3 فالقيمة 2 تجعل الأجزاء المتداخلة من التحديدات كجزء واحد بخلفية واحدة ، بينما القيمة 3 تجعل الجزء المتداخل من تحديدين أو أكثر شفاف بلا خلفية.
Private Declare Function SetWindowRgn Lib "user32" Alias "SetWindowRgn" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
تستخدم في تشكيل الفورم حسب التحديد المراد استخدامه (لتلاعب في شكل الفورم)
Dim HnHn(3) As Long
هنا فرضنا مصفوفة متغيرات مكونة من 4 عناصر باسم HnHn من 0 إلى 3
أنتهينا من الأكواد المدرجه في قسم التصريحات
- الأكواد المدرجه في خاصية باينت للفورم Paint
HnHn(0) = CreateRoundRectRgn(48, 48, 300, 200, 20, 20) HnHn(1) = CreateEllipticRgn(16, 4, 90, 80) HnHn(2) = CreateRoundRectRgn(48, 200, 300, 220, 20, 20) HnHn(3) = CreateRectRgn(245, 4, 300, 29) CombineRgn HnHn(0), HnHn(0), HnHn(1), 2 CombineRgn HnHn(2), HnHn(2), HnHn(0), 2 CombineRgn HnHn(3), HnHn(3), HnHn(2), 2 SetWindowRgn Me.hWnd, HnHn(3), True
وهذه الاكواد هي الابعاد للشكل المطلوب أظهاره ويمكنك عمل الكثير من الأشكال حسب تصميمك وإذا أردت أن تكون الأشكال محددة (لها إطار) فيمكنك رسم التصميم أولا على الفورم ثم تحويله إلى أكواد بنفس الطريقة السابقة.
ملاحظة : القيم المستخدمة تكون بنظام البيكسل
ثانياً: أستخدام الأدوات لتجميل فورم
الأداة المستخدمه ActivSkin الأصدار 4.0
وهذه الاداة جدااً رائعه فهي سهلة الاستخدام وليست سهلة البرمجه فهي تحوي الكثير من الاكواد
والخواص والمميزات الخاصة بالمبرمج لتظهر بشكل هذا فتساعد على تجميل
البرامج عن طريق رسمها على الفورم فقط . وكتابة الشفرة التالية في حدث تحميل الفورم
Skin1.LoadSkin App.Path & "\X.skn" Skin1.ApplySkin Me.hwnd
حيث أن
Skin1 الأداة المرسومة على الفورم
X.skn اسم الصورة الخاصة بهذه الأداة لكي تظهر على الفورم
وهذا مثال لهذه الاداة ومرفق معها ملفاتها الخاصة كما يلي
ملاحظة : تم الاستعانة بمنتدى الابداع الاسلامي و منتدى في بي زووم للحصول على هذه المعلومات
تحياتي :rolleyes:














