سلسلة شروحات innoSetup الدرس التاسع : صناعة ملف التثبيت عن طريق الأكواد قسم [Types] + قسم [Components]

ناصر بعزيز

Administrator
طاقم الإدارة
إنضم
7 أغسطس 2018
المشاركات
646
مستوى التفاعل
666
النقاط
93
الإقامة
الجزائر
الموقع الالكتروني
mx-blind.com
الجنس
ذكر
نظام التشغيل
Windows10
قارئ الشاشة المستخدم
jaws
بسم الله الرحمن الرحيم, والصلاة والسلام على أشرف الخلق والمرسلين
أما بعد فأيها الأحباب أهلا وسهلا بكم في الدرس التاسع من دورة تعلم برنامج InnoSetup
في الدرس الثاني لهذا اليوم من السلسلة هذه سنتعرف على قسمين جديدين
وهما قسمين مترابطين
بحيث لا يمكنني أن أفصل هذا عن ذاك لأنهما مكملتان لبعضهما

فما سنراه اليوم هو :
قسم
[Types]
وقسم
[Components]
ولنبدأ أولا بالقسم الأول وهو
[Types]
حيث سنتطرق للتعريف بهذا القسم
ثم نتعرف على شكله وناأخذ أمثلة عامة
ثم سنتطرق للشرح ونتعرف على كل عنصر من عناصر هذا القسم


فهيا بنا نتوكل على الباري
أولا التعريف بالقسم

يعتبر قسم [Types]
القسم الذي يتيح لنا وضع عدة أنماط تثبيت لبرامجنا
حيث من خلاله
يمكننا مثلا عمل نمط التثبيت الكامل
أو التثبيت المخصص
أو التثبيت العادي إلخ
حيث هنا سننشئ الخيارات ثم نقوم بتدعيمه بالقسم الثاني والذي سنتعرف عليه في نفس الدرس
فهيا لننتقل إلى الأمثلة العامة

[Types]
Name: "full"; Description: "Full installation"
Name: "compact"; Description: "Compact installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom

حيث في المثال عندنا ثلاثة أنماط
تثبيت كامل
تثبيت مدمج (عادي)
وتثبيت مخصص


فهيا الآن لنقسم الأمثلة ونتدارسها


أول ما نبدأ به
Name
وهو مطلوب
حيث هنا سنعين الإسم الداخلي للنمط كما تعلمنا في الدرس السابق
والإسم الداخلي هو الذي سنستدعيه به في الأعلى
ملاحظة :
الإسم الداخلي يجب أن يتضمن حروف إنجليزية وأرقام فقط وبدون أي مسافات
وهذا ينطبق على جميع الأسماء الداخلية.
مثلا هنا عندنا
Name: "full"
العنصر الثاني وهو
Description
وهو مطلوب أيضا
حيث هذا هو الوصف أو الإسم الذي سيظهر للمستخدم
طبعا بإمكانك استخدام عبارات خاصة أو عبارات من ملفات اللغة إن شئت
وطريقة استخدام عبارات اللغة كنا قد رأيناها في الدرس السابق

لاكن هاك مثالين
Name: "full"; Description: "Full installation"
Name: "full"; Description: "{cm:Fullinstallation}"
طبعا هذا يتطلب وجود العبارة في ملف اللغة أو بتخصيص العبارة في السكربت نفسه.
وقد رأينا ذالك طبعا.

هيا إلى الإعداد التالي وهو

Flags
حيث هذا العنصر هو الذي يسمح بإضافة خيارات مساعدة
وإليكم الخيارات المتاحة هنا
iscustom
حيث هذا الخيار يخبر السكربت بأن العنصر الحالي هو العنصر المخصص
فإذا قام المستخدم بتحديد أي عنصر آخر ثم قام بتغيير التركيبة في القسم الثاني الذي سنعرفه بعد قليل فإنه يقوم تلقائيا بتحديد هذا العنصر وهو العنصر الذي يحتوي هذا الخيار
ويسمح بوضعه في عنصر واحد فقط
وهو العنصر المخصص

أرجو أن يكن الأمر واضح
وهذا مثال
Name: "full"; Description: "{cm:Fullinstallation}"; Flags: iscustom


أخي أختي هناك الثلاث إعدادات الأخيرة
التي رأيناها في الدرس السابق
وهي اللغة وأدنى إصدار والإصدار ما بعد
هذه يمكنكم إضافتها بشكل طبيعي ولن أقوم بإعادة شرحها لاكن إليكم مثال
Name: "full"; Description: "{cm:Fullinstallation}"; Flags: iscustom; Languages: arabic english; MinVersion: 6.1; OnlyBelowVersion: 6.2
ولمن أراد المعلومات أكثر بإمكانه الرجوع للدرس السابق
هنا نكن قد إنتهينا من القسم الأول من الدرس

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

هيا بنا نتوجه للقسم الثاني
وهو
[Components]
لاكن صلي على رسول الله قبل البدأ

