الاداه msflexgrid

بسم الله الرحمن الرحيم
في هذه المشاركه البسيطه سوف نتطرق ان شاء الله بشي من التفصيل الي الاداه
خصائصها وبعض الاحداث Felex gride
Components اولا لاضافة الاداه الي النموذج نختار
ثم اختارProject من قائمة ​

Microsoft flexdrid control 6​



بعد وضع الاداه علي النموذج نشرع في شرح بعض الخصائص المهمه ​


اولا الخاصيه Righttoleft ​



القيمه الافتراضيه لهذه الخاصيه هي false ​




تستخدم هذه الخاصيه اذا كنت تريد استخدام الاده لتبدو الصفوف والاعمده ​

علي يمين الاداه . وتستخدم مع النصوص العربيه​



مثال​

msflexgrid1.RightToLeft =True​



الخاصيه cols الخاصيه rows ​



تستجدم هذه الخاصيه في التحكم في عدد الصفوف والاعمده في الجدول
وعند زيادة الصفوف والاعمده بعدد اكبر من ارتفاع وعرض الاداه فان ذلك سيؤدي
الي ظهور اشرطة تمرير في الاداه لتمكين المستخدم من رؤية باقي الصفوف والاعمده​


مثال​





Private Sub Form_Load()​

MSFlexGrid1.Rows = 5
MSFlexGrid1.Cols = 5
End Sub​


هذه الاوامر تودي الي زيادة عدد الصفوف والاعمد في الاداه الي 5
ويمكن ضبط الخصائص في وقت التصميم بالذهاب الي الخاصيه​


وكتابة العدد 5 امام الخاصيتينRows , cols ​



الخاصيتان FixedCols Fixedrows ​







تحددان عدد الاعمده والصفوف الثابته في الاداه القيمه الافتراضيه هي صف واحد
وعمود واحد. ويمكنك زياده الاعمده والصفوف الثابته او الغائها تماما في وقت التصميم
او وقت التشغيل . ولكن يجب ان يكون عدد الاعمده والصفوف في الاداه اكبر من عدد الاعمده والصفوف الثابته
والا حصلت عل خطأ اثناء تشغيل البرنامج​


مثال​




Private Sub Form_Load()
MSFlexGrid1.Cols = 5
MSFlexGrid1.Rows = 5
MSFlexGrid1.FixedCols = 2
MSFlexGrid1.FixedRows = 2​

End Sub ​




والان بعد ان تعرفنا علي كيفية زيادة الصفوف والاعمده سنتعرف علي
كيفية ملء خلايا الاداه بالنصوص التي نريدها. هناك عدة طرق لذلك
الطريقه الاولي استخدام الداله​





Textmatrix
هذه الداله تقوم بالكتابه الي الخليه المحدده. تحديد الخليه يكون بتقاطع الصف
والعمود.كما رأيت تتكون الاداه من اعمده وصفوف متقاطعه. تقاطع الاعمده
والصفوف هذا كون الخلايا او المربعات التي تراها داخل الاداه
فهذه الاداه عباره عن جدول به عدة اعمده وصفوف
فاذا اردت الكتابه الي ذلك الجدول الذي يمثل الاداه هنا فعليك تحديد الخليه المراد الكتابه اليها
فمثلا اذا اردنا الكتابه الي الخليه العلويه في الاداه. نحدد تقاطع العمود رقم 0 مع الصف رقم 0​



الصف الاول والعمود الاول في الاداه يبدا ن ب 0
مثال​




Private Sub Form_Load()​

MSFlexGrid1.TextMatrix(0, 0) = 100​

End Sub​



في هذا المثال كتبنا اسم الاداه ثم استعرضنا الي الداله
textmatrix
ثم حددنا الي الداله الصف رقم 0 والعمود رقم 0 ثم حددنا النص المراد
كتابته بعد اشارة الساواه = . واذا كان النص المراد كتابته عباره عن حروف
يجب وضعه بين علامتي تنصيص. ​



الطريقه الثانيه استخدام الخاصيه row​

والخا صيه col ثم تحديد تقاطع الصف والعمود​

ثم تحديد النص المراد كتابته بالخاصيهtext ​

​



مثال

​


Private Sub Form_Load()
MSFlexGrid1.Row = 0: MSFlexGrid1.Col = 0: MSFlexGrid1.Text = 88​



End Sub​



مثال أخر​



Private Sub Form_Load()
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = “demon”​


End Sub​


الطريقه الثالثه استخدام الوظيفه clip​



​


مثال

Private Sub Form_Load()​

MSFlexGrid1.Row = 0: MSFlexGrid1.Col = 0: MSFlexGrid1.Clip = "mohamed"
End Sub​

