thongkorn โพสต์ 2018-1-7 13:02:41

[VB6] การประยุกต์ใช้งาน User Controls ด้วยการทำ Scroll Control

http://www.g2gnet.com/webboard/images/vb6/ScrollControl.png

บทความนี้ไม่ได้มาสอนวิธีการทำ User Control ขึ้นมาใช้งานเองใดๆหรอกครับ แต่เป็นการแนะนำแหล่งของฟรี และโค้ดฟรีดีๆที่โปรแกรมเมอร์สายพันธุ์ VB6 ทั่วโลกเขาทำมาแจก เพื่อให้เรานำมาประยุกต์ใช้กับงานของเราให้ได้ซ่ะก่อน แล้วค่อยคิดนำไปพัฒนาต่อ-ยอดกันออกไปอีกทีครับ ...

อ่านข้อมูลรายละเอียด และดาวน์โหลดโค้ดต้นฉบับ Scroll Control (VB6) จากเว็บไซต์ผู้พัฒนาโดยตรง ...

Scroll หมายถึง การเลื่อนข้อความหรือภาพบนจอไปตามแนวนอน หรือแนวตั้ง เพราะบางทีภาพหรือข้อความที่ต้องการดูบนจอภาพ ไม่สามารถมองเห็นได้ทั้งหมด เพราะมีขนาดใหญ่กว่าจอภาพ ต้องค่อยๆเลื่อนดูทีละส่วน ในการเลื่อนภาพนั้น อาจจะใช้แป้น PgUp หรือ PgDn เข้าช่วย หรือจะใช้ลูกกลิ้งที่อยู่ตรงกลางเมาส์เข้าช่วยในการเลื่อนภาพก็ได้ ... (จบทฤษฎี)

http://www.g2gnet.com/webboard/images/vb6/ScrollControlAddUserControl.png
เริ่มต้นด้วยการ Add User Control เข้ามา ...

http://www.g2gnet.com/webboard/images/vb6/ScrollControlSaveUserControl.png
การ Save User Control เอาไว้ในโปรเจค ...

http://www.g2gnet.com/webboard/images/vb6/ScrollControlDesign.png
แอดมินชื่นชอบในเรื่อง คุณสมบัติ Align ของ User Control ตัวนี้มาก เพราะมันสามารถยืดหด ปรับขนาดตามการย่อ/ขยายฟอร์มได้ และเราสามารถนำโค้ดไปปรับแต่งใช้งานกับ Control ตัวอื่นๆได้ในเรื่องของ Anchor เหมือนใน VB.NET ...

แอดมินจะไม่อธิบายเรื่องตัว User Control นะครับ แต่จะเป็นการนำโค้ดมาใช้งานโดยตรงเลย โดยให้ดูจาก Event หรือ การเกิดเหตุการณ์คลิ๊กที่รูป (PictureBox) จากนั้นสั่งให้มันไปทำงานอะไร (Driven) ...
Option Explicit

Private Declare Sub InitCommonControls Lib "comctl32" ()
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Dim m_hMod As Long

'/ This is just to apply windows themes
Private Sub Form_Initialize()
    m_hMod = LoadLibrary("shell32.dll")
    Call InitCommonControls
End Sub

Private Sub Form_Terminate()
    '/ Release memory.
    FreeLibrary m_hMod
End Sub

Private Sub Form_Load()
   
    Dim sDir As String
    Dim i As Long
    sDir = Dir(App.Path & "\Images\*.jpg")
    Do While sDir <> ""
      If i <> 0 Then
            '/ Initialized *IMPORTANT
            Load Picture1(i)
            Load Picture2(i)
            
            '/ แนวนอน
            Picture1(i).Left = Picture1(i - 1).Left + Picture1(i - 1).Width + 200
            '/ แนวตั้ง
            Picture2(i).Top = Picture2(i - 1).Top + Picture2(i - 1).Height + 200
            
            Picture1(i).Visible = True
            Picture2(i).Visible = True
            
      End If
      Picture1(i).Picture = LoadPicture(App.Path & "\Images\" & sDir)
      '/ เก็บชื่อไฟล์ภาพเอาไว้ใน Tag หากต้องการนำชื่อภาพไปทำประโยชน์อย่างอื่น
      Picture1(i).Tag = sDir
      Picture1(i).Visible = True
      '/
      Picture2(i).Picture = LoadPicture(App.Path & "\Images\" & sDir)
      Picture2(i).Tag = sDir
      Picture2(i).Visible = True
      '/
      i = i + 1
      sDir = Dir()
    Loop
End Sub

'/ Your code for handling the event.
Private Sub Picture1_Click(Index As Integer)
    Select Case Index
      Case 0:
            MsgBox "คุณเลือกรายการภาพที่ 1(Event) ... คุณต้องการจะให้โปรแกรมไปทำอะไรดีล่ะ. (Driven)" & vbCrLf & _
                "ชื่อภาพ: " & Picture1(Index).Tag
      Case 1:
            MsgBox "คุณเลือกรายการภาพที่ " & Index + 1 & " (Event) ... คุณต้องการจะให้โปรแกรมไปทำอะไรดีล่ะ. (Driven)" & vbCrLf & _
                "ชื่อภาพ: " & Picture1(Index).Tag
      'Case ...
    End Select
End Sub

Private Sub Picture2_Click(Index As Integer)
    Select Case Index
      Case 0:
            MsgBox "คุณเลือกรายการภาพที่ 1(Event) ... คุณต้องการจะให้โปรแกรมไปทำอะไรดีล่ะ. (Driven)" & vbCrLf & _
                "ชื่อภาพ: " & Picture1(Index).Tag
      Case 1:
            MsgBox "คุณเลือกรายการภาพที่ " & Index + 1 & " (Event) ... คุณต้องการจะให้โปรแกรมไปทำอะไรดีล่ะ. (Driven)" & vbCrLf & _
                "ชื่อภาพ: " & Picture1(Index).Tag
      'Case ...
    End Select
End Sub
ดาวน์โหลดโค้ดต้นฉบับเต็ม VB6 ได้ที่นี่
หน้า: [1]
ดูในรูปแบบกติ: [VB6] การประยุกต์ใช้งาน User Controls ด้วยการทำ Scroll Control