الســـلام عليكم ورحمة الله وبركاته
إخــوانى الأعضــاء الكــرام , كيــف حال الجميــع
أســأل الله العظيـم أن تكــونوا فى أفضــل حال كمــا أســأله تـعالى التوفيق اليــنا والى الجميــع ... آمـــين
Create DLL Files
Dynamic Link Libraries
(مكــتبات الأرتــباط الحيــوي)
[color=yellow]اليــــوم بأذن الله سنــتعلم معــاً كيفية صــناعة ملفــات الــ DLL حيث نتــعرف على كيفية صنــاعةالأجــراءات والدوال التى نتــعامل منعها نــحن أثنــاء العمــل البرمجى حيث أن الدوال ما هى الى إجــراءات تـابعة الى احدى ملـفات الـ DLL وبمجرد أن نقوم بكتابتها وتـعريف الـ Parameter الخــاص بــها تقوم بواجــبها معــنا تماماً دون أدنى مُشكــلة وهــذا مـا سنــقوم بعمــله معــاً بإذن الله[/color]
:: وحـــد الله ::
وكــما عودتكم دائــماً فسيــكون شــرحنا شــرحاً عملــياً وليــكن نقوم الأن بصــناعة ملف DLL يحتوى على إجــراء يــقوم بتعبــئة أداة ComboBox ببيـانات حـقل فى جـدول داخــل قــاعدة بيانات فنــبدأ بســم الله
أولاً قُــم بفتــح مشــروع جديد من خلال Visual Basic 6.0 وقــم بإخــيار نوع المشــروع ActiveX DLL كمــا هو مــُوضح بالصــورة الـتالية
الأن ســتجد أنه تــم فتح مشــروع جديد وســتجد هنــاك Class Module تــم إنــشاءه تـلقائية ( حيــث أن ذلك الـ Class هو الذى ســوف يحمــل جميــع الأجراءات التى سنــقوم بأنشــاءها والتى سوف تكون على شكــل دوال عند إســتخدام الملف داخل مشــروع مُعين ) الأن قُـم بتســمية المشــروع وكذلك الـ Class من خلال الخـاصية Name كمـا يـلي
Project1 = FillComboBox
Class1 = Actions
لتُصـبح الأســماء كمـا مُوضح بالصــورة الـتالية :
الأن قـم بحــفظ المشــروع فى مجــلد جديد .
وبمــا أن الأجــراء سيقوم بتعبـئة اداة الـ ComboBox ببيانات جــدول إذن فمن الطبيعى أننا ســوف نحــتاج الى مكتبة ربط قواعد البيانات لذا سنــقوم بتـعريف مكــتبة الـ ADO عن طريق التــالى :
من قــائمة Project ومنـها الى Reference ثم نخــتار المكتبة :
Microsoft ActiveX Data Object 2.8 Library
كمــا هو مُوضــح بالصــورة الـتالية
اولاً قـبل أن أبــدأ فى البرمجــة يجـب عليك أن تـعلم أن الأمــر لا يحــتاج سوى فكــرة واحدة وهى التــعويض عن قيمة مُتــغير مُعــلن عنه كـParameter بقــيمة الكـائن الذى ســوف يُنســب اليـه .. أعـلم أن الكلــمة ليســت مفهــومة بشكــل جيد ولكن ضــعها فى ذهــنك ســتتذكرها خلال قراءتك حيــنما تُرســم البســمة على وجهــك ممـا يدل على فهــمك للأمــر
الأن قــم بفتح الــ Class الذى بأســم Actions وقــم بالــتالى :
أولاً سنقــوم بالأعلان عن إجـراء جديد والذى ســوف يكون هذا الأجـراء هو الدالة التى ســتظهر للمُستــخدم ببارامتراتها ويتــعامل معها طبيعى جدا وسنــقوم بوضــع الـ Parameter الذى سيكون مُتمثل فى الصــورة التـالية
والأن الى بــبدأ بكــتابة إســم الأجــراء وكــذلك الـ Parameter الخـاص بهــا كالتـالي :
Public Sub FillCombo(CmbBox As Variant, dbPath As String, TblName As String, FldName As String)
End Sub
=yellow]]
إذن فـالأن هذا أســم الدالة التى ســكون بداخل المكتبة وكذلك أمامك الـ Parameter الخاص بها الذى ســوف يقوم المُســخدم بكتابته حتى يُنفذ الأمـتر طبيعى جــدا حيــث أنه سيـقوم أولاً بكتابة إســم الأداة (CmbBox) وبعد فاصلة يقوم بكتابة مسـار قاعدة البيانات (dbPath) وبعد فاصلة إســم الجدول (Tblname) وبعد فاصلى أخيراه إســم الحقل (FldName) .
والأن الى كــتابة كــود الدالة كمــا يلى d]size]:
Public Sub FillCombo(CmbBox As Variant, dbPath As String, TblName As String, FldName As String)
Dim Cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim StrCon, SQL As String
'----------------------------
StrCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & dbPath
If Cn.State = 1 Then Cn.Close
Cn.Open StrCon
'----------------------------
SQL = "Select * From" & " " & TblName
If Rs.State = 1 Then Rs.Close
Rs.Open SQL, Cn, adOpenForwardOnly, adLockOptimistic
'----------------------------
Rs.MoveFirst
CmbBox.Clear
Do While Not Rs.EOF = True
CmbBox.AddItem Rs(FldName).Value
Rs.MoveNext
Loop
'----------------------------
Set Cn = Nothing
Set Rs = Nothing
----------------------------
شــرح الكــود :
1 – قُمنــا بالأعلان عن مُتـغير من نــوع Connection ليحمل إتـصال قادة البيانات .
2 – قُمنــا بالأعلان عن مُتـغير من نوع RecordSet ليحمل الجدول الذى بالقاعدة .
3 – وأخـيراً الأعلان عن متغيرين من نوع String أولـهما سيـحمل نـص الأتصـال بالقاعدة الا وهو StrCon والأخر بأســم SQL ليحمل جمـلة الأســتعلام التى سـوف تقوم بربط الجدول مع المتغير Rs .
4 – قمنـا بكتابه نـص الأتصــال الا فقـط جزئية مســار القاعدة فهذه متروكة للمســتخدم طبــعاً وقمنا طبعا بالتوعويض عنـها بالمتغير dbPath حيث أن المستخدم سيكتب فى ذلك الـ Parameter مســار القاعدة .
5 – تحــققنا من حــالة إتصــال القاعدة ففى حــالة وجودها مُتـصلة يتم إغلاق الأتصــال .
6 – قـُمنــا بفتح قاعدة البيانات مُســخدمين طبعا جملة الأتصــال والتى إنتُســبت الى المتغير dbPath .
7 – قُمنــا بكتابة جملة الأســتعلام التى سوف يحملها المتغير SQL بخلاف فقط ايضاً أســم الجدول فإن ذلك سيكون متروك للمستخدم وتم التعويض عنه طبعاً بالمُتـغير TblName الا وهو الـ Parameter الخاص بأســم الجدول فى الدالة .
8 – تحـتققنا أيضــاً من حالة إتصــال الجدول .
9 – قُمنــا بفتح الجدول مُســخدمين جملة الأســتعلام التى يحملها المُتغير SQL .
10 – قُمـــنا بإيقاف مؤشــر الجدول على أول ســجل .
11 – قمنــا بتفريغ اداة الـ ComboBox والمُعوض عنــها طبــعاً بالمُتــغير CmbBox اى أن CmbBox يُعتبر لديــنا أداة ComboBox حيث ان المتغير سيتم التعويض عنه بالـ Parameter الخاص به فى الدالة .
12 – البـدء بحلــقة تنتهى عند وجود المؤشر فى نهاية الجدول (الا وهو Rs) .
13 – إضــافة عُنصــر داخل الـ ComboBox الا وهو CmbBox بقيمة الحقل FldName المُعوض عنه بأســم الحقل طبعا التابع الى الجدول Rs .
14 – إنتــقال المؤشــر الى السجل التالى .
15 – وأخيراً إنــهاء الحلقة بجملة Loop .
16 – إنــهاء عمل متغير إتصــال القاعدة .
17 – إنــهاء عمــل متغير إتصــال الجدول .
ودمــتم ......
بذلك قد إنتــهينا من إنشــاء الدالة التى ســوف تكون بداخل الملف FillComboBox والان الى إســتخراج الملف كـ DLL Library فبكــل بســاطة قـم بالنقــر على قائمة File وإخــتار منها Make FillComboBox.dll كمــا هو مُوضــح بالصــورة التالية
ثـم قـم بأخـتيار مكـان حـفظ المــلف ســتجده مُنـيراً أمــام عينيك فى المكــان الذى قُمت بتحديده له كالصــورة التالية
((قــل الحمد لله حمــداً كــثيراً كبــيراً عـالياً طيبــاً مُباركــاً فيه , حمــداً لك إلـهى كمــا ينبــغى لجلال وجــهك وعظيــم سُــلطانك ))
والان الى اللحـظة التى تنتظـرها لنُجرب مكتبتنا ..
أولاً قــم بأنشــاء قاعدة بيانات بأســم MyData وكذلك قُم بأنشــاء جدول وليكن بأسـم TabData وكذلك حـقل بأســم UsrName قُم بحــفظ القاعدة فى مجلد جديد .
ثانياً قُم بفتـح مشروع جديد وإختار النوع القياسى العادى (Standard EXE) ثــم قُم بأضــافة Form وأضف عليها أداة ComboBox وكذلك CommandButton
قــم بتسمية الأدوات على النحــو التالى :
Combo1 = cmbName
Command1 = cmdFill
قـم بتعريف مكــتبتنا التى قُمنـا بأنشــاءها مـعاً عن طريق التالى :
من قـائمة Project ومنــها الى Reference ثــم أضغظ على الزر Browse وستجد صندوق حــوار أمـامك إذهب الى المجلد الى قمت بحفظ المكتبة فيه أختـار منه المكتبة (FillComboBox.dll) ثم إضغط Ok ستجد المكتبة مُنيره أمام عينيك داخل الـ Reference كمــا هو مثضــح بالصــورة التالية
الأن اذهب الى الحدث General مُســرعاً وأكتب الكود التالى :
Dim Fc As New FillComboBox.Actions
بذلك عوضنا عن المتغير Fc بأجراءات المكتبة والان افتح الحدث Click للـ CommandButton واكتب فقط Fc ثم دوت ستجد الدالة التى قمنا بأنشــاءها معاً أمامك بأسم FillCombo ثم قم مســافة ســتجد الـ Parameter مُضـئ أمام عينيك كمــا بالصورة التالية :
*
والان كمــا يُخبرك الـ Parameter قم بكتابة اسم الأداة , مسار القاعدة , اسم الجدول , اسم الحقل
مثــل الكود التالى :
Private Sub cmdFill_Click()
Fc.FillCombo cmbName, "MyData.mdb", "TabData", "UsrName"
End Sub
الأن قـم بتشــغيل المشــروع وتمتع برؤية ما قُمت بعمله يا بطــل ..
والأن الى التحميــل :
لتحمــيل سورس الأداة التى قمــنا بأنشــاءها :
http://www.4shared.com/file/19351248...ll_Source.html
لتحمــيل المثــال الذى قمنــا به معــاً :
http://www.4shared.com/file/19351964...l_Example.html
وفى النــهاية أســأل الله العظيــم أن أكون قـد وُفقت فى تفصــيل الأمــر لك حتى يضــهر بالصـورة التى أتمناها , كمــا أســأله تعالى أن يــكتب الينا واليكم الـتوفيق
ولا تنســونى من صــالح دعــائكم لـي ولوالدي
إخــوانى الأعضــاء الكــرام , كيــف حال الجميــع
أســأل الله العظيـم أن تكــونوا فى أفضــل حال كمــا أســأله تـعالى التوفيق اليــنا والى الجميــع ... آمـــين
Create DLL Files
Dynamic Link Libraries
(مكــتبات الأرتــباط الحيــوي)
[color=yellow]اليــــوم بأذن الله سنــتعلم معــاً كيفية صــناعة ملفــات الــ DLL حيث نتــعرف على كيفية صنــاعةالأجــراءات والدوال التى نتــعامل منعها نــحن أثنــاء العمــل البرمجى حيث أن الدوال ما هى الى إجــراءات تـابعة الى احدى ملـفات الـ DLL وبمجرد أن نقوم بكتابتها وتـعريف الـ Parameter الخــاص بــها تقوم بواجــبها معــنا تماماً دون أدنى مُشكــلة وهــذا مـا سنــقوم بعمــله معــاً بإذن الله[/color]
:: وحـــد الله ::
وكــما عودتكم دائــماً فسيــكون شــرحنا شــرحاً عملــياً وليــكن نقوم الأن بصــناعة ملف DLL يحتوى على إجــراء يــقوم بتعبــئة أداة ComboBox ببيـانات حـقل فى جـدول داخــل قــاعدة بيانات فنــبدأ بســم الله
أولاً قُــم بفتــح مشــروع جديد من خلال Visual Basic 6.0 وقــم بإخــيار نوع المشــروع ActiveX DLL كمــا هو مــُوضح بالصــورة الـتالية
الأن ســتجد أنه تــم فتح مشــروع جديد وســتجد هنــاك Class Module تــم إنــشاءه تـلقائية ( حيــث أن ذلك الـ Class هو الذى ســوف يحمــل جميــع الأجراءات التى سنــقوم بأنشــاءها والتى سوف تكون على شكــل دوال عند إســتخدام الملف داخل مشــروع مُعين ) الأن قُـم بتســمية المشــروع وكذلك الـ Class من خلال الخـاصية Name كمـا يـلي
Project1 = FillComboBox
Class1 = Actions
لتُصـبح الأســماء كمـا مُوضح بالصــورة الـتالية :
الأن قـم بحــفظ المشــروع فى مجــلد جديد .
وبمــا أن الأجــراء سيقوم بتعبـئة اداة الـ ComboBox ببيانات جــدول إذن فمن الطبيعى أننا ســوف نحــتاج الى مكتبة ربط قواعد البيانات لذا سنــقوم بتـعريف مكــتبة الـ ADO عن طريق التــالى :
من قــائمة Project ومنـها الى Reference ثم نخــتار المكتبة :
Microsoft ActiveX Data Object 2.8 Library
كمــا هو مُوضــح بالصــورة الـتالية
اولاً قـبل أن أبــدأ فى البرمجــة يجـب عليك أن تـعلم أن الأمــر لا يحــتاج سوى فكــرة واحدة وهى التــعويض عن قيمة مُتــغير مُعــلن عنه كـParameter بقــيمة الكـائن الذى ســوف يُنســب اليـه .. أعـلم أن الكلــمة ليســت مفهــومة بشكــل جيد ولكن ضــعها فى ذهــنك ســتتذكرها خلال قراءتك حيــنما تُرســم البســمة على وجهــك ممـا يدل على فهــمك للأمــر
الأن قــم بفتح الــ Class الذى بأســم Actions وقــم بالــتالى :
أولاً سنقــوم بالأعلان عن إجـراء جديد والذى ســوف يكون هذا الأجـراء هو الدالة التى ســتظهر للمُستــخدم ببارامتراتها ويتــعامل معها طبيعى جدا وسنــقوم بوضــع الـ Parameter الذى سيكون مُتمثل فى الصــورة التـالية
والأن الى بــبدأ بكــتابة إســم الأجــراء وكــذلك الـ Parameter الخـاص بهــا كالتـالي :
Public Sub FillCombo(CmbBox As Variant, dbPath As String, TblName As String, FldName As String)
End Sub
=yellow]]
إذن فـالأن هذا أســم الدالة التى ســكون بداخل المكتبة وكذلك أمامك الـ Parameter الخاص بها الذى ســوف يقوم المُســخدم بكتابته حتى يُنفذ الأمـتر طبيعى جــدا حيــث أنه سيـقوم أولاً بكتابة إســم الأداة (CmbBox) وبعد فاصلة يقوم بكتابة مسـار قاعدة البيانات (dbPath) وبعد فاصلة إســم الجدول (Tblname) وبعد فاصلى أخيراه إســم الحقل (FldName) .
والأن الى كــتابة كــود الدالة كمــا يلى d]size]:
Public Sub FillCombo(CmbBox As Variant, dbPath As String, TblName As String, FldName As String)
Dim Cn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim StrCon, SQL As String
'----------------------------
StrCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & dbPath
If Cn.State = 1 Then Cn.Close
Cn.Open StrCon
'----------------------------
SQL = "Select * From" & " " & TblName
If Rs.State = 1 Then Rs.Close
Rs.Open SQL, Cn, adOpenForwardOnly, adLockOptimistic
'----------------------------
Rs.MoveFirst
CmbBox.Clear
Do While Not Rs.EOF = True
CmbBox.AddItem Rs(FldName).Value
Rs.MoveNext
Loop
'----------------------------
Set Cn = Nothing
Set Rs = Nothing
----------------------------
شــرح الكــود :
1 – قُمنــا بالأعلان عن مُتـغير من نــوع Connection ليحمل إتـصال قادة البيانات .
2 – قُمنــا بالأعلان عن مُتـغير من نوع RecordSet ليحمل الجدول الذى بالقاعدة .
3 – وأخـيراً الأعلان عن متغيرين من نوع String أولـهما سيـحمل نـص الأتصـال بالقاعدة الا وهو StrCon والأخر بأســم SQL ليحمل جمـلة الأســتعلام التى سـوف تقوم بربط الجدول مع المتغير Rs .
4 – قمنـا بكتابه نـص الأتصــال الا فقـط جزئية مســار القاعدة فهذه متروكة للمســتخدم طبــعاً وقمنا طبعا بالتوعويض عنـها بالمتغير dbPath حيث أن المستخدم سيكتب فى ذلك الـ Parameter مســار القاعدة .
5 – تحــققنا من حــالة إتصــال القاعدة ففى حــالة وجودها مُتـصلة يتم إغلاق الأتصــال .
6 – قـُمنــا بفتح قاعدة البيانات مُســخدمين طبعا جملة الأتصــال والتى إنتُســبت الى المتغير dbPath .
7 – قُمنــا بكتابة جملة الأســتعلام التى سوف يحملها المتغير SQL بخلاف فقط ايضاً أســم الجدول فإن ذلك سيكون متروك للمستخدم وتم التعويض عنه طبعاً بالمُتـغير TblName الا وهو الـ Parameter الخاص بأســم الجدول فى الدالة .
8 – تحـتققنا أيضــاً من حالة إتصــال الجدول .
9 – قُمنــا بفتح الجدول مُســخدمين جملة الأســتعلام التى يحملها المُتغير SQL .
10 – قُمـــنا بإيقاف مؤشــر الجدول على أول ســجل .
11 – قمنــا بتفريغ اداة الـ ComboBox والمُعوض عنــها طبــعاً بالمُتــغير CmbBox اى أن CmbBox يُعتبر لديــنا أداة ComboBox حيث ان المتغير سيتم التعويض عنه بالـ Parameter الخاص به فى الدالة .
12 – البـدء بحلــقة تنتهى عند وجود المؤشر فى نهاية الجدول (الا وهو Rs) .
13 – إضــافة عُنصــر داخل الـ ComboBox الا وهو CmbBox بقيمة الحقل FldName المُعوض عنه بأســم الحقل طبعا التابع الى الجدول Rs .
14 – إنتــقال المؤشــر الى السجل التالى .
15 – وأخيراً إنــهاء الحلقة بجملة Loop .
16 – إنــهاء عمل متغير إتصــال القاعدة .
17 – إنــهاء عمــل متغير إتصــال الجدول .
ودمــتم ......
بذلك قد إنتــهينا من إنشــاء الدالة التى ســوف تكون بداخل الملف FillComboBox والان الى إســتخراج الملف كـ DLL Library فبكــل بســاطة قـم بالنقــر على قائمة File وإخــتار منها Make FillComboBox.dll كمــا هو مُوضــح بالصــورة التالية
ثـم قـم بأخـتيار مكـان حـفظ المــلف ســتجده مُنـيراً أمــام عينيك فى المكــان الذى قُمت بتحديده له كالصــورة التالية
((قــل الحمد لله حمــداً كــثيراً كبــيراً عـالياً طيبــاً مُباركــاً فيه , حمــداً لك إلـهى كمــا ينبــغى لجلال وجــهك وعظيــم سُــلطانك ))
والان الى اللحـظة التى تنتظـرها لنُجرب مكتبتنا ..
أولاً قــم بأنشــاء قاعدة بيانات بأســم MyData وكذلك قُم بأنشــاء جدول وليكن بأسـم TabData وكذلك حـقل بأســم UsrName قُم بحــفظ القاعدة فى مجلد جديد .
ثانياً قُم بفتـح مشروع جديد وإختار النوع القياسى العادى (Standard EXE) ثــم قُم بأضــافة Form وأضف عليها أداة ComboBox وكذلك CommandButton
قــم بتسمية الأدوات على النحــو التالى :
Combo1 = cmbName
Command1 = cmdFill
قـم بتعريف مكــتبتنا التى قُمنـا بأنشــاءها مـعاً عن طريق التالى :
من قـائمة Project ومنــها الى Reference ثــم أضغظ على الزر Browse وستجد صندوق حــوار أمـامك إذهب الى المجلد الى قمت بحفظ المكتبة فيه أختـار منه المكتبة (FillComboBox.dll) ثم إضغط Ok ستجد المكتبة مُنيره أمام عينيك داخل الـ Reference كمــا هو مثضــح بالصــورة التالية
الأن اذهب الى الحدث General مُســرعاً وأكتب الكود التالى :
Dim Fc As New FillComboBox.Actions
بذلك عوضنا عن المتغير Fc بأجراءات المكتبة والان افتح الحدث Click للـ CommandButton واكتب فقط Fc ثم دوت ستجد الدالة التى قمنا بأنشــاءها معاً أمامك بأسم FillCombo ثم قم مســافة ســتجد الـ Parameter مُضـئ أمام عينيك كمــا بالصورة التالية :
*
والان كمــا يُخبرك الـ Parameter قم بكتابة اسم الأداة , مسار القاعدة , اسم الجدول , اسم الحقل
مثــل الكود التالى :
Private Sub cmdFill_Click()
Fc.FillCombo cmbName, "MyData.mdb", "TabData", "UsrName"
End Sub
الأن قـم بتشــغيل المشــروع وتمتع برؤية ما قُمت بعمله يا بطــل ..
والأن الى التحميــل :
لتحمــيل سورس الأداة التى قمــنا بأنشــاءها :
http://www.4shared.com/file/19351248...ll_Source.html
لتحمــيل المثــال الذى قمنــا به معــاً :
http://www.4shared.com/file/19351964...l_Example.html
وفى النــهاية أســأل الله العظيــم أن أكون قـد وُفقت فى تفصــيل الأمــر لك حتى يضــهر بالصـورة التى أتمناها , كمــا أســأله تعالى أن يــكتب الينا واليكم الـتوفيق
ولا تنســونى من صــالح دعــائكم لـي ولوالدي
الجمعة سبتمبر 16, 2011 12:05 am من طرف y2ss
» اسهل كتاب لتعليم الفيجوال بيسك 6 للمبتدئين
الخميس سبتمبر 01, 2011 4:28 pm من طرف hassan
» درس عمل متصفح Internet Explorer
الخميس سبتمبر 01, 2011 4:23 pm من طرف hassan
» دروة تعلم الفيجول بيسك من الصفر للاحتراف عربيه صوت وصوره
الخميس سبتمبر 01, 2011 4:20 pm من طرف hassan
» معلومات عن لغات البرمجة
الخميس سبتمبر 01, 2011 4:16 pm من طرف Admin
» التـعرف على ادوات عرض الملفات بشكل اوسع ...تطبيق مثال ..!
الخميس سبتمبر 01, 2011 4:15 pm من طرف Admin
» برنامج Visual Basic 2008 بحجم لا يتعدى 3 ميجا
الخميس سبتمبر 01, 2011 4:10 pm من طرف Admin
» اختراق الشبكات اللاسلكيه والحصول على اشتراكات مجانيه طريقه مجربه ومضمونه 90%
الأربعاء أغسطس 31, 2011 7:31 pm من طرف refland
» كيفية اختراق الشبكات الداخلية
السبت يونيو 25, 2011 12:22 am من طرف lhabib