الان بعد ان تعرفنا الي كيفية ملء خلايا الاداه بالنصوص التي نريدها
نكمل شرح الخصائص المتبقيه​


الخاصيتان ا rowsel , colsel ​


وظيفة هاتين الخاصيتين هما انتقاء مجموعه متجاوره من الخلايا
انتقاء الخلايا يعني اختيار الخلايا لتبدو عند تشغيل البرنامج محدده دون غيرها من الخلايا
لاستخدام هذين الخاصيتين لا بد من تحديد نقطة بداية التحديد باستخدام الخاصيتين
Row , col ​



مثال​

Private Sub Form_Load()
MSFlexGrid1.Rows = 6
MSFlexGrid1.Cols = 6
MSFlexGrid1.Row = 2
MSFlexGrid1.Col = 2
MSFlexGrid1.RowSel = 4
MSFlexGrid1.ColSel = 4
End Sub​


AllowUserResizingالخاصيه ​


​


تتيح هذه الخاصيه للمستخدم تكبير عرض الاعمده فقط او ارتفاع الصفوف
فقط .أو عرض الاعمده وارتفاع الصفوف معا بزر الماوس عندما يضع الماوس
علي الحد الفاصل بين الاعمده والصفوف​


للسماح للمستخدم بتكبير عرض الاعمده فقط . أكتب هذا الكود ​




msflexgrid1.AllowUserResizing =flexResizeColumns​

للسماح للمستخدم بتكبير أرتفاع الصفوف فقط. اكتب هذا الكود​





msflexgrid1.AllowUserResizing =flexResizeRows​

للسماح للمستخدم بتكبير عرض الاعمده وأرتفاع الصفوف معا. أكتب هذا الكود
msflexgrid1.AllowUserResizing =flexResizeBoth​

لمنع المستخدم من تكبير عرض الاعمد وارتفاع الصفوف معا. أكتب هذا الكود​

MSFlexGrid1.AllowUserResizing =flexResizeNone​



الخاصيه ​

AllowBigSelection​



تتيح هذه الخاصيه للمستخدم تحديد عمود بالكامل أو صف​

بالكامل بنقر العمود أو الصف بالماوس​

MSFlexGrid1.AllowBigSelection =True​


FillStyle الخاصيه ​



هذه الخاصيه مرتبطه معها الخصائص التاليه ان شئت​


MSFlexGrid1.CellAlignment​

تحدد وضع النص داخل الخليه يمين أو يسار أو في الوسط وها 9 قيم
MSFlexGrid1.CellBackColor​

تحدد لون خليفية الاداه
MSFlexGrid1.CellFontBold​

تحدد عرض الخط في الخليه من عدمه
MSFlexGrid1.CellFontItalic
تحدد ميلان الخط في الخليه من عدمه
MSFlexGrid1.CellFontName​


تحدد اسم الخط داخل الاداه
MSFlexGrid1.CellFontSize
تحدد حجم الخط داخل الخليه
MSFlexGrid1.CellFontStrikeThrough​

تحدد الخط داخل الخليه هل يتخلله خط ام لا
MSFlexGrid1.CellFontUnderline
تحدد الخط داخل الخليه هل يكون تحته خط ام لا
MSFlexGrid1.CellFontWidth
تحدد عرض الخط داخل الخليه
MSFlexGrid1.CellForeColor​

تحدد لون الخط داخل الخليه
MSFlexGrid1.CellTextStyle​

تحدد شكل الخط داخل الخليه​

أذا أردت تطبيق كل هذه التأثيرات علي الاداه لابد من جعل الخاصيه​


fillstyle عند القيمه flexfillrepet​




مثال علي تطبيق التاثيرات علي خلايا الجدول​



Private Sub Form_Click()​

MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.RowSel = MSFlexGrid1.Rows - 1
MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1
MSFlexGrid1.FillStyle = flexFillRepeat
MSFlexGrid1.CellFontBold = True​

End Sub​



واذا أردت تطبيق هذه التأ ثيرات علي الخليه النشطه وحدها اجعل قيمه الخاصيه​


fillstyle عند القيمه fiexfillrepeat​




الخاصيه cellpicture ​


تمكنك هذه الخاصيه من وضع صوره في أي خليه من خلايا الاداه
Row , col الخاصيتين تحتاج الي استخدام ​

لتحيدد الخليه المراد وضع الصوره فيها. كما تحتاج الي استخدام الداله​


لتحديد ملف الصوره Loadpicture()​

مثال​

Private Sub Form_Load()​

MSFlexGrid1.CellPicture = LoadPicture("c:\big.bmp")​


End Sub​


الخاصيه ColWidth RowHeight الخاصيه ​


الخاصيه الاولي تحدد ارتفاع الصف والاخري عرض العمود​

