Chapter 2 การใช้งาน Visual Basic

Chapter 2 Working with Visual Basic
การใช้งาน Visual Basic

ในบทที่ 1 ผู้เขียนได้อธิบายเกี่ยวกับการใช้งาน VBIDE ขั้นพื้นฐาน ซึ่งมีความสำคัญเป็นอย่างยิ่ง สำหรับผู้ที่ไม่เคยใช้งานโปรแกรม VB มาก่อนเลย สำหรับในหัวข้อนี้ จะอธิบายเกี่ยวกับรูปแบบ และแนวทางในการพัฒนาแอพพลิเคชันด้วย VB เป็นที่ทราบดีว่า concept หลักของการพัฒนาแอพพลิเคชันด้วย VB ก็คือ การสร้างองค์ประกอบต่างๆ ของแอพพลิเคชันด้วยคอนโทรล โดยมีรูปแบบที่สื่อด้วยภาพ หรือที่เรียกกันติดปากว่า การออกแบบอินเตอร์เฟส ต่อมาก็คือ การเขียนโค้ดเพื่อรองรับเหตุการณ์ต่างๆ ที่อาจเกิดขึ้นได้ ในการพัฒนาแอพพลิเคชันด้วย VB ผู้เขียนจะแบ่งออกเป็น 5 ขั้นตอนใหญ่ๆ คือ

clip_image001

1.เลือกพัฒนาชนิดของแอพพลิเคชัน
2.สร้างยูสเซอร์อินเตอร์เฟส (หรือส่วนติดต่อกับผู้ใช้ อาจเรียกสั้นๆว่า อินเตอร์เฟส)
3.เขียนโค้ดเพื่อรองรับเหตุการณ์ต่างๆ ที่อาจเกิดขึ้นกับแต่ละคอนโทรลหรืออ๊อบเจ็กต์
4.การทดสอบ ตรวจสอบ และดักจับข้อผิดพลาด
5.compile โปรเจ็กต์ให้เป็นแอพพลิเคชันที่สมบูรณ์ (เช่น *.exe หรือ *.dll เป็นต้น)

ทั้ง 5 ขั้นตอนถือได้ว่าเป็นหัวใจหลักในการสร้างแอพพลิเคชันด้วย VB สิ่งที่คุณสามารถสังเกตเห็นได้ชัดเจนที่สุดก็คือ ผลงานของคุณจะแสดงออกมา ได้รวดเร็วมาก โดยใช้งานคอนโทรลไม่กี่ตัว หัวข้อนี้จะเป็นแนวทางที่อธิบายรูปแบบการสร้างอินเตอร์เฟส เพราะไม่ว่าคุณจะพัฒนาแอพพลิเคชันชนิดใดๆ แอพพลิเคชันของคุณก็จะต้องมีมาตรฐานตามข้อกำหนดของแอพลิเคชัน ที่รันภายใต้ Windows 95 ที่ไมโครซอฟท์กำหนดไว้ เช่น สนับการทำงานแบบ 32 บิต, สนับสนุนการประมวลผลแบบ multitasking เป็นต้น ซึ่ง VB สนับสนุนอยู่แล้ว แต่รูปแบบอินเตอร์เฟสต่างหาก ที่คุณจะต้องสร้างสรรค์ออกมา ให้มีมาตรฐานเดียวกันกับแอพพลิเคชัน ที่ได้รับความนิยมในด้านนั้นๆ เช่น ถ้าคุณต้องการพัฒนาแอพพลิเคชันด้านฐานข้อมูล คุณจะต้องเชื่อมโยง เข้ากับชนิดของฐานข้อมูลต่างๆ ที่มีอยู่ไม่ว่าจะเป็น Access, Foxpro หรือ Oracle เป็นต้น สำหรับแนวทางที่ง่ายและรวดเร็วที่สุด ที่จะทำให้คุณสามารถ ออกแบบอินเตอร์เฟสที่เป็นมาตรฐานได้ก็คือ คุณสามารถศึกษารูปแบบและแนวทาง จากแอพพลิเคชันอื่นๆ ที่ได้รับความนิยม ศึกษาข้อดี ข้อเสีย ของแอพพลิเคชันนั้นๆ   มันจะช่วยย่นระยะเวลาไปได้มากทีเดียว รวมถึงศึกษาจาก source code ที่มีเผยแพร่อยู่โดยทั่วไป ในอินเตอร์เน็ต
สำหรับในบทนี้ ผู้เขียนจะกล่าวถึงขั้นตอนการสร้างอินเตอร์เฟส และการเขียนโค้ดเท่านั้น ส่วนหัวข้อที่เหลือ ผู้เขียนจะกล่าวถึงในบทต่อๆไป

การใช้งานคอนโทรลในการสร้างอินเตอร์เฟส

จุดเริ่มต้นของการพัฒนาแอพพลิเคชันด้วย VB ก็คือการนำคอนโทรลชนิดต่างๆ ที่ VB จัดเตรียมไว้นำมาวาดอินเตอร์เฟส แอพพลิเคชันของคุณจะมีหน้าตา เป็นอย่างไร ก็อยู่ในขั้นตอนนี้ ถ้าคุณเริ่มต้นพัฒนาแอพพลิเคชันได้ดี โดยการออกแบบอินเตอร์เฟสที่ใช้งานง่าย เป็นมิตรกับผู้ใช้ มันจะส่งผลให้ระยะเวลา ในการพัฒนาแอพพลิเคชันหนึ่ง ลดลงไปได้มากทีเดียว เพราะสิ่งที่เหลืออยู่คือ การเขียนโค้ดเพื่อทำให้โปรเจ็กต์ของคุณทำงานให้สมบูรณ์มากที่สุด ผลงานของคุณก็จะออกมา เหมาะสมกับเวลาที่คุณต้องเสียไป :-)
คอนโทรลแต่ละชนิดจะมีหน้าที่ หรือจุดประสงค์ในการนำไปใช้งานต่างกัน เช่น คอนโทรล CommandButton ใช้สร้างปุ่มกดเพื่อตอบรับ, คอนโทรล OptionButton ใช้สำหรับให้ผู้ใช้มีทางเลือก, คอนโทรล TextBox ใช้รับและแสดงขัอมูลที่ผู้ใช้สามารถแก้ไขได้, คอนโทรล Label ใช้แสดงข้อมูล ที่ผู้ใช้ไม่สามารถแก้ไขได้ เป็นต้น

clip_image002

สำหรับชื่อของคอนโทรลแต่ละตัว คุณสามารถเลื่อนเมาส์ไปบริเวณบนตัวคอนโทรลนั้นๆ แล้วจะมี ToolTip แสดงชื่อของคอนโทรลนั้นๆ ให้ผู้ใช้ทราบ คุณจะได้พบกับ ToolTip ในทุกๆ  แอพพลิเคชันที่รันอยู่ภายใต้ Windows 98/95 และ NT ซึ่งถือได้ว่าเป็นมาตรฐานไปแล้ว และคุณก็สามารถทำให้แอพพลิเคชันของคุณมี ToolTip ได้ด้วย VB เช่นกัน

รูปที่ 2.1 แสดงกลุ่มคอนโทรลมาตรฐานของ VB

clip_image003

รูปที่ 2.2 แสดง ToolTip ชื่อของคอนโทรล

รูปแบบการปรากฎของคอนโทรลแต่ละชนิดบนฟอร์ม

