المجلس اليمني ... يمن واحد وآراء متعددة
::  قوانين المنتدى  |   طلب رقم التنشيط   |   تنشيط العضوية  |  استعادة كلمة المرور
العودة   المجلس اليمني :: العلمية والتقنية :: الكمبيـوتر والانتـرنت :: المواقع ولغات البرمجة والشبكات
|
 
أدوات الموضوع
قديم 08-05-2005, 12:42 PM   مشاركة رقم : 1
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 03-07-2004
المشاركات: 1,462

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

بسم الله الرحمن الرحيم

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

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

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

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

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

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

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



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

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

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

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

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

كود:
Set db = OpenData****(App.Path & "\ Mydb.mdb")
Set rs = db.OpenRecordset("student", dbOpenDynaset)
وبهذا تكون قاعدة البيانات قد ربطت برمجيا .

  رد مع اقتباس
قديم 08-05-2005, 12:44 PM   مشاركة رقم : 2
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 03-07-2004
المشاركات: 1,462

افتراضي

سؤال : كيف أقوم بربط قاعدة بيانات من نوع 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

وبهذا تكون قاعدة البيانات قد ربطت برمجيا .

  رد مع اقتباس
قديم 08-05-2005, 12:47 PM   مشاركة رقم : 3
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 03-07-2004
المشاركات: 1,462

افتراضي

سؤال : كيف أقوم بريط برنامجي بمساعد الأوفس ؟
الجواب :

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

كود:
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

وذلك من اجل التنقل بين حركات المساعد .

  رد مع اقتباس
قديم 08-05-2005, 12:48 PM   مشاركة رقم : 4
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 03-07-2004
المشاركات: 1,462

افتراضي

سؤال : أستطيع إفراغ سلة المحذوفات من برنامجي ؟
الجواب :

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


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

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


كود:
Private Sub Command1_Click()
SHEmptyRecycleBin Me.hwnd vbNullString 0
SHUpdateRecycleBinIcon
End Sub
وبذلك تفرغ سلة المحذوفات .

  رد مع اقتباس
قديم 08-05-2005, 12:50 PM   مشاركة رقم : 5
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 03-07-2004
المشاركات: 1,462

افتراضي

سؤال : كيف أستطيع حساب الفرق بين تاريخين باليوم ؟
الجواب :
سنقوم بعمل زر بعد الضغط علية ستنتج رسالة ادخال التاريخ لدينا
و سيتم حساب الفلاق بين تاريخ اليوم و التاريخ المدخل :

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



كود:
Private Sub Command1_Click()
Dim TheDate As Date
Dim Msg
TheDate = InputBox("أدخل التاريخ")
Msg = "الفرق بين التاريخين هو: " & DateDiff("d", Now, TheDate)
MsgBox Msg

End Sub

  رد مع اقتباس
قديم 08-05-2005, 12:52 PM   مشاركة رقم : 6
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 03-07-2004
المشاركات: 1,462

افتراضي

سؤال : كيف أقوم بعرض التاريخ بطريقة محددة غير تللك الموجودة بالنظام ؟
الجواب :

من خلال إستخدام الدالة 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", ">")

  رد مع اقتباس
قديم 08-05-2005, 12:53 PM   مشاركة رقم : 7
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 03-07-2004
المشاركات: 1,462

افتراضي

سؤال : كيف اقوم بالتأكد من أن النستخدم قام بإدخال تاريخ أم لا ؟
الجواب :

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

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


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


كود:
If IsDate(Text1.Text) Then
MsgBox "نعم هذا تاريخ"
Else
MsgBox "لا هذا ليس تاريخ"
End If

  رد مع اقتباس
قديم 08-05-2005, 12:57 PM   مشاركة رقم : 8
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 03-07-2004
المشاركات: 1,462

افتراضي

سؤال : كيف أقوم بربط برنامج بعرض فلاشي من نوع 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
و هكذا تم ربط ملفك الفلاشي.

  رد مع اقتباس
قديم 08-05-2005, 12:58 PM   مشاركة رقم : 9
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 03-07-2004
المشاركات: 1,462

افتراضي

و انتظرو المزيد من الدروس التطبيقية ..

تحياتي

  رد مع اقتباس
قديم 09-05-2005, 09:34 AM   مشاركة رقم : 10
عضو متميّز
 
لا توجد صورة

 
تاريخ التسجيل: 03-07-2004
المشاركات: 1,462

افتراضي

لا ردود و لا تفاعل الى حد الان ....

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


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

  رد مع اقتباس
إضافة رد

أدوات الموضوع

الانتقال السريع :::

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.