تحتاج الي بيان رقم الصف الذي تريد زيادة ارتفاعه وكذلك بالنسبه للعمود​

هذه الخصائص ستحتاج الي استخدامها عندما تضيف صوره الي خليه ما​

فان الاداه لا تغير حجم الخليه تلقائيا​

مثال​

Private Sub Form_Click()
MSFlexGrid1.CellPicture = LoadPicture("c:\big\bmp")
MSFlexGrid1.RowHeight(0) = 1000
MSFlexGrid1.ColWidth(0) = 1000
End Sub​




AddItem الخاصيه ​


تمكنك هذه الخاصيه من اضافة صفوف جديده الي الاداه​

يمكنك وضع عنوان للصف فقط او ملء خللايا الصف الجديد كما في المثال التالي​


Private Sub Form_Click()
MSFlexGrid1.AddItem "bb"
MSFlexGrid1.AddItem "plural" & vbTab & "famous" & vbTab & " invitation"
End Sub​


الخاصيهFocusRect ​

​


تحدد هذه الخاصيه كبف سيكون شكل التحديد داخل الخليه . تحمل هذه الخاصيه ثلاثه قيم

flexfocusheavy تظهر هذه القيمه مستطيل سميك حول الخليه ​


flexfocuslihhtتظهر هذه القيمه مستطيل خفيف حول الخليه المحدده ​



​


flexFocusNoneلن تظهر هذه الخاصيه أي تحديد مميز حول الخليه


GridLines​



تتحكم هذه الخاصيه في كيفية ظهور الخطوط حول ​


الخلايا غير الثابته ولها اربعه قيم مابين ظهور الخطوط من عدمه حاول ان تستكشفها



تتحكم في سمك الخطوط GridLineWidth الخاصيه ​



GridLinesFixed الخاصيه ​



مثل الخاصيه السابقه غير انها تتحكم في ظهور الخطوط حول الخلايا الثابته​



RowHeightMin الخاصيه ​




تحدد الحد الادني لارتفاع الصفوف. تمنع بها المستخدم من تقليل ارتفاع الصفوف ال حد غير مناسب​

SelectionMode الخاصيه ​

تحدد كيفية تحديد الخلايا في الشبكه. ولها ثلاثه قيم​



flexSelectionByColumn القيمه ​

تمكن هذه القيمه المستخدم من تحديد العمود باكمله​



flexSelectionByRow القيمه ​


تمكن هذه الخاصيه المستخدم من تحديد صف باكمله​


flexSelectionFree القيمه ​



تمكن هذه القيمه المستخدم من تحديد أي خلايا في الاداه​


WordWrap الخاصيه ​

تتحكم في الالتفاف التلقائي للنص عند تغير عرض الاعمد وارتفاع الصفوف
وتاخذ fales او true​



BackColor الخاصيه ​

تحدد هذه الخاصيه لون الخلا يا الغير ثابته​


BackColorBkg الخاصيه ​

هذه الخاصيه تتحكم في لون المنطقه الخليفيه للاداه خارج نطاق الاعمده والصفوف​



BackColorFixed الخاصيه ​

تتحكم هذه الخاصيه في لون الخلايا الثابته​





BackColorSel الخاصيه ​

تتحكم هذه الخاصيه في لون الخليه النشطه. عندما ينقر المستخدم علي خليه معينه​


ForeColor الخاصيه ​

تتحكم في لون الخطوط داخل الخلايا غير الثابته​





ForeColorFixed الخاصيه ​

تتحكم في لون الخطوط داخل الخلايا الثابته ​


ForeColorSel الخاصيه ​


تتحكم هذه الخاصيه في لون خط الخليه النشطه.. عندما ينقر المستخدم علي الخليه​


GridColor الخاصيه ​



للون الخطوط داخل الخلايا الغير ثابته ​



GridColorFixed الخاصيه ​

للون الخطوط داخل الخلايا الثابته​




TextStyle الخاصيه ​




تتحكم هذه الخاصيه في شكل النص داخل الخلايا ولها اربعه
قيم .حاول تجربتها قيمه تلو الاخري للتعرف عليها اكثر​


Clear الوظيفه ​

تستطيع من خلال استعمال هذه الوظيفه مسح كل النصوص داخل خلايا الاداه​

MSFlexGrid1.Clear​




RemoveItem الوظيفه ​

هذه الوظيفه تمحو الصف الذي تحدده بين قوسيها​

في المثال الاتي نمحو الصف الثالث بأكمله​

MSFlexGrid1.RemoveItem (3)​






اهم احداث الاداه​

MSFlexGrid1_EnterCell​

يبدأ هذا الحدث عندما يتم نقر خليه من خلايا الجدول او عندما تستقبل الخليه التركيز​