คอนโทรลแต่ละชนิดมีรูปแบบการปรากฎตัว มีความแตกต่างกัน คอนโทรลบางตัวเมื่อคุณนำมาใช้งานอาจจะไม่มีการปรากฎตัวขึ้นมา หรืออาจจะปรากฎขึ้นมาเลยก็ได้ ซึ่งจะขึ้นอยู่กับหน้าที่ของแต่ละคอนโทรล สำหรับคอนโทรลที่คุณจะต้องใช้งานในทุกๆ แอพพลิเคชันจะมี เช่น CommandButton, TextBox, CheckBox, OptionButton, ScrollBar เป็นต้น คอนโทรลพวกนี้ถือได้ว่าเป็น คอนโทรลคลาสสิค หมายถึง เป็นคอนโทรลที่คุณพบเห็นได้ทั่วไป รูปแบบการปรากฎตัวของคอนโทรลสามารถแยกออกได้เป็น 2 แบบ คือ

1.ปรากฎตัวทันทีเมื่อคุณนำมาใช้งาน หมายถึง คุณสามารถเห็นได้ในขณะที่คุณออกแบบ ที่เรียกว่า design time ซึ่งคอนโทรลส่วนใหญ่ จะมีลักษณะเช่นนี้
2.ไม่ปรากฎตัวเมื่อคุณนำมาใช้งาน หมายถึง คอนโทรลประเภทที่คุณไม่สามารถมองเห็นการทำงานของตัวมันในขณะออกแบบได้ มันจะทำงานอยู่เบื้องหลัง แอพพลิเคชันของคุณ ซึ่งจะเป็นเวลาในช่วงของการรันแอพพลิเคชัน ที่เรียกว่า run time เช่น คอนโทรล Timer, CommonDialog เป็นต้น

clip_image004
รูปที่ 2.3 แสดงรูปแบบของคอนโทรลหลายๆชนิดบนฟอร์ม

แนวทางในการออกแบบอินเตอร์เฟสแรกของคุณ

สำหรับการออกแบบอินเตอร์เฟสของคุณ VB อนุญาตให้คุณสามารถที่จะวาดคอนโทรลได้อย่างอิสระ ไม่มีกฎเกณฑ์ตายตัว ณ ตำแหน่งใดก็ใด้ ที่อยู่ในบริเวณฟอร์ม คุณสามารถสร้างสรรค์ให้แอพพลิเคชันของคุณ มีหน้าตาเป็นอย่างไรก็ได้ แต่ขอให้คุณยึดถือไว้ว่า อินเตอร์เฟสที่ออกมา จะต้องเป็นมิตรกับผู้ใช้ มีรูปแบบเดียวกับแอพพลิเคชันทั่วๆไป ไม่ทำให้ผู้ใช้สับสนกับแอพพลิเคชันของคุณ ยกตัวอย่างเช่น ถ้าคุณออกแบบอินเตอร์เฟสให้ผู้ใช้ ต้องตอบคำถามมากมาย กว่าจะได้เซฟงาน, มีตัวเลือกมากจนกระทั่ง ผู้ใช้ไม่รู้ว่าจะเลือกอะไรดี, จัดวาง Lay out ไม่เป็นระเบียบ ไม่เป็นกลุ่ม, ทำให้ผู้ใช้สับสนในการใช้งาน สิ่งเหล่านี้ถ้าเป็นคุณพบเจอเอง เชื่อได้ว่าคุณจะเกิดความรู้สึก ไม่อยากใช้งานแอพพลิเคชันนั้นอีกเลย

แอพพลิเคชันทั่วๆไป คุณจะเห็นได้อย่างหนึ่งว่า จะพยายามเน้นที่การใช้งานง่าย รวดเร็ว และมีประสิทธิภาพ ซึ่งเป็นการอำนวยความสะดวกให้ผู้ใช้เป็นอันดับแรก แต่ภาระต่างๆ จะอยู่ที่โปรแกรมเมอร์ต่างหาก :-)
สิ่งที่จะสร้างแนวความคิดให้คุณออกแบบอินเตอร์เฟสได้อย่างรวดเร็วก็คือ การที่ตัวคุณเองจะต้องมีประสบการณ์ ในการใช้งานแอพพลิเคชันในด้านต่างๆ ให้มากที่สุด เท่าที่จะเป็นไปได้ แล้วตัวคุณเองจะได้ concept ในการสร้างแอพพลิเคชันได้อย่างไม่ยากเย็น ผู้เขียนมักจะใช้แอพพลิเคชันประเภท freeware หรือ shareware ต่างๆ เป็นแนวทางในการออกแบบอินเตอร์เฟส ในบางครั้งคุณอาจพบว่า แอพพลิเคชันประเภทนี้ ยังดีกว่าแอพพลิเคชันที่มีราคาสูงด้วยซ้ำ

ข้อสังเกตอีกประการหนึ่งคือ ในแอพพลิเคชันทั่วๆไป เช่น Word, Excel รวมถึงผลิตภัณฑ์ที่ไม่ใช่ของไมโครซอฟท์ จะมีส่วนอินเตอร์เฟสที่มีลักษณะ คล้ายคลึงกันมาก ทำให้ผู้ใช้มีความคุ้นเคย สามารถเรียนรู้ ทำความเข้าใจได้ไม่ยากเย็นนัก อย่างน้อยที่สุด ทำให้ผู้ใช้งานมีความรู้สึกว่า ไม่ต้องเริ่มต้นเรียนรู้ใหม่ มีความสนใจอยากที่จะเรียนรู้ ใช้งานแอพพลิเคชันนั้นๆ มากขึ้น ซึ่งเป็นสิ่งที่โปรแกรมเมอร์ จะต้องสื่อออกมา กับอินเตอร์เฟสให้ได้
ข้อได้เปรียบที่เห็นได้ชัดเจนมากที่สุดในการพัฒนาแอพพลิเคชันด้วย VB นั่นก็คือ คุณสามารถใช้ระยะเวลาสั้นๆ ในการออกแบบอินเตอร์เฟส ได้อย่างรวดเร็ว ทำให้คุณสามารถเปลี่ยนแปลง แก้ไขอินเตอร์เฟส ให้ตรงกับความต้องการของผู้ใช้งาน ได้อย่างง่ายดาย ซึ่งเป็นการ programming  ในสมัยใหม่ ซึ่งจะช่วยย่นระยะเวลาในการพัฒนาแอพพลิเคชันได้เป็นอย่างดี

clip_image005
รูปที่ 2.4 แสดงสภาพแวดล้อมของ Word 2000

clip_image006
รูปที่ 2.5 แสดงสภาพแวดล้อมของ Excel 2000
สำหรับแอพพลิเคชันที่ไม่ใช่ผลิตภัณฑ์ของไมโครซอฟท์ ก็ยังคงมีอินเตอร์เฟสที่ใกล้เคียงกัน จะแตกต่างกันในแง่ของหน้าที่การใช้งานเท่านั้น

clip_image007
รูปที่ 2.6 แสดงสภาพแวดล้อมของ Netscape Composer
หรือแม้แต่ browser ยอดนิยมก็ยังคงมีอินเตอร์เฟสที่คล้ายคลึงกัน ทำให้คุณคุ้นเคยกับสภาพแวดล้อมเป็นอย่างดี

clip_image008
รูปที่ 2.7 แสดงสภาพแวดล้อม Interner Explorer 5.0

clip_image009
รูปที่ 2.8 แสดงสภาพแวดล้อม Netscape Communicator 4.61
องค์ประกอบหลักๆ ของอินเตอร์เฟส จะประกอบไปด้วย เมนู, ToolBar, dialog box ชนิดต่างๆ เช่น เปิดไฟล์, เซฟไฟล์, พิมพ์งาน เป็นต้น สิ่งเหล่านี้ VB เตรียมไว้ให้คุณแล้ว ที่เหลือก็ขึ้นอยู่กับคุณว่า จะนำไปใช้งานให้เกิดประสิทธิภาพมากเพียงใด

