ใครเก่ง vb6 เชิญทางนี้หน่อยครับ เกี่ยวกับ sub

เริ่มโดย rokaisakkon, 23 มกราคม 2013, 14:44:07

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

rokaisakkon

คือผม ลองใช้ for  สร้าง commandbutton   มาสัก 10

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

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


ขอบคุณ ครับ
#วงการฟรีแลนซ์มันโหดน่ะครับ

ikarozu

สร้าง function อันเดียวให้สามารถเรียกใช้กี่ครั้งก็ได้ครับ (เป็นหลักการของ function อยู่แล้ว)

เขียนโค้ดคล้ายๆ กันซ้ำๆ ก็เป็น duplicate สิครับ
[direct=http://everydayimexercise.blogspot.com//]ลดไขมัน สร้างกล้ามเนื้อ[/direct] [direct=http://thaiguitarprotabs.blogspot.com]gp5 เพลงไทย[/direct] [direct=http://thaitoeicpractice.blogspot.com]ฝึกทำข้อสอบ TOEIC[/direct]

rokaisakkon

อ้างถึงจาก: ikarozu ใน 23 มกราคม 2013, 14:48:15
สร้าง function อันเดียวให้สามารถเรียกใช้กี่ครั้งก็ได้ครับ (เป็นหลักการของ function อยู่แล้ว)

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

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

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

ขอบคุณครับ
#วงการฟรีแลนซ์มันโหดน่ะครับ

ikarozu

ลองสร้าง Module แล้วเขียน function ใน module นั้น

แล้วก็เรียกใช้ function ใน module จาก event ของปุ่มดูครับ
[direct=http://everydayimexercise.blogspot.com//]ลดไขมัน สร้างกล้ามเนื้อ[/direct] [direct=http://thaiguitarprotabs.blogspot.com]gp5 เพลงไทย[/direct] [direct=http://thaitoeicpractice.blogspot.com]ฝึกทำข้อสอบ TOEIC[/direct]

c0untry-m@n

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

ba5nanas

มันจะมี addcommand ตอน new create button ครับ

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

แล้ว function นั้น คุณสามารถใส่ param ได้ด้วย  :o นั่นแหล่ะ คือ คำตอบ  :P แต่ข้อเสียคุณจะต้องสร้าง location ให้มันด้วยต้องกะเอาครับ
Wordpress Developer High End

http://www.ba5nanas.com

rokaisakkon

#วงการฟรีแลนซ์มันโหดน่ะครับ

rokaisakkon

#วงการฟรีแลนซ์มันโหดน่ะครับ

Extra Cash

เพื่อให้โค๊ดสั้น ส่วนมากผมจะสร้าง 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

[direct=http://www.prodipper.com]PRO DIPPER
ตัวแทนจำหน่าย สีลอกได้ Plasti Dip แท้
อย่างเป็นทางการจาก Performix อเมริกา
[/direct]
       [direct=http://www.votejung.com]โหวดจัง
       โปรโมทเว็บไซต์ฟรี![/direct]
       [direct=http://fbfansmaster.com]FB FANS MASTER
       Buy Facebook Likes[/direct]

rokaisakkon

อ้างถึงจาก: 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

ขอบคุณอีกรอบครับ
#วงการฟรีแลนซ์มันโหดน่ะครับ