www.oocities.org/pontipa001

หน้าแรก อุปกรณ์ที่ประกอบเป็นเครื่องคอมพิวเตอร์ เกาเหลาเทคนิคการใช้ HTML วิธีทำสร้าง Shortcut บน Desktop ปัญหาใหญ่ของ Data transfer

 รวบรวมฟังก์ชั่นเกี่ยวกับLISTBOX

ListBox เป็นคอนโทรลพื้นฐานที่คุณจะพบในโปรแกรมได้ทั่วๆไป ดังนั้นผมจึงได้รวบรวมฟังก์ชั่นการใช้งานของ ListBox พร้อมทั้งตัวอย่างการใช้งานให้ไปศึกษาอีก สำหรับในหน้านี้จะอธิบายเฉพาะการใช้งานฟังก์ชั่นต่างๆ ส่วนตัว Source Code ท่านต้อง Download ในหน้าโปรแกรมแจกฟรี ฟังก์ชั่นต่างๆที่จัดทำ ท่านสามารถนำไปใช้งานได้เลยหรืออาจจะไปปรับปรุงเพิ่มตามแบบฉบับของตัวเองก็ไม่มีใครว่า

สำหรับฟังก์ชั่นต่างๆผมจะอธิบายเป็นข้อๆดังนี้

1. FillFilesList

   ฟังก์ชั่นนี้ใช้ในการอ่านชื่อแฟ้มต่างๆลงใน ListBox โดยมีรูปแบบการใช้ดังนี้
   ท่านสามารถนำไปใช้อ่านค่า Drive, Folder ก็ได้

   FillFilsList(lst As ListBox, fileSpec as String)
   - lst คือ ListBox ที่ส่งเข้ามา
   - fileSpec คือ Path และ Wildcard เช่น C:\Windows\*.DLL" เป็นต้น

   ตัวอย่าง:
   FillFilesList(List1, "C:\DATA\*.MDB")  คืออ่านแฟ้มนามสกุล *.MDB ลงใน ListBox

2. AddList

   ใช้เพิ่มรายการลงใน ListBox บางท่านอาจสงสัยว่าสร้างทำไมตัวนี้ เพราะว่าใช้ AddItem ก็ง่ายอยู่แล้ว แต่สำหรับฟังก์ชั่นนี้สามารถตรวจสอบค่าซ้ำด้วย ดังนี้

    AddList(lst As ListBox, itm as String, Optional pMode)
   - lst คือ  ListBox ที่ส่งเข้ามา
   - itm คือ  Item ที่จะ Add เข้าไป
   - สำหรับ pMode ถ้าไม่ส่งมา คือ AddItem ธรรมดา ถ้าส่ง Y มาจะตรวจสอบค่าซ้ำด้วย

   ตัวอย่าง
     AddList List1, "รายการที่ 1 "
     AddList List1, "รายการที่ 1 ", "Y"  '// ให้ตรวจสอบค่าซ้ำด้วย

3. RemoveList

   ใช้ลบรายการ Item ออกจาก ListBox ดังมีรูปแบบดังนี้

    RemoveList(lst As ListBox, itm As String, Optional pMode)
   - lst คือ  ListBox ที่ส่งเข้ามา
   - itm คือ  Item ที่จะRemove ออก
   - สำหรับ pMode ถ้าไม่ส่งมาจะลบรายการเดียว  ถ้าส่ง ALL จะลบทุกรายการซ้ำ

   ตัวอย่าง
    RemoveList Lis1, "รายการที่ 1 "
    RemoveList Lis1, "รายการที่ 1 ", "ALL"  '// ลบรายการที่ 1 ทิ้งทั้งหมด
 
4  RemoveListIndex

   ใช้ลบรายการใน ListBox โดยระบบ ListIndex 

    Function RemoveListIndex(lst As ListBox, iListIndex As Long) As Long
   - lst คือ  ListBox ที่ส่งเข้ามา
   - iListIndex คือ ListIndex ที่ต้องการจะลบ
    เมื่อลบไปแล้วจะส่งค่า ListIndex ลำดับถัดไป 

   มีรูปแบบการใช้ 2 แบบดังนี้
   4.1  List1.ListIndex = RemoveListIndex (List1, List1.ListIndex)
   แบบแรกจะเหมาะกับ ListBox ไม่ใช่แบบ Multiselect
 
   4.2  i = List1.ListIndex
         RemoveListIndex List1, i '// ส่งค่า ListIndex ตัวถัดไป
         If i>= 0 Then
           List1.ListIndex = i
           List1.Selected(i) = True
        End If
   แบบสองเหมาะกับ ListBox แบบ Multiselect
 

