วันเสาร์ที่ 23 กุมภาพันธ์ พ.ศ. 2556

ScrollBar

scrollbar : แถบเลื่อน
แถบเลื่อนที่เราใช้งานกันค่อนข้างบ่อยในการใช้งาน windows ซึ่งมีอยู่สองประเภทคือ แถบเลื่อนในแนวตั้ง (Hscrollbar) และแถบเลื่อนในแนวนอน  (VScrollbar) ซึ่งมีการทำงานที่คล้ายกัน 

ก่อนเริ่มเล่น Visual Basic

     ในอดีตการเขียนโปรแกรมหรือการพัฒนาแอพพลิเคชันขึ้นมาสักตัว โปรแกรมเมอร์จะต้องมีความรู้ ความเข้าใจในตัวภาษา ที่จะนำมาใช้ในการพัฒนา เป็นอย่างมาก ไม่ว่าจะพัฒนาด้วยภาษาใดก็ตาม เช่น ภาษา C, C++, ปาสคาล เป็นต้น และจะต้องเขียนโค้ดที่มีความสัมพันธ์กันตั้งแต่ บรรทัดแรกจนถึงบรรทัดสุดท้าย หรือที่เรียกว่า การเขียน โค้ดแบบ command line อีกทั้งยังต้องออกแบบรูปร่างหน้าตาของแอพพลิเคชัน ให้ตรงกับความต้องการของผู้ใช้อีกด้วย ซึ่งถ้าถูกใจผู้ใช้ก็ดีไป แต่ถ้าต้องมีการแก้ไขแล้วละก็ ทุกสิ่งทุกอย่างที่คุณได้ทำมา ก็ต้องแทบรื้อทำใหม่หมด ทำให้โปรแกรมเมอร์เสียเวลา ในการพัฒนาแอพพลิเคชันเป็นอย่างยิ่ง
    ต่อมาไมโครซอฟท์ได้นำเสนอรูปแบบในการเขียนแอพพลิเคชันชนิดใหม่ด้วยการออก Visual Basic 1.0 แม้ว่า เวอร์ชันแรกนี้ จะถูกโปรแกรมเมอร์ในยุคนั้น มองว่าเป็นเวอร์ชันทดลอง แต่มันก็ได้สร้างความแปลกใหม่ ในการเขียนโปรแกรมเป็นอย่างยิ่ง ความยุ่งยากซับซ้อน ถูกซ่อนไว้เบื้องหลัง มีแต่ความสะดวกสบายไว้เบื้องหน้า ที่เตรียมไว้ให้โปรแกรมเมอร์ เนื่องจาก concept ในการเขียน โปรแกรมแทบจะเปลี่ยนไปอย่างสิ้นเชิง จนกระทั่งในยุคปัจจุบัน Visual Basic ได้พัฒนามาถึงเวอร์ชัน 6.0 แล้ว ความสามารถของตัวภาษา VB เองก็มีมากขึ้น เพราะความก้าวหน้าของเทคโนโลยีในยุคปัจจุบัน ทำให้ไมโครซอฟท์เพิ่มเติมฟีเจอร์ต่างๆ เข้าไปมากมาย จนกระทั่ง VB แทบจะเป็นเครื่องมือ ในการพัฒนาแอพพลิเคชันที่ไร้เทียมทาน เพราะเทคโนโลยีใหม่ๆ ล้วนแล้วแต่มาจาก ไมโครซอฟท์แทบทั้งสิ้น ดังนั้นจึงไม่เป็นที่แปลกใจเลยว่า ไมโครซอฟท์ได้เพิ่มความสามารถในทุกๆ เวอร์ชันของ VB เสมอ เช่น สามารถสร้างแอพพลิเคชันชนิด DHTML ซึ่งใช้ run บน web ได้, รวมถึงการผนวกเทคโนโลยี ActiveX เข้ากับตัวคอนโทรลของ VB ทำให้สามารถเชื่อมโยงเข้ากับเครื่องมือ ที่สนับสนุนเทคโนโลยีนี้ได้อีกด้วย แต่ VB ยังคงรักษาเอกลักษณ์อย่างหนึ่ง ไว้ได้เป็นอย่างดีนั่นคือ สามารถที่จะพัฒนาแอพพลิเคชันได้ ในระยะเวลาอันสั้น รวมถึงความง่าย ต่อการเรียนรู้ในตัวภาษา และทำความเข้าใจได้อย่างรวดเร็ว เมื่อเทียบกับการเริ่มต้นเรียนรู้ด้วยภาษาอื่นๆ   คุณสามารถที่จะสร้างแอพพลิเคชันออกมาได้อย่างรวดเร็ว
     VB ได้จัดเตรียมเครื่องมือต่างๆ ที่เรียกว่า คอนโทรล (controls) ไว้คอยอำนวยความสะดวกให้แก่ โปรแกรมเมอร์มากมาย คุณจะต้องศึกษา และทำความเข้าใจกับตัวคอนโทรลให้มากที่สุด ซึ่งตัวคอนโทรลเหล่านี้นี่เอง ที่อยู่เบื้องหลังทำให้ VB ประสบความสำเร็จเป็นอย่างยิ่ง ในยุคปัจจุบัน เพราะเนื่องจากมันได้ลดขั้นตอนต่างๆ ในการพัฒนาไปได้มากทีเดียว
    แนวทางการเขียนโปรแกรมด้วยภาษา VB จะเป็นไปในลักษณะการนำคอนโทรลชนิดต่างๆ เช่น TextBox, Label, ComboBox เป็นต้น นำมาวาด เพื่อออกแบบหน้าตาแอพพลิเคชันที่เรียกว่า กราฟฟิกยูสเซอร์ อินเตอร์เฟส (Graphic User Interface-GUI ) คุณสามารถที่จะออกแบบ อินเตอร์เฟสได้อย่างอิสระ ให้ตรงกับจุดประสงค์และ การนำไปใช้งานของคุณก่อน แล้วจึงเริ่มเขียนโค้ด เพื่อตอบสนองการกระทำของผู้ใช้ (ใน VB เรียกว่า เหตุการณ์ event) ซึ่งถือเป็นหลักการเขียนโปรแกรมที่เรียกว่า การเขียนโปรแกรมเพื่อตอบสนองเหตุการณ์ที่เกิดขึ้น (Event-Driven Programming)
    สิ่งต่างๆ ที่คุณนำไปใช้ร่วมกันเพื่อเป็นแอพพลิเคชันหนึ่งๆ เช่น แถบเมนู, dialog box , toolbars, TextBox, ปุ่ม OK ฯลฯ เป็นต้น จะถูกมองเปรียบเสมือนว่า เป็นวัตถุชิ้นหนึ่งที่เรียกว่า อ๊อบเจ็กต์ (object model) ทุกสิ่งทุกอย่าง ในแอพพลิเคชัน VB จะมองเป็นอ๊อบเจ็กต์ ที่คุณสามารถควบคุมพฤติกรรม, แก้ไข และกระทำโดยตรงต่ออ๊อบเจ็กต์นั้นได้ ด้วยการเขียนโค้ด หรือสามารถเปลี่ยนแปลง คุณสมบัติ (properties) ประจำตัวของอ๊อบเจ็กต์นั้นได้โดยตรง ตัวคอนโทรลก็ถูกมองเป็นอ๊อบเจ๊กต์ เช่นกัน ในทุกๆ อ๊อบเจ็กต์จะมีคุณสมบัติ (properties) และ เมธอด (methods) ประจำตัว ในแต่ละอ๊อบเจ็กต์ อาจจะมีคุณสมบัติและเมธอดที่เหมือน หรือต่างกันก็ได้ ขึ้นอยู่กับชนิดของอ๊อบเจ็กต์ คุณจะพัฒนาแอพพลิเคชัน ได้ดีหรือไม่ ส่วนหนึ่งจะมาจากการที่คุณสามารถ ใช้งานคอนโทรล, แก้ไขคุณสมบัติและเมธอดได้ตรงตามความต้องการของคุณ และเต็มประสิทธิภาพของคอนโทรลนั้นๆ ได้หรือไม่
    ในการพัฒนาแอพพลิเคชันด้วย VB การเขียนโค้ดจะถูกแบ่งออกเป็นส่วนๆ ที่เรียกว่า โพรซีเดอร์ (precedure) แต่ละโพรซีเดอร์จะประกอบไปด้วย โค้ดที่คุณพิมพ์เข้าไปแล้วทำให้คอนโทรลหรืออ๊อบเจ็กต์นั้นๆ ตอบสนองการกระทำ ของผู้ใช้ได้โดยสมบูรณ์ในตัวมันเอง ซึ่งเรียกว่า การเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programmming-OOP) แต่ตัวภาษา VB ยังไม่ถือว่าเป็น OOP อย่างแท้จริง เนื่องจากข้อจำกัดหลายๆ อย่างที่ Visual Basic ไม่สามารถทำได้เหมือนกับภาษา C++ การเขียนโปรแกรมเชิงวัตถุ มีข้อดีก็คือ ตัวโค้ดจะถูกแบ่งออกเป็นส่วนๆ ทำให้ง่ายต่อการตรวจสอบ และดักจับข้อผิดพลาด (debug) ซึ่งการแก้ไขดังกล่าวนี้ ไม่ได้ไปกระทบกับโค้ด ส่วนอื่นๆ ในตัวแอพพลิเคชันนั้นเลย ทำให้โปรแกรมเมอร์สามารถพัฒนาแอพพลิเคชันออกมา ได้อย่างสมบูรณ์แบบมากที่สุด โดยที่ไม่ต้องเสีย เวลามากมายดังเช่นในอดีต