clip_image010

รูปที่ 2.9 แสดงไดอะล๊อกบ๊อกซ์เซฟไฟล์ของ Excel 2000   และ Word 2000
จะเห็นได้ว่ามีความคล้ายคลึงกัน เนื่องจากใช้งานกลุ่มฟังก์ชัน Windows API ชุดเดียวกัน มีผลทำให้ผู้ใช้มีความรู้สึกว่า ไม่ต้องเริ่มต้นเรียนรู้ใหม่ทั้งหมด และมีความรู้สึกต้องการใช้แอพพลิเคชันนั้นๆ ด้วย

clip_image011
รูปที่ 2-10 แสดงไดอะล๊อกบ๊อกซ์ Open File ของ Excel 2000 และ Word 2000

ส่วนประกอบของอินเตอร์เฟส เกิดจากการใช้คอนโทรลชนิดต่างๆ เข้าด้วยกัน เช่น คอนโทรล CommandButton, Frame, CheckBox เป็นต้น แต่คุณไม่จำเป็นที่จะต้องออกแบบอินเตอร์เฟสทุกอย่าง ในแอพพลิเคชันหนึ่งๆ VB ได้เตรียมกลุ่มฟังก์ชัน ที่ให้คุณเขียนโค้ดเพียงบรรทัดเดียว ก็สามารถเรียกใช้งานได้แล้ว เช่น message box ที่เตือนให้ผู้ใช้เซฟงาน ก่อนออกจากโปรแกรม, ไดอะล๊อกบ๊อกซ์เซฟไฟล์, เปิดไฟล์ เป็นต้น ซึ่งผู้เขียนจะอธิบายในบทต่อๆ ไป

clip_image012
รูปที่ 2.11 แสดง message box ที่เตือนใหัผู้ใช้เซฟงาน ใน VB คุณเขียนโค้ดเพียงบรรทัดเดียวเท่านั้น

การนำคอนโทรลมาใช้งาน

สำหรับวิธีการนำคอนโทรลมาใช้งาน วาดอินเตอร์เฟสบนฟอร์ม มี 2 วิธี คือ

1.คลิ๊กที่ตัวคอนโทรลนั้นๆ บน ToolBox แล้วนำไปวาดบนฟอร์ม

คุณสามารถกำหนดความกว้างและความยาวของคอนโทรลได้อย่างอิสระรวมถึงกำหนดตำแหน่งได้เช่นกัน VB จะแสดง ToolTip แสดงขนาดของคอนโทรล โห้อัตโนมัติ ส่วนตำแหน่งของคอนโทรลดูได้จาก บนToolBar โดยแสดงแบบพิกัด co-ordinate วัดจากมุมซ้ายบนของฟอร์มที่บรรจุอยู่ ถ้าคอนโทรลนั้นอยู่ในคอนโทรล Frame ก็จะวัดจากมุมซ้ายบนของคอนโทรล Frame แทน ดังรูป

clip_image013
รูปที่ 2.12 แสดง ToolTip บอกขนาดของคอนโทรล
clip_image014
รูปที่ 2-13 แสดงขนาดของคอนโทรลบน Tool Bar

2.ดับเบิลคลิ๊กที่ตัวคอนโทรลนั้นเลย แล้ว VB จะนำคอนโทรลไปวางบนฟอร์มให้คุณโดยอัตโนมัติ ซึ่ง VB จะตั้งค่า default ไว้ให้คุณทั้งตำแหน่ง และขนาดของคอนโทรล แล้วคุณค่อยแก้ไนภายหลัง สำหรับคอนโทรล CommandButton คุณอาจใช้ขนาด default ที่ VB ตั้งมาไปใช้งานเลยก็ได้ เพราะมีขนาดเหมาะสมอยู่แล้ว

clip_image015
รูปที่ 2.14 แสดงคอนโทรล CommandButton แบบ default
สำหรับการปรับขนาดของคอนโทรล ให้คุณคลิ๊กที่คอนโทรลนั้นๆ เพื่อให้อยู่ในสภาวะแอกทีฟ (active) แล้วจะมีปุ่มสี่เหลี่ยมทึบ 8 ปุ่มอยู่บนตัวคอนโทรล ให้คุณเลื่อนเมาส์ไปบริเวณปุ่มทึบ   (เคอร์เซอร์เปลี่ยนเป็นลูกศร 2 หัว) คุณก็สามารถปรับขนาดได้ตามต้องการ สำหรับการเลื่อนตำแหน่งของคอนโทรล คุณสามารถ drag เมาส์ บนคอนโทรลนั้นๆ แล้วย้ายไปยังตำแหน่งที่คุณต้องการโด้โดยตรง ซึ่งก็จะเหมือนกับ การใช้งานแอพพลิเคชันทั่วๆไป

พื้นฐานการเขียนโค้ด

สำหรับหัวข้อนี้จะเป็นขั้นตอนที่ต่อจากการออกแบบอินเตอร์เฟส หลังจากที่คุณได้ออกแบบอินเตอร์เฟสเรียบร้อยแล้ว คุณจะต้องเริ่มเขียนโค้ด สำหรับคอนโทรลแต่ละตัว เพราะเมื่อ คุณออกแบบอินเตอร์เฟสแล้ว มันยังไม่สามารถทำอะไรได้เลย ใน VB จะมี editor ไว้สำหรับให้คุณเขียนโค้ดโดยเฉพาะ เตรียมไว้ให้คุณแล้ว ดังรูป

clip_image016
รูปที่ 2.15 แสดง editor ของ VB
มี 2 วิธีที่คุณสามารถเรียก editor ขึ้นมาใช้งานคือ
1.ดับเบิลคลิ๊กที่ตัวคอนโทรลนั้นๆ
2.คลิกที่คอนโทรลนั้น ให้อยู่ในสภาพแอกทีฟ (active) หรือได้รับความสนใจ (focus) แล้วกด F7

การใช้งาน editor

เครื่องมือตัวนี้ถือได้ว่าเป็นเครื่องมือที่มีความสำคัญมากที่สุด อีกตัวหนึ่งในบรรดาเครื่องมือที่ VB มี เพราะใช้สำหรับเขียนโค้ด ให้แอพพลิเคชันของคุณทำงานได้ (ผู้เขียนจะใช้คำว่า editor จะหมายถึง editor ของ VB) เครื่องมือตัวนี้คุณต้องใช้งานมากที่สุด ในขบวนการพัฒนาแอพพลิเคชันด้วย VB การศึกษาสภาพแวดล้อมของ editor จึงมีความสำคัญเป็นอย่างยิ่ง ไม่ยิ่งหย่อนไปกว่าส่วนใดๆ ใน VBIDE การทำความรู้จัก รูปแบบการใช้งาน และความหมายของส่วนต่างๆของ editor จะช่วยลดระยะเวลาในการเขียนโค้ดได้อีกระดับหนึ่ง จากรูปที่ 2.15 สามารถแยกส่วนต่างๆ ของ editor ออกได้เป็น 3 ส่วนดังนี้

1.ส่วน object list box มีหน้าที่แสดงชื่อคอนโทรลหรืออ๊อบเจ็กต์ที่คุณนำมาใช้งาน เมื่อคุณเพิ่มคอนโทรลเข้ามาในฟอร์ม รายชื่อของคอนโทรล จะถูกเพิ่มเข้ามาโดยอัตโนมัติ ถ้าคุณมีการเปลี่ยนแปลงชื่อของคอนโทรล (คุณสมบัติ Name) ชื่อที่ปรากฎอยู่ใน object list box ก็จะเปลี่ยนไปตามชื่อที่คุณตั้งไว้เช่นกัน

