หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง Inbox ที่ เฟซบุ๊ค ผมครับ

หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 4 5 6 5 5 5 8

7 ธันวาคม พ.ศ.2549
595 Users On-Line.
Visitors - Page views
 7 7 1 6 4 8 5
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

เทคนิคพื้นฐานในการเขียนโปรแกรม Visual Basic

Category »  VB 6/VB.Net
โดย : Webmaster เมื่อ 5/11/2549 10:30:00
(อ่าน : 174806) 

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

เทคนิคที่ 1 ใช้ Option Explicit อยู่เสมอ

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

เทคนิคที่ 3 ใช้ฟังค์ชั่น Len เพื่อตรวจสอบว่าข้อความว่างเปล่าหรือไม่
ฟังค์ชั่น Len ทำงานได้เร็วกว่ามาก โดยเฉพาะอย่างยิ่งเมื่อทำงานในลูป
ดังตัวอย่างต่อไปนี้
Dim sTemp As String

แทนที่จะใช้

If sTemp = "" Then DoSomeThing

' Check if sTemp is empty

If sTemp <> "" Then DoSomeThing

' Check if sTemp has a value



เราควรใช้

If Len(sTemp) = 0 Then Do SomeThing

' Check if sTemp is empty

If Len(sTemp) > 0 Then DoSomeThing

' Check if sTemp has a value.


เทคนิคที่ 5 กำหนดชนิดของตัวแปรให้ชัดเจน


การกำหนดชนิดของตัวแปรให้ชัดเจน เช่น เป็นตัวแปรชนิด
Long หรือ Integer จะช่วยให้โปรแกรมทำงานเร็วขึ้น
(ก็เพราะตัวแปลภาษา - Complier ทราบถึงชนิดของตัวแปรเรียบร้อยแล้ว
ไม่จำเป็นต้องมาเสียเวลาหาอีก) และ ง่ายต่อการ Debug
เพราะเราสามารถคาดเดา ได้ว่าตัวแปรนั้น สามารถรับค่าช่วงใดได้บ้าง

Dim sMsg As String

Dim iCounter As Integer

Dim vTemp As Variant



ซึ่งเราอาจประกาศตัวแปรหลายตัวเอาไว้บนบรรทัดเดียวกัน
ดังนี้

Dim sMsg As String, iCounter As Integer, vTemp As
Variant



โดยมีข้อควรระวัง คือ ถ้าเราไม่ได้ระบุชนิดข้อมูล จะเป็นการประกาศให้เป็นชนิด
Variant ดังตัวอย่างต่อไปนี้

Dim iCounter ดังนั้นตัวแปร iCounter จะกลายเป็นชนิด
Variant โดยทันที


เทคนิคที่ 7 จำลองคีย์แท็บ เมื่อกด Enter


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



Private Sub Form_KeyPress(KeyAscii As Integer)

If KeyAscii = vbKeyReturn Then

SendKeys "{TAB}"

KeyAscii = 0

End If

End Sub


 


  เทคนิคที่ 2 ใช้ NOT แทน <> เมื่อต้องการตรวจสอบความไม่เท่ากัน

การใช้ฟังค์ชั่น NOT จะทำงานได้เร็วกว่า <> เป็นอย่างมาก
โดยเฉพาะอย่างยิ่ง เมื่อทำงานในลูป ดังตัวอย่างต่อไปนี้

Dim i As Integer

แทนที่จะใช้

If i <> 5000 Then DoSomeThing

เราควรใช้

If Not i = 5000 Then DoSomeThing



เทคนิคที่ 4 เมื่อประกาศออปเจกต์ อย่าใช้ Dim ... As New ...


แทนที่จะประกาศออปเจกต์เป็น Instance ตัวใหม่ เราควรประกาศตัวแปรเป็นชนิดออปเจกต์นั้น
แล้วค่อยสร้าง Instance ขึ้นมาใหม่ ทั้งนี้เพื่อให้ทำงานได้เร็วขึ้น
และ รับประกันว่าจะมีการล้างหน่วยความจำที่ใช้โดยออปเจกต์
เมื่อเราไม่ต้องการใช้มันอีกต่อไป ด้วยการกำหนดค่า Nothing
ให้ ดังตัวอย่างต่อไปนี้

แทนที่จะใช้

Dim MyConnect As New Connection

เราควรใช้

Dim MyConnect As Connection

Set MyConnect = New Connection

จากนั้นเมื่อเราใช้เสร็จแล้ว เราควรล้างหน่วยความจำ
ด้วยการกำหนดค่า Nothing ให้กับตัวแปรดังนี้

Set MyConnect = Nothing


เทคนิคที่ 6 ระมัดระวังในการใช้ฟังค์ชั่น String และ Variant ที่อาจให้ผลลัพธ์ต่างกัน


ใน Visual Basic เราจะมีฟังค์ชั่นที่ลงท้ายด้วยเครื่องหมาย Dollar Sign
"$" อยู่กลุ่มหนึ่ง คู่กับฟังค์ชั่นชื่อเดียวกันที่ไม่ได้ลงท้ายด้วย
$ เช่น

MID กับ MID$

Left กับ Left$

Date กับ Date$

ซึ่งฟังค์ชั่น Date นี้เป็นตัวอย่างที่ดี โดยฟังค์ชั่น
Date จะส่งค่าคืนกลับเป็นชนิด Variant ในรูปแบบของ mm/dd/yy
ในขณะที่ฟังค์ชั่น Date$ ส่งค่ากลับคืนเป็นชนิด String
ในรูปแบบ mm/dd/yyyy ซึ่งถ้าใช้ไม่ระมัดระวัง ความแตกต่างนี้
จะก่อให้เกิด Bug ที่ต้องใช้เวลาพอสมควรในการค้นหา




เทคนิคที่ 8 ระวังความแตกต่างของค่าคงที่ vbNullXXX VB มีค่าคงที่ ที่ใช้ระบุถึงค่า
Null หลายตัวดังนี้


vbNull
เป็นข้อมูลชนิด Long มีค่าเท่ากับ 1

vbNullChar
เป็นข้อมูลชนิด String มีค่าเท่ากับ Chr$(0) ซึ่งตรงกับข้อความว่าง
ในภาษา C และค่าที่ส่งกลับคืนมาจากฟังค์ชั่น DLL ส่วนใหญ่
อย่างไรก็ตาม vbNullChar จะไม่ใช่ข้อความว่างใน VB

vbNullString
เป็นข้อมูลชนิด String ใีค่าเท่ากับข้อความว่างใน VB



ซึ่งแต่ละตัวใช้ในสถานการณ์ต่างกันดังนี้



vbNull
ใช้เพื่อตรวจสอบผลลัพธ์ของฟังค์ชั่น VarType() ซึ่งหมายความว่า
ไม่มีข้อมูลที่ถูกต้อง

vbNullChar
ใช้แทน Chr$(0) ซึ่งปกติใช้เพื่อเรียกใช้ Procedure
ภายนอก

vbNullString
ใช้เพื่อเคลียร์ String



โดย vbNullChar มีค่าไม่เท่ากับ vbNullString ดังนั้น
vbNullChar = vbNullString จะได้ค่าเป็น False เสมอ


จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: thongkorn@hotmail.com หรือ โทร. 08-6862-6560