ความหมาย
หมายถึง ปุ่มรูปสี่เหลี่ยมเล็ก ๆ ที่อยู่ริมด้านขวาและด้านล่างของวินโดว์ ที่ปลายแถบทั้งสองด้านจะมีลูกศรหันหัวขึ้นและลง หรือหันไปทางซ้ายและขวา บนแถบจะมีรูปสี่เหลี่ยมจัตุรัสรูปเล็ก ๆ เมื่อใช้เมาส์กดที่ลูกศรด้านใดด้านหนึ่ง หรือ ลากสี่เหลี่ยมเล็ก ๆ นี้ขึ้นหรือลง จะทำให้ข้อความหรือภาพ ที่อยู่บนจอเลื่อนขึ้น/ลง หรือ เลื่อนไปทางซ้าย/ขวาได้ รูปสี่เหลี่ยมจัตุรัสที่อยู่บนแถบเลื่อนภาพนี้ เรียกว่า scroll box ดู scroll box ประกอบ
แถบเลื่อนภาพแนวตั้ง(horizontal scroll bar)
หมายถึง แถบสี่เหลี่ยมยาวที่อยู่ริมขวาสุดของแต่ละวินโดว์ ใช้สำหรับเลื่อนดูข้อความบนจอภาพขึ้นลงหรือแนวตั้งที่ปลายสุดของแถบเลื่อนขึ้นลงนี้ ทั้งด้านบนและล่างจะมีเครื่องหมายลูกศร ถ้ากดเมาส์ที่ลูกศรด้านบน ก็จะทำให้ข้อความบนจอภาพเลื่อนลง ถ้ากดที่ลูกศรด้านล่าง ภาพบนจอก็จะเลื่อนขึ้น ดู vertical scroll bar เปรียบเทียบ
แถบเลื่อนภาพแนวนอน(vertical scroll bar)
หมายถึง แถบสี่เหลี่ยมยาวที่อยู่ด้านล่างสุดของแต่ละวินโดว์ ใช้สำหรับเลื่อนดูข้อความบนจอภาพไปทางซ้ายหรือขวาหรือแนวนอน ที่ปลายสุดของแถบเลื่อนขึ้นลงนี้ ทั้งด้านซ้ายและขวา จะมีเครื่องหมายหัวลูกศร ถ้ากดเมาส์ที่หัวลูกศรด้านซ้ายก็จะทำให้ข้อความบนจอภาพเลื่อนไปทางขวา ถ้ากดที่หัวลูกศรด้านขวา ภาพบนจอก็จะเลื่อนไปทางซ้าย ดู horizontal scroll bar เปรียบเทียบ
พร็อพเพอร์ตี้สำคัญของ scrollbar
-Min, Max   เป็นค่าต่ำสุดหรือสูงสุดของ Scrollbar โดยต้องระบุว่า Min และ Max เป็น   จำนวน เต็มระหว่าง  -32,768 ถึง 32,767 และค่า Min จะต้องน้อยกว่า Max  เสมอๆ
-Small Change   เป็นช่วงการเปลี่ยนตำแหน่องของ Scroll Bar  คราวละน้อยๆโดยการคลิ๊กที่ลูกศรลูกใดลูกหนึ่ง 
-Large Change   เป็นช่วงการเปลี่ยน Scrollbar คราวละมากๆ  โดยการคลิกที่แถบของ scrollbar 
-Value   เป็นตำแหน่งปัจจุบันของ  scrollbar  ซึ่งจะต้องอยู่ระหว่าค่าต่ำสุดและสูงสุด


