การเขียนโปรแกรมด้วย Vb 6.0

40
บทที 1 เริมต้นการใช้งาน โปรแกรม Visual Basic (VB) เป็นโปรแกรมสําหรับพัฒนาโปรแกรมประยุกต์ที$กําลังเป็นที$ นิยมใช้อยู ่ใน ปัจจุบัน โปรแกรม Visual Basic เป็นโปรแกรมที$ได้เปลี$ยนรูปแบบการเขียนโปรแกรมใหม่ โดยมีชุดคําสั $งมาสนับสนุน การทํางาน มีเครื$องมือต่าง ๆ ที$เรียกกันว่า คอนโทรล(Controls) ไว้สําหรับช่วยในการออกแบบโปรแกรม โดยเน้นการ ออกแบบหน้าจอแบบกราฟฟิก หรือที$เรียกว่า Graphic User Interface (GUI) ทําให้การจัดรูปแบบหน้าจอเป็นไปได้ง่าย และในการเขียนโปรแกรมนั Cนจะเขียนแบบ Event - Driven Programming คือ โปรแกรมจะทํางานก็ต่อเมื$อเหตุการณ์ (Event) เกิดขึ Cน ตัวอย่างของเหตุการณ์ได้แก่ ผู้ใช้เลื$อนเมาส์ ผู้ใช้กดปุ ่ มบนคีย์บอร์ด ผู้ใช้กดปุ ่ มเมาส์ เป็นต้น เครื$องมือ หรือ คอนโทรล ต่าง ๆ ที$ Visual Basic ได้เตรียมไว้ให้ ไม่ว่าจะเป็น Form TextBox Label ฯลฯ ถือว่า เป็นวัตถุ (Object ในที$นี Cขอใช้คําว่า ออบเจ็กต์) นั $นหมายความว่า ไม่ว่าจะเป็นเครื$องมือใด ๆ ใน Visual Basic จะเป็น ออบเจ็กต์ทั CงสิCน สามารถที$จะควบคุมการทํางาน แก้ไขคุณสมบัติของออบเจ็กต์นั Cนได้โดยตรง ในทุกๆ ออบเจ็กต์จะมี คุณสมบัติ (properties) และเมธอด (Methods) ประจําตัว ซึ $งในแต่ละออบเจ็กต์ อาจจะมีคุณสมบัติและเมธอดที$เหมือน หรือต่างกันก็ได้ ขึ Cนอยู่กับชนิดของออบเจ็กต์ ในการพัฒนาโปรแกรมประยุกต์ด้วย Visual Basic การเขียนโค้ดจะถูกแบ่งออกเป็นส่วนๆ เรียกว่า โพรซีเดอร์ (procedure) แต่ละโพรซีเดอร์จะประกอบไปด้วย ชุดคําสั $งที$พิมพ์เข้าไปแล้ว ทําให้คอนโทรลหรือออบเจ็กต์นั Cน ๆ ตอบสนองการกระทําของผู้ใช้ ซึ $งเรียกว่าการเขียนโปรแกรมเชิงวัตถุ (Object Oriented Programming-OOP) แต่ตัวภาษา Visual Basic ยังไม่ถือว่าเป็นการเขียนโปรแกรมแบบ OOP อย่างแท้จริง เนื$องจากข้อจํากัดหลายๆ อย่างที$ Visual Basic ไม่สามารถทําได้ เข้าสู ่โปรแกรม Visual Basic
  • Upload

    -
  • Category

    Documents

  • view

    18.194
  • download

    5

description

การเขียนโปรแกรมด้วย Vb 6.0

Transcript of การเขียนโปรแกรมด้วย Vb 6.0

Page 1: การเขียนโปรแกรมด้วย Vb 6.0

บทท� 1

เร�มตนการใชงาน

โปรแกรม Visual Basic (VB) เปนโปรแกรมสาหรบพฒนาโปรแกรมประยกตท$กาลงเปนท$ นยมใชอยในปจจบน โปรแกรม Visual Basic เปนโปรแกรมท$ไดเปล$ยนรปแบบการเขยนโปรแกรมใหม โดยมชดคาส$งมาสนบสนนการทางาน มเคร$องมอตาง ๆ ท$เรยกกนวา คอนโทรล(Controls) ไวสาหรบชวยในการออกแบบโปรแกรม โดยเนนการออกแบบหนาจอแบบกราฟฟก หรอท$เรยกวา Graphic User Interface (GUI) ทาใหการจดรปแบบหนาจอเปนไปไดงาย และในการเขยนโปรแกรมนCนจะเขยนแบบ Event - Driven Programming คอ โปรแกรมจะทางานกตอเม$อเหตการณ (Event) เกดขCน ตวอยางของเหตการณไดแก ผใชเล$อนเมาส ผใชกดปมบนคยบอรด ผใชกดปมเมาส เปนตน

เคร$องมอ หรอ คอนโทรล ตาง ๆ ท$ Visual Basic ไดเตรยมไวให ไมวาจะเปน Form TextBox Label ฯลฯ ถอวาเปนวตถ (Object ในท$นCขอใชคาวา ออบเจกต) น$นหมายความวา ไมวาจะเปนเคร$องมอใด ๆ ใน Visual Basic จะเปนออบเจกตทCงสCน สามารถท$จะควบคมการทางาน แกไขคณสมบตของออบเจกตนCนไดโดยตรง ในทกๆ ออบเจกตจะมคณสมบต (properties) และเมธอด (Methods) ประจาตว ซ$ งในแตละออบเจกต อาจจะมคณสมบตและเมธอดท$เหมอน หรอตางกนกได ขCนอยกบชนดของออบเจกต

ในการพฒนาโปรแกรมประยกตดวย Visual Basic การเขยนโคดจะถกแบงออกเปนสวนๆ เรยกวา โพรซเดอร (procedure) แตละโพรซเดอรจะประกอบไปดวย ชดคาส$งท$พมพเขาไปแลว ทาใหคอนโทรลหรอออบเจกตนCน ๆ ตอบสนองการกระทาของผใช ซ$ งเรยกวาการเขยนโปรแกรมเชงวตถ (Object Oriented Programming-OOP) แตตวภาษา Visual Basic ยงไมถอวาเปนการเขยนโปรแกรมแบบ OOP อยางแทจรง เน$องจากขอจากดหลายๆ อยางท$ Visual Basic ไมสามารถทาได

เขาสโปรแกรม Visual Basic

Page 2: การเขียนโปรแกรมด้วย Vb 6.0

2 เม$อเขาสโปรแกรม Visual Basic จะแสดงกรอบ โตตอบสาหรบเลอกชนดของโปรแกรมประยกต ท$ตองการ

รปท$ 1-1 กรอบโตตอบเม$อเร$มเปด Visual Basic

ใชพฒนาโปรแกรมประยกตท$ว ๆ ไป

ใชพฒนาโปรแกรมประยกตท$สามาระใชงานและเช$อมโยงกบโปรแกรมประยกตอ$น ๆ ท$สนบสนนเทคโนโลย ActiveX

เปนโปรแกรมประยกตชนดเดยวกนกบ ActiveX.EXE แตจะเกบเปนไฟลไลบราล$ไมสามารถประมวลผลไดดวยตวมนเอง จะตองถกเรยกใชงานจากโปรแกรมประยกตอ$น ๆ

ใชสรางคอนโทรล ActiveX ขCนมาใชงานเอง

เปนเคร$องมอท$ชวยใหสามารถสรางโปรแกรมประยกตไดอยางรวดเรว โดยจะสรางองคประกอบเบCองตนหลก ๆ ของโปรแกรมประยกต จากขCนตอนท$ไดเลอกไว

ใชสาหรบสรางโปรแกรมการจดการตาง ๆ เชน การตดตอกบฐานขอมล เปนตน

Page 3: การเขียนโปรแกรมด้วย Vb 6.0

3

เปนชนดโปรเจกตท$เปนแบบฟอรม เพ$อตดตอกบฐานขอมลโดยผานทางคอนโทรล ADO Data Control

โปรแกรมประยกตชนดท$ใชกบ Web Server

ใชสาหรบเพ$มเตม utility เขาไปใน Visual Basic เพ$อเพ$มความประสทธภาพ

ใชสรางโปรแกรมประยกตท$ประมวลผลบน Internet จะเกบอยในรปไฟล .dll ไมสามารถประมวลผลไดดวยตวมนเอง ตองใหโปรแกรมประยกตอ$น ๆ ท$สนบสนนเทคโนโลย ActiveX เรยกใชงาน เชน Internet Explorer เปนตน

ใชสรางโปรแกรมประยกตชนดท$ประมวลผลบน Internet เชนกน แตจะเกบอยในรปไฟล .exe สามารถประมวลผลไดดวยตวเอง แต server จะตองสนบสนนเทคโนโลย ActiveX ดวยเชนกน เชน Internet Explorer เปนตน

