منتديات روكشا     َولَوْلَا إِذْ دَخَلْتَ جَنَّتَكَ قُلْتَ مَا شَاءَ اللَّهُ لَا قُوَّةَ إِلَّا بِاللَّه

الرئيسية |  التسجيل  |  مركز رفع الملفات  |  الاتصال بنا  

 



العودة   منتديات روكشا > المنتدي التخصصي > قسم التصاميم والبرمجة والجرافيكس والميديا > انشاء وتصميم وبرمجة البرامج

الملاحظات

انشاء وتصميم وبرمجة البرامج برنامج الوورد اكسس اكسيل بوربوينت فيجوال بيسك برامج محاسبة برامج ادارة وتنظيم حسابات تنسيق الملفات

Like Tree1اعجابات
  • 1 موضوع بواسطة الفارس

إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 03-24-2019, 04:54 AM

الصورة الرمزية الفارس

الفارس

.:: عضـو متميز ::.

 
تاريخ التسجيل: Feb 2019
الدولة: مصر
المشاركات: 837
معدل تقييم المستوى: 10
الفارس المعروف لدى الجميع بالتميز العالىالفارس المعروف لدى الجميع بالتميز العالىالفارس المعروف لدى الجميع بالتميز العالىالفارس المعروف لدى الجميع بالتميز العالىالفارس المعروف لدى الجميع بالتميز العالىالفارس المعروف لدى الجميع بالتميز العالى
الفارس غير متواجد حالياً
شرح نموذج ادخال الاكواد Form1 الجانب العملي جانب التصميم و الربط مع النماذج

 


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


نموذج ادخال الاكواد Form1 الجانب العملي جانب التصميم و الربط مع النماذج


النموذج الاول لدينا هو نموذج ادخال الاكواد Form1
هذا النموذج سيعالج الادخالات في جدولين جدول الاصناف Kind و جدول الاكواد Coder
حيث سيكون لدينا اصناف مثل الفجوال بيزك - السي شارب - الجافا - SQL - WPF و غيرها حسب ما تحب
و تحت كل صنف يمكنك ادخال الاكواد التي تريدها
الفورم حسب التصميم الذي في الصورة اعلاه يحتوي على مجموعة من العناصر

عناصر الربط مع الجدول Kind
ComboBox1 : ساستخدمه لعرض اسماء الاصناف المخزنة في الجدول Kind
KindTextBox : لاضافة اسم التصنيف
Not1TextBox:لاضافة ملاحظة على التصنيف
KindBindingSource:ساستخدمه هنا للربط مع الجدول Kind و استفيد من مزاياه الخاصة بالتنقل و الاضافة
BindingNavigator : ساستخدم قائمة تحتوي على ازرار الاضافة و الحذف و التعديل و كذلك التنقل و هي مرتبة بشكل جميل سنقوم بربطها بعنصر KindBindingSource مع تجاوز الطريقة الافتراضية لها في الحذف و الاضافة ساشرحها لاحقا
عناصر الربط مع جدول Coder
ComboBox2:ساستخدمه للوصول السريع الى عمل الكود او اسمه في الجدول Coder
Not1TextBox1:سنسجل فيه اسم الكود او عمله
Not2TextBox:وصف الكود المطلوب
Code2TextBox:تعقيب على الاجابة او شرح لعمل الكود
Code1TextBox:الاجابة او الكود و هو ليس مربع نص عادي TextBox بل هو مربع نص خاص يعرف بالاسم ColoredTextBox يحتوي على خصائص مميزة لعرض الكود بالالوان المطلوبة كما محرر الكود في لغة البرمجة و هو مكتبة خاصة مضمنة مع البرنامج عثرت عليه في ارجاء المنتدى على ما اعتقد و هو موجود على شبكة النت يمكنك من عرض النص وفق الفئة المختارة SQL-PHP-VB-#C-HTML
CoderBindingSource:للربط مع جدول Coder
BindingNavigator1:سنربطها مع CoderBindingSource مع تجاوز طرقها كما سبق ذكره
هذه كل العناصر المطلوبة في النموذج الاول Form1

ناتي الان الى محرر الكود لنكتب اكوادنا الخاصة بكل العمليات اللازمة لاتمام المهمة


