محمد القرشي
New Member
بسم الله الرحمن الرحيم
تحددان عدد الاعمده والصفوف الثابته في الاداه القيمه الافتراضيه هي صف واحد
في هذه المشاركه البسيطه سوف نتطرق ان شاء الله بشي من التفصيل الي الاداه
خصائصها وبعض الاحداث Felex gride
Components اولا لاضافة الاداه الي النموذج نختار
ثم اختارProject من قائمة
خصائصها وبعض الاحداث 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
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
MSFlexGrid1.Cols = 5
MSFlexGrid1.Rows = 5
MSFlexGrid1.FixedCols = 2
MSFlexGrid1.FixedRows = 2
End Sub
والان بعد ان تعرفنا علي كيفية زيادة الصفوف والاعمده سنتعرف علي
كيفية ملء خلايا الاداه بالنصوص التي نريدها. هناك عدة طرق لذلك
الطريقه الاولي استخدام الداله
كيفية ملء خلايا الاداه بالنصوص التي نريدها. هناك عدة طرق لذلك
الطريقه الاولي استخدام الداله
Textmatrix
هذه الداله تقوم بالكتابه الي الخليه المحدده. تحديد الخليه يكون بتقاطع الصف
والعمود.كما رأيت تتكون الاداه من اعمده وصفوف متقاطعه. تقاطع الاعمده
والصفوف هذا كون الخلايا او المربعات التي تراها داخل الاداه
فهذه الاداه عباره عن جدول به عدة اعمده وصفوف
فاذا اردت الكتابه الي ذلك الجدول الذي يمثل الاداه هنا فعليك تحديد الخليه المراد الكتابه اليها
فمثلا اذا اردنا الكتابه الي الخليه العلويه في الاداه. نحدد تقاطع العمود رقم 0 مع الصف رقم 0
هذه الداله تقوم بالكتابه الي الخليه المحدده. تحديد الخليه يكون بتقاطع الصف
والعمود.كما رأيت تتكون الاداه من اعمده وصفوف متقاطعه. تقاطع الاعمده
والصفوف هذا كون الخلايا او المربعات التي تراها داخل الاداه
فهذه الاداه عباره عن جدول به عدة اعمده وصفوف
فاذا اردت الكتابه الي ذلك الجدول الذي يمثل الاداه هنا فعليك تحديد الخليه المراد الكتابه اليها
فمثلا اذا اردنا الكتابه الي الخليه العلويه في الاداه. نحدد تقاطع العمود رقم 0 مع الصف رقم 0
الصف الاول والعمود الاول في الاداه يبدا ن ب 0
مثال
مثال
Private Sub Form_Load()
MSFlexGrid1.TextMatrix(0, 0) = 100
End Sub
في هذا المثال كتبنا اسم الاداه ثم استعرضنا الي الداله
textmatrix
ثم حددنا الي الداله الصف رقم 0 والعمود رقم 0 ثم حددنا النص المراد
كتابته بعد اشارة الساواه = . واذا كان النص المراد كتابته عباره عن حروف
يجب وضعه بين علامتي تنصيص.
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”
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
End Sub
الان بعد ان تعرفنا الي كيفية ملء خلايا الاداه بالنصوص التي نريدها
نكمل شرح الخصائص المتبقيه
نكمل شرح الخصائص المتبقيه
الخاصيتان ا rowsel , colsel
وظيفة هاتين الخاصيتين هما انتقاء مجموعه متجاوره من الخلايا
انتقاء الخلايا يعني اختيار الخلايا لتبدو عند تشغيل البرنامج محدده دون غيرها من الخلايا
لاستخدام هذين الخاصيتين لا بد من تحديد نقطة بداية التحديد باستخدام الخاصيتين
Row , col
انتقاء الخلايا يعني اختيار الخلايا لتبدو عند تشغيل البرنامج محدده دون غيرها من الخلايا
لاستخدام هذين الخاصيتين لا بد من تحديد نقطة بداية التحديد باستخدام الخاصيتين
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
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 =flexResizeBoth
لمنع المستخدم من تكبير عرض الاعمد وارتفاع الصفوف معا. أكتب هذا الكود
MSFlexGrid1.AllowUserResizing =flexResizeNone
الخاصيه
AllowBigSelection
تتيح هذه الخاصيه للمستخدم تحديد عمود بالكامل أو صف
بالكامل بنقر العمود أو الصف بالماوس
MSFlexGrid1.AllowBigSelection =True
FillStyle الخاصيه
هذه الخاصيه مرتبطه معها الخصائص التاليه ان شئت
MSFlexGrid1.CellAlignment
تحدد وضع النص داخل الخليه يمين أو يسار أو في الوسط وها 9 قيم
MSFlexGrid1.CellBackColor
MSFlexGrid1.CellBackColor
تحدد لون خليفية الاداه
MSFlexGrid1.CellFontBold
MSFlexGrid1.CellFontBold
تحدد عرض الخط في الخليه من عدمه
MSFlexGrid1.CellFontItalic
تحدد ميلان الخط في الخليه من عدمه
MSFlexGrid1.CellFontName
MSFlexGrid1.CellFontItalic
تحدد ميلان الخط في الخليه من عدمه
MSFlexGrid1.CellFontName
تحدد اسم الخط داخل الاداه
MSFlexGrid1.CellFontSize
تحدد حجم الخط داخل الخليه
MSFlexGrid1.CellFontStrikeThrough
MSFlexGrid1.CellFontSize
تحدد حجم الخط داخل الخليه
MSFlexGrid1.CellFontStrikeThrough
تحدد الخط داخل الخليه هل يتخلله خط ام لا
MSFlexGrid1.CellFontUnderline
تحدد الخط داخل الخليه هل يكون تحته خط ام لا
MSFlexGrid1.CellFontWidth
تحدد عرض الخط داخل الخليه
MSFlexGrid1.CellForeColor
MSFlexGrid1.CellFontUnderline
تحدد الخط داخل الخليه هل يكون تحته خط ام لا
MSFlexGrid1.CellFontWidth
تحدد عرض الخط داخل الخليه
MSFlexGrid1.CellForeColor
تحدد لون الخط داخل الخليه
MSFlexGrid1.CellTextStyle
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
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 الخاصيتين تحتاج الي استخدام
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
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
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
وتاخذ 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.FillStyle = flexFillRepeat
Dim A
(ادخل النص المراد اضافته الي الخليه)a=inputbox
MSFlexGrid1.Text = A
End Sub
End Sub
MSFlexGrid1_LeaveCell الحدث
يبدأ هذا الحدث كلما فقدت الخليه التركيز
Private Sub MSFlexGrid1_LeaveCell()
MSFlexGrid1.Text = ""
End Sub
MSFlexGrid1.Text = ""
End Sub
-
-
-
-
-
-
-
استخدام الاداه للربط مع قاعده بيانات
بعد كل هذه الخصائص المفيده هناك أستخدام مفيد لهذه الاداه. يختص
بريط الاداه بقواعد البيانات واظهار حقول قاعدة البيا نات وماتحتويه من
صفوف في الاداه.
صفوف في الاداه.
لاستخدام الاداه لهذا الغرض .قم بوضع الاداه data
علي النموذج . قم بربط أداة قاعدة البيانات مع قاعدة بيانات
علي جهازك. ثم قم بضبط الخاصيه
مصد البيانات) للاداه )datasource
مع اداة قاعدة البيانات flexgridبعد ذلك قم بتشغيل البرنامج
تلاحظ ان خلايا الاداه امتلاْت بسجلات قاعدة البيانات
الاداه flexgrid أداه منضمه . الادوات المنضمه هي ادوات تحتوي علي الخاصيه
للربط مع قواعد البياناتdatafiled ; datasource
استخدام الوظيفه sort
لفرز خلايا الاداه يتطلب استخدام sort تستخدم الوظيفه
هذه الوظيفه تحديد العمود الذي علي اساسه سيتم الفرز
بعد تحديد العمود يمكنك استخدام الوظيفه sortt
بعد تحديد العمود يمكنك استخدام الوظيفه sortt
لتحديد خيارات الفرز . عند الارقام من 0 الي 9
مثال
Private Sub Command4_Click()
MSflexgrid1.Col = 2
MSflexgrid1.Sort = 1
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
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
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
MSFlexGrid1.Cols - 1
أي كافه خلايا صفوف الاداه وكافة خلايا اعمدة الاداه
السطر السابع جعل خطوط الاداه غير عريضه
السطر الثامن والتاسع الدخول في حلقتين . واحده تدور حول صفوف
السطر الثامن والتاسع الدخول في حلقتين . واحده تدور حول صفوف
الاداه. وواحده تدور حول أعمدة الاداه
السطر العاشر استعمال الداله instr
للبحث داخل الاداه
. واستعمال شرط لذلك. بالعباره if
هذا الشرط يفيد في حين وجود تطابق للنص المراد البحث عنه
جعل نص الخليه المطابقه اسود عريض . وهذا ما يحتوي عليه باقي السطور
-
-
-
كانت هذه المشاركه البسيطه ارجو ان تفيدنا
-
-
كانت هذه المشاركه البسيطه ارجو ان تفيدنا
والله ولي التوفيق