سلسلة دروس فجوال بيسك التطبيقية

الكاتب : yemen_ghost   المشاهدات : 6,523   الردود : 95    ‏2005-05-08
      مشاركة رقم : 1    ‏2005-05-08
  1. yemen_ghost

    yemen_ghost عضو متميّز

    التسجيل :
    ‏2004-07-03
    المشاركات:
    1,456
    الإعجاب :
    0
    بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركاته

    أعضاء و رواد هذا المجلس الحبيب

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

    لكن نستهل معكم سلسلة دروس فجوال بيسك التطبيقية و ستكون
    هذه السلسلة عبارة عن سؤال و جواب في تطبيقات لغة فجوال بيسك
    و أتمنى أن يشارك فيها الجميع و يستفيد منها و أن يقوم بتطبيق دروسها .

    وبمقدار التفاعل معكم انتم سنذهب بهذه السلسلة إلى مالا نهاية ..........

    علما أن جميع الحقوق محفوظة للمجلس اليمني و كاتبها ( يمن جوست ) ..

    و بسم الله نبدأ :-



    سؤال : كيف أقوم بربط قاعدة بيانات من نوع Access بالبرنامج حيث أن القاعدة هي 97 ؟
    الجواب :

    قبل الإجابة على هذا السؤال هناك عدة طرق لربط قواعد البيانات
    إما يدويا عن طريق أدوات Ado,Dao
    و هذة الطريقة تعتبر أسهل نوعا ما لكن عند التعامل مع قواعد بيانات
    ضخمة (من ناحية البيانات) تعتبر بطيئة.

    لذلك يفضل دائما استخدام الطريقة البرمجية .
    و لربط قاعدة بيانات اكسس 97 نحتاج لنوعين من المتغيرات في قسم التصريحات العامة

    كود:
    Dim db As Database
    Dim rs As Recordset
    حيث أن المتغير db هو المسئول عن الارتباط مع قاعدة البيانات أما rs
    هو المسئول عن الربط مع الجداول ويمكن تعريف عدة متغيرات منة للتعامل مع جداول قاعدة البيانات.

    و بعد ذلك و في حدث تحميل الفورم و باعتبار أن قاعدة البيانات موجودة
    ضمن مسار البرنامج و أسمها هو Mydb و الجدول هو student نكتب الكود التالي :

    كود:
    Set db = OpenDatabase(App.Path & "\ Mydb.mdb")
    Set rs = db.OpenRecordset("student", dbOpenDynaset)
    وبهذا تكون قاعدة البيانات قد ربطت برمجيا .
     
  2.   مشاركة رقم : 2    ‏2005-05-08
  3. yemen_ghost

    yemen_ghost عضو متميّز

    التسجيل :
    ‏2004-07-03
    المشاركات:
    1,456
    الإعجاب :
    0
    سؤال : كيف أقوم بربط قاعدة بيانات من نوع Access بالبرنامج حيث أن القاعدة هي2000 فما
    فوق و ما الفرق؟

    الجواب :
    نعم هناك فرق بين القاعدتين
    حيث أن محرك الأولى هو Microsoft.Jet.OLEDB.3.51
    أما محرك 2000 فما فوق هو Microsoft.Jet.OLEDB.4.0

    و يتم الربط بالطريقة التالية :
    نحتاج لنوعين من المتغيرات في قسم التصريحات العامة

    كود:
    Dim rs As New ADODB.Recordset
    Dim db As New ADODB.Connection
    و بعد ذلك و في حدث تحميل الفورم و باعتبار أن قاعدة البيانات موجودة
    ضمن مسار البرنامج و أسمها هو Mydb و الجدول هو student نكتب الكود التالي :


    كود:
    db.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Mydb.mdb"
    rs.Open ""select * from student", db, 1, 2

    وبهذا تكون قاعدة البيانات قد ربطت برمجيا .
     
  4.   مشاركة رقم : 3    ‏2005-05-08
  5. yemen_ghost

    yemen_ghost عضو متميّز

    التسجيل :
    ‏2004-07-03
    المشاركات:
    1,456
    الإعجاب :
    0
    سؤال : كيف أقوم بريط برنامجي بمساعد الأوفس ؟
    الجواب :

    لربط مساعد الأوفس تتبع معي الآتي:
    في قسم التصريحات العامة عرف المتغير التالي

    كود:
    Public Genie As Object

    قم بوضع قائمة لملئها بحركات المساعد ايضا فم بتوضيع كائن
    المساعد agent من القائمة Component -> Microsoft agent controle

    وفي حدث التحميل اكتب الكود التالي



    كود:
    Private Sub Form_Load()
    Agent1.Characters.Load "merlin", "C:\WINDOWS\msagent\chars\merlin.acs"
    
    Set Genie = Agent1.Characters("merlin")
    
    Genie.Show
    Genie.Left = 415
    Genie.Top = 315
    Genie.Speak "مثال لاستخدام المساعد  مع تحياتي: (يمن جوست)  المجلس اليمني"
    
    Dim Animation As Variant
    For Each Animation In Genie.AnimationNames
       List1.AddItem Animation
    Next
    
    End Sub

    و هنا لا بد ان انبه ان الدليل C:\WINDOWS\msagent\chars\merlin.acs
    لا بد ان يكون موجود مع التركيز على اسم المساعد .


    و في حدث النقر على القائمة أكتب التالي :

    كود:
    Private Sub List1_Click()
    Genie.Play List1.Text
    End Sub

    وذلك من اجل التنقل بين حركات المساعد .
     
  6.   مشاركة رقم : 4    ‏2005-05-08
  7. yemen_ghost

    yemen_ghost عضو متميّز

    التسجيل :
    ‏2004-07-03
    المشاركات:
    1,456
    الإعجاب :
    0
    سؤال : أستطيع إفراغ سلة المحذوفات من برنامجي ؟
    الجواب :

    لهذه العملية نحن في حاجة لتعريف الدالة التالية في موديول


    كود:
    Public  Declare Function SHEmptyRecycleBin Lib shell32.dll Alias SHEmptyRecycleBinA (ByVal hwnd As Long ByVal pszRootPath As String ByVal dwFlags As Long) As Long
    Private Declare Function SHUpdateRecycleBinIcon Lib shell32.dll () As Long

    بعد ذلك قم بتوضيع زر كوماند و أكتب فية التالي :


    كود:
    Private Sub Command1_Click()
    SHEmptyRecycleBin Me.hwnd vbNullString 0
    SHUpdateRecycleBinIcon
    End Sub
    وبذلك تفرغ سلة المحذوفات .
     
  8.   مشاركة رقم : 5    ‏2005-05-08
  9. yemen_ghost

    yemen_ghost عضو متميّز

    التسجيل :
    ‏2004-07-03
    المشاركات:
    1,456
    الإعجاب :
    0
    سؤال : كيف أستطيع حساب الفرق بين تاريخين باليوم ؟
    الجواب :
    سنقوم بعمل زر بعد الضغط علية ستنتج رسالة ادخال التاريخ لدينا
    و سيتم حساب الفلاق بين تاريخ اليوم و التاريخ المدخل :

    قم بوضع زر و أكتب الكود التالي :



    كود:
    Private Sub Command1_Click()
    Dim TheDate As Date
    Dim Msg
    TheDate = InputBox("أدخل التاريخ")
    Msg = "الفرق بين التاريخين هو: " & DateDiff("d", Now, TheDate)
    MsgBox Msg
    
    End Sub
    
     
     
  10.   مشاركة رقم : 6    ‏2005-05-08
  11. yemen_ghost

    yemen_ghost عضو متميّز

    التسجيل :
    ‏2004-07-03
    المشاركات:
    1,456
    الإعجاب :
    0
    سؤال : كيف أقوم بعرض التاريخ بطريقة محددة غير تللك الموجودة بالنظام ؟
    الجواب :

    من خلال إستخدام الدالة fomat

    وهذه الدالة مفيدة جدا عندما تريد ان تجعل التاريخ على شكل معين تريده


    الشكل العام للدالة


    كود:
    Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

    حيث أن بارامترات الدالة هي :

    1 - expression وهي القيمة المدخلة المراد تشكيلها
    2 - format وهو الشكل الجديد المطلوب للقيمة المدخلة
    3 - firstdayofweek وهو اختياري وهو لتحديد يوم البدء للأسبوع مثل
    المسلمين بداية الأسبوع لهم السبت .... وهكذا وله القيم التالية :
    1 الأحد , 2 الأثنين , 3 الثلاثاء .... الخ
    4 - firstweekofyear وهو اختياري وهو لتحديد الأسبوع الأول في العام وهو غير مهم .



    و كمثال على الدالة


    كود:
    Dim MyTime, MyDate, MyStr
    MyTime = #5:04:23 PM#
    MyDate = #1/27/1993#
    
    MyStr = Format(Time, "Long Time")
    MyStr = Format(Date, "Long Date")
    MyStr = Format(MyTime, "h:m:s")
    MyStr = Format(MyTime, "hh:mm:ss AMPM")
    MyStr = Format(MyDate, "dddd, mmm d yyyy")
    MyStr = Format(23)
    MyStr = Format(5459.4, "##,##0.00")
    MyStr = Format(334.9, "###0.00")
    MyStr = Format(5, "0.00%")
    MyStr = Format("HELLO", "<")
    MyStr = Format("This is it", ">")
     
  12.   مشاركة رقم : 7    ‏2005-05-08
  13. yemen_ghost

    yemen_ghost عضو متميّز

    التسجيل :
    ‏2004-07-03
    المشاركات:
    1,456
    الإعجاب :
    0
    سؤال : كيف اقوم بالتأكد من أن النستخدم قام بإدخال تاريخ أم لا ؟
    الجواب :

    من خلال دالة فحص التاريخ Isdate

    وهذه الدالة ترجع بقيمة Boolean لها القيمة true إذا كان ناتج الفحص تاريخ و false غذا كان ناتج الفحص ليس تاريخ


    مثال على الدالة


    كود:
    If IsDate(Text1.Text) Then
    MsgBox "نعم هذا تاريخ"
    Else
    MsgBox "لا هذا ليس تاريخ"
    End If
     
  14.   مشاركة رقم : 8    ‏2005-05-08
  15. yemen_ghost

    yemen_ghost عضو متميّز

    التسجيل :
    ‏2004-07-03
    المشاركات:
    1,456
    الإعجاب :
    0
    سؤال : كيف أقوم بربط برنامج بعرض فلاشي من نوع swf ؟
    الجواب :

    من أجل ربط برنامجك بملف فلاشي سنفترض أن الملف في مسار البرنامج و
    اسم الملف هو Myflash و تتبع نعي التالي :

    1 - قم بأضافة الأداة التالية shock wave flash و ذلك من القائمة component .
    2 - قم بإدراج الأداة في الفورم بالحجم الذي تراة مناسب .
    3 - اضف خمسة أزرار أوامر command button من اجل احاظة كل الحركات .
    الزر الأول تشغيل
    الزر الثاني الأمام
    الزر الثالث الخلف
    الزر الرابع تكبير
    الزر الخامس تصغير

    في قسم التعاريف العامة عرف المتغيرات التالية :


    كود:
    Private Sub ShockwaveFlash2_FSCommand(ByVal command As String, ByVal args As String) 
    If (command = "Zoom") Then 
    ShockwaveFlash1.Zoom (args) 
    Else 
    MsgBox (args) 
    End If 
    End Sub

    في حدث التحميل للفورم Form_Load نضع هذا الكود




    كود:
    Private Sub Form_Load() 
    ShockwaveFlash1.Movie = App.Path + "\Myflash.swf" 
    End Sub 
    وفي حداث زر التشغيل نكتب

    كود:
    Private Sub command1_Click() 
    ShockwaveFlash1.GotoFrame (0) 
    ShockwaveFlash1.Play 
    End Sub 
    وفي حدث زر للأمام نكتب

    كود:
    Private Sub command2_Click() 
    ShockwaveFlash1.Forward 
    End Sub 

    وفي حدث زر للخلف نكتب

    كود:
    Private Sub command3_Click() 
    ShockwaveFlash1.Back 
    End Sub

    وفي حدث زر التكبير نكتب

    كود:
    Private Sub command4_Click() 
    ShockwaveFlash1.Zoom (50) 
    End Sub

    وفي حدث زر التصغير نكتب

    كود:
    Private Sub command5_Click() 
    ShockwaveFlash1.Zoom (200) 
    End Sub
    و هكذا تم ربط ملفك الفلاشي.
     
  16.   مشاركة رقم : 9    ‏2005-05-08
  17. yemen_ghost

    yemen_ghost عضو متميّز

    التسجيل :
    ‏2004-07-03
    المشاركات:
    1,456
    الإعجاب :
    0
    و انتظرو المزيد من الدروس التطبيقية ..

    تحياتي
     
  18.   مشاركة رقم : 10    ‏2005-05-09
  19. yemen_ghost

    yemen_ghost عضو متميّز

    التسجيل :
    ‏2004-07-03
    المشاركات:
    1,456
    الإعجاب :
    0
    لا ردود و لا تفاعل الى حد الان ....

    اريد اعرف رايكم بهذة الطريقة في الدروس


    و بسم الله نواصل
     

مشاركة هذه الصفحة