في البداية ايضاحات :
1-الديفلوبر ليس موجه لمثل هذه الأغراض بل هو في المقام الأول أداة لبرمجة قواعد البيانات ولهذا نجد أن الدوال والاجراءات والخصائص الخاصة بالتعامل مع قواعد البيانات متوفرة بصورة غزيرة جداً في حين نجد أن تعامله مع المكونات وعناصر التحكم فيه شيئ من الصعوبة بعكس الفيجوال بيسك تماماُ
2-قبل قراءة هذا الدرس لا بد من قراءة الدرس السابق تماماً
بعنوان ادراج واستخدام عناصر التحكم وان كنت في الدرس السابق قد اعتمدت
OLE Container ومن ثم اختيار Create Control
أما في هذا الدرس فاني سأعتمد على استخدم OCX Control الموجود ضمن
Tool Pallete وبالتالي لن يكون هناك سوى خيار واحد في مربع الادراج وهو
Create Control
3-أنا شخصياً لا أعرف من الفلاش الا اسمه ولم اشغل برنامج الفلاش أبداً وقد أخذت ملف فلاش للتجريب وعنصر التحكم الخاص به من أحد الزملاء . ولا يوجد عندي حتى ملف المساعدة الخاص بعنصر التحكم هذا .
4-ليس من المعقول ان أشرح جميع خصائص وأحدث الفلاش فقط فالهدف من الدرس ليس التلقين انما معرفة الطريقة و ما ينطبق على عنصر التحكم الخاص بالفلاش ينطبق على أي عنصر تحكم آخر .
سأكتفي بالتالي
1- تحميل ملف الفلاش .
2- تشغيل ملف الفلاش بمجرد التجميل أم لا
3- تشغيل الفلاش على التكرار أم لا
4- اظهار واخفاء القائمة المختصرة (PopUp Menu) الخاصة بالفاش
5- تحريك الفلاش فريم للأمام أو للخلف
6- تغيير حجم الفلاش
و على بركة الله
أولاً تسجيل عنصر التحكم الخاص بالفلاش : سوف نستخدم الملف swflash.ocx (موجود ضمن الملفالمرفق)لتسجيل عنصر التحكم وذلك بنسخ هذا الملف الى المجلد winntsystem32
ثم تنفيذ الأمر :
:winntsystem32regsvr32 :winntsystem32swflash.ocx
يجب تحديد القرص الذي يوجد فيه الويندوز
وبعد ذلك تظهر رسالة تفيد بنجاح عملية التسجيل
ثالثاً عمل برنامج بسيط
سوف نقوم بعمل البرنامج التالي
ادراج عنصر التحكم :
نختار عنصر التحكم من Tool Pallete (OCX) ونرسمه بالحجم الذي نريد
وبعد ذلك نضغط زر الماوس الأيمن ونختار Insert Object
ونختار shockwave Flash Object
وبعد ذلك نجلب خصائص وطرق وأحداث عنصر التحكم من القائمة Program نختار OLE Importer
و بالتاي نختار ال Class
shockwaveFlash.shockwaveFlash
ونتأكد من تحديد Properties و methods
, وبهذا نكون قد أدرجنا عنصر التحكم وما بقي سواء استخدامه
تعرف أكثر على عنصر التحكم
يحتوي عنصر التحكم الخاص يالفلاش على العديد من الخصائص والطرق مثل :
TotalFrames عدد الفريمات التي يحتويها ملف الفلاش
Quality جودة عرض الفلاش
BackgroundColor خلفية الفلاش
Movie الملف الذي يتم عرضه
Play تشغيل
Stop ايقاف
zoom تكبير
و ....
تجد قائمة بها في ال Package specfication :
ShockwaveFlash_IShockwa_0
ملاحظة :
يمكن ضبط بعض الخصائص في وقت التصميم Design Time وذلك بعرض خصائص عنصر التحكم واختيار الخاصية control Properties
كود البرنامج
1- تحميل ملف الفلاش :
Declare
Flash_file_Name Varchar2(100);
Begin
-- Load file from file system
Flash_file_Name:=GET_FILE_NAME (file_filter => 'Flash Files (*.swf)|*.swf|',message =>'Select Flah File', dialog_type=>OPEN_FILE);
-- assign this file to movie property of flash control
ShockwaveFlash_IShockwa_0.Movie(:item('Flash_Blk.Flash').INTERFACE,Flash_file_Name);
End;
2-خاصية التشغيل التلقائي:
تكون القيمة الافتراضية true
الكود
If :Flash_blk.play_directly=1 then
ShockwaveFlash_IShockwa_0.Play(:item('Flash_Blk.Flash').INTERFACE);
Else
ShockwaveFlash_IShockwa_0.Stop(:item('Flash_Blk.Flash').INTERFACE);
End if;
3-خاصية التكرار
الكود
If :Flash_blk.play_directly=1 then
ShockwaveFlash_IShockwa_0.ole_loop(:item('Flash_Blk.Flash').INTERFACE,1);
Else
ShockwaveFlash_IShockwa_0.Ole_loop(:item('Flash_Blk.Flash').INTERFACE,0);
End if;
4- اظهار القائمة المختصرة
الكود
If :Flash_blk.SHOWPOPUP=1 then
ShockwaveFlash_IShockwa_0.Menu(:item('Flash_Blk.Flash').INTERFACE,1);
Else
ShockwaveFlash_IShockwa_0.Menu(:item('Flash_Blk.Flash').INTERFACE,0);
End if;
5-التكبير
ندخل نسبة التكبير ونضغط زر التكبير
الكود
ShockwaveFlash_IShockwa_0.Zoom(:item('Flash_Blk.Flash').INTERFACE,:Flash_Blk.Z);
6-تحريك فريم للأمام
الكود
Declare
Cur_Frame Number:=ShockwaveFlash_IShockwa_0.CurrentFrame(:item('Flash_Blk.Flash').INTERFACE);
Begin
ShockwaveFlash_IShockwa_0.GotoFrame(:item('Flash_Blk.Flash').INTERFACE,Cur_Frame+1);
End;
7- تحريك فريم للخلف
الكود
Declare
Cur_Frame Number:=ShockwaveFlash_IShockwa_0.CurrentFrame(:item('Flash_Blk.Flash').INTERFACE);
Begin
ShockwaveFlash_IShockwa_0.GotoFrame(:item('Flash_Blk.Flash').INTERFACE,Cur_Frame-1);
End;
8-تشغيل الملف
الكود
ShockwaveFlash_IShockwa_0.Play(:item('Flash_Blk.Flash').INTERFACE);
أما بالنسبة للأحداث التي يمكن استثمارها فان شاء الله سوف اتعرض لها في درس قادم
راجياً للجميع المتعة والفائدة
ولاتنسونا من صالح الدعاء
حمود الحطامي
اليمن-صنعاء
huttami@hotmail.com