หน้าแรก อุปกรณ์ที่ประกอบเป็นเครื่องคอมพิวเตอร์ เกาเหลาเทคนิคการใช้ HTML วิธีทำสร้าง Shortcut บน Desktop ปัญหาใหญ่ของ Data transfer
เรื่องทั่วๆไป
สำหรับหัวข้อนี้จะรวมเรื่องเล็กๆน้อยๆ ที่ไม่แยกเป็นหัวข้อใหญ่เพราะว่าแต่ละเรื่องนั้นมีหัวข้อเดียว ดังนั้นจึงต้องนำมารวมไว้ที่เดียวกัน
- Properties Tag มีประโยชน์อย่างไร
- ประโยชน์การใช้ Properties AutoRedraw ของPictureBox
- แนะนำให้ใช้ Option Array แทนการใช้แยกแต่ละตัว
- จำกัดความยาวใน Combo Box
- ล้างค่า Mask Edit Box ให้เป็นค่าว่าง
- ล้างค่า Text Box ให้เป็นค่าว่างทุกตัวใน Form
- สั่งให้โปรแกรมเปิด/ปิดฝา CD-ROM
Properties Tag มีประโยชน์อย่างไร
เรื่องProperties Tag เมื่อแรกๆอ่านแล้วก็งงเหมือนกัน ไม่รู้จะใช้ทำอะไร แต่พอเริ่มลงมือเขียนจึงถึงบางอ้อ
คือว่า ผมใช้ในกรณี มีการแก้ไขข้อมูลใน TextBox อย่างเช่น ถ้ามีการแก้ไข Text1 ให้เรียก Sub ชื่อ Sub_A
ต้องใส่โปรแกรมดังนี้
Private Sub Text1_GotFocus()
Text1.Tag = Text1.Text '*** เก็บไว้ที่ Tag ทำให้ไม่ต้องตั้งตัวแปร
End Sub
Private Sub Text1_LostFocus()
If Text1.Tag <> Text1.Text Then '*** นำค่า Tag มาใช้
Call Sub_A
End If
End Sub
ประโยชน์การใช้ Properties AutoRedraw ของ PictureBox
คุณทราบไหมว่าใช้ประโยช์นอย่างไร ? คนที่เคยเขียนโปรแกรม VB ทั้งมือใหม่และมาอาชีพบางครั้งมองข้ามไป ตัวผมมองข้ามไปจนกระทั่งไปเจอโปรแกรม ProgressBar (อยู่ในโปรแกรมแจกฟรี) ผมจึงนำมาเขียนโปรแกรมในหลายกรณี
การใช้ AutoRedraw จะมีค่า True/False
ถ้ามีค่า True จะแสดงค่าอัตโนมัตเมื่อมีการเปลี่ยนแปลงค่าใน PictureBox
ถ้ามีค่า False จะไม่แสดงค่าจนกว่าจะใช้ Method Refresh
ท่านสามารถใช้ AutoRedraw = Flase เพื่อที่แก้ค่า/เปลี่ยนแปลงค่าใน Picture ได้ โดยที่ค่านั้นจะยังไม่แสดงให้เห็น หลังจากนั้นใช้ Method Refresh เพื่อให้แสดงค่าใหม่
ลอง DownLoad ตัวอย่างไปศึกษาดูละกัน ท่านสามารถนำไปใช้ในการ Process ได้ คือขณะที่ท่าน Process ให้แสดงค่าที่ตัวเลขบนหน้าจอ ไปแต่ละบรรทัด ในขณะที่ โปรแกรมกำลังทำงาน
แนะนำให้ใช้ Option Array แทนการใช้ Option แยกแต่ละตัว
ถ้าหากว่าท่านไม่ใช้ Option Array เวลาจะเก็บค่าลงในฐานข้อมูลก็ยาก เวลาแสดงข้อมูลก็ยาก ดังนั้นจึงแนะนำให้ท่านใช้ Option Array การสร้าง Option Array นั้น ลาก Option ไปไว้บนฟอร์ม (ควรอยูในกรอบFrameจะดี) แล้วใช้ Ctrl+C และ Ctrl+V เพื่อ Copy/Paste แล้ว VB จะถามให้สร้างเป็นเป็นArray ตอบ Yes ท่านจะได้ Option Array โดย Array จะเป็น 0,1,2,3,... ส่วนในฐานข้อมูลให้กำหนดฟิลด์เป็นชนิด Integer
เมื่อต้องการทราบว่า ผู้ใช้เลือก Option ไหน ให้ใช้ ฟังก์ชั่น SelectedOption ซึ่งอยู่ในตัวอย่างแล้ว
เมื่อต้องการแสดงค่าก็ง่าย เช่น ค่าที่เก็บไว้เป็น 2 ท่านก็ใช้ optArray(2).Value = True
ลอง DownLoad ตัวอย่างไปศึกษาดู
จำกัดความยาวใน Combo Box
ถ้า Combo Box นั้นจะไม่มีการจำกัดความยาวในการป้อน ดังนั้นจึงต้องทำขึ้นเอง
ในตัวอย่าง ใช้ Combo1 ให้ใส่ตรง Combo1_KeyPress ในกรณีนี้ถ้าความยาวมากกว่า 10 ถ้ากด BackSpace จะยอมให้ผ่านแต่ถ้าเป็นแป้นอื่นไม่ได้
Private Sub Combo1_KeyPress(KeyAscii As Integer)
Const MAXLENGTH = 10
If Len(Combo1.Text) >= MAXLENGTH And KeyAscii <> vbKeyBack Then KeyAscii = 0
End Sub
ล้างค่า Mask Edit Box ให้เป็นค่าว่าง
ถ้าหากใครใช้ Mask Edit Box คงจะมีปัญหาในการล้างค่าให้เป็นค่าว่าง ถ้าหากว่า ให้ MaskEdit1.Text = "" จะเกิด Error ขึ้นมา แต่ว่ามีวิธีแก้ ดังนี้ กำหนดตัวแปร vTemp เป็น String เพื่อไว้เก็บค่าเก่าของ MaskEdit ไว้ก่อน ดังตัวอย่าง
้
vTemp = mskEdit1.Mask
mskEdit1.Mask = ""
mskEdit1.Text = ""
mskEdit1.Mask = vTemp
การล้างค่า TextBox ให้เป็นค่าว่างทุกตัวใน Form
ในการล้างค่า Text Box ให้เป็นว่างๆนั้น วิธีง่ายๆค่า ใช้คำสั่ง Text1.Text = "" แต่ถ้าหากมีหลายๆตัว ละก็ต้องหลายบรรทัด และถ้าเป็น Form อื่นก็ต้องใส่อีก แต่ถ้าคุณใช้ Function นี้ก็ใช้ได้ทุก Form แต่ถ้าท่านจะล้างค่า MaskEdit Box ต้องใช้ TypeOf มาช่วย ตรวจสอบอีก เพราะการล้างค่า MaskEdit ใช้วิธีต่างกัน
Public Sub ClearAllControls(frmForm As Form)
Dim ctlControl As Object
On Error Resume Next
For Each ctlControl In frmForm.Controls
ctlControl.Text = ""
ctlControl.ListIndex = -1
DoEvents
Next ctlControl
End Sub
สั่งให้โปรแกรมเปิด/ปิดฝา CD-ROM
พอดีไปเจอโปรแกรมสั่งให้เปิด/ปิดฝา CD-ROM เห็นว่าน่าสนใจเลยนำมาฝากแฟน VB-Street เขาใช้ฟังก์ชั่น API มาช่วย
ตัวอย่างให้ Download
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal _
lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal _
hWndCallback As Long) As Long
Private Sub Command1_Click()
Dim Dummy As String
Dummy = vbmciSendString("set cdaudio door open", 0) '*** สั่งให้เปิดฝา
End Sub
Private Sub Command2_Click()
Dim Dummy As String
Dummy = vbmciSendString("set cdaudio door closed ", 0) '*** สั่งให้ปิดฝา
End Sub
Function vbmciSendString(ByVal Command As String, ByVal hWnd As Long) As String
Dim Buffer As String
Dim dwRet As Long
Buffer = Space$(100)
dwRet = mciSendString(Command, ByVal Buffer, Len(Buffer), hWnd)
vbmciSendString = Buffer
End Function
หน้าแรก อุปกรณ์ที่ประกอบเป็นเครื่องคอมพิวเตอร์ เกาเหลาเทคนิคการใช้ HTML วิธีทำสร้าง Shortcut บน Desktop ปัญหาใหญ่ของ Data transfer