ใชพฒนาโปรแกรมประยกตรปแบบของเอกสาร Dynamic HTML ซ$ งจะเปนมาตรฐานใหมของการแสดงผลบน web

ใชสาหรบโหลด Visual Basic ในรปแบบท$ใชพฒนาโปรแกรมประยกตในระดบ Enterprise ซ$ ง Visual Basic จะเพ$มคอนโทรล ActiveX อกจานวนหน$งขCนมาโดยอตโนมต

สาหรบ แทป Existing ใชสาหรบเปดโปรเจกตท$คณมอยแลว แตยงไมเคยเปดใช แทป Recent จะแสดงรายช$อโปรเจกตท$เคยเรยกใชแลว

Page 4: การเขียนโปรแกรมด้วย Vb 6.0

4 เม$อเลอกชนดของโปรแกรมประยกตเปนแบบStandard EXE จะเขาสหนาตางของ Visual Basic ดงรปท$ 1- 2

รปท$ 1-2 หนาตางของ Visual Basic เม$อเร$มโปรแกรม

ในแตละสวนของ Visual Basic จะมหนาท$แตกตางกนไป ซ$ งในระหวางการพฒนาโปรแกรมประยกต จะตองใชสวนตาง ๆ เหลานC ในการพฒนาโปรแกรมประยกต ทลบาร (Toolbars) เปนแถบสญลกษณท$ใชสาหรบเขาถงชดคาส$งของ Visual Basic ไดทนท โดยจะนาคาส$งท$ถกใชงานบอย ๆ มาแสดง

รปท$ 1-3 Toolbars

ทลบารสามารถแบงออกไดเปน 4 กลมใหญ ๆ คอ 1. Standard Toolbars เปนทลบารมาตรฐานประกอบดวยคาส$งท$เก$ยวกบการจดการ Project 2. Edit Toolbars เปนทลบารท$ประกอบไปดวยคาส$งท$ใชสาหรบชวยในการเขยนโคดใน code editor 3. Debug Toolbars เปนทลบารท$ประกอบไปดวยคาส$งท$ใชสาหรบตรวจสอบการทางานการประมวลผลโปรแกรม 4. Form Editor Toolbars เปนทลบารท$ประกอบไปดวยคาส$งท$ใชสาหรบชวยในการปรบขนาด, ยาย, เปล$ยนตาแหนงคอนโทรลตาง ๆ ท$อยบนฟอรม

Page 5: การเขียนโปรแกรมด้วย Vb 6.0

5 Toolboxs คอแถบสญลกษณ Controls ตาง ๆ ท$ใชสาหรบพฒนาโปรแกรมประยกต แบง เปน 2 กลม คอ

รปท$ 1-4 Toolboxs

1. คอนโทรลภายใน (Intrinsic controls) เปนชดคอนโทรลมาตรฐานของ Visual Basic ทก ๆ ครC งท$มการเรยกใช Form เพ$อสรางโปรแกรมประยกต คอลโทรลชดนCจะถกเรยกขCนมาอตโนมต สามารถเลอกใชงานคอลโทรลกลมนCไดทนท

รปท$ 1-5 แสดงรายการคอนโทรล ActiveX เพ$มเตม