clip_image017
รูปที่ 2.16 แสดงส่วน object list box และคอนโทรล CommandButton ชื่อปกติและ CommandButton ที่เปลี่ยนชื่อแล้ว
2.ส่วน event list box มีหน้าที่แสดงเหตุการณ์ (event) ของคอนโทรลที่ถูกเลือกใน object list box สนับสนุนอยู่ มันจะเปลี่ยนแปลงโดยอัตโนมัติ เมื่อคุณเปลี่ยนชนิดของคอนโทรลใน object list box ทั้ง 2 ส่วนนี้จะมีความสัมพันธ์กันตลอดเวลา

clip_image018
รูปที่ 2.17 แสดงส่วน event list box และรายการ events ที่คอนโทรล CommandButton สนับสนุน
3.ส่วนการเขียนโค้ด เมื่อคุณเลือกคอนโทรลใน object list box และเลือกเหตุการณ์ใน event list box แล้ว VB จะสร้างโพรซีเดอร์ (procedure) ว่างๆขึ้นมาให้คุณโดยอัตโนมัติ ดังรูป

clip_image019
รูปที่ 2.18 แสดงโพรซีเดอร์เหตุการณ์ Click ของคอนโทรล CommandButton
มาดูความหมายในแต่ละคำของโพรซีเดอร์ สำหรับพื้นที่ในการเขียนโค้ดจะอยู่ระหว่าง 2 บรรทัดดังกล่าว (ที่เคอร์เซอร์กระพริบอยู่)

Private เป็นคำสงวนที่กำหนดขอบเขตของโพรซีเดอร์
Sub เป็นคำสงวนที่บอกชนิดของโพรซีเดอร์ กรณีนี้เป็นแบบซับรูทีน (ในการใช้งานจริงจะมีรูปแบบของโพรซีเดอร์หลายชนิด เช่น โพรซีเดอร์ทั่วไป ฟังก์ชันที่คุณสร้างขึ้นมาเอง ซึ่งผู้เขียนจะกล่าวถึงในบทต่อๆไป)
Command1 หมายถึงชื่อของอ๊อบเจ๊กต์ หรือคอนโทรล ถ้าคุณมีการเปลี่ยนชื่อ (คุณสมบัติ Name) ส่วนนี้จะเปลี่ยนไปเป็นชื่อเดียวกับชื่อที่คุณตั้งไว้
_ เครื่องหมายอันเดอร์สกอร์ ใช้แบ่งชื่อของคอนโทรลและเหตุการณ์ออกจากกัน
Click เหตุการณ์ประจำโพรซีเดอร์ หมายความว่าโพรซีเดอร์นี้จะทำงานเมื่อมีการคลิกปุ่มที่ชื่อว่า Command1 เท่านั้น
( ) ในวงเล็บ อาจจะมีรายการตัวแปรที่คุณจำเป็นต้องใช้ในโพรซีเดอร์นี้ ซึ่งเรียกว่า อาร์กิวเมนต์ (arguments) ซึ่งในการใช้งานจริง คุณจะได้พบอีกเช่นกัน :-)
End Sub จบโพรซีเดอร์

โพรซีเดอร์ประจำคอนโทรล

เมื่อคุณนำคอนโทรลชนิดต่างๆ มาใช้งานแล้ว VB จะสร้างโพรซีเดอร์ว่างๆ พร้อมเหตุการณ์ประจำคอนโทรลนั้นๆ ขึ้นมาเสมอ โดยที่ VB จะคำนึงถึงหน้าที่ของแต่ละคอนโทรลเป็นหลัก แล้วสร้างโพรซีเดอร์เหตุการณ์ขี้นมาโดยอัตโนมัติ เช่น คอนโทรล CommandButton มีหน้าที่เป็นปุ่มให้ผู้ใช้คลิกตอบรับ (เหตุการณ์ Click) VB ก็จะสร้างโพรซีเดอร์ Private Sub Command1_Click( ), คอนโทรล TextBox มีหน้าที่รับหรือแสดงข้อมูล ที่ผู้ใช้สามารถเปลี่ยนแปลงได้ VB จะสร้างโพรซีเดอร์ Private Sub Text1_Change( ), ฟอร์ม เป็นตัวบรรจุคอนโทรลอื่นๆ และจะถูกโหลดเข้ามาในหน่วยความจำก่อนเสมอ VB จะสร้างโพรซีเดอร์ Private Sub Form_Load( ) เป็นต้น โพรซีเดอร์ต่างๆ ที่ VB สร้างขึ้นมา คุณไม่จำเป็นต้องใช้งานทั้งหมด หรือถ้าจะใช้ทั้งหมดก็ได้ คุณสามารถปล่อยให้เป็นโพรซีเดอร์ว่างๆ ได้ โดยไม่ปัญหาในการประมวลผลแต่อย่างใด
แม้ว่า VB จะสร้างโพรซีเดอร์ประจำคอนโทรลให้คุณโดยอัตโนมัติอยู่แล้ว แต่ในความเป็นจริง โพรซีเดอร์เหล่านี้ ยังไม่สามารถรองรับการทำงาน ของแอพพลิเคชันหนึ่งๆ ได้ทั้งหมด คุณจะต้องเพิ่มเหตุการณ์ต่างๆ ขึ้นมา เพื่อรองรับการใช้งานของผู้ใช้ ดังนั้น สิ่งที่คุณต้องศึกษาต่อไปก็คือ จะมีเหตุการณ์อะไรบ้างที่อาจเกิดขี้นกับคอนโทรล คอนโทรลแต่ละชนิดสนับสนุนเหตุการณ์อะไรบ้าง เหตุการณ์ที่เกิดขึ้นในแต่ละคอนโทรล มีความสัมพันธ์กันอย่างไร ซึ่งผู้เขียนจะอธิบายแยกแต่ละคอนโทรลในบทต่อๆ ไป สำหรับวิธีการเพิ่มโพรซีเดอร์เหตุการณ์ของแต่ละคอนโทรล ดังนี้

1.ให้คุณเลื่อกชนิดของคอนโทรล หรืออ๊อบเจ็กต์ใน object list box
2.เลือกเหตุการณ์ใน event list box
3.VB จะสร้างโพรซีเดอร์ใหม่ที่ตรงกับเหตุการณ์ที่คุณเลือกไว้ กับคอนโทรลนั้นๆ

clip_image020
รูปที่ 2.19 แสดงโพรซีเดอร์เหตุการณ์ LostFocus ของคอนโทรล CommandButton ที่ถูกเพิ่มเข้ามา
และถ้าในกรณีที่คุณเลือกคอนโทรลเหมือนกัน เหตุการณ์เหมือนกัน ในฟอร์มเดียวกัน VB จะสร้างโพรซีเดอร์เหตุการณ์ ให้กับคอนโทรลทั้ง 2 ตัว เพราะ VB ถือว่าเป็นคนละอ๊อบเจ็กต์กัน เช่น ถ้าคุณใช้งานคอนโทรล CommandButton 2 ตัว ซึ่งมีเหตุการณ์คลิกเหมือนกัน จึงมีเหตุการณ์คลิ๊ก 2 โพรซีเดอร์ สำหรับคอนโทรล Command1 และ Command2 ผู้ใช้คลิกปุ่ม Command1 อาจจะออกจากโปรแกรม ผู้ใช้คลิ๊ก  Command2 อาจจะแสดงข้อความ Hello World ! ก็ได้

