Exercise 2
Pizza Order Application
We had just learned about programming with Microsoft Visual Basic 6.0 and tried to create two Windows applications (using Visual Basic 6.0), the first one was "Stop Watch" and the second was "Calendar/Time". Some people have told me, the teacher, that it is interesting and challenging, while some other people have never said any word but have just thought that it is boring. Yes, the teacher realizes that programming is so valuable because it can develop anyone both systematic thinking and solving. Well, the teacher knows that anybody can never hand on it if he is not interested in programming. But, now the teaching is not over, the show must go on! พวกเราได้เรียนรู้เกี่ยวกับการโปรแกรมด้วยภาษาวิชวลเบสิก 6.0 และได้ลองพัฒนาแอ็ปปลิเคชันที่ทำงานในระบบวินโดวส์ 2 แอ็ป ด้วยกัน โดยแอ็ปแรกเป็นนาฬิกาจับเวลา แอ็ปที่สองเป็นแอ็ปบอกวันเวลา นักเรียนหลายคนก็บอกกับครูว่า "น่าสนใจและท้าทายมาก" ขณะที่นักเรียนอีกหลายคนไม่พูดอะไรสักแอ่ะ...คิดอยู่อย่างเดียวว่า "มันน่าเบื่อ" ใช่เลย..ครูตระหนักดีอยู่เสมอว่า ความจริงแล้วนะ.. การเรียนรู้เรื่องการโปรแกรมมันมีคุณค่าในตัวของมันเองอยู่แล้ว เพราะมันเป็นการพัฒนาผู้เรียนให้รู้จักการคิด/การแก้ปัญหาอย่างเป็นระบบ ครู..ทราบดีว่า.. นักเรียนคนไหนก็ตามที่รู้สึกว่าตนเองไม่สนใจในเรื่องของการโปรแกรมแล้วละก็ คงยากนะที่จะเอาดีในเรื่องนี้ได้ ... แต่ช้าก่อน... การเรียนการสอนก็คงหยุดไม่ได้ ... ก็ต้องว่ากันต่อไป..
"Pizza Order" Applicationแอ็ปปลิเคชัน "สั่งพิซซ่า" SOURCE : www.kidwares.com1. Start a new project. We'll build a form where a pizza order can be entered by simply clicking on check boxes and option buttons.
ให้นักเรียนเข้าไปที่หน้าจอหลักของ Microsoft Visual Basic 6.0 เหมือนที่เราเคยทำ ด้วยการเลือก Standard EXE เพื่อสร้าง New project .... อย่าลืม Save นะ ซึ่งการ Save ครั้งแรก จะเป็น Save As โดยนักเรียนต้อง Save ฟอร์มก่อน แล้วจึง save โปรเจ็กต์ ... เลือก Folder ให้เรียบร้อย (เรื่องนี้ นักเรียนถูกย้ำมาจนเป็นทักษะดีอยู่แล้วจากครูผู้สอน) ตอนนี้เรากำลังจะสร้างแอ็ปสั่งพิซซ่า โดยผู้ใช้ก็แค่ทำการคลิกเลือกตัวเลือก และติ๊กรายการต่างๆ แล้วสั่งการผ่านปุ่มคำสั่ง..
2. Draw three frames. In the first, draw three option buttons, in the second, draw two option buttons, and in the third, draw six check boxes. Draw two option buttons on the form. Add two command buttons. Make things look something like this.ให้นักเรียนวาดเฟรม (frame) 3 เฟรม แล้ววาดปุ่มอ็อปชัน (option button) ใส่ไว้ในเฟรมแรก 3 ปุ่ม ส่วนเฟรมที่สองวาดปุ่มอ็อปชันใส่ไว้ 2 ปุ่ม ส่วนเฟรมที่สามวาด check box ใส่ไว้ 6 ช่อง ด้วยกัน แล้ววาดปุ่มอ็อปชันอีกสองปุ่มใส่ไว้ในฟอร์ม (ดูโซน 4 ประกอบ) และวาด command button (ปุ่มคำสั่ง) สองปุ่ม (ไว้ในโซน 5)
|
Fig.1 The Form which is being designed by us. นี่เป็นฟอร์มที่กำลังได้รับการออกแบบจากนักเรียน |
3. Set the properties of the form and each control.หลังจากออกแบบเสร็จแล้ว ต่อไปนักเรียนต้อง set the properties (ตั้งค่าคุณสมบัติ) ของฟอร์ม และคอนโทรล (control )แต่ละตัว ดังนี้
BorderStyle 1-Fixed Single
Caption Pizza Order
Name frmPizza
Caption Size
Caption Crust Type
Caption Toppings
Caption Small
Name optSize
Value True
Caption Medium
Name optSize (yes, create a control array)
Caption Large
Name optSize
Caption Thin Crust
Name optCrust
Value True
Caption Thick Crust
Name optCrust (yes, create a control array)
Caption Eat In
Name optWhere
Value True
Caption Take Out
Name optWhere (yes, create a control array)
Caption Extra Cheese
Name chkTop
Caption Mushrooms
Name chkTop (yes, create a control array)
Caption Black Olives
Name chkTop
Caption Onions
Name chkTop
Caption Green Peppers
Name chkTop
Caption Tomatoes
Name chkTop
Caption &Build Pizza
Name cmdBuild
Caption E&xit
Name cmdExit
4. Declare the following variables in the general declarations area:
ให้นักเรียนเลือก View/Code แล้วพิมพ์ Source codes ในส่วนของ general declarations (ส่วนประกาศทั่วไป) เพื่อประกาศตัวแปร (to declare the variables) 3 ตัว เป็นตัวแปรชนิด String (เก็บข้อมูลที่เป็นข้อความ) ได้แก่ PizzaSize (เก็บข้อมูลขนาดของพิซซ่าที่ลูกค้าสั่ง), PizzaCrust (เก็บข้อมูลว่า ลูกค้าสั่งพิซซ่าที่มีขอบบางหรือหนา), PizzaWhere (เก็บข้อมูลว่า พิซซ่าที่ลูกค้าสั่งนั้น จะกินที่ร้าน หรือแพ็กห่อ) Option Explicit Dim PizzaSize As String Dim PizzaCrust As String Dim PizzaWhere As String
5. Attach this code to the Form_Load procedure. This initializes the pizza size, crust, and eating location.
ให้นักเรียนผูกโค้ด (attach code) เข้ากับฟอร์ม (โดยการทำดับเบิลคลิกที่ฟอร์ม ก็จะเข้าสู่โมดูล หรือโพรซิเยอร์ (procedure) ที่ชื่อ Form_Load แล้วนักเรียนก็ใส่โค้ดเข้าไป บรรดาโค้ดตรงนี้ จะเป็นการกำหนดค่าเริ่มต้น (initialization) ให้กับตัวแปรทั้งสามตัว ที่เราประกาศไว้ คือ PizzaSize, PizzaCrust และ PizzaWherePrivate Sub Form_Load() PizzaSize = "Small" PizzaCrust = "Thin Crust" PizzaWhere = "Eat In"End Sub
6. Attach this code to the three option button array Click events. Note the use of the Index variable:
ให้นักเรียน attach code เข้ากับปุ่มอ็อปชันในแต่ละเฟรม (โดยดับเบิลคลิกที่ปุ่มอ็อปชันใดๆ ในเฟรมนั้น แล้วใส่โค้ด) Private Sub optSize_Click(Index As Integer)[ดับเบิลคลิกที่ปุ่ม optSize (ใดก็ได้ในสามปุ่ม ของโซน 1) แล้วใส่โค้ดข้างล่างนี้เข้าไป ] PizzaSize = optSize(Index).Caption (โค้ดนี้ จะให้อ่านค่า จำนวนเต็ม 0, 1 หรือ 2 ซึ่งแทนขนาดเล็ก กลาง ใหญ่ ของขนาดถาดพิซซ่า เอาค่าไปเก็บไว้ในตัวแปร PizzaSize)End Sub
Private Sub optCrust_Click(Index As Integer)[ดับเบิลคลิกที่ปุ่ม optCrust (ใดก็ได้ในสองปุ่ม ของโซน 2) แล้วใส่โค้ดข้างล่างนี้เข้าไป ] PizzaCrust = optCrust(Index).Caption (โค้ดนี้ จะให้อ่านค่า จำนวนเต็ม 0 หรือ 1 ซึ่งแทนขอบพิซซ่า อย่างบาง หรืออย่างหนา เอาค่าไปเก็บไว้ในตัวแปร PizzaCrust)End Sub
Private Sub optWhere_Click(Index As Integer)[ดับเบิลคลิกที่ปุ่ม optWhere (ใดก็ได้ในสองปุ่ม ของโซน 4) แล้วใส่โค้ดข้างล่างนี้เข้าไป ] PizzaWhere = optWhere(Index).Caption (โค้ดนี้ จะให้อ่านค่า จำนวนเต็ม 0 หรือ 1 ซึ่งแทนว่าจะกินพิซซ่าที่ไหน กินที่ร้าน หรือนำกลับบ้าน เอาค่าไปเก็บไว้ในตัวแปร PizzaWhere)End Sub
7. Attach this code to the cmdBuild_Click event.
ให้นักเรียน attach code ต่อไปนี้ เข้าไปที่ปุ่มคำสั่ง cmdBuildPrivate Sub cmdBuild_Click() Dim Message As String Dim I As Integer Message = PizzaWhere + vbCr Message = Message + PizzaSize + " Pizza" + vbCr Message = Message + PizzaCrust + vbCr For I = 0 To 5 If chkTop(I).Value = vbChecked Then Message = Message + chkTop(I).Caption + vbCr Next I MsgBox Message, vbOKOnly, "Your Pizza"End SubThis code forms the first part of a message for a message box by integrating the pizza size, crust type, and eating location (vbCr is a symbolic constant representing a ‘carriage return’ that puts each piece of ordering information on a separate line). Next, the code cycles through the six topping check boxes and adds any checked information to the message. The code then displays the pizza order in a message box.โค้ดในส่วนนี้ จะทำการสร้าง message ในลักษณะของ message box ที่จะบูรณาการเอา ขนาดของพิซซ่า ขอบหนาหรือบาง และจะกินที่ร้านหรือแพ็กกล่อง (vbCr คือ symbolic constant หรือค่าคงที่ ในภาษาวิชวลเบสิกที่หมายถึงการสั่งให้ขึ้นบรรทัดใหม่ หรือ carriage return ก็คือ "การปัดแคร่" ซึ่งขอยืมศัพท์ของพิมพ์ดีดมาอีกทีนั่นเอง)
8. Attach this code to the cmdExit_Click event.
ผูกคำสั่ง End เข้ากับปุ่มคำสั่ง cmdExitPrivate Sub cmdExit_Click() EndEnd Sub
9. Run the application, the message box will be appeared.
เมื่อรันโปรแกรม ก็จะได้ application ที่มี user interface แบบนี้
|
The Application User Interface นี่คือหน้าตาของแอ็ปปลิเคชันของเรา |
|
Message Box เม็ซเสซบ็อกซ์ที่ได้ |