بداية ساقوم بتعريف هذه المتغيرات و ستعرف الحاجة منها مع كتابة الاكواد
كود :
كود PHP:
   Dim AAs Integer 
حدث تحميل النموذج
كود :

كود PHP:
   Private Sub Form1_Load(sender As System.ObjectAs System.EventArgsHandles MyBase.Load

       
Try
           
'
           Me.KindBindingSource.DataSource = LoadDataSet()
           Me.KindBindingSource.DataMember = "Kind"
           '
           
Me.CoderBindingSource.DataSource KindBindingSource
           Me
.CoderBindingSource.DataMember "Kind_Coder"
           '
           BindingFileds()
           Code1TextBox.PreferredLineWidth = Code1TextBox.Width

       Catch ex As Exception
           MsgBox(ex.ToString)
       End Try
   End Sub 
الكود سهل على ما اعتقد و الشرح
ربط KindBindingSource بحاوية البيانات MyDataset عبر استدعاء الدالة loadDataSet التي سبق و انشأناها في الكلاس الخاص بالاتصال نربط مع الجدول Kind
الان نربط الكائن CoderBindingSource بالعلاقة المحضونة ضمنا في الكائن السابق KindBindingSource العلاقة Kind_Coder التي تؤمن الترابط بين الجدولين.
نستدعي الاجراء BindingFileds و هو اجراء خاص لربط العناصر بحقول قاعدة البيانات سيرد لاحقا.
السطر الاخير هو كود خاص لجعل امتداد سطر الكود المعروض بعرض مربع النص اثناء تحجيم البرنامج.
الاجراء الخاص بربط عناصر النموذج مع حقول قاعدة البيانات BindingFileds
كود :

كود PHP:
   Private Sub BindingFileds()
       Try
           
Me.KindTextBox.DataBindings.Add(New Binding("Text"KindBindingSource"Kind"))
           
Me.Not1TextBox.DataBindings.Add(New Binding("Text"KindBindingSource"Not1"))
           
'
           Me.Not1TextBox1.DataBindings.Add(New Binding("Text", CoderBindingSource, "Not1"))
           Me.Not2TextBox.DataBindings.Add(New Binding("Text", CoderBindingSource, "Not2"))
           Me.Code1TextBox.DataBindings.Add(New Binding("Text", CoderBindingSource, "Code1"))
           Me.Code2TextBox.DataBindings.Add(New Binding("Text", CoderBindingSource, "Code2"))

           '
           
ComboBox1.DataSource KindBindingSource
           ComboBox1
.DisplayMember "kind"
           
ComboBox1.ValueMember "Id"
           '
           ComboBox2.DataSource = CoderBindingSource
           ComboBox2.DisplayMember = "Not1"
           ComboBox2.ValueMember = "Id2"
           '
       
Catch ex As Exception
           MsgBox
(ex.ToString)
       
End Try

   
End Sub 
الكود سهل الفهم و هو مكرر مئات المرات في صفحات المنتدى

بعض الاكواد البسيطة تابع
كود :

كود PHP:
   Private Sub CoderBindingSource_AddingNew(sender As ObjectAs System.ComponentModel.AddingNewEventArgsHandles CoderBindingSource.AddingNew
       
Try
           
Me.KindBindingSource.EndEdit()
       Catch 
ex As Exception
           MsgBox
(ex.ToString)
       
End Try
   
End Sub 
و هو يستخدم عند اضافة كود جديد
نستخدمه للحصول على رقم المفتاح الرئيسي من الجدول Kind حتى اذا اضفنا سجل جديد في الجدول Coder يتم تعبئة المفتاح الثانوي بشكل صحيح

زر الاضافة الخاص باضافة الاصناف
كود :

كود PHP:
   Private Sub BindingNavigatorAddNewItem_Click(sender As System.ObjectAs System.EventArgsHandles BindingNavigatorAddNewItem.Click
       
Try
           
Me.KindTextBox.Focus()
       Catch 
ex As Exception
           MsgBox
(ex.ToString)
       
End Try

   
End Sub 
زر الحذف العام (حذف التصنيف)
كود :

كود PHP:
   'زر الحذف العام
   Private Sub BindingNavigatorDeleteItem_Click(sender As System.Object, e As System.EventArgs) Handles BindingNavigatorDeleteItem.Click
       Try
           If (Me.Validate() And Not (KindBindingSource Is Nothing)) Then

               Dim DeletStud As DialogResult = MessageBox.Show("سيتم حذف القسم الحالي", "انتبه", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign)
               If DeletStud = Windows.Forms.DialogResult.Yes Then

                   KindBindingSource.EndEdit()
                   CoderBindingSource.EndEdit()
                   '
                   
KindBindingSource.RemoveCurrent()
               
End If

           
End If

       Catch 
ex As Exception
           MessageBox
.Show(ex.Message"زر الحذف العام"MessageBoxButtons.OKMessageBoxIcon.ErrorMessageBoxDefaultButton.Button1MessageBoxOptions.RightAlign)
       
End Try

   
End Sub 
زر حذف كود
كود :

كود PHP:
   Private Sub BindingNavigatorDeleteItem1_Click(sender As System.ObjectAs System.EventArgsHandles BindingNavigatorDeleteItem1.Click
       
Try
           If (
Me.Validate() And Not (CoderBindingSource Is Nothing)) Then

               Dim DeletStud 
As DialogResult MessageBox.Show("سيتم حذف الكود الحالي""انتبه"MessageBoxButtons.YesNoMessageBoxIcon.WarningMessageBoxDefaultButton.Button2MessageBoxOptions.RightAlign)
               If 
DeletStud Windows.Forms.DialogResult.Yes Then

                   CoderBindingSource
.EndEdit()
                   
'
                   CoderBindingSource.RemoveCurrent()
               End If

           End If

       Catch ex As Exception
           MessageBox.Show(ex.Message, "زر الحذف العام", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign)
       End Try

   End Sub 
زر اضافة كود
كود :

كود PHP:
   Private Sub BindingNavigatorAddNewItem1_Click(sender As ObjectAs EventArgsHandles BindingNavigatorAddNewItem1.Click
       CoderBindingSource
.AddNew()
       
Not1TextBox1.Focus()
   
End Sub 
اجراء خاص بصندوق النص ColoredTextBox
كود :

كود PHP:
   Private Sub ComboBox2_SelectedIndexChanged(sender As System.ObjectAs System.EventArgsHandles ComboBox2.SelectedIndexChanged
       
If ComboBox2.Items.Count And Code1TextBox.Text.Length 0 Then
           Code1TextBox
.GoHome()
       
End If
      
   
End Sub 
وهو للذهاب الى السطر الاول من الكود المعروض في مربع النص عند تغير اسم الكود

كود :

كود PHP:
   Private Sub CoderBindingSource_CurrentChanged(sender As System.ObjectAs System.EventArgsHandles CoderBindingSource.CurrentChangedCoderBindingSource.PositionChanged
       
If ComboBox2.Items.Count And Code1TextBox.Text.Length 0 Then
           Code1TextBox
.GoHome()
       
End If

   
End Sub
End 
Class 
نفس الكود السابق و لكن عند التنقل بين سجلات الاكواد عن طريق BindingNavigator

قمت ايضا باضافة مجموعة من الازار عند الضغط بزر الماوس الايمن فوق مربع نص الكود و هي مجموعة خدمية صغيرة يمكنك معرفة عملها وفق الكود التالي
كود :

كود PHP:
#Region "ContextMenuStrip1"

   
Private Sub Con_Copy_Click(sender As System.ObjectAs System.EventArgsHandles Con_Copy.Click
       Code1TextBox
.Copy()
   
End Sub

   
Private Sub Con_Paste_Click(sender As System.ObjectAs System.EventArgsHandles Con_Paste.Click
       Code1TextBox
.Paste()
   
End Sub

   
Private Sub Con_Clear_Click(sender As System.ObjectAs System.EventArgsHandles Con_Clear.Click
       Code1TextBox
.Clear()
   
End Sub


   
Private Sub Con_Language_SelectedIndexChanged(sender As ObjectAs System.EventArgsHandles Con_Language.SelectedIndexChanged
       With Con_Language
.Text
           Code1TextBox
.SelectAll()
           
Select Case Con_Language.Text
               
Case Is "VB"
                   
Code1TextBox.Language FastColoredTextBoxNS.Language.VB
               
Case Is "CSharp"
                   
Code1TextBox.Language FastColoredTextBoxNS.Language.CSharp
               
Case Is "HTML"
                   
Code1TextBox.Language FastColoredTextBoxNS.Language.HTML
               
Case Is "PHP"
                   
Code1TextBox.Language FastColoredTextBoxNS.Language.PHP
               
Case Is "SQL"
                   
Code1TextBox.Language FastColoredTextBoxNS.Language.SQL
               
Case Else
                   
Code1TextBox.Language FastColoredTextBoxNS.Language.Custom
           End Select
           Code1TextBox
.UpperLowerCase()

           
Code1TextBox.GoHome()
       
End With
   End Sub

   
Private Sub Con_SelAll_Click(sender As System.ObjectAs System.EventArgsHandles Con_SelAll.Click
       Code1TextBox
.SelectAll()
   
End Sub


#End Region 

كما ترى وضائف بسيطة نسخ و لصق و مسح و تغير لغة العرض في مربع النص

الان ناتي الى اهم كود وهو زر التخزين العام و هو كما يلي
كود :
كود PHP:

   
'زر التخزين العام
   Private Sub BtnSave_Click(sender As System.Object, e As System.EventArgs) Handles BtnSave.Click
       Try
           A = KindBindingSource.Position
           B = CoderBindingSource.Position
           '  
           
saveCode()

           
Me.Validate()
           
'

           KindBindingSource.EndEdit()
           CoderBindingSource.EndEdit()
           '
           
SaveData()

           
'
           KindBindingSource.Position = A
           CoderBindingSource.Position = B

       Catch ex As Exception
           MsgBox(ex.ToString)
       End Try
   End Sub 
الشرح
في البداية نحتفظ بالموقع الحالي لكل من الاصناف و الكود
استدعي اجراء خاص SaveCode ساشرح لما استخدمته
Me.Validate و ما بعدها سوف تتسبب في انهاء اي وضع تحرير للبيانات و بالتالي القيم المدخلة هي التي سيتم اعتمادها
SaveData هو اجراء الحفظ العام الخاص بنا و الذي قمنا بانشائه سابقا في كلاس الاتصال
بعد عملية الحفظ نعود الى مواقع السجلات التي خزناها سابقا
الاجراء SaveCode قمت باستخدامه بعدما لاحظت ان الاداة ColoredTextBox و لسبب ما لا تحدث قيمة النص المعروض بداخلها الى القاعدة كما يجري مع مربع النص العادي

الكود الخاص بالاجراء SaveCode


كود :
كود PHP:
   Private Sub saveCode()
       If 
Not String.IsNullOrEmpty(Code1TextBox.TextThen
           Dim RowCode 
As DataRowView
           RowCode 
CoderBindingSource.Current
           RowCode
("Code1") = Code1TextBox.Text
       End 
If
   
End Sub 
الكود بسيط وظيفته التقاط النص الى صف البيانات الحالي و تخزينه في المكان الموافق له (الحقل المطابق له في صف البيانات)
ابن الوليد معجب بهذا.
رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)


الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 
أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
شرح العمل على قاعدة البيانات في جانب السيرفر الفارس انشاء وتصميم وبرمجة البرامج 1 03-23-2019 01:27 PM
كود كود الاكواد الممنوعه الفارس ركن تطوير وإدارة المنتديات العربية 0 03-16-2019 11:57 AM
شرح الاكسس قائمة النماذج والتقارير والجداول والاستعلامات مهرة النجدية انشاء وتصميم وبرمجة البرامج 2 02-11-2019 03:30 PM
شرح إنشاء استعلامات الاختيارمن وضع التصميم مهرة النجدية انشاء وتصميم وبرمجة البرامج 0 02-06-2019 01:19 AM
كتاب تخاطب النماذج بين بعضها (النماذج الفرعية) ابن الوليد انشاء وتصميم وبرمجة البرامج 0 12-06-2018 04:41 PM

 

RSS RSS 2.0 XML MAP HTML

الساعة الآن 02:51 PM

نبذة عن المنتدى

روابط مفيدة

إعلانات نصية

روابط الموقع

منتديات روكشا لتقنية المعلومات تقدم كل ما هو جديد ومفيد في عالم البرامج سواء جاهزة أو طرق وشروحات برمجة وتصميم وسوف تجدون أقسام عديدة ومختصة لكل ما تبحث عنه



Powered by vBulletin® Copyright ©2000 - 2019,