clip_image021
รูปที่ 2.20 แสดงโพรซีเดอร์เหตุการณ์คลิกของคอนโทรล CommandButton 2 ตัว
สำหรับในส่วน object list box จะมีรายการพิเศษที่เขียนว่า (General) และใน event list box จะเขียนว่า (declarations) จะเป็นพื้นที่พิเศษ ที่ใช้สำหรับประกาศ (declare) ตัวแปรต่างๆ, กลุ่มฟังก์ชัน Windows API เป็นต้น รายละเอียดผู้เขียนจะอธิบายอีกครั้งในบทที่ 3

โค้ดชุดแรกของคุณ

หลังจากที่ VB ได้สร้างโพรซีเดอร์ต่างๆ ขึ้นมาประจำคอนโทรลแล้ว คุณจะต้องเริ่มเขียนโค้ดเพื่อที่จะทำให้แต่ละโพรซีเดอร์ทำงานได้ ซึ่งในแต่ละโพรซีเดอร์ จะรองรับเหตุการณ์เดียวเท่านั้น คุณจะต้องเขียนโค้ดให้แต่ละโพรซีเดอร์ทำงานครบ และเสร็จสิ้นภายในโพรซีเดอร์มันเอง   เช่น เมื่อผู้ใช้คลิ๊กปุ่ม OK แล้วจะเกิดอะไรขึ้นบ้าง, เมื่อฟอร์มถูกโหลดเข้ามาจะมีอะไรบ้าง, เมื่อผู้ใช้ดับเบิลคลิ๊กที่ฟอร์ม จะเกิดอะไรขึ้น คุณก็ต้องเขียนโค้ดรองรับเหตุการณ์เหล่านี้ทั้งหมด เป็นต้น
องค์ประกอบหลักของการเขียนโค้ดตอบรับ คือ คุณจะต้องเชื่อมโยงโพรซีเดอร์ต่างๆ ให้สามารถทำงานสอดคล้องกัน ไปตามการทำงาน ของแอพพลิเคชันนั้นๆ ให้ได้   ผู้เขียนจะยกตัวอย่างโพรซีเดอร์ที่คุณต้องใช้งานในทุกๆ แอพพลิเคชัน ก็คือ เมื่อผู้ใช้คลิกปุ่ม Command1 แล้วให้จบการทำงานของโปรแกรม
Private Sub Command1_Click()
   End
End Sub
คำสงวน End เป็นการบอกให้รู้ว่า เมื่อผู้ใช้คลิ๊กปุ่ม Command1 แล้วให้จบการทำงาน ต่อไปผู้เขียนจะยกตัวอย่างที่แสดงให้เห็น การเชื่อมโยง 2 โพรซีเดอร์เข้าด้วยกัน ให้วาดอินเตอร์เฟสดังรูป และเขียนโค้ดต่อไปนี้

clip_image022
รูปที่ 2.21 แสดงอินเตอร์เฟสเพื่อสั่งให้คอนโทรล TextBox แสดงข้อความ hello world
Private Sub Command1_Click ( )
    Text1.Text = "hello world"
End Sub
Private Sub Command2_Click ( )
     Text2.Text = " "
End Sub
ให้ทดลองรันโปรแกรมโดยการคลิ๊กปุ่ม
clip_image023 บน ToolBar หรือกดปุ่ม F5 แล้วลองคลิ๊กที่ปุ่ม Command1 และ Command2 ดูผลที่เกิดขึ้น เมื่อคุณคลิ๊กที่ปุ่ม Command1 จะมีข้อความ hello world ปรากฎในคอนโทรล TextBox และเมื่อคลิ๊กที่ปุ่ม Command2 ข้อความดังกล่าวจะหายไป

ทำความเข้าใจกับโค้ดชุดแรก

มาลองดูความหมายของโค้ดที่คุณเขียนเข้าไป มีรายละเอียดดังนี้
Private Sub Command1_Click ( )
หมายถึง โพรซีเดอร์นี้ทำงานเมื่อผู้ใช้คลิ๊กที่ปุ่ม Command1 เท่านั้น
Text1.Text = "hello world"
หมายถึง สั่งให้คอนโทรล TextBox ที่ชื่อ Text1 แสดงข้อความ hello world ผ่านทางคุณสมบัติ Text เพราะว่าคุณสมบัติ Text นี้มีหน้าที่แสดงข้อความ ส่วนจุด . ใช้แยกชื่อคอนโทรลกับคุณสมบัติ (properties) หรือแยกชื่อคอนโทรลกับเมธอด (methods) กรณีนี้ Text เป็นคุณสมบัติของคอนโทรล TextBox
End Sub
หมายถึง จบโพรซีเดอร์ Command1_Click ( )
Private Sub Command2_Click ( )
หมายถึง โพรซีเดอร์นี้ทำงานเมื่อผู้ใช้คลิ๊กที่ปุ่ม Command2 เท่านั้น
Text1.Text = " "
หมายถึง สั่งให้คอนโทรล TextBox ที่ชื่อ Text1 ไม่ต้องแสดงข้อความ เครื่องหมาย " " แทนข้อความว่างเปล่า
End Sub
จบโพรซีเดอร์ Command2_Click ( )

หมายเหตุในการเขียนโค้ด (Comment)

ในการเขียนโปรแกรม ไม่ว่าจะเป็นภาษาใดก็ตาม คุณควรที่จะต้องเขียนหมายเหตุไว้ เพื่อบอกความหมายของโค้ดบรรทัดต่อไป อาจเขียนไว้เพื่อบอกว่า ตัวแปรนี้ใช้แทนอะไร ข้อความบอกจุดประสงค์ของโค้ดบรรทัดนั้นๆ เพื่อเป็นประโยชน์ ในกรณีที่คุณต้องย้อนกลับมา ศึกษาโค้ดนี้อีกครั้ง รูปแบบการเขียนหมายเหตุก็คือ ควรจะเป็นข้อความสั้นๆ กระชับ แต่ได้ใจความ ที่บอกความหมายของโค้ดบรรทัดนั้น หรือบอกว่าตัวแปรนั้นแทนอะไร คุณไม่ควรใช้คำอธิบาย เพราะตัวหมายเหตุเอง จะทำให้คุณงงมากกว่าโด้ดเสียอีก ในกรณีที่คุณต้องเขียนโค้ดมากๆ   สำหรับการเขียนโค้ดที่มีการใช้งานตัวแปร ผู้เขียนจะกล่าวอีกครั้งในบทที่ 3
วิธีการเขียนหมายเหตุใน VB คือ จะใช้เครื่องหมาย ' (apostrophe) หน้าบรรทัดที่คุณต้องการทำหมายเหตุ แล้ว editor จะเปลี่ยนบรรทัดนั้น เป็นสีเขียว และจะไม่สนใจบรรทัดดังกล่าว ในการประมวลผลทันที คุณอาจใช้หมายเหตุ เพื่อทดสอบที่ละโพรซีเดอร์ก็ได้ เช่น กรณีที่โพรซีเดอร์เกิด error บ่อยมาก :-( คุณก็หมายเหตุโพรซีเดอร์ ที่ error ไว้ก่อนก็ได้ คุณอาจใช้คำสงวน Rem มาจากคำว่า Remark แทนเครื่องหมาย ' ก็ได้ โปรแกรมเมอร์ส่วนใหญ่ จะใช้หมายเหตุ ุเพื่อบอกความหมายของโค้ดเป็นช่วงๆ เสมอ แต่ผู้เขียนจะหมายเหตุเกือบทุกบรรทัด เพราะผู้เขียนยังไม่ใช่โปรแกรมเมอร์ :-)

