قائمة البرمجة > لغة Delphi

كيف تنشئ شاشة افتتاحية لبرنامجك Splash screen

الكاتب:


Splash Screen يمثل الشاشة الافتتاحية للبرنامج، والتي عادة ما تحتوي على صورة توضيحية للبرنامج ومعلومات أخرى كالعنوان والإصدار والحقوق وما إلى ذلك.

ليس ذلك فقط ولكن لها دور آخر، خاصة في التطبيقات التي يحتاج تشغيلها إلى بعض الوقت، حيث يصبح دورها شغل المستخدم طيلة فترة تحميل البرنامج وربما بينت مراحل التحميل أيضا.

ولكنها تختفي تلقائيا بمجرد التحميل الكامل للبرنامج.

تريد واحدة لبرنامجك ؟
حسنا.

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

1-أنشئ تطبيقك بشكل عادي.

2-أضف شاشة Form نقترح أن تسميها SplashScreen ثم قم بتمييزها لتمثل المقدمة كأن تضع عليها صورة مثلا.
ملاحظة
لنتائج أفضل ينصح باستعمال صورة نقطية BMP


3-ضع خاصية BorderStyle في bsNone لتثبيت الشاشة ومنع المستخدم من تحريكها أوإغلاقها.

4-هذه الشاشة ليست عادية لذلك ستتولى أنت عملية إنشائها، لذلك :

- إذهب إلى Project/Options من القائمة الرئيسية.

- في الصفحة Forms ستشاهد قائمتين: على اليسار: الشاشات المعدة آليا، وعلى اليمين: الشاشات التي يعدها المبرمج.




- حدد شاشتك وانقلها إلى القائمة على اليمين ثم اضغط على موافق. بهذه الطريقة أصبح Delphi لا يراها.

5-الآن سنبرمج قليلا

- بما أن الشاشات يتم إنشائها في الملف الرئيسي للبرنامج -DPR- سننتقل إليه لنقوم بالعمل : من القائمة الرئيسية إذهب إلى: Project/ View Source.

- ستلاحظ أن شاشتك توجد ضمن قائمة الشاشات في USES ولكن لا توجد تعليمة لإنشائها مثل:


Application.CreateForm(TSplashScreen, SplashScreen);


- كما سبق أن قلنا: Delphi لا يستطيع التحكم في شاشتنا لذلك سنعرفه عليها:


var SplashScreen: TSplashScreen;


- كي تتصدر شاشتنا جميع الشاشات يجب أن تكون الأولى إنشاءا .

ولكن عليها أن تنشئ نفسها كما يلي:


Application.Initialize;

SplashScreen := TSplashScreen.Create(Application);


- ثم علينا إضهارها:


SplashScreen.Show;


- قد لا تضهر شاشتنا بشكل جيد خاصة إذا احتوت على صورة وكانت مدة تحميل البرنامج قليلة لذلك علينا إجبارها - لنقل مساعدتها- على الضهور وذلك بتحديث محتواها:


SplashScreen.Update;


- أصبحت شاشتنا جاهزة ! ولكن دورها ينتهي عندما يتم إنشاء جميع الشاشات في الذاكرة لذلك ستغادرنا قبل تنفيذ البرنامج أي قبل التعليمة Application.Run :


SplashScreen.Close;


- ذلك لا يكفي فعلينا إخلاء الذاكرة المحجوزة لشاشتنا بأنفسنا لأننا تولينا عملية إنشائها:


SplashScreen.Release;


6- لم يبق ولله الحمد إلا التنفيذ: F9

-7- قد تتفاجأ عندما لا تشاهد الشاشة التي تعبت في إعدادها لقد تسارعت الأحداث- كما هي الحال دائما- لأن برنامجنا خفيف ضريفTON: إليك هذه الحيلة: قم بتعطيل إنشاء الشاشة الرئيسية بعض الوقت لتسمح لشاشة المقدمة بأن تعرض نفسها قليلا. في حدث إنشاء الشاشة الرئيسية أدخل الكود التالي:




procedure TForm1.FormCreate(Sender: TObject);

begin

Sleep(2000);

end;



بهذه الطريقة سيخمد تنفيذ البرنامج لثانيتين وستشاهد أثنائها شاشتك SplashScreen.