5. RemoveDupList

    ใช้ลบรายการที่ซ้ำออกจาก ListBox

    Function RemoveDupList(lst As ListBox) As String
    - lst คือ  ListBox ที่ส่งเข้ามา
    ถ้าไม่มีรายการซ้ำจะส่งค่า "-1" กลับไป
    ถ้ามีรายการซ้ำ จะส่งค่ารายการซ้ำกลับไป

    ตัวอย่าง
        sText =  RemoveDupList(List1)

6. CopyList

   ใช้คัดลอก, ย้าย รายการจาก ListBox1 ไปยัง ListBox อื่น

   CopyList(lstFrom As ListBox, lstTo As ListBox, Optional pMode)
   - lstFrom คือ ListBox ต้นฉบับ
   - lstTo คือ ListBox ปลายทาง
   - pMode มีดังนี้คือ
     "" (ค่าว่าง) คือคัดลอกเฉพาะรายการที่เลือก
     "-" (ลบ) คือ ย้ายเฉพาะรายการที่เลือก
     "ALL" คือ คัดลอกทุกรายการ
     "-ALL" คือ ย้ายทุกรายการ
   
     ตัวอย่าง
     CALL CopyList(List1, List2, "")   '// คัดลอกรายการที่เลือก
     CALL CopyList(List1, List2, "-")   '// ย้ายรายการที่เลือก
     CALL CopyList(List1, List2, "ALL")   '// คัดลอกทุกรายการ
     CALL CopyList(List1, List2, "-ALL")   '// ย้ายทุกรายการ

7.  FindList

    ใช้ค้นหารายการใน ListBox หาแบบตามลำดับ

     Function FindList(lst As ListBox, txt As String, iListIndex As Long) As String
    - lst คือ  ListBox ที่ส่งเข้ามา
    - txt คือ รายการที่ค้นหา
    - iListIndex คือ ค่า ListIndex ที่พบจะถูกส่งกลับ
    ถ้าหากค้นหาพบ จะส่งรายการกลับ ถ้าไม่พบจะส่งค่า "-1" กลับ

    ตัวอย่าง
    ค้นหาค่าจาก Text1 
     sText = FindList(List1, Text1, i)
     If i >= 0 Then
         List1.ListIndex = i
     End If

8.  SearchList

    ใช้ค้นหารายการใน ListBox ใน ListBox จะต้องเรียงลำดับก่อน  การค้นหาจะค้นหาตามความยาวของ itm ที่ส่งค่าเข้าไป อย่าลืมนะครับถ้าจะใช้ SerachList ต้องเรียงลำดับข้อมูลใน List โดยกำหนดที่ Properties Sort ของ ListBox

     Function SearchList(lst As ListBox, txt As String, iListIndex As Long) As String
    - lst คือ  ListBox ที่ส่งเข้ามา
    - txt คือ รายการที่ค้นหา
    - iListIndex คือ ค่า ListIndex ที่พบจะถูกส่งกลับ
    ถ้าหากค้นหาพบ จะส่งรายการกลับ ถ้าไม่พบจะส่งค่า "-1" กลับ

    ตัวอย่าง
    ค้นหาค่าจาก Text1 
     sText = SerachList(List1, Text1, i)
     If i >= 0 Then
         List1.ListIndex = i
     End If

9.  SearchListAPI

    ใช้ค้นหารายการใน ListBox ใน ListBox  การค้นหาจะค้นหาตามความยาวของ itm ที่ส่งค่าเข้าไป โดยใช้ฟังก์ชั่น API ซึ่งจะเร็วกว่าหาแบบตามลำดับ

     Function SearchListAPI(lst As ListBox, txt As String, iListIndex As Long) As String
    - lst คือ  ListBox ที่ส่งเข้ามา
    - txt คือ รายการที่ค้นหา
    - iListIndex คือ ค่า ListIndex ที่พบจะถูกส่งกลับ
    ถ้าหากค้นหาพบ จะส่งรายการกลับ ถ้าไม่พบจะส่งค่า "-1" กลับ

    ตัวอย่าง
    ค้นหาค่าจาก Text1 
     sText = SerachListAPI(List1, Text1, i)
     If i >= 0 Then
         List1.ListIndex = i
     End If