อีเวนต์สำคัญของ  Scrollbar
-Scroll   เป็นอีเวนต์ที่เกิดขึ้นเมื่อเราทำให้ Scrollbar  เปลี่ยนตำแหน่ง  (โดยการลากที่ Scrollbar หรือคลิกที่ลูกศรข้างใดข้างหนึ่งของ Scrollbar) ซึ่งหลังจากอีเวนต์ Scroll แล้ว Value อาจจะเปลี่ยนหรือไม่ก็ได้ (หลังจากอีเวนต์ Scroll หรือการกำหนด Value ใหม่โดยการเขียนโค้ด)
ชื่อคุณสมบัติ
คำอธิบาย
Minimum
เป็นค่าต่ำสุดที่เป็นไปได้ของสกรอลบาร์
Maximum
เป็นค่าสูงสุดที่เป็นไปได้ของสกรอลบาร์
Value
เป็นคุณสมบัติที่ตรงกับตำแหน่งของสกรอลบ็อกซ์ในสกรอลบาร์
SmallChange
เป็นการบอกว่าคุณสมบัติ Value จะมีค่าเปลี่ยนแปลงครั้งละเท่าไร เมื่อเกิดการคลิกเมาส์ที่ปุ่มลูกศรของสกรอลบาร์
LargeChange
เป็นการบอกว่าคุณสมบัติ Value จะมีค่าเปลี่ยนแปลงไปเท่าไร เมื่อมีการเปลี่ยนตำแหน่งของสกรอลบ็อกซ์ โดยการคลิกเมาส์ที่สกรอลบาร์
ValueChange
เป็นอีเว็นต์ที่เกิดขึ้น เมื่อค่าคุณสมบัติ Value เปลี่ยน
Scroll
เป็นอีเว็นต์ที่เกิดขึ้น เมื่อมีการเลื่อนปุ่มบนสกรอลบ็อกซ์ โดยไม่รวมการคลิกเมาส์ เลื่อนโดยปุ่มลูกศรของสกรอลบาร์กับการ คลิกเมาส์ที่สกรอลบาร์
ตัวอย่างการใช้งาน SCrollBar
สำหรับ SCrollBar นั้นมีประโยชน์มากในการใช้กำหนดช่วงของข้อมูลที่เราต้องการ โดยใช้การเปลี่ยนตำแหน่งของ SCrollBar มาใช้กำหนดค่าต่างๆ ที่อยู่ในช่วง เพื่อความเข้าใจเราจะลองสร้างแอพพลิเคชันที่นำหน้าที่ผสมสี โดยใช้ SCrollBar ดังนี้
1.           เรียกใช้งาน Visual Basic
2.           จากไดอะล็อก New Project เลือกสร้างชนิดโปรเจ็กต์เป็น Standard EXE
3.           ออกแบบหน้าตาของแอพพลิเคชัน โดยเราจะใช้ SCrollBar ทำหน้าที่กำหนดสีให้แม่สีแต่ละค่าคือ แดง เขียง นำเงิน แล้วจึงนำมาผสมแล้วในพร็อพเพอร์ตี้ BackColor ของ Label
ชนิดคอนโทรล
คุณสมบัติ
ค่าที่กำหนดให้
Form 
Text
Form1
Name
Form1
Label  
Name
Label1
Text
Radius
AutoSize
True
Label  
Name
Label2
Text
Area
AutoSize
True
TextBox 
Name
TextBox1
Text
TextBox1
TextBox 
Name
TextBox2
Text
TextBox2
HScrollBar   
Name
HScrollBar1
Minimum
0
Maximum
100
Value
0

เมื่อทดสอบผลการทำงานได้ผลดังนี้