คุณสมบัติและเมธอดของคอนโทรลคืออะไร

สำหรับคอนโทรลและอ๊อบเจ็กต์ทุกชนิดใน VB จะมีคุณสมบัติและเมธอดประจำตัวของมันเอง ความหมายของทั้ง 2 อย่างมีดังนี้
คุณสมบัติ (properties) หมายถึง รูปร่าง ลักษณะ ความกว้าง ความยาว สี ฯลฯ ของตัวคอนโทรลหรืออ๊อบเจ็กต์ ขอให้คุณมองคอนโทรลหรืออ๊อบเจ็กต์ เป็นเสมือนวัตถุชิ้นหนึ่ง ที่มีความยาว ความกว้าง สีของตัวมันเอง คุณสามารถแก้ไขได้เหมือนดั่งเช่น คุณกำลังปรับแต่งวัตถุชิ้นหนึ่งอยู่
สำหรับในแต่ละคอนโทรล หรืออ๊อบเจ็กต์ อาจจะมีคุณสมบัติที่เหมือนกัน หรือต่างกันก็ได้ ขึ้นอยู่กันหน้าที่ของแต่ละคอนโทรล คอนโทรลหรืออ๊อบเจ็กต์หนึ่งๆ จะมีคุณสมบัติมากมาย หลายอย่าง ยิ่งคุณสามารถปรับแต่งคุณสมบัติ ให้ตรงกับความต้องการของคุณ มากเพียงใด แอพพลิเคชันของคุณก็จะมีประสิทธิภาพมากขึ้นเท่านั้น ซึ่งถือได้ว่าเป็นจุดเริ่มต้นได้ดี ในการพัฒนาแอพพลิเคชัน คุณสามารถปรับแต่ง คุณสมบัติได้จากหน้าต่าง Properties หรือปรับแต่งด้วยการเขียนโค้ดก็ได้ จะมีคุณสมบัติบางตัว ที่ไมโครซอฟท์แนะนำให้ ปรับแต่งด้วยการเขียนโค้ด และบางตัวปรับแต่งด้วยการแก้ไขในหน้าต่าง Properties ซึ่งผู้เขียนจะอธิบายอย่างละเอียดอีกครั้ง ในการใช้งานแต่ละคอนโทรล และในทางปฏิบัติ คุณไม่จำเป็นต้องปรับแต่งทุกๆ คุณสมบัติ เพราะ VB ได้ตั้งค่า default ไว้ให้คุณแล้ว ซึ่งก็สามารถใช้งานได้ในระดับหนึ่ง
เมธอด (methods) หมายถึง พฤติกรรมของคอนโทรลหรืออ๊อบเจ็กต์ อาจกล่าวได้ว่า เป็นการควบคุมการทำงานของคอนโทรล หรืออ๊อบเจ็กต์นั่นเอง จะใช้จุดเป็นตัวคั่นระหว่าง ชื่อคอนโทรลกับเมธอด ซึ่งจะเห็นได้ว่า คุณสมบัติและเมธอดมีความใกล้เคียงกันมาก เนื่องจากจะใช้ จุด .เป็นตัวแยกระหว่าง ชื่อคอนโทรลกับคุณสมบัติ หรือชื่อคอนโทรลกับเมธอด   จะมีความแตกต่างกัน ในแง่ของการควบคุมคอนโทรล หรืออ๊อบเจ็กต์ ซึ่งคุณจะได้ศึกษาในหัวข้อต่อๆ ไป

ความสามารถพิเศษของ editor

จากตัวอย่างข้างต้นจะพบว่า ขณะที่คุณพิมพ์โค้ดให้กับแต่ละโพรซีเดอร์ เมื่อคุณพิมพ์ . ตัว editor จะแสดง ToolTip ที่เป็นรายการคุณสมบัติ หรือรายการเมธอด ที่คอนโทรลนั้นสนับสนุนอยู่ขึ้นมาทันที มันช่วยให้คุณไม่ต้องไปจดจำว่า คอนโทรลนี้มีคุณสมบัติอะไรบ้าง มีเมธอดอะไร รวมถึงป้องกันไม่ให้คุณ พิมพ์ผิดอีกด้วย ดังรูป

clip_image024
รูปที่ 2.22 แสดง ToolTip ของ editor ขณะเขียนโค้ด
และถ้าในการเขียนโค้ดที่ต้องมีการเรียกใช้งานฟังก์ชันมาตรฐานต่างๆ ToolTip ก็จะแสดงรูปแบบไวยากรณ์อีกด้วย

clip_image025
รูปที่ 2.23 แสดงไวยากรณ์ประจำฟังก์ชันนั้นๆ
ความสามารถทั้ง 2 อย่างช่วยให้โปรแกรมเมอร์ย่นระยะเวลาในการเขียนโค้ดเป็นอย่างยิ่ง เพราะจะทำให้ข้อผิดพลาดที่เกิดจาก การใช้งานผิดไวยากรณ์ หรือพิมพ์ผิด หมดไปได้อย่างสิ้นเชิง และที่สำคัญคุณสามารถพัฒนาแอพพลิเคชันได้เต็มที่ โดยที่ไม่ต้องเสียเวลากับเรื่องที่คุณต้องท่องจำคุณสมบัติต่างๆ นานา รูปแบบการใช้งาน ที่มายมากเหลือเกิน ลำพังแค่ความรู้ เทคโนโลยีใหม่ที่เกิดขึ้นมา ก็แทบเรียนรู้กันไม่หมดแล้ว :-( ซึ่งผู้เขียนเห็นว่า คุณสามารถแสดง ความสามารถได้สุดฝีมือ โดยที่ยังอยู่ในขอบเขตที่ VB จะทำได้ เพราะอย่างไร VB ก็ยังไม่สามารถเทียบเท่า Visual C++ อยู่ดี แต่คุณไม่ต้องห่วง ผู้เขียนเคยเห็นแอพพลิเคชันที่พัฒนาด้วย VB ที่มีการเขียนโค้ดแบบประยุกต์ โดยโปรแกรมเมอร์ต่างประเทศ ถ้าคุณทำได้ คุณก็สามารถพัฒนาแอพพลิเคชันที่มีประสิทธิภาพ ไม่ยิ่งหย่อนไปกว่าแอพพลิเคชันที่พัฒนาด้วย Visual C++ หรือภาษาอื่นๆ เลย :-)
สิ่งที่น่าทึ่งอีกอย่างหนึ่งของ editor ก็คือ มันสามารถตรวจสอบไวยากรณ์ (syntax) ตามโครงสร้างของภาษา VB ได้อีกด้วย ซึ่งเรียกว่า Auto Syntax Check ขณะที่คุณพิมพ์โค้ดเข้าไป เมื่อคุณกด Enter จบบรรทัด VB จะทำการตรวจสอบไวยากรณ์ทันที ถ้ามีข้อผิดพลาด ในการใช้งานไวยากรณ์เกิดขึ้น VB จะแสดงข้อความช่วยเหลือที่เกี่ยวข้องกับความผิดพลาดนั้นๆ ขึ้นมาทันที ทำให้คุณแก้ไขความผิดพลาดนั้นได้อย่างถูกต้อง