10. ClearListAPI

     ใช้สำหรับล้างค่าใน ListBox ทั้งหมดโดยใช้ API เข้ามาช่วยเพื่อความเร็ว
     ClearListAPI(lst As ListBox)

     ตัวอย่าง
     ClearListAPI List1

11. StringToList 
     
     ใช้ส่งค่า Item ในรูปของ String ที่ขั้นด้วย , หรืออื่นๆที่กำหนด เข้าใน ListBox 

      StringToList(lst As ListBox, itms As String, Optional pDelimited)      
      - lst คือ  ListBox ที่ส่งเข้ามา
      - itms คือ  ค่า String ของ Item ที่คั่นด้วย , หรืออื่นๆ
      - pDelimited ถ้าไม่ส่งมา จะใช้ , เป็นตัวคั่น

     ตัวอย่าง

      List1.Clear
      StringToList List1, "Str1,Str2,Str3,Str4"

12.  ListToString 

      ส่งค่าจาก ListBox ไปยังในรูปของ String ที่คั่นด้วย , หรือ อื่นๆ

      Function ListToString(lst As ListBox, Optional pDelimited) As String
      - lst คือ  ListBox ที่ส่งเข้ามา
      - pDelimited ถ้าไม่ส่งมา จะใช้ , เป็นตัวคั่น
      ส่งค่าเป็น String กลับมา

     ตัวอย่าง
      sText = ListToString(List1)
      MsgBox sText

13. ListClick

     ใช้เมื่อมีเหตุการณ์ Mouse_Click แล้วต้องการให้รับค่า Item เพื่อนำค่าไปแสดงใน TextBox หรืออื่นๆ

      ListClick(lst As ListBox, itm As String)
      - lst คือ  ListBox ที่ส่งเข้ามา
      - itm คือ  ค่าItem ที่จะถูกส่งกลับไป
      อนึ่งค่า itm ท่านอาจเปลี่ยนเป็น TextBox แทน String ก็ได้ เพื่อรับค่าไปแสดงที่ TextBox เลย 

      ตัวอย่าง ควรไปในเหตุเการณ์ List1_Click 
      Private Sub List1_Click()
           ListClick List1, sText
           Text1 = sText
      End Sub

      ถ้าท่านเปลี่ยน เป็น itm เป็น TextBox ใช้ดังนี้
      Private Sub List1_Click()
           ListClick List1, Text1
      End Sub

14.  ListTabStops
      
     ใช้แบ่ง Columns ของ ListBox โดยใช้ Tab เป็นตัวคั่น อนึ่งถ้าใช้ VB6 จะมี Properties Columns ให้อยู่แล้วแต่ผมว่านะครับ ใช้ผ่าน API นี่แหละครับสามารถใช้ได้ทั้ง  VB4,VB5,VB6 เลยครับ

      ListTabStops(ListHandle As Long, ParamArray ParmList() As Variant)
      -ListHandle คือค่า Handle ของ Listbox ที่ส่งเข้าไป
      - ParmList คือ ค่าความกว้างของช่อง คั่นด้วย , เช่น ถ้ามี 3 ช่อง ต้องกำหนดดังนี้
                       "100,250,300" คือ ช่อง 1 กว้าง 100, 2 กว้าง 250 ช่อง 3 กว้าง 300
      ตัวอย่าง
       List1.AddItem "ช่อง1" & vbTab & "ช่อง2" & vbTab & "ช่อง 3 "
       List1.AddItem "1" & vbTab & "รายการ1" & vbTab & " 100 "
       List1.AddItem "2" & vbTab & "รายการ2" & vbTab & " 200 "
       Call ListTabStops(List1.hWnd, 48, 74, 100)

15.  ListHSBar

      ใช้กรณีที่ ListBox มีกวามกว้างมาก เราจึงต้องสร้าง Horizontal Scroll Bar เพื่อใช้เลื่อนดูรายการที่เหลือ

      ListHSBar(lst As ListBox, frm As Object)
      - lst คือค่า ListBox ที่ส่งเข้ามา
      - frm คือค่า Form ที่ ListBox นั้นอยู่

      ตัวอย่าง
      CALL ListHSBar(List1, Me)
    

หน้าแรก อุปกรณ์ที่ประกอบเป็นเครื่องคอมพิวเตอร์ เกาเหลาเทคนิคการใช้ HTML วิธีทำสร้าง Shortcut บน Desktop ปัญหาใหญ่ของ Data transfer