ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => หัวข้อเริ่มโดย: rokaisakkon ใน 23 มกราคม 2013, 14:44:07

ชื่อเรื่อง: ใครเก่ง vb6 เชิญทางนี้หน่อยครับ เกี่ยวกับ sub
โพสต์โดย: rokaisakkon ใน 23 มกราคม 2013, 14:44:07
คือผม ลองใช้ for  สร้าง commandbutton   มาสัก 10

ทีนี้  ผมจะ for  สร้าง  sub  อีกได้ไหมครับ  คือ คำสั่งมันก็ คล้าย ๆ กันอะครับ

ถ้าจะให้พิมพืเนี่ย มันเยอะไปอะครับ เพราะ  จำเป็นต้องใช้   30  กว่าปุ่ม ตาลายเลยครับ


ขอบคุณ ครับ
ชื่อเรื่อง: Re: ใครเก่ง vb6 เชิญทางนี้หน่อยครับ เกี่ยวกับ sub
โพสต์โดย: ikarozu ใน 23 มกราคม 2013, 14:48:15
สร้าง function อันเดียวให้สามารถเรียกใช้กี่ครั้งก็ได้ครับ (เป็นหลักการของ function อยู่แล้ว)

เขียนโค้ดคล้ายๆ กันซ้ำๆ ก็เป็น duplicate สิครับ
ชื่อเรื่อง: Re: ใครเก่ง vb6 เชิญทางนี้หน่อยครับ เกี่ยวกับ sub
โพสต์โดย: rokaisakkon ใน 23 มกราคม 2013, 14:53:01
อ้างถึงจาก: ikarozu ใน 23 มกราคม 2013, 14:48:15
สร้าง function อันเดียวให้สามารถเรียกใช้กี่ครั้งก็ได้ครับ (เป็นหลักการของ function อยู่แล้ว)

เขียนโค้ดคล้ายๆ กันซ้ำๆ ก็เป็น duplicate สิครับ

คือผมจะ ใส่โค้ด  ตอนเกิด อีเว้น คลิกของ commandbutton  ที่  for มานะครับ

แล้วจะเอา function ไปใส่ตรงไหน อะครับ

ขอบคุณครับ
ชื่อเรื่อง: Re: ใครเก่ง vb6 เชิญทางนี้หน่อยครับ เกี่ยวกับ sub
โพสต์โดย: ikarozu ใน 23 มกราคม 2013, 15:14:56
ลองสร้าง Module แล้วเขียน function ใน module นั้น

แล้วก็เรียกใช้ function ใน module จาก event ของปุ่มดูครับ
ชื่อเรื่อง: Re: ใครเก่ง vb6 เชิญทางนี้หน่อยครับ เกี่ยวกับ sub
โพสต์โดย: c0untry-m@n ใน 23 มกราคม 2013, 15:22:14
ผมว่าถ้าปุ่มจำนวน 30 ปุ่ม ตายตัว ก็สร้างไว้เลยดีกว่ามั้งครับ ไม่ต้องไปเขียนโค้ดสร้างปุ่ม
อีกทั้งจะกำหนด Event อะไรก็กำหนดง่ายด้วยครับ
ถ้าขี้เกียจพิมพ์ก็พิมพ์แค่ปุ่มเดียว Copy & Paste เปลี่ยนแค่ชื่อปุ่ม เพราะคำสั่งก็เรียกเหมือนกัน ตามที่ท่านบอก
ถึงแม้ปุ่มจะเหมือนกัน เรียกฟังก์ชั่นเดียวกัน ก็สามารถที่จะกำหนดได้ว่าให้แต่ละปุ่มส่งอะไรไปต่างกันได้ด้วย อยู่ที่ฟังก์ชั่นที่ท่านเขียนด้วยครับ
ชื่อเรื่อง: Re: ใครเก่ง vb6 เชิญทางนี้หน่อยครับ เกี่ยวกับ sub
โพสต์โดย: ba5nanas ใน 23 มกราคม 2013, 15:34:56
มันจะมี addcommand ตอน new create button ครับ

ลองดูผมเคยเล่นอยู่ ตอน add command ก็เลือกไป sub หรือ function ที่ต้องกรจะให้ทำงานครับ

แล้ว function นั้น คุณสามารถใส่ param ได้ด้วย  :o นั่นแหล่ะ คือ คำตอบ  :P แต่ข้อเสียคุณจะต้องสร้าง location ให้มันด้วยต้องกะเอาครับ
ชื่อเรื่อง: Re: ใครเก่ง vb6 เชิญทางนี้หน่อยครับ เกี่ยวกับ sub
โพสต์โดย: rokaisakkon ใน 23 มกราคม 2013, 17:34:52
ขอบคุณทุกท่าน มากครับ  : )   :wanwan017:
ชื่อเรื่อง: Re: ใครเก่ง vb6 เชิญทางนี้หน่อยครับ เกี่ยวกับ sub
โพสต์โดย: rokaisakkon ใน 23 มกราคม 2013, 17:35:49
+1  ให้ทุกท่านครับ
ชื่อเรื่อง: Re: ใครเก่ง vb6 เชิญทางนี้หน่อยครับ เกี่ยวกับ sub
โพสต์โดย: Extra Cash ใน 23 มกราคม 2013, 19:53:52
เพื่อให้โค๊ดสั้น ส่วนมากผมจะสร้าง CommandButton Array ไว้ใน Form ก่อน 1 ตัว
ในตัวอย่างนี้ผมให้ชื่อ cmdButton โดยให้ Index = 0 และ Visible = 0
แล้วเขียน Sub cmdButton_Click ไว้เลย เช่น
Private Sub Form_Load()
    Dim i&
    For i = 1 To 30
        Load cmdButton(i)
        With cmdButton(i)
            .Left = cmdButton((i - 1) Mod 10).Left + .Width
            .Top = cmdButton(0).Top + .Height * Int((i - 1) \ 10)
            .Caption = "Button " & i
            .Visible = True
        End With
    Next
End Sub

Private Sub cmdButton_Click(Index As Integer)
    MsgBox cmdButton(Index).Caption
End Sub
ชื่อเรื่อง: Re: ใครเก่ง vb6 เชิญทางนี้หน่อยครับ เกี่ยวกับ sub
โพสต์โดย: rokaisakkon ใน 23 มกราคม 2013, 22:43:32
อ้างถึงจาก: Extra Cash ใน 23 มกราคม 2013, 19:53:52
เพื่อให้โค๊ดสั้น ส่วนมากผมจะสร้าง CommandButton Array ไว้ใน Form ก่อน 1 ตัว
ในตัวอย่างนี้ผมให้ชื่อ cmdButton โดยให้ Index = 0 และ Visible = 0
แล้วเขียน Sub cmdButton_Click ไว้เลย เช่น
Private Sub Form_Load()
    Dim i&
    For i = 1 To 30
        Load cmdButton(i)
        With cmdButton(i)
            .Left = cmdButton((i - 1) Mod 10).Left + .Width
            .Top = cmdButton(0).Top + .Height * Int((i - 1) \ 10)
            .Caption = "Button " & i
            .Visible = True
        End With
    Next
End Sub

Private Sub cmdButton_Click(Index As Integer)
    MsgBox cmdButton(Index).Caption
End Sub


ใช่เลยครับผม  ขอบคุณมากครับ  ผมก็ ทำตามวิธีของท่าน ผม คิดมาตั้งนาน ทำยังงัยก็ไม่ได้  มาได้ ตอน ต้องสร้าง cmb  ไว้ ก่อน 1 ตัวโดย ตัวนั้น ต้องเป็น array

ขอบคุณอีกรอบครับ