หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง Inbox ที่ เฟซบุ๊ค ผมครับ

หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 4 7 6 6 2 1 7

7 ธันวาคม พ.ศ.2549
245 Users On-Line.
Visitors - Page views
 7 9 9 1 2 2 0
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

แจกฟรีโค้ดโปรแกรม VB6 การสุ่มตัวเลขจำนวนเต็มเพื่อจับฉลากรางวัล

Category »  VB 6/VB.Net
โดย : Webmaster เมื่อ 20/12/2553   เวลา: 10:53
(อ่าน : 37953) 
หลายๆองค์กรก็คงจะจัดงานรื่นเริงบันเทิงใจ สังสรรค์งานปีใหม่ 2554 ไม่ปลายอาทิตย์นี้ ก็คงต้องจัดหลังจากข้ามปีใหม่ไปแล้ว ... ส่วนใหญ่ก็จะมีการจับฉลากแจกรางวัล เพื่อความสนุกสนาน และ ลุ้นระทึกกันไป ... ปกติที่เห็นบ่อยๆก็คือ การล้วงฉลากหมายเลขออกจากกล่อง ... แต่คราวนี้ก็ลองมาเขียนโปรแกรมง่ายๆเล่นกันดู เพราะหลักการก็ไม่ได้มีอะไรมากมายเลย ก็แค่สั่งให้สุ่มตัวเลขจำนวนเต็มตามสูตร Int((ค่าสูงสุด - ค่าต่ำสุด + 1) * Rnd) + ค่าต่ำสุด และอาศัย Timer Control เข้ามาช่วยด้วย (ก็เท่านี้เอง) ...
ดาวน์โหลด Source Code สำหรับผู้ใช้งาน Visual Basic 6
ดาวน์โหลด Source Code สำหรับ MS Visual Basic 6.0 - Service Pack 6
 ดาวน์โหลด Visual Basic 6.0 SP5: Run-Time Redistribution Pack
 ดาวน์โหลด Microsoft Data Access Object (MDAC) และ Jet 4.0 Update
 ดาวน์โหลด Microsoft Visual Basic Service Pack 6

การออกแบบ - Design Time


Run Time
มาดูโค้ดกันเถอะ ...

Option Explicit

Private Sub Form_Load()
    Me.Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2

    ' การตั้งค่าคุณสมบัติแบบ Run Time
    ' ตั้งค่าระยะเวลาในการสุ่มทุกๆ 10 Millisecond
    Timer1.Interval = 10
    ' สั่งให้ Timer1 ยังไม่ทำงาน จนกว่าจะกดปุ่ม cmdStart
    Timer1.Enabled = False
    
    cmdStart.Enabled = True
    cmdStop.Enabled = False
    
End Sub

Private Sub cmdStart_Click()
    
    ' เริ่มต้นในการสุ่มตัวเลขก่อน
    Randomize
    
    ' สั่งให้ Timer1 ทำงานได้
    Timer1.Enabled = True
    
    cmdStart.Enabled = False
    cmdStop.Enabled = True
    
    ' ทำไปจนกว่าจะกดปุ่ม cmdStop เพื่อสั่งให้หยุดการสุ่มตัวเลข
    Do While Timer1.Enabled
        DoEvents
        Timer1_Timer
    Loop
    
End Sub

Private Sub cmdStop_Click()
    ' เมื่อสั่งให้ Timer1.Enabled = False ดังนั้นโปรแกรมก็จะหยุดทำงาน เพื่อให้แสดงผลตัวเลขที่สุ่มออกมาได้
    Timer1.Enabled = False
    
    cmdStart.Enabled = True
    cmdStop.Enabled = False
        
End Sub

Private Sub Timer1_Timer()
    
    ' หากกดปุ่มหยุดการสุ่ม (cmdStop) กำหนดให้ Timer1.Enabled = False
    ' ดังนั้น Timer1 จะหยุดทำงาน และแสดงผลตัวเลขที่ได้ออกมา
    
    ' ค่าที่ได้ = Int((High - Low + 1) * Rnd) + Low
    ' สูตรการสุ่มตัวเลข เมื่อ High = ค่าสูงสุด และ Low = ค่าต่ำสุด
    ' นั่นคือค่าต่ำสุด คือ 1 และ ค่าสูงสุดคือ 999
    ' คำสั่ง Right จะจัดรูปแบบการแสดงผล เช่น หากสุ่มได้ 9 ก็จะทำให้เกิดรูปแบบข้อมูล "0009"
    ' เมื่อเลือก Right โดยให้นับจากทางขวามาทางซ้าย 3 หลัก ก็จะแสดงผลเป็น 009
    lblNumber.Caption = Right("000" & Int((999 * Rnd) + 1), 3)

End Sub

Private Sub cmdExit_Click()
    Set frmRandomNumberSimple = Nothing
    End
End Sub
Conclusion:
ก็ต้องเอาไปประยุกต์ใช้งานกันเองเลยน่ะครับ เช่น เก็บข้อมูลพนักงาน หรือ ภาพเอาไว้ใน DataBase เมื่อสุ่มตัวเลขเรียบร้อย ก็อ่านข้อมูลจาก DB เพื่อทำการแสดงผลภาพพนักงาน และ ข้อมูลคนๆนั้นออกไป ก็กิ๊บเก๋เท่ห์ไปอีกแบบ ... หรือเพิ่มเติมความคิด (เอาเอง) ในเงื่อนไขของการสุ่มตัวเลข หากหมายเลขนี้ได้รางวัลไปแล้ว ก็ไม่มีสิทธิ์ได้รับรางวัลอีก จะต้องสุ่มกันใหม่อีกรอบ ... แล้วจะทำอย่างไรดี ... แหมเรื่องท้าทายแบบนี้ก็น่าสนใจทีเดียวน่ะครับ

จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: [email protected] หรือ โทร. 08-6862-6560