Treeview คือ อะไร มีการใช้งานอย่างไร
Treeview คือ อะไร มีการใช้งานอย่างไร ยากมั๊ย มักจะได้รับคำถามบ่อยมากวันนี้เลยอยากจะมาแนะนำแบบคร่าวๆของ treeview ตัวนี้สักหน่อย treeview หรือ เรียกสั้นๆว่า tv นั้นเป็น object ที่มาพร้อมกับ ver 5 ของ PowerBuilder เป็นการแสดงข้อมูลในลักษณะของโครงสร้างแบบต้นไม้ คือมีการแตกกิ่งก้านสาขาออกไปได้ตลอด ถ้านึกไม่ออกก็นึกถึง เวลาที่เรา explorer ที่วินโดวส์ มันจะแสดงพวก sub ต่างๆและ sub ใดที่มี sub ย่อยก็จะมีเครื่องหมาย + ที่ด้านหน้าเมื่อเราคลิกมันก็จะแสดง sub ย่อยออกมาให้เห็น
คราวนี้เรามาเริ่มศึกษากันเลยนะครับอันดับแรกก็ให้สร้าง วินโดวส์ขึ้นมาใหม่ 1 อันตามระเบียบ เสร็จแล้วก็วาง Treeview object ลงไป และ วาง SingleLineEdit ลงไปอีกหนึ่งตัว ที่tvเราจะเห็นแต่เพียง object ว่างๆ 1 อัน อ้อลืมไป ให้ทำการเตรียมรูปภาพต่างๆที่เราจะใช้ใว้ก่อนเอาแค่3-4 รูปก่อนก็ได้เป็นการทดลอง
คราวนี้เราก็เริ่มเขียนสคริปต์ ให้ทำการคลิกขวาที่ object เลือก สคริปต์ เลือก constructor event
Int Level_1,Level_2,Level_3
this.addpicture("C:powerpigAr_down.bmp")
this.addpicture("C:powerpigAr_Up.bmp")
Level_1 = this.insertitemfirst(0,"test",1)
Level_2 = this.insertitemfirst(Level_1,"test1",1)
Level_3 = this.insertitemfirst(Level_2,"test2",2)
บรรทัดแรก และ บรรทัดที่ 2 คือการวางรูปภาพลงไปให้กำหนดชื่อลงไปได้เลย
บรรทัดที่ 3-5 เป็นการสั่งให้แทรกหัวข้อลงไปโดยมีรูปแบบดังนี้
treeviewname.InsertItemFirst ( handleparent, label, pictureindex )
handleparent คือระดับของ หัวข้อถ้าเราใส่เป็น 0 หมายถึงระดับแรก
label คือชื่อของหัวข้อที่เราต้องการแสดง
pictureindex คือลำดับของรูปภาพที่เราต้องการแสดง กรณีที่เรา add รูปภาพใว้หลายรูปภาพ เราเลือกได้ว่าต้องการเอารูปภาพที่เท่าใดมาแสดง
จากบรรทัดที่ 3 เราจะทำการวางหัวข้อ test ลงไปในระดับแรก และเลือกรูปภาพที่ชื่อ ar_down.bmp มาแสดง
บรรทัดที่ 4 จะวางหัวข้อ test1 ลงไปในระดับที่ 2 โดยใช้รูปภาพเดียวกัน
บรรทัดที่ 5 จะวางหัวข้อ test2 ลงไปในระดับย่อยของ test1
ต่อไปให้ไปที่ Selectionchanged event เขียนสคริปต์ลงไป
treeviewitem tvi
this.getitem(newhandle,tvi)
sle_1.text = tvi.label
จากนั้นให้ทำการ save และ ลองรันดูเราจะเข้าใจการทำงานของตัว tv มากยิ่งขึ้นแต่อย่าลืมว่านี่คือเบื้องต้นของ object ตัวนี้เท่านั้น คราวหน้าเราค่อยมาว่ากันต่อถึง property กับส่วนอื่นๆที่เหลือ