Private Sub MSFlexGrid1_EnterCell()
MSFlexGrid1.FillStyle = flexFillRepeat
Dim A
(ادخل النص المراد اضافته الي الخليه)a=inputbox​

MSFlexGrid1.Text = A
End Sub​

MSFlexGrid1_LeaveCell الحدث ​


يبدأ هذا الحدث كلما فقدت الخليه التركيز​




Private Sub MSFlexGrid1_LeaveCell()
MSFlexGrid1.Text = ""
End Sub​

-
-
-
-​


استخدام الاداه للربط مع قاعده بيانات​

بعد كل هذه الخصائص المفيده هناك أستخدام مفيد لهذه الاداه. يختص​

بريط الاداه بقواعد البيانات واظهار حقول قاعدة البيا نات وماتحتويه من
صفوف في الاداه.​


لاستخدام الاداه لهذا الغرض .قم بوضع الاداه data​






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

علي جهازك. ثم قم بضبط الخاصيه​

مصد البيانات) للاداه )datasource​



مع اداة قاعدة البيانات flexgridبعد ذلك قم بتشغيل البرنامج​

تلاحظ ان خلايا الاداه امتلاْت بسجلات قاعدة البيانات
​
​



الاداه flexgrid أداه منضمه . الادوات المنضمه هي ادوات تحتوي علي الخاصيه


للربط مع قواعد البياناتdatafiled ; datasource ​



استخدام الوظيفه sort​


لفرز خلايا الاداه يتطلب استخدام sort تستخدم الوظيفه ​


هذه الوظيفه تحديد العمود الذي علي اساسه سيتم الفرز
بعد تحديد العمود يمكنك استخدام الوظيفه sortt ​

لتحديد خيارات الفرز . عند الارقام من 0 الي 9​

مثال​


Private Sub Command4_Click()​

MSflexgrid1.Col = 2
MSflexgrid1.Sort = 1​

End Sub​


البحث داخل الاداه ​

من المهارات التي لابد من اكتسابها عملية البحث داخل الاداه​

في هذه الجزئيه الاخيره سنعرض مثال يقوم بالبحث داخل​

الاداه عن نص معين . ثم نحاول التعرف علي سطوره
-
-
-​

Private Sub Command4_Click()
Dim a, b
MSFlexGrid1.FillStyle = flexFillRepeat
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 0
MSFlexGrid1.RowSel = MSFlexGrid1.Rows - 1
MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1
MSFlexGrid1.CellFontBold = False​

For a = 0 To MSFlexGrid1.Rows - 1
For b = 0 To MSFlexGrid1.Cols - 1
If InStr(MSFlexGrid1.TextMatrix(a, b), Text1.Text) Then
MSFlexGrid1.Row = a
MSFlexGrid1.Col = b
MSFlexGrid1.CellFontBold = True
End If
Next
Next​

End Sub​

في السطر الاول تم تعريف متغيرين لاستعمالهما في الدوارات في ما بعد​



بالقيمه 1. وذلك لجعل التأثيراتFillStyle السطر الثاني جعل الخاصيه ​


تنطبق علي كل خلايا الاداه ​

السطر الثالث الي السادس تقوم هذه السطور بتحديد كل خلايا الاداه​

لاجراء تأثيرلت عليها . فقد تم ضبط الخاصيتان​

MSFlexGrid1.Row = 0​

MSFlexGrid1.Col = 0​

عند 0 وذلك ليتم التحديد من اول خليه في صفوف الاداه​

وأول خليه في اعمدة الاداه . ثم استعمال السطران الخامس والسادس​

لتحديد كافة الخلايا في الاداه بواسطة الخاصيتان​

ColSel و RowSel​

اللتان تفيدان معرفة عدد الخلايا التي تريد تحديدها . فقد جعلناهما​

و MSFlexGrid1.Cols - 1
MSFlexGrid1.Cols - 1​




أي كافه خلايا صفوف الاداه وكافة خلايا اعمدة الاداه​

السطر السابع جعل خطوط الاداه غير عريضه
السطر الثامن والتاسع الدخول في حلقتين . واحده تدور حول صفوف​

الاداه. وواحده تدور حول أعمدة الاداه​


السطر العاشر استعمال الداله instr​



للبحث داخل الاداه​

. واستعمال شرط لذلك. بالعباره if ​

هذا الشرط يفيد في حين وجود تطابق للنص المراد البحث عنه​

جعل نص الخليه المطابقه اسود عريض . وهذا ما يحتوي عليه باقي السطور​

-
-
-
كانت هذه المشاركه البسيطه ارجو ان تفيدنا​

والله ولي التوفيق ​


​


 
عودة
أعلى