أولا لنعرف القسم
إن هذا القسم هو مرتبط بالقسم السابق
حيث القسم السابق يقوم بإضافة الأنماط أما هذا القسم
فهو الذي يمكنك إعطاء إعدادات كل نمط أو خياراته المرتبطة به
فمثلا عندنا مجموعة من الخيارات لنقل
ملفات المساعدة
تعريفات البرنامج
ربط البرنامج مع الملفات التابعة له
إنشاء أيقونة للبرنامج على قائمة السياق
...
...
...
ونريد لهذه الخيارات أن تتحدد حسب الأنماط المختارة
فبالتالي نربط كل خيار مع الأنماط التي يتحدد فيها
حيث عند اختيار أي نمط من الأنماط المرتبطة به فإنه يتحدد بشكل تلقائي
وفي حال قمت بتحديد أي نمط آخر فسيلغى التحديد عن العنصر
وإذا قمت بتحديده فسينقلك إلى النمط المخصص إذا كان موجود.
هيا لنرى أمثلة على ذالك
[Components]
Name: "main"; Description: "الملفات الرئيسية"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "ملفات المساعدة"; Types: full
Name: "help\english"; Description: "ملفات المساعدة الإنجليزية"; Types: full
Name: "help\dutch"; Description: "ملفات المساعدة الهولندية"; Types: full


هنا وضعنا العديد من الخيارات مع ربط كل خيار بأنماطه
فهيا الآن نتعرف على العناصر الخاصة بالكود

Name
مطلوب
وهو الخاص بالإسم الداخلي
ملاحظة :
الأسماء الداخلية لا تقبل مسافات ولا رموز, بل هي حروف إنجليزية وأرقام فقط.
بإمكانك إنشاء عناصر فرعية من عنصر أساسي وذالك باستخدام القاطعة الخلفية
يعني الإسم الداخلي الخاص بالعنصر الأساسي ثم قاطعة خلفية ثم الإسم الداخلي الخاص بالعنصر الفرعي
مثلا
Name: "help"
Name: "help\english"

القسم الثاني وهو
Description
وهو الإسم الذي سيظهر للمستخدم
بإمكانك طبعا استخدام عبارات مخصصة أو من اللغة كما رأينا في الأعلى
هذا مثال
Name: "help"; Description: "Help Files"
العنصر التالي هو

Types
حيث نكتب هنا الأسماء الداخلية الخاصة بالأنماط التي نريد ربطها مع الخيار هذا
ونفصل بين الإسم والإسم بالمسافة
كمثلا
Name: "help"; Description: "Help Files"; Types: full compact

ننتقل الآن إلى
ExtraDiskSpaceRequired
حيث نكتب الحجم الذي يحتاجه في القرص لتثبيت هذا الملحق
بإمكاننا طبعا عدم القيام بهذا
مثال
Name: "help"; Description: "Help Files"; Types: full compact; ExtraDiskSpaceRequired: 0

الآن لنرى عنصر آخر وهو
Flags
وهو الخيارات الإضافية
حيث يدعم الإعدادات التالية
يمكننا طبعا الفصل بين إعداد وآخر بالمسافة

checkablealone
هذا الإعداد لو قمت باستخدامه مع ملحق يحمل ملحقات فرعية فسيسمح للملحق أن يحدد ولو لم تقم بتحديد أي من عناصره الفرعية
افتراضيا سيتم إلغاء تحديد الملحق في حال لم تقم بتحديد أي عنصر فرعي
في حال كان الملحق يحتوي على عناصر فرعية


dontinheritcheck
هذا الإعداد يخبر الملحق بأن لا يحدد تلقائيا في حال قام المستخدم بتحديد أي عنصر فرعي منه

fixed
هذا يجعل الملحق غير قابل للتحديد إو إزالة التحديد من طرف المستخدم
أي يتغير فقط مع تغيير الأنماط
لاكن لا تكن للمستخدم الحرية في التحكم فيه.

restart
حيث إذا قام المستخدم بتحديد الملحق الذي يحمل هذه القيمة
فسيطلب منه اعادة تشغيل النظام بعد الإنتهاء من التثبيت
هذا يساعد في حال تثبيت التعريفات أو ملفات تتطلب إعادة التشغيل
disablenouninstallwarning

يمنع برنامج الإعداد من تحذير المستخدم من أن هذا المكون لن يتم إلغاء تثبيته بعد إلغاء تحديد هذا المكون عند محاولة تثبيت البرنامج على جهاز مثبت فيه بالفعل.
ووإذا كنت تريد حذفها في حال لم يتم تحديدها فعليك باستخدام القسم
[InstallDelete]

وسنتطرق له قريبا جدا.

إلى مثال الآن
Name: "help"; Description: "Help Files"; Types: full compact; ExtraDiskSpaceRequired: 0; Flags: fixed disablenouninstallwarning
الآن أكرر لأقول
بإمكانكم إستخدام الإعدادات المرتبطة وهي اللغة وأدنى إصدار والإصدار ما بعد
وهي مشروحة في الدرس السابق لذا هاك مثال فقط
Name: "help"; Description: "Help Files"; Types: full compact; ExtraDiskSpaceRequired: 0; Flags: fixed disablenouninstallwarning; Languages: arabic english; MinVersion: 6.1; OnlyBelowVersion: 6.2
الآن أيها الأحباب
وصلنا لنهاية هذا الدرس
نلتقي في الدرس القادم قريبا
من هنا إلى ذالك الوقت أستودعكم الله الذي لا تغيب ودائعه
ولا تنسوني من دعائكم الصالح
كان معكم أخوكم
ناصر بعزيز
 
جميل جدا
جزاك الله خيرا أخي العزيز ناصر على هذا الشرح الممتاز جدا والأكثر من رائع
مجهود مشكور وشرح مميز ومفيد
شكرا جزيلا لك
تقبل تحياتي.
 
دروس متميزة ورائعة جدا أخي ناصر
بارك الله فيك وزادك من علمه
 
عودة
أعلى