2. คอนโทรล ActiveX (ActiveX controls) เปนชดคอนโทรลเพ$มเตมท$ไมโครซอฟทจดเตรยมไว เพ$อเพ$มขดความสามารถในการพฒนาโปรแกรมประยกต การเพ$มคอนโทรลกลมนC เขามาในทลบอกซทาโดยเลอกเมน Project/Components (หรอคลpกขวาตรงแถบ ทลบอกซเลอกคาส$ง

Page 6: การเขียนโปรแกรมด้วย Vb 6.0

6 Form Designer เปนสวนท$ใชออกแบบการแสดงผลสวนท$ใชตดตอกบผใช ฟอรมเปนออบเจกตแรกท$ถกเตรยมไวใหใชงาน คอลโทรลทกตวท$ตองการใชงานจะตองนาไปบรรจไวในฟอรม นาคอลโทรลมาประกอบกนขCนเปนโปรแกรมประยกต ทกครC งท$เปด Visual Basic ขCนมา หรอ สราง Project ใหมจะมฟอรมวาง 1 ฟอรมถกสรางเตรยมไวเสมอ

รปท$ 1-6 Form Designer

Project Explorer Project Explorer ใชสาหรบบรหารและจดการโปรเจกซ โดยจะแสดงองคประกอบของแตละโปรเจกตแบบโครงรางตนไม (tree-view)ตวโปรเจกตจะหมายถงโปรแกรมประยกตซ$ งจะอยสวนบนสด ถดมา จะแสดงสวนประกอบตาง ๆ ของโปรเจกตนCน ๆ วาประกอบดวยอะไรบาง เชน ฟอรมโมดล รายงาน เปนตน ถาม 2 โปรเจกตขCนไป กจะแสดง แยกออกเปนสวนตางหากอกโปรเจกต ถาตองการใชงานสวนใด ของโปรเจกตไหนกสามารถคลpกเลอกไดทนท

รปท$ 1-7 Project Explorer แบบโปรเจกตเดยว และ แบบหลายโปรเจกต

สวนประกอบของโปรเจกต

Page 7: การเขียนโปรแกรมด้วย Vb 6.0

7

Project(n) คอโปรแกรมประยกตท$พฒนาอย มนามสกล .vbp

Form(n) เปนฟอรมท$มอยในโปรเจกตนCน ๆ ใน 1 โปรเจกตอาจมมากกวา 1 ฟอรมกได มนามสกล .frm

Modules เปนท$เกบชดคาส$งท$คณเขยนขCนมา โดยจะเกบชดคาส$งท$ใชบอย ๆมนามสกล .bas

Class Modules เปนโมดลชนดพเศษท$มลกษณะเปนออบเจกต ท$สามารถสรางขCนมาได จะมนามสกล .cls

User controls เปนสวนท$เกบคอนโทรล ActiveX ท$คณสรางขCนมา มนามสกล .ctl

Designers เปนสวนของรายงานท$ถกสรางขCนมนามสกลเปน .dsr

Properties Window หนาตางคณสมบตเปนสวนท$ใชกาหนดคณสมบตของออบเจกตท$ถกเลอก (adtive) หรอไดรบความสนใจ (focus) อยขณะนCน ซ$ งสามารถท$จะปรบเปล$ยนคาตาง ๆ ของคอลโทรลเพ$อใหเกดความเหมาะสมและตรงกบความตองการใชงานไดทนท

รปท$ 1-8 Properties Window

ในหนาตางคณสมบต จะประกอบไปดวยแทป 2 แทป คอ 1. แทป Alphabetic เปนแทปท$แสดงรายการคณสมบต เรยงตามตวอกษรในภาษาองกฤษ 2. แทป Categorized เปนแทปท$แสดงรายการคณสมบต โดยการจดกลมของคณสมบตท$มหนาท$คลายกน หรอมความสมพนธกน

หนาตาง Form Layout

Page 8: การเขียนโปรแกรมด้วย Vb 6.0

8 เปนสวนท$แสดงใหเหนตาแหนงของฟอรม และ สามารถกาหนดตาแหนงของฟอรม ท$ปรากฎบนจอภาพในขณะประมวลผลได โดยการเคล$อนยายฟอรมจาลอง ท$อยในจอภาพจาลองดวยการ drag เมาส ไปยงตาแหนงทคณตองการ โดยจะมผลในขณะประมวลผลเทานCน

รปท$ 1-9 Form Layout

Immediate Window เปนหนาตางท$ใหประโยชน ในกรณทคณตองการทราบผล การประมวลผลโดยทนท เชน การทดสอบโปรแกรมยอย ตาง ๆ เปนตน เม$อคณส$งประมวลผลโปรเจกต หนาตางนC จะปรากฎขCนโดยอตโนมต

รปท$ 1-10 Immediate Window

หนาตาง New Project

Page 9: การเขียนโปรแกรมด้วย Vb 6.0

9 หนาตาง New Project จะปรากฎขCนมาเม$อเลอกเมน File/New Project กรอบโตตอบนC จะแสดงชนดของโปรแกรมประยกต ท$คณตองการพฒนา ซ$ งจะคลายกบตอนท$เปดโปรแกรม Visual Basic ขCนมาครC งแรก รปท$ 1-11 กรอบโตตอบ New Project

หนาตาง Code Editor เปนสวนท$ใชในการเขยนชดคาส$งสาหรบการประมวลผล และควบคมการทางานของคอลโทรลตาง ๆ

รปท$ 1-12 Code Editor

บทท� 2

Page 10: การเขียนโปรแกรมด้วย Vb 6.0

10 รจกออบเจกตและฟอรม

จากบทท$ 1 จะเหนวาเคร$องมอ หรอ คอนโทรล ตาง ๆ ท$ Visual Basic ไดเตรยมไวให ไมวาจะเปน Form,

Textbox, Label, ฯลฯ ถอวาเปนวตถ ซ$ งเรยกวา Object ในบทนC เราจะมาทาความเขาใจกบ Object, Properties, Method และ Event รวมทCงทาความรจกกบ Form และประเภทของ Form ออบเจกต พรอพเพอรตO และเมธอดของ คออะไร ออบเจกต (objects) คอส$งใด ๆ กตาม ซ$ งมคณสมบต (Properties) ท$บงบอกความเปนตวเองในขณะนCน และสามาระแสดงพฤตกรรม (Method) ของตวเองออกมาได เชน คอนโทรลตาง ๆ

คณสมบต (properties) คอส$งท$สามารถบงบอกถงความเปนวตถ และอยภายในตววตถซ$ งสามารถเปล$ยนแปลงไดเชน รปราง ลกษณะ ความกวาง ความยาว ฯลฯ สาหรบในแตละคอนโทรล หรอออบเจกต อาจจะมคณสมบตท$เหมอนกน หรอตางกนกได ขCนอยกบหนาท$ของแตละคอนโทรล คอนโทรลหรอออบเจกตหน$ง ๆ จะมคณสมบตมากมาย หลายอยาง ย$งสามารถปรบแตงคณสมบตใหตรงกบความตองการมากเพยงใด โปรแกรมประยกตกจะมประสทธภาพมากขCนเทานCน ซ$ งถอไดวาเปนจดเร$มตนไดด ในการพฒนาโปรแกรมประยกตสามารถปรบแตง คณสมบตไดจากหนาตางProperties หรอปรบแตงดวยการเขยนโคดกไดจะมคณสมบตบางตว ท$ไมโครซอฟทแนะนาให ปรบแตงดวยการเขยนโคด และบางตวปรบแตงดวยการแกไขในหนาตาง Properties และในทางปฏบตไมจาเปนตองปรบแตงทก ๆ คณสมบต เพราะ Visual Basic ไดตCงคาเร$มตน ไวใหแลว ซ$ งกสามารถใชงานไดในระดบหน$ง

เมธอด (methods) หมายถง อาการท$วตถใด ๆ แสดงออกมาหรอถกใหแสดงออกมาโดยพฤตกรรมใดๆ ของวตถนCน จะมผลเช$อมโยงไปถงขอมลคณลกษณะภายในวตถเองดวย อาจกลาวไดวา เปนการควบคมการทางานของคอนโทรล หรอออบเจกตน$นเอง จะใชจดเปนตวค$นระหวางช$อคอนโทรลกบเมธอด ซ$ งจะเหนไดวา คณสมบตและเมธอดมคามใกลเคยงกนมาก เน$องจากจะใชจด . เปนตวแยกระหวาง ช$อคอนโทรลกบคณสมบต หรอช$อคอนโทรลกบเมธอด จะมความแตกตางกน ในแงของการควบคมคอนโทรล หรอออบเจกต ซ$ งจะไดศกษาในหวขอตอ ๆ ไป ฟอรม ฟอรม (Form) คอ หนาตางท$ใชสาหรบแสดงผล โดยจะม ActiveX Controls ตาง ๆ บรรจอยภานใน มหนาท$สาหรบตดตอกบผใชงาน โดย Form กถอวาเปนออบเจกตดวย

ประเภทของฟอรม

Page 11: การเขียนโปรแกรมด้วย Vb 6.0

11 ฟอรมแบงออกไดเปน 2 ประเภทคอ 1. SDI Form (Single Document Interface Form) เปนฟอรมท$สามาระทางานไดอยางอสระ สามารถท$จะวางเคร$องมอตาง ๆ ได

รปท$ 2-1 SDI Form

2. 2. MDI Form (Multiple Document Interface Form) เปนฟอรมท$ใชบรรจ SDI Form ไว โดย SDI Form ท$จะบรรจอยภายใต MDI Form จะตองกาหนดคณสมบตของฟอรมใหเปน MDI child กอน สาหรบ MDI Form จะสามารถวางเคร$องมอไดเพยงบางอยางเทานCน

รปท$ 2-2 MDI Form ใน Project แตละ Project นCนจะม SDI Form ไดไมจากด แตจะม MDI Form ไดเพยงแค 1 ฟอรมเทานCน และ

สาหรบ Project ใดกตามท$มการเรยกใช MDI Form และไดกาหนดคณสมบตของ SDI Form ใหเปน MDI Child เม$อทา

Page 12: การเขียนโปรแกรมด้วย Vb 6.0

12 การปด MDI Form แลวนCนจะมผลทาให SDI Form ท$ เปน MDI Child ถกปดตามไปดวย พรอพเพอรตOท�สาคญของฟอรม

Name ใชสาหรบกาหนดช$อ

BackColor ใชสาหรบกาหนดสพCน

BorderStyle ใชสาหรบกาหนดรปแบบของเสนขอบ

Caption ใชสาหรบกาหนดขอความบน Title Bar ของ Form

ControlBox ใชสาหรบกาหนดใหมปมควบคมของ Form

Enabled ใชสาหรบกาหนดให Form สามารถใชงานไดหรอไม

Font ใชสาหรบกาหนดตวอกษรของขอความอปกรณตาง ๆ ใน Form

ForeColor ใชสาหรบกาหนดสตวอกษรของขอความอปกรณตาง ๆ ใน Form

MaxButton ใชสาหรบกาหนดใหมปมขยายขนาดของ Form

MDI Child ใชสาหรบกาหนดให Form มคณสมบตเปน Form ยอยของ MDI Form

MinButton ใชสาหรบกาหนดใหมปมยอขนาดของ Form

Moveable ใชสาหรบกาหนดให Form สามารถยายตาแหนงไดหรอไม

Picture ใชสาหรบกาหนดรปบน Form

ShowInTaskbar ใชสาหรบกาหนดใหมไอคอนแสดงบน Taskbar

StartUpPosition ใชสาหรบกาหนดตาแหนงการแสดง Form บนจอภาพ

Visible ใชสาหรบกาหนดใหซอนหรอแสดง Form

WindowState ใชสาหรบกาหนดขนาดของ Form เม$อมการทางาน

เมธอดท�สาคญของ Form

Hide เปนการทางานท$ส$งใหซอน Form

Line เปนการทางานท$ส$งใหวาดเสนลงบน Form

Move เปนการทางานท$ส$งให Form ยายตาแหนงไปยงตาแหนงท$กาหนด

Print เปนการทางานท$ส$งใหพมพ Form ออกทางเคร$องพมพ

Show เปนการทางานท$ส$งใหแสดง Form

Unload เปนการทางานท$ส$งใหยกเลกการใชงานของ Form

Page 13: การเขียนโปรแกรมด้วย Vb 6.0

13 อเวนตท�สาคญของ Form

Activate จะเกดขCนเม$อเลอกใชงาน Form กรณท$มการเปด Form หลาย ๆ Form พรอมกน

Initialize จะเกดขCนเม$อ Form ถกโหลดเขาไปในหนวยความจา

Load จะเกดขCนเม$อ Form แสดงผลหลงจากท$ถกโหลดเขาไปในหนวยความจา

QueryUnload จะเกดขCนเม$อมการปด Form

Terminate จะเกดขCนเม$อ Form ถกลบออกจากหนวยความจา

Unload จะเกดขCนเม$อ Form ถกยกเลกการใชงาน

การกาหนดคาพรอพเพอรตCของ Form สามารถจะกาหนดได 2 วธดวยกนคอ 1. กาหนดจาก Properties Window

รปท$ 2-3 การกาหนดคาใน Properties Window

Page 14: การเขียนโปรแกรมด้วย Vb 6.0

14

2. กาหนดโดยการเขยนชดคาส$งใน Code Editor

รปท$ 2-4 การกาหนดคาใน Code Editor

Page 15: การเขียนโปรแกรมด้วย Vb 6.0

15

บทท� 3 ActiveX Control พOนฐาน

ในการเขยนโปรแกรมเพ$อสรางโปรแกรมประยกตดวย Visual Basic นCน ActiveX Control เปนสวนสาคญท$ทา

ใหการพฒนาโปรแกรมเปนไปดวยความรวดเรว ในบทนC เราจะไดเรยนรการใชงาน Control เรยนรเก$ยวกบ พรอพเพอรตC เมธอด และ อเวนต ของ ActiveX Control พCนฐาน ของ Visual Basic การใชงาน ActiveX Control ActiveX Control คอเคร$องมอท$ Visual Basic ไดจดเตรยมไวใหนกพฒนาโปรแกรมเพ$อใชในการพฒนาโปรแกรมประยกต ใหเกดความงายและรวดเรวในการเขยนโปรแกรม โดย ActiveX Control พCนฐานท$ Visual Basic เตรยมไวท$ถกนามาใชอยเสมอในการพฒนาโปรแกรมประยกตมรายละเอยดดงนC

รปท$ 3-1 Toolboxs แสดง ActiveX Control พCนฐานของ Visual Basic ท$ใชบอย

Page 16: การเขียนโปรแกรมด้วย Vb 6.0

16 Label : แถบอกษร แถบอกษร หรอ แถบขอความ ใชเพ$อแสดงขอความ เม$อแสดงผลจะไมสามารถพมพแกไขขอมลได นอกจากจะเขยนชดคาส$งกาหนดใหมการเปล$ยนแปลง

พรอบเพอรตOท�สาคญของ Label

Name ใชสาหรบกาหนดช$อ

Alignment ใชสาหรบกาหนดตาแหนงของขอมลบน

AutoSize ใชสาหรบกาหนดขนาดของ Label ใหมขนาดพอดกบขอมลอตโนมต

BackColor ใชสาหรบกาหนดสพCน

BackStyle ใชสาหรบกาหนดแบบของพCนหลงใหเปนแบบทบหรอโปรงใส

BorderStyle ใชสาหรบกาหนดรปแบบของเสนขอบ

Caption ใชสาหรบกาหนดขอความ

DataField ใชสาหรบกาหนด Field ท$ตองการเช$อมตอ

DataFormat ใชสาหรบกาหนดรปแบบของการแสดงผลขอมลใน Label

DataSource ใชสาหรบกาหนดแหลงขอมลหรอตารางท$ตองการเช$อมตอ

Enabled ใชสาหรบกาหนดใหสามารถใชงานได

Font ใชสาหรบกาหนดรปแบบตวอกษร

ForeColor ใชสาหรบกาหนดสตวอกษร

ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม

Visible ใชสาหรบกาหนดใหซอนหรอแสดง Label

อเวนตท�สาคญของ Label

Click เปนเหตการณท$เกดขCนเม$อมการ Click Mouse ท$ Label

Page 17: การเขียนโปรแกรมด้วย Vb 6.0

17

TextBox : กรอบขอความ กรอบขอความใชสาหรบรบขอมล ขณะท$ทาการประมวลผล

พรอบเพอรตOท�สาคญของ TextBox

Name ใชสาหรบกาหนดช$อ

Alignment ใชสาหรบกาหนดตาแหนงของขอมล

BackColor ใชสาหรบกาหนดสพCน

BorderStyle ใชสาหรบกาหนดรปแบบของเสนขอบ

Caption ใชสาหรบกาหนดขอความ

DataField ใชสาหรบกาหนด Field ท$ตองการเช$อมตอ

DataFormat ใชสาหรบกาหนดรปแบบของการแสดงผลขอมลใน TextBox

DataSource ใชสาหรบกาหนดแหลงขอมลหรอตารางท$ตองการเช$อมตอ

Enabled ใชสาหรบกาหนดใหสามารถใชงานได

Font ใชสาหรบกาหนดรปแบบตวอกษร

ForeColor ใชสาหรบกาหนดสตวอกษร

Index ใชสาหรบกาหนดลาดบสมาชกของ TextBox กรณท$กาหนดใหเปน Array

Locked ใชสาหรบกาหนด TextBox สามารถพมพขอมลไดหรอไม

MaxLength ใชสาหรบกาหนดความยาวของขอมลตวอกษรท$สามารถพมพได

MultiLine ใชสาหรบกาหนดให TextBox สามารถพมพไดหลายบรรทด

PasswordChar ใชสาหรบกาหนดตวอกษรท$ตองการใหแสดงขณะท$พมพ

ScrollBars ใชสาหรบกาหนดใหม Scroll bars ใน TextBox

TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form

Text ใชสาหรบกาหนดขอความใน TextBox

ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม

Visible ใชสาหรบกาหนดใหซอนหรอแสดง TextBox

เมธอดท�สาคญของ TextBox

SetFocus เปนการกาหนดใหรอรบขอมลท$ TextBox

Page 18: การเขียนโปรแกรมด้วย Vb 6.0

18 อเวนตท�สาคญของ TextBox

Change เปนเหตการณท$เกดขCนเม$อขอมลของ TextBox มการเปล$ยนแปลง

GotFocus เปนเหตการณท$เกดขCนเม$อ TextBox เร$มถกใชงาน

KeyPress เปนเหตการณท$เกดขCนเม$อมการกดปมใด ๆ บนคยบอรด

LostFocus เปนเหตการณท$เกดขCนเม$อ TextBox ถกเลกใชงาน

Frame : กรอบ ทาหนาท$แยกกลมของ ActiveX Control ออกเปนกลม ๆ โดย Frame จะสามารถบรรจ Control ตาง ๆ เอาไวภายในได

พรอบเพอรตOท�สาคญของ Frame

Name ใชสาหรบกาหนดช$อ

BackColor ใชสาหรบกาหนดสพCน

BorderStyle ใชสาหรบกาหนดรปแบบของเสนขอบ

Caption ใชสาหรบกาหนดขอความ

Font ใชสาหรบกาหนดรปแบบตวอกษร

ForeColor ใชสาหรบกาหนดสตวอกษร

ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม

Visiable ใชสาหรบกาหนดใหซอนหรอแสดง Frame

CommandButton : ปมกด ใชสาหรบรอรบการกดปม <Enter> หรอ คลกเมาส เพ$อใหเกดการทางาน บางครC งเราจะเรยกสCน ๆ วา Button

พรอบเพอรตOท�สาคญของ CommandButton

Name ใชสาหรบกาหนดช$อ

BackColor ใชสาหรบกาหนดสพCน

Caption ใชสาหรบกาหนดขอความ

Page 19: การเขียนโปรแกรมด้วย Vb 6.0

19

Font ใชสาหรบกาหนดรปแบบตวอกษร

Index ใชสาหรบกาหนดลาดบสมาชกของ CommandButton กรณท$กาหนดใหเปน Array

Picture ใชสาหรบกาหนดรปภาพบน CommandButton

Style ใชสาหรบกาหนดรปแบบของปมใหสามารถใชงาน Graphic ไดหรอไม

TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form

ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม

Visiable ใชสาหรบกาหนดใหซอนหรอแสดง CommandButton

เมธอดท�สาคญของ CommandButton

SetFocus เปนการกาหนดใหรอรบการ Click หรอ กดปม <Enter> ท$ CommandButton

อเวนตท�สาคญของ CommandButton

Click เปนเหตการณท$เกดขCนเม$อมการกดปม

GotFocus เปนเหตการณท$เกดขCนเม$อ CommandButton เร$มถกใชงาน

LostFocus เปนเหตการณท$เกดขCนเม$อ CommandButton ถกเลกใชงาน

CheckBox : ตวเลอก ใชสาหรบเลอกขอมลท$ตองการ โดยจะเลอกหรอไมกได และสามารถเลอกไดมากกวา 1 ตวเลอก

พรอบเพอรตOท�สาคญของ CheckBox

Name ใชสาหรบกาหนดช$อ

Alignment ใชสาหรบกาหนดตาแหนงของขอมลบน CheckBox

BackColor ใชสาหรบกาหนดสพCน

Caption ใชสาหรบกาหนดขอความ

Font ใชสาหรบกาหนดรปแบบตวอกษร

ForeColor ใชสาหรบกาหนดสตวอกษร

Page 20: การเขียนโปรแกรมด้วย Vb 6.0

20

Index ใชสาหรบกาหนดลาดบสมาชกของ CheckBox กรณท$กาหนดใหเปน Array

Style ใชสาหรบกาหนดรปแบบของ CheckBox

TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form

ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม

Value ใชสาหรบกาหนดคาการเลอก

Visiable ใชสาหรบกาหนดใหซอนหรอแสดง CheckBox

เมธอดท�สาคญของ CheckBox

SetFocus ใชสาหรบกาหนดใหรอรบการเลอกขอมลท$ CheckBox

อเวนตท�สาคญของ CheckBox

Click เปนเหตการณท$เกดขCนเม$อมการกดปม

GotFocus เปนเหตการณท$เกดขCนเม$อ CheckBox เร$มถกใชงาน

KeyPress เปนเหตการณท$เกดขCนเม$อมการกดปมใด ๆ บนคยบอรด

LostFocus เปนเหตการณท$เกดขCนเม$อ CheckBox ถกเลกใชงาน

OptionButton : ตวเลอกบงคบเลอก ใชบงคบเลอกขอมลโดยสามารถเลอกขอมลไดเพยงคาเดยวในกลมเดยวกน

พรอบเพอรตOท�สาคญของ OptionButton

Name ใชสาหรบกาหนดช$อ

Alignment ใชสาหรบกาหนดตาแหนงของขอมลบน OptionButton

BackColor ใชสาหรบกาหนดสพCน

Caption ใชสาหรบกาหนดขอความ

Font ใชสาหรบกาหนดรปแบบตวอกษร

ForeColor ใชสาหรบกาหนดสตวอกษร

Index ใชสาหรบกาหนดลาดบสมาชกของ OptionButton กรณท$กาหนดใหเปน Array

Style ใชสาหรบกาหนดรปแบบของ OptionButton

Page 21: การเขียนโปรแกรมด้วย Vb 6.0

21

TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form

ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม

Value ใชสาหรบกาหนดคาการเลอก

Visiable ใชสาหรบกาหนดใหซอนหรอแสดง OptionButton

เมธอดท�สาคญของ OptionButton

SetFocus ใชสาหรบกาหนดใหรอรบการเลอกขอมลท$ OptionButton

อเวนตท�สาคญของ OptionButton

Click เปนเหตการณท$เกดขCนเม$อมการกดปม

GotFocus เปนเหตการณท$เกดขCนเม$อ OptionButton เร$มถกใชงาน

KeyPress เปนเหตการณท$เกดขCนเม$อมการกดปมใด ๆ บนคยบอรด

LostFocus เปนเหตการณท$เกดขCนเม$อ OptionButton ถกเลกใชงาน

ComboBox : กลองรายการขอมล ใชสาหรบการเลอกขอมลจากรายการขอมลท$มอย โดยจะไมแสดงรายการขอมลจนกวาจะ Click Mouse ท$ Drop Down จงจะแสดงรายการขอมลใหเลอก

พรอบเพอรตOท�สาคญของ ComboBox

Name ใชสาหรบกาหนดช$อ

BackColor ใชสาหรบกาหนดสพCน

Font ใชสาหรบกาหนดรปแบบตวอกษร

ForeColor ใชสาหรบกาหนดสตวอกษร

Index ใชสาหรบกาหนดลาดบสมาชกของ ComboBox กรณท$กาหนดใหเปน Array

List ใชสาหรบใสระบหรอกาหนดตวเลอก

ListIndex ใชสาหรบระบลาดบตวเลอก

Locked ใชสาหรบกาหนดให ComboBox สามารถพมพ หรอเลอกขอมล ไดหรอไมได

Style ใชสาหรบกาหนดรปแบบของ ComboBox

Page 22: การเขียนโปรแกรมด้วย Vb 6.0

22

TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form

Text ใชสาหรบกาหนดขอความใน ComboBox

ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม

Visiable ใชสาหรบกาหนดใหซอนหรอแสดง ComboBox

เมธอดท�สาคญของ ComboBox

AddItem เปนคาส$งสาหรบเพ$มตวเลอกเขาไปใน ComboBox

Clear เปนคาส$งสาหรบลบขอมลทCงหมดใน ComboBox

RemoveItem เปนคาส$งสาหรบลบขอมลโดยตองระบลาดบของขอมลท$ตองการลบ

SetFocus ใชสาหรบกาหนดใหรอรบการเลอกขอมลท$ ComboBox

อเวนตท�สาคญของ ComboBox

Change เปนเหตการณท$เกดขCนเม$อขอมลของ ComboBox มการเปล$ยนแปลง

Click เปนเหตการณท$เกดขCนเม$อมการกดปมเล$อนตาแหนงหรอ Click Mouse

GotFocus เปนเหตการณท$เกดขCนเม$อ ComboBox เร$มถกใชงาน

KeyPress เปนเหตการณท$เกดขCนเม$อมการกดปมใด ๆ บนคยบอรด

LostFocus เปนเหตการณท$เกดขCนเม$อ ComboBox ถกเลกใชงาน

ListBox : กลองรายการขอมล ใชสาหรบเลอกขอมลจากรายการขอมลท$มอย

พรอบเพอรตOท�สาคญของ ListBox

Name ใชสาหรบกาหนดช$อ

BackColor ใชสาหรบกาหนดสพCน

Font ใชสาหรบกาหนดรปแบบตวอกษร

ForeColor ใชสาหรบกาหนดสตวอกษร

Index ใชสาหรบกาหนดลาดบสมาชกของ ListBox กรณท$กาหนดใหเปน Array

Page 23: การเขียนโปรแกรมด้วย Vb 6.0

23

List ใชสาหรบใสระบหรอกาหนดตวเลอก

ListIndex ใชสาหรบระบลาดบตวเลอก

Locked ใชสาหรบกาหนดให ListBox สามารถพมพ หรอเลอกขอมล ไดหรอไมได

Style ใชสาหรบกาหนดรปแบบของ ListBox

TabIndex ใชสาหรบกาหนดลาดบของ Control ท$ใชใน Form

Text ใชสาหรบกาหนดขอความใน ListBox

ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม

Visiable ใชสาหรบกาหนดใหซอนหรอแสดง ListBox

เมธอดท�สาคญของ ListBox

AddItem เปนคาส$งสาหรบเพ$มตวเลอกเขาไปใน ListBox

Clear เปนคาส$งสาหรบลบขอมลทCงหมดใน ListBox

RemoveItem เปนคาส$งสาหรบลบขอมลโดยตองระบลาดบของขอมลท$ตองการลบ

SetFocus ใชสาหรบกาหนดใหรอรบการเลอกขอมลท$ ListBox

อเวนตท�สาคญของ ListBox

Change เปนเหตการณท$เกดขCนเม$อขอมลของ ListBox มการเปล$ยนแปลง

Click เปนเหตการณท$เกดขCนเม$อมการกดปมเล$อนตาแหนงหรอ Click Mouse

GotFocus เปนเหตการณท$เกดขCนเม$อ ListBox เร$มถกใชงาน

KeyPress เปนเหตการณท$เกดขCนเม$อมการกดปมใด ๆ บนคยบอรด

LostFocus เปนเหตการณท$เกดขCนเม$อ ListBox ถกเลกใชงาน

Page 24: การเขียนโปรแกรมด้วย Vb 6.0

24

Image : รปภาพ ใชสาหรบแสดงรปภาพ

พรอบเพอรตOท�สาคญของ Image

Name ใชสาหรบกาหนดช$อ

BorderStyle ใชสาหรบกาหนดรปแบบของเสนขอบ

Index ใชสาหรบกาหนดลาดบสมาชกของ Image กรณท$กาหนดใหเปน Array

Picture ใชสาหรบกาหนดรปภาพบน Image

Stretch ใชสาหรบกาหนดใหปรบขนาดของรปภาพใหพอดกบขนาดของ Image

ToolTipText ใชสาหรบแสดงขอความอธบายเพ$มเตม

Visiable ใชสาหรบกาหนดใหซอนหรอแสดง Image

อเวนตท�สาคญของ Image

Click เปนเหตการณท$เกดขCนเม$อมการ Click Mouse ท$ Image

Timer : เวลา ใชสาหรบกาหนดการทางานของ Control ท$ตองการใหทางานตามชวงเวลา

พรอบเพอรตOท�สาคญของ Timer

Name ใชสาหรบกาหนดช$อ

Interval ใชสาหรบกาหนดชวงเวลา

อเวนตท�สาคญของ Timer

Timer เปนเหตการณเกดขCนเม$อเวลาเปล$ยน

Page 25: การเขียนโปรแกรมด้วย Vb 6.0

25

บทท� 4 การสราง Application

เปนท$ทราบดวาหลกการของการพฒนาโปรแกรมประยกตดวย Visual Basic กคอ การสรางองคประกอบตาง ๆ

ของโปรแกรมประยกตดวยคอนโทรล โดยมรปแบบท$ส$อดวยภาพ หรอ ท$เรยกกนตดปากวา การออกแบบอนเตอรเฟส ตอมากคอการเขยนชดคาส$งเพ$อรองรบเหตการณตางๆ ท$อาจเกดขCนได ซ$ งจะแบงออกเปน 5 ขCนตอนใหญ ๆ คอ 1. เลอกชนดของโปรแกรมประยกต 2. สรางยสเซอรอนเตอรเฟส (หรอสวนตดตอกบผใช อาจเรยกสCนๆวา อนเตอรเฟส) 3. เขยนชดคาส$งเพ$อรองรบเหตการณตางๆ ท$อาจเกดขCนกบแตละคอนโทรลหรอออบเจกต 4. การทดสอบ ตรวจสอบ และดกจบขอผดพลาด 5. คอมไพลโปรเจกตใหเปนโปรแกรมประยกตท$สมบรณ (เชน *.exe หรอ *.dll เปนตน) การใชงานคอนโทรลในการสรางอนเตอรเฟส จดเร$มตนของการพฒนาโปรแกรมประยกตดวย Visual Basic กคอการนาคอนโทรลชนดตางๆ ท$ Visual Basic จดเตรยมไวนามาสรางอนเตอรเฟส การพฒนาโปรแกรมประยกตท$ด ทาไดโดยการออกแบบอนเตอรเฟสท$ใชงานงาย เปนมตรกบผใช จะสงผลใหระยะเวลาในการพฒนาโปรแกรมประยกตลดลงไปไดมากทเดยว เพราะส$งท$เหลออยคอการเขยนโคดเพ$อทาใหโปร เจกตทางานใหสมบรณมากท$สด การนาคอนโทรลมาใชงาน สาหรบวธการนาคอนโทรลมาใชงาน วาดอนเตอรเฟสบนฟอรม ม 2 วธ คอ 1. คลpกท$ตวคอนโทรลนCน ๆ บน ToolBox แลวนาไปวาดบนฟอรม 2. ดบเบลคลpกท$ตวคอนโทรลนCนเลย แลว Visual Basic จะนาคอนโทรลไปวางบนฟอรมใหโดยอตโนมต ซ$ ง Visual Basic จะตCงคา default ไวใหทCงตาแหนง และขนาดของคอนโทรล แลวคอยแกในภายหลง สาหรบคอนโทรล CommandButton อาจใชขนาดท$ Visual Basic ตCงมาไปใชงานเลยกได เพราะมขนาดเหมาะสมอยแลว พOนฐานการเขยนโคด ม 2 วธท$สามารถเรยก editor ขCนมาใชงานคอ 1. ดบเบลคลpกท$ตวคอนโทรลนCน ๆ 2. คลpกท$คอนโทรลนCน ใหอยในสภาพใชงาน (active) หรอไดรบความสนใจ(focus) แลวกด F7

Page 26: การเขียนโปรแกรมด้วย Vb 6.0

26 การใชงาน Editor Editor ถอไดวาเปนสวนท$มความสาคญมากอกสวนหน$งในบรรดาเคร$องมอท$ Visual Basic ม เพราะใชสาหรบเขยนโคดใหโปรแกรมประยกตทางานได เคร$องมอตวนCตองใชงานมากท$สด ในขบวนการพฒนาโปรกแกรมประยกตดวย Visual Basic การศกษาสภาพแวดลอมของ Editor จงมความสาคญเปนอยางย$ง สามารถแยกสวนตางๆ ของ Editor ออกไดเปน 3 สวนดงนC 1. สวน Object List Box มหนาท$แสดงช$อคอนโทรลหรอออบเจกตท$ถกนามาใชงาน 2. สวน Event List Box มหนาท$แสดงเหตการณ (Event) ของคอนโทรลท$ถกเลอกใน Object List Box 3. สวนการเขยนโคด เม$อเลอกคอนโทรลใน Object List Box และเลอกเหตการณใน Event List Box แลว Visual Basic จะสรางโพรซเดอร (Procedure) ใหอตโนมต

รปท$ 4-1 Editor

ความสามารถพเศษของ Editor ในการใชงาน Editor เม$อพมพช$อคอนโทรลแลวพมพ Editor จะแสดง ToolTip ท$เปนรายการพรอพเพอรตCหรอรายการเมธอดท$คอนโทรลนCนสนบสนนอยขCนมาทนท ชวยใหไมตองจาวาคอนโทรลนC มพรอพเพอรตCหรอมเมธอดอะไรบาง รวมถงปองกนไมใหพมพผดอกดวย และถามการเรยกใชงานฟงกชนมาตรฐานตาง ๆ ToolTip กจะแสดงรปแบบไวยากรณของฟงกชนนCนๆ ใหทนทเชนกน ความสามารถของ Editor อกอยางกคอสามารถตรวจสอบไวยากรณ (Syntax) ตามโครงสรางของภาษา Visual Basic ไดอกดวย โดยขณะท$พมพโคดเขาไปเม$อกด Enter จบบรรทด Visual Basic จะทางานตรวจสอบไวยากรณทนท ถามขอผดพลาด ในการใชงานไวยากรณเกดขCน Visual Basic จะแสดงขอความชวยเหลอท$เก$ยวของความผดพลาดนCนๆ ขCนมาทนท

Page 27: การเขียนโปรแกรมด้วย Vb 6.0

27 การใช MessageBox MessageBox เปนเคร$องมอท$ใชโตตอบกบผใช โดยจะแสดงขอมลเพยงอยางเดยว แลวใหผใช Click ปมเลอกในกรณท$ตองการใหผใชเลอกตอบ

รปแบบการใชงาน

MsgBox Prompt[,Buttons][,Title]

Prompt คอขอความท$ตองการแสดงใน MessageBox ในกรณท$ตองการ แสดงขอมลหลายบรรทดทาไดโดยเช$อมกบ chr(13)

Buttons คอสวนท$ใชกาหนดการแสดงปมและกาหนดรปไอคอนบน MessageBox

Title คอสวนของขอความท$ตองการแสดงบนแถบดานบนของ MessageBox

การกาหนดปมและไอคอนของปมสามารถทาไดโดยการระบคาคงท$ของแตละอยางเช$อมดวยเคร$องหมาย + ซ$ งรายละเอยดของคาคงท$สามารถใชงานไดมดงนC

กลมท$ใชสาหรบกาหนดปมท$จะแสดงใน MessageBox

คาคงท� รายละเอยด

VbOKOnly แสดงปม OK ปมเดยว

VbOKCancel แสดงปม OK และ Cancel

VbYesNo แสดงปม Yes และ No

VbYesNoCancel แสดงปม Yes No และ Cancel

VbAbortRetrylgnore แสดงปม Abort Retry และ lgnore

VbRetryCancel แสดงปม Retry และ Cancel

Page 28: การเขียนโปรแกรมด้วย Vb 6.0

28 กลมท$ใชสาหรบกาหนดไอคอนท$จะแสดงใน MessageBox

คาคงท� รายละเอยด

VbCritical แสดงไอคอน Critical Message

VbExclamation แสดงไอคอน Earning Message

Vblnformation แสดงไอคอน Information Message

VbQuestion แสดงไอคอน Question Message

กลมท$ใชสาหรบกาหนดปมเร$มตน

คาคงท� รายละเอยด

VbDefaultButton1 กาหนดใหปมแรกเปนปมเร$มตน

VbDefaultButton2 กาหนดใหปมท$ 2 เปนปมเร$มตน

VbDefaultButton3 กาหนดใหปมท$ 3 เปนปมเร$มตน

VbDefaultButton4 กาหนดใหปมท$ 4 เปนปมเร$มตน

การใช InputBox InputBox เปนเคร$องมอท$ใชรบขอมลโดยใหผใชปอนขอมลลงไป แลวเกบขอมลนCนไวในตวแปร

รปแบบการใชงาน

InputBox(Prompt[,Title][,Default])

Prompt คอขอความท$ตองการแสดงใน InputBox ในกรณท$ตองการ แสดงขอมล หลายบรรทดทาไดโดยเช$อมกบ chr(13)

Title คอสวนของขอความท$ตองการแสดงบนแถบดานบนของ InputBox

Default คอคาท$กาหนดใหกรณท$ไมมการปอนขอมลใน InputBox

Page 29: การเขียนโปรแกรมด้วย Vb 6.0

29 การสรางเมน ในการพฒนาโปรแกรมประยกต 1 โปรแกรมจะประกอบไปดวยฟอรมจานวนมาก ในการเรยกใชงานฟอรมแตละฟอรมจาเปนจะตองมเมนมาชวยจดหมวดหมของฟอรม เพ$อใหงายตอการใชงาน การสรางเมนใน Visual Basic สามารถทาไดโดยเรยกใชคาส$งสาหรบสรางเมนโดย Chick ขวาบนฟอรมท$ตองการสรางเมน เลอกคาส$ง Menu Editor

รปท$ 4-2 การเรยกใชงาน Menu Editor

รปท$ 4-3 Menu Editor

Page 30: การเขียนโปรแกรมด้วย Vb 6.0

30

รายละเอยดตาง ๆ ของ Menu Editor

Caption ขอความท$จะปรากฏบนเมน

Name ช$อเมน หามซC ากน

Index ใชสาหรบระบลาดบกรณท$กาหนดใหเปนเมนแบบอารเรย

ShortCut ใชสาหรบกาหนดคยลดในการเรยกใชเมน

Checked กาหนดใหเปนเมนท$มเคร$องหมายถกหนาเมน

Enabled กาหนดใหสามารถใชงานเมนไดถามเคร$องหมายถก หรอ กาหนดใหคาเปน True

Visible กาหนดใหแสดงเมนถามเคร$องหมายถก หรอ กาหนดใหมคาเปน True

Page 31: การเขียนโปรแกรมด้วย Vb 6.0

31

บทท� 5 ขอมลและตวแปร

ใบบทนCจะเปนการอธบายเก$ยวกบชนดของขอมล การใชงานตวแปร และคาคงท$ ท$ใชกบ Visual Basic ไมวาโปรแกรมประยกตใด ภาษาใด ส$งท$ตองรเปนอนดบแรกๆ กคอ ตวแปร คาคงท$และ ชนดของขอมล ของภาษานCน ๆ ซ$ งจะทาใหเหนขอจากดตางๆ ในภาษานCน ๆ ทาใหสามารถใชงานไดอยางถกตอง และมประสทธภาพ เพราะตวแปรและคาคงท$ถอไดวาเปนตวแทนของขอมล ท$จะตองนาไปใชงาน ประมวลผล และแสดงส$งท$ไดจากการประมวลผล ชนดของขอมล Visual Basic มชนดของขอมลหลายชนด ไมวาจะเปนตวเลขจานวนเตม ตวเลขท$มทศนยม ขอความ ตวเลขทางการเงน คาทางตรรกะ เปนตน ขอมลแตละชนด จะใชพCนท$ในการเกบไมเทากน รวมถงความเรวในการประมวลผลกแตกตางกนดวย สามารถแบงชนดของขอมลท$ใชกน Visual Basic ไดดงตารางตอไปนC

ชนดขอมล รายละเอยด หนวยความจา

Boolean เกบคาทางตรรกะท$ไดม 2 คา คอ true (จรง), false (เทจ) 2 Bytes

Byte เกบคาเลขจานวนเตมตCงแต 0-255 1 Byte

Currency ใชเกบตวเลขจานวนจรง มคาระหวาง - 922,337,203,685,477.5808 ถง 922,337,203,685,477.5807

8 Bytes

Date ใชสาหรบเกบวนท$และเวลา 8 Bytes

Double

ใชเกบตวเลขจานวนจรง แยกเปน 2 กรณ คอ คาบวกอยระหวาง 4.94065645841247E-324 ถง 1.79769313486232E308 คาลบอยระหวาง - 1.79769313486232E308 ถง -4.94065645841247E-324

8 Bytes

Integer เกบคาเลขจานวนเตมท$มคาระหวาง -32768 ถง 32767 2 Bytes

Long ใชเกบเลขจานวนเตมท$มคาระหวาง -2,147,483,648 ถง 2,147,483,647

4 Bytes

Object ใชสาหรบแทนวตถท$ Visual Basic สนบสนน 4 Bytes

Single ใชเกบตวเลขจานวนจรง แยกเปน 2 กรณ คอ คาบวกอยระหวาง 1.401298E-45 ถง 3.402823E38 และคาลบอยระหวาง -3.402823E38 ถง -1.401298E45

4 Bytes

String ใชเกบตวอกษร ขอความ และตวเลข 1 ตว/1 ไบต

Variant ขอมลพเศษสามารถเกบขอมลไดทกชนด 16 Bytes

Page 32: การเขียนโปรแกรมด้วย Vb 6.0

32 การประกาศคาตวแปร (Variable Declaration) กอนท$จะใชงานตวแปร หรอคาคงท$ทกครC ง ควรประกาศตวแปร (variable declaration) กอน เพ$อให Visual Basic รวา ตวแปรท$ตองการใชงาน ใชแทนขอมลชนดใดถงแมวา Visual Basic อนญาตใหใชงานตวแปรได โดยไมตองประกาศตวแปร แตตวแปรท$ไดจะใชทรพยากรระบบ มากเกนความจาเปน รวมถงประมวลผลไดชา เพราะจะเปนตวแปรท$สามารถแทนขอมลไดทกชนด ซ$ ง Visual Basic เรยกวา ตวแปรชนด Variant ซ$ งควรหลกเล$ยงการใชงานตวแปรชนดนC

รปแบบคาส�งการประกาศตวแปรของ Visual Basic

Dim varname As datatypes

Dim คอ คาส$ง (statements) สาหรบประกาศตวแปร

varname คอ ช$อของตวแปรท$ตองการประกาศ

As คอ สวนท$บอกให Visual Basic ทราบวาตองการกาหนดชนดของขอมล

datatypes คอ ชนดของขอมลท$ Visual Basic สนบสนน

ตวอยาง

รปท$ 5-1 การประกาศตวแปร

กรณท$ตองการกาหนดใหมการประกาศตวแปรทกครC งกอนท$จะมการเรยกใชตวแปร เพ$อหลกเล$ยงการใชตวแปรชนด Variant ใหพมพคาส$ง Option Explicit ไวขางบนสดกอนพมพคาส$งอ$น ๆ

Page 33: การเขียนโปรแกรมด้วย Vb 6.0

33 กฎการตOงช�อตวแปรและคาคงท� 1. ขCนตนดวยพยญชนะเทานCน 2. ความยาวของช$อท$ตCงสงสดไมเกน 255 ตวอกษร 3. ช$อท$ตCง ตองไมซC ากนคาสงวน (Keywords) คาส$ง (Statements) ฟงกชน (Functions) หรออ$น ๆ ท$ Visual Basic กาหนดไว 4. หามตCงช$อซC ากนในโพรซเดอรเดยวกน หรอในขอบเขตเดยวกน 5. หามใชเคร$องหมายทางคณตศาสตร, ตวดาเนนการ (Operators) หรอ เคร$องหมายพเศษ เชน @, # มาตCงช$อ 6. หามมชองวางในช$อตวแปรถาตองการเวนวางใหใชเคร$องหมาย _ (Underscore) เทานCน การตOงช�อวตถ

วตถ คานาหนา (Prefix) ตวอยาง

CheckBox Chk ChkStatus

ComboBox Cbo CboType

CommandButton Cmd CmdSave

Image Img ImgProduct

Label Lbl Lbladdress

ListBox Lst LstDay

OptionButton Opt OptSex

TextBox Txt TxtName

Timer Tmr TmrTime

Page 34: การเขียนโปรแกรมด้วย Vb 6.0

34 ขอบเขตของตวแปร (Scope of Variable) ใน Visual Basic สามารถแบงขอบเขตตวแปรได 2 ประเภท คอ 1. ตวแปรแบบ Local 2. ตวแปรแบบ Public ตวแปรแบบ Local หมายถง ตวแปรท$ประกาศขCนมา ใหสามารถเรยกใชงานได ในเฉพาะโพรซเดอรท$ประกาศเทานCน มกใชประกาศตวแปรท$ตองการใชช$วคราว หรอตองการใชในโพรซเดอรนCนๆ ตวอยาง

Private Sub AddNum_Click( )

Dim x As Integer

Dim y As Integer

x = 5

y = 6

x = x + y

End Sub

Private Sub DelNum_Click( )

Dim x As Integer

Dim y As Integer

x = 3

y = 2

จากตวอยาง ตวแปร x และ y ถกประกาศใน Sub AddNum และ Sub DelNum ซ$ ง x และ y ใน AddNum จะเปนคนละตวกบ x และ y ใน DelNum

Page 35: การเขียนโปรแกรมด้วย Vb 6.0

35 ตวแปรแบบ Public หมายถง ตวแปรท$ประกาศขCนในสวนบนหลง Option Explicit ทาใหสามารถเรยกใชงานไดทกโพรซเดอรในฟอรมนCน กรณท$ประกาศตวแปรแบบ Public ใน Module จะทาใหตวแปรนCนสามารถเรยกใชงานไดจากทกฟอรม ตวอยาง

Option Explicit

Dim x as Integer

Dim y as Integer

Private Sub AddNum_Click( )

x = 5

y = 6

x = x + y

End Sub

Private Sub DelNum_Click( )

x = x - y

End Sub

จากตวอยาง ตวแปร x และ y ถกประกาศในถดจาก Option Explicit กอน Sub AddNum ทาใหตวแปร x และ y ใน Sub AddNum และ Sub DelNum เปนตวแปรตวเดยวกน ตวแปรอารเรย (Array) ตวแปรอารเรย เปนกลมของตวแปรท$ประกาศขCนมา โดยใชช$อของเดยวใชคา Index ในการอางถง ประโยชนของตวแปรชนดนC คอ กรณท$ตองการมการใชตวแปรจานวนมาก การประกาศตวแปรสามารถประกาศเพยงช$อเดยว ลดความซC าซอนของตวแปร และทาใหงายตอการเรยกใช มรปแบบการประกาศดงนC

Dim Varname(amount) as Datatype

Dim คอ คาส$ง (statements) สาหรบประกาศตวแปร

varname คอ ช$อของตวแปรอารเรยท$ตองการประกาศ

amount คอ จานวนสมาชกของอารเรย

As คอ สวนท$บอกให Visual Basic ทราบวาตองการกาหนดชนดของขอมล

datatypes คอ ชนดของขอมลท$ Visual Basic สนบสนน

Page 36: การเขียนโปรแกรมด้วย Vb 6.0

36 ตวอยาง

รปท$ 5-2 การประกาศอารเรย

ตวแปรอารเรยแบงออกได 2 ชนด คอ 1. ตวแปรอารเรยแบบสแตตก (Static Arrays) 2. ตวแปรอารเรยแบบไดนามก (Dynamic Arrays) ตวแปรอารเรยแบบสแตตก (Static Arrays) เปนอารเรยท$มการระบจานวนสมาชกเม$อมการประกาศตวแปร จะใชอารเรยชนดนC ในกรณท$ทราบจานวนสมาชกของอารเรยท$แนนอน

ตวอยาง

Dim vprint (10) as String

จากตวอยางเปนการประกาศตวแปรอารเรยช$อ vprint ใหมจานวนสมาชกทCงสCน 10 และ เปนขอมลชนดตวอกษร ในการอางถงตวแปรใหทาการระบ Index หรอลาดบท$ของสมาชก โดยสมาชกตวแรกใหระบ Index เปน 0 เชน เม$อตองการอางถงสมาชกตวแรกสดใหระบเปน vprint(0)สมาชกตวท$ 7 ใหระบเปน vprint(6) สมาชกตวสดทายระบเปน vprint(9) ตวแปรอารเรยแบบไดนามก (Dynamic Arrays) เปนอารเรยท$ไมมการระบจานวนสมาชกเม$อมการประกาศตวแปร เน$องจากไมทราบจานวนสมาชกท$แนนอน

ตวอยาง

Dim ccode( ) as String

จากตวอยางเปนการประกาศตวแปรอารเรยช$อ ccode โดยไมระบจานวนสมาชก และเปนขอมลชนดตวอกษร

Page 37: การเขียนโปรแกรมด้วย Vb 6.0

37 เม$อตองการใชงานตวแปรจะตองระบจานวนสมาชก ใหกบตวแปรอารเรย โดยใชคาส$งดงนC

Redim ccode(5)

จากตวอยางเปนการกาหนดใหตวแปรอารเรย ccode ท$ไดประกาศไวแลวใหมจานวนสมาชก 5

ขอดของตวแปรอารเรยแบบไดนามกคอ จานวนสมาชกของอารเรยจะถกกาหนดใหมความเหมาะสมตอการใชงานเน$อง เน$องจากสามารถระบจานวนสมาชกไดภายหลง แตตวแปรอารเรยแบบสแตตกจะตองระบจานวนสมาชกทนทท$มการประกาศตวแปร การสรางชนดของตวแปรขOนใชเอง (User-defined data type) กรณท$ตองการเกบขอมลเปนชดแตประกอบดวยขอมลหลาย ๆ ชนด สามารถทาไดโดยการสรางชนดขอมลพเศษขCนมา โดยนาชนดของขอมลพCนฐานดงกลาวทCงหมดมาสรางตามท$ตองการโดยมรปแบบดงนC

[Public I Private] Type Varname elementname [([subscripts])] As type [elementname [([subscripts])] As type] …… End Type

Public(Optional) คอ สวนท$กาหนดใหคาคงท$สามารถใชไดทCงโปรเจกต ทกโมดล

Private(Optional) คอ สวนท$กาหนดใหคาคงท$สามารถใชไดเฉพาะโมดลท$ประกาศเทานCน

Varname คอ ช$อของชนดขอมลท$กาหนดขCนมาใหม

elementname คอ ช$อของตวแปร ซ$ งเปนสวนหน$งของชนดขอมลท$สรางขCนมา

Subscripts คอ จานวนสมาชกกรณท$ตองการใหเปนตวแปรอารเรย

Type คอ ชนดของขอมลพCนฐานแตละตว

ตวอยาง Type Customer CustName As String Address As String Age As Integer End Type

จากตวอยางเปนการสรางชนดขอมลขCนมาใหม โดยใหช$อวา Customer โดยมตวแปรยอย Name Address และ Age เม$อตองการใชงานชนดขอมลดงกลาวตองทาการประกาศตวแปรดงนC Dim newcust As Customer

Page 38: การเขียนโปรแกรมด้วย Vb 6.0

38 เม$อตองการเกบคาหรอนาคาไปใชใหใชคาส$งดงนC newcust.CustName = "ปรษา ปC นด" newcust.Address = "123 ถ.ศรสมงค ต.เมองใต อ.เมอง จ.ศรสะเกษ newcust.Age = 45 การประกาศคาคงท� (Constant) คาคงท$ (Constant) หมายถงขอมลท$มคาคงท$ไมมการเปล$ยนแปลง ในการประกาศคาคงท$ตองใชคาส$ง Const เพ$อสรางคาคงท$ มรปแบบดงนC

[Public I Private] Const constname [As type] = expression

Public(Optional) คอ สวนท$กาหนดใหคาคงท$สามารถใชไดทCงโปรเจกต ทกโมดล

Private(Optional) คอ สวนท$กาหนดใหคาคงท$สามารถใชไดเฉพาะโมดลท$ประกาศเทานCน

Const คอ คาส$งสรางคาคงท$

Constname คอ ช$อคาคงท$

Type (Optional) คอ การกาหนดชนดของคาคงท$

Expression คอ คาท$ตองการกาหนด

ตวอยาง

Option Explicit

Const PI As Double = 3.141578

Private Sub cmdCalc_Click( )

Dim radius As Double

Dim area As Double

Radius = CDb(InputBox("กรณาใสคารศม" , "ใสคา")

Area = PI * (radius) ^2

MsgBox "พOนท�วงกลม = " & Area & " ตารางหนวย "

End Sub

Page 39: การเขียนโปรแกรมด้วย Vb 6.0

39 ตวดาเนนการใน Visual Basic (Operators) ตวดาเนนการ คอ เคร$องหมายสาหรบกระทากบขอมลอยางนอยท$สด 2 ชดมากระทาอยางใดอยางหน$ง เชน บวก ลบ เช$อมตอ เปรยบเทยบ ทดสอบคา เปนตน ซ$ งสามารถแบงได 4 ประเภท ดงนC ตวดาเนนการดานคณตศาสตร (Arithmetic Operators) คอเคร$องหมายทางคณตศาสตรใชสาหรบการคานวณตวเลข ดงตาราง

ช�อตวดาเนนการ ลกษณะตวดาเนนการ ตวอยาง

การบวก + A + B

การลบ - A - B

9 การคณ * A * B

การหาร / A / B

การหารเอาแตจานวนเตม \ A \ B

การหารเอาแตเศษ Mod A Mod B

การยกกาลง ^ A ^ B

การเปล$ยนเคร$องหมาย - -A

ตวดาเนนการทางดานตรรกะ (Logical Operator)

คอเคร$องหมายสาหรบตรวจสอบเง$อนไขระหวางกลมนพจน โดยจะใหผลลพธเปนจรง (True) และเปนเทจ (False) หรอสรางเง$อนไขขCนมาเพ$อทดสอบกรณตาง ๆ ดงตาราง

ตวดาเนนการ ตวอยาง ผลลพธ

And A And B เปนจรงเม$อทCง 2 นพจนมคาเปนจรง

Or A Or B เปนเทจเม$อทCง 2 นพจนมคาเปนเทจ

Xor A Xor B เปนจรงเม$อทCง 2 นพจนมคาตางกน

Eqv A Eqv B เปนจรงเม$องทCง 2 นพจนมคาเหมอนกน

Imp A Imp B เปนเทจเม$อนพจนหนาเปนจรง นพจนหลงเปนเทจ

Not Not A ใหคาตรงขามกบคาของนพจน

Page 40: การเขียนโปรแกรมด้วย Vb 6.0

40 ตวดาเนนการทางดานการเปรยบเทยบ (Comparison Operators) เคร$องหมายท$ใชสาหรบเปรยบเทยบนพจน 2 นพจน เพ$อทดสอบ หรอสรางเง$อนไข โดยจะใหผลลพธเปนจรง (True) และเปนเทจ (False) มกจะใชคกบตวดาเนนการทางดานตรรกะ เพ$อตรวจสอบเง$อนไขตาง ๆ เสมอ ดงตาราง

ตวดาเนนการ ช�อตวดาเนนการ

< นอยกวา

> มากกวา

<= นอยกวาหรอเทากบ

>= มากกวาหรอเทากบ

= เทากบ

<> ไมเทากบ

ตวดาเนนการทางดานการเช�อมขอความ (Concentration Operators) เคร$องหมายท$ใชสาหรบเช$อมขอความตCงแต 2 ขอความเขาดวยกน แตยงมกรณยกเวนท$จะเปนการบวกกนของนพจน 2 นพจน ซ$ งขCนอยกบชนดของนพจนท$จะมากระทากน ดงตาราง

ตวดาเนนการ กรณ ตวอยาง ผลลพธ

+ String + String "Visual"+"Basic 6.0" "Visual Basic 6.0"

& String & String "Visual"&"Basic 6.0" "Visual Basic 6.0"

+ String(numeric)+numeric "20"+6 26

& String(numeric)&numeric "20"+6 206

ขอมลจาก : http://www.thanom.net/vb1.asp