clip_image026
รูปที่ 2.24 แสดงข้อความช่วยเหลือ เมื่อคุณพิมพ์ผิดไวยากรณ์
จากรูป เมื่อคุณกดปุ่ม help VB จะแสดงข้อความที่เกี่ยวข้องกับความผิดพลาดที่เกิดขึ้นทันที (ซึ่งผู้เขียนใช้บริการนี้บ่อยมาก)
สำหรับรูปแบบการแสดงโค้ด ที่คุณพิมพ์ลงไปในแต่ละโพรซีเดอร์ VB จะแยกส่วนของโค้ดออกเป็น 3 กลุ่ม ด้วยสีของฟอนต์ คือ

  • ตัวแปร,ชื่อคอนโทรล,เหตุการณ์จะมีสีดำ
  • คำสั่ง,ฟังก์ชัน จะมีสีน้ำเงิน
  • หมายเหตุ จะมีสีเขียว

clip_image001[1]

เมื่อคุณดู source code คุณสามารถใช้กลุ่มสีของฟอนต์ ช่วยในการทำความเข้าใจโค้ดด้วยก็ได้

สิ่งหนึ่งที่จะทำให้เกิดข้อผิดพลาดได้ก็คือ ตัวแปรที่คุณประกาศใช้งานเป็นรูปแบบหนี่ง เวลาคุณพิมพ์อีกแบบหนี่ง VB จะเปลี่ยนให้คุณโดยอัตโนมัติ เช่น เมื่อคุณประกาศตัวแปร tName As String แต่เวลาที่คุณนำไปใช้ คุณพิมพ์ผิดเป็น tname VB จะทำการเปลี่ยนตัวแปรที่คุณพิมพ์ไม่เหมือนกับต้นแบบ ให้เหมือนกันโดยอัตโนมัติ และในกรณีที่คุณมีการใช้คำสั่ง (statement) (หรือคำสงวนประเภทที่ VB ให้คุณใช้ ซึ่ง คำสงวนนั้นจะมีผลในการทำงานของโค้ด ในโพรซีเดอร์ด้วย) VB จะเปลี่ยนอักษรตัวแรก ให้เป็นตัวใหญ่เสมอ เช่น เมื่อคุณพิมพ์ end เข้าไป VB จะเปลี่ยนเป็น End หรือเมื่อคุณพิมพ์  text1.text = "hello world" เข้าไป VB จะเปลี่ยนเป็น Text1.Text = "hello world" ให้คุณ
ทั้งหมดที่ผู้เขียนกล่าวมา จะเห็นได้ว่าไมโครซอฟท์พยายามทำให้ editor มีบทบาทช่วยโปรแกรมเมอร์ ในการพัฒนาแอพพลิเคชันมากที่สุด ยังมีความสามารถอื่นๆ อีกของ editor ที่ผู้เขียนไม่ได้กล่าวไว้ เทคนิคที่คุณใช้ใน Word 97 บางอย่าง คุณสามารถนำมาใช้งานกับ editor ได้เช่นกัน ทดลองดูครับ

คุณสมบัติประจำตัวของคอนโทรล

จากหัวข้อที่ผ่านมา ทำให้คุณทราบว่า คอนโทรลแต่ละชนิดล้วนแล้วแต่มีทั้งคุณสมบัติ และเมธอดทั้งสิ้น ยากแก่การจดจำ (และไม่ต้องจำ) แต่ในทุกๆ คอนโทรล จะมีคุณสมบัติอยู่ตัวหนึ่งที่ใช้สำหรับเก็บค่า แสดงค่า หรืออ่านค่าของตัวมันเอง เช่น คอนโทรล TextBox มีหน้าที่สำหรับ รับหรือแสดงข้อมูล ที่ผู้ใช้สามารถแก้ใขได้ ทั้ง 2 กรณีตัวคอนโทรล TextBox จะเก็บข้อมูลไว้ที่คุณสมบัติ Text จึงถือได้ว่า คุณสมบัติ Text เป็นคุณสมบัติประจำตัวของคอนโทรล TextBox, คอนโทรล CommandButton มีหน้าที่เป็นปุ่มกดรับคำสั่งของผู้ใช้ เช่น ปุ่ม OK , Cancel เป็นต้น คุณสมบัติที่จะแสดงชื่อปุ่มคือ คุณสมบัติ Caption, คอนโทรล Label มีหน้าที่แสดงข้อมูลให้ผู้ใช้ทราบ โดยที่ผู้ใช้ไม่สามารถแก้ไขได้ ก็จะมีคุณสมบัติ Caption เป็นตัวเก็บค่า เป็นต้น ซึ่งคุณสมบัติที่กล่าวมาคุณจะต้องเข้าไปใช้งานอย่างแน่นอน ตารางต่อไปนี้ เป็นคุณสมบัติประจำตัวของแต่ละคอนโทรล

คอนโทรล

คุณสมบัติประจำตัว

CheckBox

Value

ComboBox

Text

CommandButton

Caption

CommonDialog

Action

Data

Caption

DBCombo(Data-Bound ComboBox)

Text

DBGrid(Data-Bound Grid)

Text

DBList(Data-Bound ListBox)

Text

DirListBox

Path

DriveListBox

Drive

FileListBox

FileName

Frame

Caption

HScrollBar

Value

Image

Picture

Label

Caption

Line

Visible

ListBox

Text

OptionButton

Value

PictureBox

Picture

Shape

Shape

TextBox

Text

Timer

Enabled

VScrollBar

Value

ในการเขียนโค้ดกับคุณสมบัติประจำตัวของคอนโทรล คุณไม่จำเป็นต้องระบุคุณสมบัติก็ได้ โดยที่ไม่ผิดไวยากรณ์แต่อย่างใด สำหรับในการใช้งาน จริงๆ แล้ว โปรแกรมเมอร์ทั่วๆ ไปจะไม่นิยมใช้ เพราะว่า มันจะทำให้คุณสับสนเป็นอย่างยิ่ง เนื่องจากเฉพาะโค้ดของแอพพลิเคชันหนึ่ง จะประกอบไปด้วย จำนวนโพรซีเดอร์มากมาย ซึ่งในแต่ละโพรซีเดอร์ยังมีจำนวนบรรทัดของโค้ดอีก หลายสิบ หลายร้อยบรรทัด ทำให้ไม่นิยมใช้ เช่น
รูปแบบที่ 1 Text1.Text ="hello world"
รูปแบบที่ 2 Text1 = "hello world"
รูปแบบที่ 1 เป็นการเขียนโค้ดแบบปกติ ส่วนรูปแบบที่ 2 เป็นการเขียนโค้ดกับคุณสมบัติประจำตัวคอนโทรล ดังนั้นจึงไม่ต้องระบุคุณสมบัติ Text  ก็ได้ ซึ่งไม่ผิดไวยากรณ์แต่อย่างใด ที่ผู้เขียนกล่าวถึง เนื่องจากว่า เป็นการแสดงความยืดหยุ่นที่ไมโครซอฟท์เตรียมไว้ให้คุณเท่านั้น

การเปิดโปรเจ็กต์ที่มีอยู่แล้ว

1.ให้คุณเลือกเมนู File/Open Project หรือคลิ๊กที่ปุ่ม clip_image027 ที่ทูลบาร์ แล้ว VB จะแสดงไดอะล๊อกบ๊อกซ์ Open Project ดังรูป

clip_image028

รูปที่ 2-25 แสดงไดอะล๊อกบ๊อกซ์ Open Project

2.แท็บ Existing หมายถึง คุณต้องการเปิดโปรเจ็กต์ที่มีอยู่ โดยที่ไม่สนใจว่าจะเป็นโปรเจ็กต์ที่คุณสร้างมาเมื่อใด ส่วนแท็บ Recent หมายถึง คุณต้องการเปิดโปรเจ็กต์ที่คุณพัฒนาครั้งหลังสุด ซึ่งจะแสดงไดรฟ์ และโฟลเดอร์ที่เก็บโปรเจ็กต์นั้นๆ อยู่

