Visual Basic 6.0 translation

Tuesday, February 14, 2012

VB 0.6 TreeView Control Lesson Part2

بسم الله الرحمن الرحيم
Microsoft Visual Basic 6.0 TreeView Control

توقفنا فى الجزء الاول عند انشاء الـ Nodes 
اليوم نتحدث عن الجزء الثانى من TreeView Control فى بيئة الـ Visual Basic 0.6 و هو :

أولا :
TreeView LineStyles Property أو خاصية أشكال رسمة الـخط

- نعرف الان كل TreeView لها ImageList عباره عن الاشكال من الأيقونات و الخطوط التى تظهر فى أداة الـ TreeView و منها الخطوط التى تربط الـ Nodes ببععضها و تمثل شكل العلاقه بين الـ Nodes كما بالصورة رقم (1) .
LineStyles
- كود تحديد شكل الخط :
Object.LineStyle = number
- حيث :
Object هو : عادة يكون الـ TreeView
number هو : رقم أو ثابت يدل على نوع شكل الخط كما سيوضح فى الاعدادات Settings الاتيه
- الاعدادات Settings :
الثابتالقيمةالوصف
tvwTreeLines
0
الشكل الافتراضى.
يظهر بشكل خطوط بين الـ Nodes فى نفس المستوى Siblings و ابائها فى مستوى أعلى
tvwRootLines
1
رسم خطوط تمثل العلاقه بين الـ Nodes فى نفس المستوى و بين الـ Nodes فى مستوى أعلى و ايضا رسم خطوط تمثل العلاقه بين الـ Nodes الاباء Parents فى مستوى أعلى بين بعضها البعض .



- مثال :
اضف TreeView3 على الـ Form1 ثم فى الحدث Form_Load فى نهاية كود الحدث اضف الكود التالى ....
   Dim Nods As Node
   Set Nods = TreeView3.Nodes.Add(, , "P1", "Root1")
    Set Nods = TreeView3.Nodes.Add("P1", tvwChild, "Pp1", "Child1")
    Set Nods = TreeView3.Nodes.Add("P1", tvwChild, "Pp2", "Child2")
    Set Nods = TreeView3.Nodes.Add("P1", tvwChild, "Pp3", "Child3")
    Set Nods = TreeView3.Nodes.Add(, tvwChild, "Pp4", "Root2")
    TreeView3.LineStyle = 0
'   TreeView3.LineStyle = 1
ثم قم بتجربة المثال مره عند القيمة = صفر و مره عند القيمة = 1 و لاحظ شكل الخطوط بين الـ Nodes الـ Child و الـ Nodes الـ Root .

ثانيا :
LabelEdit Property أو خاصية تعديل الاسم



- كل Node فى الـ TreeView لها :
1) اسم
2) علاقه
3) مفتاح مميز لها
4) صورة أو ايقونه
5) رقم ضمن مجموعة الـ Nodes .
- لذا كلما نضيف Node نراعى هذه العوامل و من هذه العوامل عامل Name أو الاسم و هو الذى يظهر عند تشغيل البرنامج و يكون نوعه Label مثل شكل الخظ الذى يمثل العلاقه نوعه ImageList .
- يمكن تعديل الاسم Name لكل نوع اذا حددت خاصيه LabelEdit ...
- كود :
Object.LabelEdit= integer


Object هو : عادة يكون الـ TreeView
integer هو : رقم صحيح integer يحدد ما اذا كان Node يمكن تعديلة أم لا كما فى الاعدادات Settings .
- الاعدادات Settings :
الثابتالقيمةالوصف
tvwAutomatic
0
الشكل الافتراضى.
يظهر الحدث BeforeLabelEdit عندما يضغط المستخدم على Label لاى Node
tvwManual
1
يظهر الحدث BeforeLabelEdit فقط عندما يبدأ الحدث StartLabelEdit
سنقوم باضافة TreeView4 الى الفورم و مفتاح Command3 حيث اصبحت الفورم بهذا الشكل :
TreeView Control Example
- سنقوم بعمل كود يقوم بتعديل الـ Nodes مالم تكن Roots اباء , و يجب ان يكون نوع خاصية LabelEdit = tvwmanual و نلصق الكود التالى بعد أخر سطر كود فى المشروع فى الحدث Form_Load
Dim nodXa As Node
Dim i As Integer
TreeView4.LabelEdit = tvwManual  
' ما لم تقم تحديدها فى شاشة الخصائص
Set nodXa = TreeView4.Nodes.Add(, , , " Node 1")
'اضافة الـ Node الاول وهو سيكون Root
For i = 1 To 5  
'اضافى عدد (5) Node سيكونوا Child
Set nodXa = TreeView4.Nodes.Add(i, tvwChild, , "Node " & CStr(i + 1))
Next i
nodXa.EnsureVisible  
'التأكد من أن كل الـ Nodes ظاهره عند التشغيل .
الان سنقوم باضافة الكود التالى الى الفورم بعد اخر سطر كود فى الفورم
الكود فى الحدث Command3_Click
Private Sub Command3_Click()
   ' Invoke the StartLabelEdit method on the selected node,
   ' which triggers the BeforeLabelEdit event.
   TreeView4.StartLabelEdit
End Sub

