الدرس الأول
التعديل على VCL Styles وقت تشغيل التطبيق
نظرًا لأن نمط VCL هو مجرد نوع معين من الملفات الثنائية، فيمكننا السماح لمستخدمينا بتحميل
الأنماط المفضلة لديهم في وقت التشغيل. يمكننا أيضًا توفير أنماط جديدة من خلال نشرها على
الموقع الإلكتروني أو إرسالها عبر البريد الإلكتروني لعملائنا.
تتم معالجة الأنماط في وقت التشغيل باستخدام أساليب الفئة الخاصة بفئة TStyleManager.
اتبع هذه الخطوات لتغيير نمط تطبيق VCL الخاص بك في وقت التشغيل:
1. قم بإنشاء تطبيق VCL جديد تمامًا وأضف وحدات Vcl.Themes وVcl.Styles
إلى القسم uses. هذه الوحدات مطلوبة لاستخدام أنماط VCL في وقت التشغيل.
2. أسقط على النموذج TListBox، واثنين من TButton، وTOpenDialog.اترك الأسماء الغفتراضية لهذه المكونات
3. اذهب إلى project| appearance وحدد ثمانية أنماط من اختيارك من القائمة. يترك
النمط الافتراضي لنظام التشغيل Windows.
4. تحتوي الخاصية TStyleManager.StyleNames على أسماء جميع العناصر المتوفرة
الأنماط.
في معالج الأحداث FormCreate، يتعين علينا تحميل الأنماط المرتبطة بالفعل
والموجود في الملف القابل للتنفيذ إلى مربع القائمة للسماح للمستخدم باختيار واحد منهم. لذا،
قم بإنشاء إجراء جديد يسمى StylesListRefresh بالكود التالي و
نسميها من معالج الأحداث FormCreate:
procedure TMainForm.StylesListRefresh;varstylename: string;beginListBox1.Clear;// retrieve all the styles linked in the executablefor stylename in TStyleManager.StyleNames dobeginListBox1.Items.Add(stylename);end;end;
5. في معالج الأحداث Button1Click، يتعين علينا تعيين النمط الحالي وفقًا لـ
واحد محدد من ListBox1 باستخدام الكود كما يلي:
TStyleManager.SetStyle(ListBox1.Items[ListBox1.ItemIndex]);
6. يجب أن يسمح معالج الأحداث Button2Click للمستخدم بتحديد النمط
من القرص. لذا، يتعين علينا إنشاء مجلد باسم الأنماط على مستوى الملف التنفيذي للتطبيق
ونسخ ملف .vsf من دليل النمط الافتراضي، والموجود في RAD
ستوديو 11 Alexandria، هو
C:\Program Files (x86)\Embarcadero\Studio\22.0\Redist\styles\vcl
7. بعد النسخ، اكتب الكود التالي تحت معالج الأحداث Button2Click.
يسمح هذا الرمز للمستخدم باختيار ملف نمط مباشرة من القرص.
ويسمح لك باختيار أحد الأنماط من مربع القائمة وانقر فوق Button1 لتطبيقه عليهif OpenDialog1.Execute thenbeginif TStyleManager.IsValidStyle(OpenDialog1.FileName) thenbegin//load the style fileTStyleManager.LoadFromFile(OpenDialog1.FileName);//refresh the list with the currently available stylesStylesListRefresh;ShowMessage('New VCL Style has been loaded');endelseShowMessage('The file is not a valid VCL Style!');end;end;