การเพิ่มโปรเจ็กต์ เข้ามาในสภาพแวดล้อม

1.ให้คุณเลือกเมนู Project/Add Project แล้ว VB จะแสดงไดอะล๊อกบ๊อกซ์  Add Project ดังรูป

clip_image029

รูปที่ 2-26 แสดงไดอะล๊อกบ๊อกซ์ Add Project

2.คุณสามารถเลือกชนิดของโปรเจ็กต์ที่คุณต้องการ ได้จากไดอะล๊อกบ๊อกซ์ดังกล่าว แท็บ Existing หมายถึง คุณต้องการเพิ่มโปรเจ็กต์เดิมที่มีอยู่แล้ว โดยที่ไม่สนใจว่า จะเป็นโปรเจ็กต์ที่คุณสร้างมาตอนไหน ส่วนแท็บ Recent หมายถึง คุณต้องการเพิ่มโปรเจ็กต์ที่คุณพัฒนาครั้งหลังสุด ซึ่งจะแสดงไดรฟ์ และโฟลเดอร์ที่จัดเก็บโปรเจ็กต์นั้นๆ อยู่

การถอดโปรเจ็กต์ออกจากสภาพแวดล้อม

จะใช้สำหรับกรณีที่คุณมีการเพิ่มโปรเจ็กต์เข้ามา แล้วคุณต้องการถอดโปรเจ็กต์นั้นๆ ออกจากสภาพแวดล้อม คุณต้องทำดังนี้
1.ให้คุณเลือกโปรเจ็กต์ที่คุณต้องการถอด จากหน้าต่าง Project Explorer ดังรูป

clip_image030

รูปที่ 2-27 แสดงการเลือกโปรเจ็กต์ที่คุณต้องการถอดออกจากสภาพแวดล้อม

2.เลือกคำสั่ง File/Remove Project

การเพิ่ม Form หรือโมดูลอื่นๆ เข้ามาในสภาพแวดล้อม

1.ให้คุณเลือกเมนู Project จากนั้น ให้คุณเลือกชนิดของโมดูล ที่คุณต้องการเพิ่มเข้ามาในสภาพแวดล้อม และถ้าในกรณีที่คุณต้องการเพิ่ม Form เข้ามาในโปรเจ็กต์ คุณสามารถคลิ๊กที่ปุ่ม clip_image031 บนทูลบาร์เลยก็ได้

clip_image032

รูปที่ 2-28 แสดงการเพิ่ม Form เข้ามาในโปรเจ็กต์

แท็บ Existing หมายถึง คุณต้องการเพิ่มฟอร์มเดิมที่มีอยู่แล้ว ในกรณีนี้เป็นการเพิ่มฟอร์มว่างๆ เข้ามาในสภสพแวดล้อม สำหรับไอคอนต่างๆ มีความหมายดังนี้

clip_image033

เป็นฟอร์มว่างๆ แบบปกติ

clip_image034

เป็นการใช้ความสามารถของ VB Data Form Wizard เพื่อสร้างแบบฟอร์มรายงาน ที่ติดต่อกับฐานข้อมูลโดยผ่านคอนโทรล Data

clip_image035

เป็นแบบฟอร์ม Abount สำเร็จรูป คุณอาจจะต้องปรับแต่งเพื่อให้ได้ฟอร์ม Abount ตามที่คุณต้องการ

clip_image036

เป็นฟอร์มที่มีลักษณะเหมือนกับ browser คล้ายๆ กับ Internet Explorer หรือ Netscapte Communicator

clip_image037

ไดอะล๊อกบ๊อกซ์สำเร็จรูป ถ้าคุณเบื่อกับไดอะล๊อกบ๊อกซ์แบบเก่าๆ นี่เป็นไดอะล๊อกบ๊อกซ์ที่คุณออกแบบเอง

clip_image038

ถ้าคุณสร้างแอพพลิเคชันที่ต้องการตรวจสอบ หรือจำกัดสิทธิการใช้งานผู้ใช้ ในแต่ละระดับ แบบฟอร์ม Log in สำเร็จรูปช่วยคุณได้ ซึ่งจะต้องมีการใส่ชื่อผู้ใช้ และ password ด้วย

clip_image039

เป็นจอภาพเริ่มต้นก่อนเข้าแอพพลิเคชัน ทุกๆ แอพพลิเคชันต้องมี

clip_image040

คุณคงเคยเห็นไดอะล๊อกบ๊อกซ์ที่แสดง Tip ตอนเข้าสู่แอพพลิเคชัน นี่เป็นไดอะล๊อกบ๊อกซ์ที่แสดง Tip สำเร็จรูป ซึ่งคุณต้องเพิ่มเทคนิคต่างๆ เข้าไปเอง

clip_image041

เป็นแบบฟอร์มที่ใช้สำหรับติดต่อกับฐานข้อมูลโดยผ่านไดร์เวอร์ ODBC

clip_image042

เป็นแบบฟอร์มที่มีลักษณะเป็นตัวเลือกเพื่อกำหนดหัวข้อด้านต่างๆ ตามความต้องการของผู้ใช้ ซึ่งคุณจะพบเห็นได้ในแอพพลิเคชันทั่วๆ ไป

2.ให้คุณสังเกตที่หน้าต่าง Project Explorer จะมีรายการแสดงเพิ่มขึ้นมา ซึ่งอยู่ภายใต้ Project เดียวกัน จากรูปจะเห็นว่า Project1 ประกอบด้วย Form 2 ฟอร์ม

clip_image043

รูปที่ 2-29 แสดง Form ที่ถูกเพิ่มเข้ามาในโปรเจ็กต์

การเซฟโปรเจ็กต์

1.ให้คุณเลือกเมนู File/Save Project Group As... หรือคลิ๊กที่ปุ่ม clip_image044 บน Tool Bar แล้ว VB จะแสดงไดอะล๊อกบ๊อกซ์ เซฟโปรเจ็กต์ ดังรูป ซึ่ง VB จะแสดงรายการส่วนประกอบต่างๆ ที่อยู่ในโปรเจ็กต์นั้นๆ ให้คุณทราบด้วย

clip_image045

รูปที่ 2-30 แสดงไดอะล๊อกบ๊อกซ์เซฟโปรเจ็กต์

2.คลิ๊กปุ่ม clip_image046

ในกรณีที่คุณเลือกคำสั่ง Save Form As... หมายถึง เป็นการเซฟเฉพาะฟอร์มที่คุณใช้งานอยู่เท่านั้น

การทดสอบ (run) โปรเจ็กต์

1.ให้คุณเลือกเมนู Run/Start หรือกดปุ่ม F5 ที่คีย์บอร์ด หรือกดปุ่ม clip_image023[1] ที่ทูลบาร์
2.ที่ฟอร์มจะมีการเปลี่ยนรูปแบบ ไม่มีเส้นกริด   และจะปรากฎหน้าต่าง Immediate ด้านล่างของสภาพแวดล้อม
3.ถ้าคุณมีการสั่งให้พิมพ์โดยผ่านทางคำสั่ง Debug.Print ที่หน้าต่าง Immediate จะแสดงผลจากการประมวลผลด้วย
4.คุณจะสังเกตเห็นว่าที่บนทูลบาร์ จะมีปุ่ม
clip_image047 และ clip_image048 มีสถานะ Active อยู่ โดยมีความหมายดังนี้

  • ปุ่ม clip_image048[1] หมายถึง ให้หยุดการรันโปรเจ็กต์
  • ปุ่ม clip_image047[1] หมายถึง ให้หยุดรันโปรเจ็กต์ชั่วคราวเพื่อ แก้ไขโค้ด