الكود فى الحدث BeforeLabelEdit و لاحظ انه اجراء موضوع و ليس جزءا من اجراءات الـ TreeView أى أنه User Defined
Private Sub TreeView_BeforeLabelEdit(Cancel As Integer)
' If the selected item is the root, then cancel the edit.
اذا كان الـ Node المختار نوعه Root اذا لا تقم بالتعديل
If TreeView4.SelectedItem Is TreeView4.SelectedItem.Root Then
Cancel = True
End If
End Sub
الكود فى الحدث AfterLabelEdit و لاحظ انه اجراء موضوع و ليس جزءا من اجراءات الـ TreeView أى أنه User Defined و يتم تنفيذ هذا الاجراء عند بداية كتابة اسم الـ Label الجديد الخاص بالـ Node التى تم اختيارها و تصلح للتعديل أى انها ليست Root .
لاحظ أن ترك الـ Label فارغ طبيعى أى ان البرنامج سيقبل Label بدون String
Private Sub TreeView_AfterLabelEdit _
(Cancel As Integer, NewString As String)
' Assume user has entered some text and pressed the ENTER key.
' Any nonempty string will be valid.
If Len(NewString) = 0 Then
Cancel = True
End If
End Sub
- قم بتجريب البرنامج و اضغط مره على أى Node لتعديلها لاحظ انها لا يتم تعديلها ثم اضغط على Command3 و لاحظ انه يمكنك الكتابه فى الـ Node .
تابعونا فى الجزء الثالث ان شاء الله مع :
- Nodes Property بالكامل
- DataBase MS Access 2003 & TreeView

8 comments:

  1. Everyone loves what you guys are up too. This
    kind of clever work and exposure! Keep up the good works guys I've you
    guys to our blogroll.

    Feel free to visit my web-site ... DeshawnTSchwieson

    ReplyDelete
  2. I have read so many content regarding the blogger lovers except this article
    is genuinely a nice article, keep it up.

    Also visit my blog post - KathiABerretta

    ReplyDelete
  3. Hi, i think that i saw you visited my website so i came to “return the favor”.I'm trying to find things to enhance my web site!I
    suppose its ok to use some of your ideas!!

    Check out my site :: RochelWPetrak

    ReplyDelete
  4. Actually when someone doesn't be aware of after that its up to other viewers that they will help,
    so here it occurs.

    Also visit my website; CarryOWallin

    ReplyDelete
  5. Currently it sounds like BlogEngine is the top blogging platform available right now.
    (from what I've read) Is that what you're using on your blog?


    Stop by my website: DominickTDiamico

    ReplyDelete
  6. I was suggested this website by my cousin. I'm now not sure whether this put up
    is written by way of him as nobody else recognise such specified
    about my problem. You are wonderful! Thank you!


    My blog post :: EhtelERzeszutko

    ReplyDelete
  7. great points altogether, you simply won a logo new reader.
    What would you recommend in regards to your put up that you just made a few days in the past?
    Any certain?

    Also visit my site; PatricaYKendzierski

    ReplyDelete
  8. That is very interesting, You are an excessively skilled
    blogger. I have joined your rss feed and look forward to in quest of more of your excellent post.

    Additionally, I have shared your web site in my social networks

    Also visit my web blog: LanoraYCoad

    ReplyDelete

visual basic 6 source code says (Hi)

Visual Basic Online Course

vb6 (63) Application Development (45) Visual Basic Online Course (45) Online Visual Basic Course (44) Visual Basic Help (44) Visual Basic Programming (42) IT Jobs (39) VB6 developer (38) Visual Basic Course (38) Visual Basic 6.0 (26) Microsoft Visual Basic 6.0 (25) VB6.0 (24) Visual Basic Programmers (24) vb 6.0 (24) visual basic programming tutorial (19) Third lesson (16) Source code download for Visual Basic 6.0 (14) Source code for Visual Basic 6.0 (10) visual basic tutorial (9) Visual Basic 6 (5) Visual Basic Courses (5) Lesson 3 (4) VB 0.6 - TreeView control (4) VB 0.6 With TreeView Control (4) VB6 Course (3) Create ActiveX (2) How to automate MS-Access from Visual Basic 6.0 (2) Add controls at runtime (1) Back up your Database (1) Change ActiveX icon (1) Change screen resolution (1) Create FTP (1) Crystal Reports 4.6 (1) Crystl32.ocx could not be loaded (1) DataGrid Columns re-size (1) Date Calculation (1) DateAdd Function (1) DateDiff function (1) FTP (1) Marquee Title Bar (1) Marquee VB 6.0 TitleBar (1) Method 'Action' of object 'CrystalCtrl' Failed (1) Microsoft Access with Visual Basic 6.0 (1) OpenSchema method (1) Save File Using CommonDilog (1) Track Database path (1) VB 0.6 - Registry (1) VB 0.6 With Registry Editor (1) VB 6.0 Access (1) VB 6.0 OOP (1) VB6 Access2003 ADO Like % (1) VB6 Add Date (1) VB6 Add Time (1) VB6 Date calculation (1) VB6 Subtract Date (1) Visual Basic Remote (1) Win7 (1) Windows7 (1) ms access networking details (1) remote Visual Basic DB (1) rounded and transparent forms (1) vb 0.6 style (1) vb 6.0 Remote Database (1)