Visual Basic สำหรับ Windows 3.0 (เรียกว่า VB) ปัจจุบันเป็นหนึ่งในเครื่องมือที่มีประสิทธิภาพสูงสุดสำหรับการพัฒนาซอฟต์แวร์แอปพลิเคชัน WINDOWS ใช้ภาษา BAIC และเครื่องมือออกแบบภาพใหม่อย่างครอบคลุม ไม่เพียงแต่ทรงพลังเท่านั้น แต่ยังง่ายต่อการเรียนรู้อีกด้วย ประการที่สอง VB มีกลไกการเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์ ซึ่งใช้ประโยชน์จากคุณลักษณะของสภาพแวดล้อมกราฟิกของ WINDOWS ได้อย่างเต็มที่ และช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันที่มีประสิทธิภาพได้อย่างรวดเร็ว
แล้วจะขยายฟังก์ชั่นของ VB ได้อย่างสมบูรณ์เมื่อพัฒนาซอฟต์แวร์แอพพลิเคชั่น VB ได้อย่างไร? สิ่งนี้จำเป็นต้องใช้ส่วนที่ทรงพลังและโดดเด่นที่สุดของ VB ในระดับต่างๆ ให้เกิดประโยชน์:
●เรียกไลบรารีลิงก์แบบไดนามิกที่เลเยอร์ฟังก์ชัน
●ใช้ VBX ที่เลเยอร์ควบคุม ●รันแอปพลิเคชันอื่นๆ ที่ชั้นแอปพลิเคชัน
1. เรียกไลบรารีลิงก์ฟังก์ชัน (DLL) ที่เลเยอร์ฟังก์ชัน
ระบบปฏิบัติการ WINDOWS ประกอบด้วย Dynamic Link Libraries (DLL) ที่ทรงพลังจำนวนมาก VB พิจารณาว่างานบางอย่างอยู่นอกเหนือความสามารถของภาษาของตัวเอง ดังนั้นจึงให้ความสามารถในการเรียกรูทีนย่อย DLL เหล่านี้ในระบบปฏิบัติการได้โดยตรง ตัวอย่างเช่น: ภายใต้สถานการณ์ปกติ เมนูควบคุมของหน้าต่างจะมีฟังก์ชันเจ็ดอย่าง: คืนค่า ย้าย ปรับขนาด ย่อเล็กสุด ขยายใหญ่สุด ปิด และสลับ ในการใช้งานจริง เราหวังว่าหน้าต่างจะแสดงตามขนาดที่ออกแบบ และผู้ใช้จะไม่ได้รับอนุญาตให้เปลี่ยนขนาดหน้าต่างตามต้องการ และจะไม่ได้รับอนุญาตให้เปลี่ยนไปใช้หน้าต่างอื่น ซึ่งกำหนดให้ต้องลบเมนูควบคุม ในระหว่างการออกแบบ ยกเว้น "ย้าย" และ "ปิด" รายการเมนูควบคุมทั้งหมดยกเว้นตัวเลือก ” เพื่อให้งานนี้สำเร็จ ขั้นแรกเราสามารถตั้งค่าคุณสมบัติ MaxButton และคุณสมบัติ MinButton ของแบบฟอร์มเป็น False ซึ่งจะไม่อนุญาตให้ย่อและขยายแบบฟอร์มให้ใหญ่สุด และไม่สามารถกู้คืนแบบฟอร์มได้ จากนั้นตั้งค่าคุณสมบัติ Bordersstyle ของแบบฟอร์มเป็น 1-FixedSingle หรือ 3-FixedDouble ซึ่งไม่อนุญาตให้แบบฟอร์มเปลี่ยนขนาด แต่ VB เองก็ไม่สามารถลบตัวเลือก "สวิตช์" และเส้นแบ่งทั้งสองได้ โชคดีที่ทำได้โดยการเรียก WINDOWSDLL
โดยปกติ หากต้องการใช้ WINDOWSDLL คุณต้องระบุรูทีนย่อย DLL ที่จะใช้ก่อน เราสามารถระบุรูทีนย่อย DLL ที่ใช้ในสองตำแหน่ง นั่นคือ ในโมดูลส่วนกลาง หรือในส่วนคำอธิบายของเลเยอร์แบบฟอร์ม รูปแบบคือ:
ประกาศชื่อรูทีนย่อย Lib "ชื่อไลบรารี" [นามแฝง "นามแฝง"] [([พารามิเตอร์])]
ประกาศชื่อรูทีนย่อยของฟังก์ชัน Lib "ชื่อไลบรารี" [Aliass "alias"] [([พารามิเตอร์])] [ประเภทข้อมูล AS]
รูปแบบแรกระบุว่าโพรซีเดอร์ไม่มีค่าส่งคืน และรูปแบบที่สองระบุว่าโพรซีเดอร์ส่งคืนค่า ซึ่งสามารถใช้ในนิพจน์ได้ ถ้าชื่อไลบรารีเป็นไลบรารีในสภาพแวดล้อมการทำงานของ WINDOWS (ในไดเร็กทอรีระบบ) เช่น "USER .EXE", "KERNEL.EXE" หรือ "GDI.EXE" ฯลฯ ให้ใช้ชื่อนี้เป็นชื่อไลบรารี หากคุณใช้ DLL จากแหล่งอื่น ให้ใช้ชื่อไฟล์รวมถึงเส้นทาง (เช่น: "C:WINDOWSBRUSH.DLL") นามแฝง (Alias) อนุญาตให้ใช้ชื่ออื่นเพื่อเรียกโปรแกรมย่อยได้ ซึ่งจะมีประโยชน์อย่างยิ่งเมื่อชื่อของโปรแกรมย่อยต่างประเทศเหมือนกับคำที่สงวนไว้ของ VB โปรแกรมย่อยหมายถึงประเภทข้อมูลของค่าส่งคืนฟังก์ชันซึ่งอาจเป็นจำนวนเต็ม, ยาว, เดี่ยว, คู่, สกุลเงินหรือสตริง ต่อไปนี้เป็นคำอธิบายของรูทีนย่อย DLL ที่จะใช้:
ประกาศ FunctionGetSystemMenu% Lib "ผู้ใช้" (ByValhWnd%, ByValbRevert%)
ประกาศ ฟังก์ชั่น RemoveMenu% Lib "ผู้ใช้" (ByValhMenu%, ByValnPosition%, ByValwFlags%)
หลังจากอธิบายรูทีนย่อย DLL แล้ว วิธีการดำเนินการรูทีนย่อย DLL จะเหมือนกับการดำเนินการขั้นตอนทั่วไป (ฟังก์ชัน) ใน VB ต่อไป เราจะเขียนกระบวนการชื่อ Remove-Items-From-System เพื่อทำหน้าที่ที่กล่าวถึงในตัวอย่างข้างต้นให้เสร็จสมบูรณ์ ในกระบวนการนี้ รูทีนย่อย DLL ทั้งสองที่อธิบายไว้ข้างต้นเรียกว่า:
Subremove-Items-From-Sysmenu (A-FormAsForm)
'รับประโยคเมนูระบบแบบฟอร์ม Bing
HSysMenu=GetSystemMenu(A-Form.hWnd, 0)
'ลบรายการเมนูทั้งหมดยกเว้น "ย้าย" และ "ปิด" คุณต้องเริ่มจากรายการเมนูสุดท้ายเมื่อทำการลบ
R=RemoveMenu(HSysMenu,8,MF-BYPOSITION)'ลบสวิตช์
R=RemoveMenu(HSysMenu,7,MF-BYPOSITION)'ลบเส้นแบ่งเส้นแรก
R=RemoveMenu(HSysMenu,5,MF-BYPOSITION)'ลบเส้นแบ่งที่สอง
สิ้นสุดย่อย
ด้วยกระบวนการนี้ การเพิ่มบรรทัดของโค้ดต่อไปนี้ลงในเหตุการณ์โหลดแบบฟอร์มของแบบฟอร์มใดๆ สามารถลบรายการเมนูการควบคุมทั้งหมดของแบบฟอร์มได้ ยกเว้นตัวเลือก "ย้าย" และ "ปิด":
ลบรายการจาก SysmenuMe
2. ใช้ VBX ที่เลเยอร์ควบคุม
ส่วนที่สองของฟังก์ชันอันทรงพลังของ VB คือการใช้ VBX ซึ่งก็คือความเปิดกว้างและลักษณะการขยายแบบไม่จำกัด แม้ว่ากล่องเครื่องมือ VB (ToolBox) จะพยายามอย่างดีที่สุดเพื่อรวมเครื่องมือที่จำเป็นสำหรับการออกแบบซอฟต์แวร์แอปพลิเคชัน เพื่อขยายฟังก์ชันของ VB อย่างต่อเนื่อง VB ได้จัดเตรียมชุดเครื่องมือการพัฒนา (CustomControlDevelopmentKit) สำหรับนักพัฒนาบุคคลที่สามเพื่อออกแบบเครื่องมือที่จำเป็น การควบคุม หลังจากออกแบบไฟล์ควบคุม (นามสกุลไฟล์คือ ".VBX") คุณสามารถเลือกคำสั่ง "AddFile..." จากเมนู "ไฟล์" ได้ ดังนั้นกล่องโต้ตอบ "AddFile" จะปรากฏขึ้นบนหน้าจอ คลิกสองครั้งที่ VBX ที่ต้องการ ชื่อไฟล์สามารถใช้เพื่อเพิ่ม VBX ลงใน VB ได้ หลังจากที่โหลดตัวควบคุมเหล่านี้ลงใน VB แล้ว VB จะเพิ่มตัวควบคุมภายนอกเหล่านี้ลงในกล่องเครื่องมือดั้งเดิมและรวมเข้ากับตัวควบคุมอื่น ๆ เป็นเพราะเทคโนโลยีนี้เองที่ทำให้ VB สามารถพัฒนาต่อไปได้ และการเขียนโปรแกรมด้วย VB ก็สะดวก รวดเร็ว และมีประสิทธิภาพมากขึ้น นี่เป็นหนึ่งในคุณสมบัติหลักของ VB ที่แตกต่างจากสภาพแวดล้อมการพัฒนาโปรแกรมอื่น ๆ นับตั้งแต่เปิดตัว VB บริษัทซอฟต์แวร์บุคคลที่สามได้ออกแบบการควบคุมใหม่จำนวนมาก ต่อไปนี้เป็น VBX ที่มีประโยชน์มากหลายประการเมื่อพัฒนาแอปพลิเคชัน WINDOWS:
●การควบคุมสามมิติThreed.vbx
มีการควบคุมสามมิติหกแบบ รวมถึงปุ่มคำสั่ง กล่องกาเครื่องหมาย ปุ่มตัวเลือก กรอบ ปุ่มกดลง และแผง การใช้การควบคุมเหล่านี้สามารถทำให้แบบฟอร์มมีมิติมากขึ้น
●การควบคุมกราฟิก Graph.vbx
หลังจากส่งข้อมูลไปยังตัวควบคุมกราฟิก ตัวควบคุมกราฟิกสามารถวาดแผนภูมิวงกลมสองมิติหรือสามมิติ ฮิสโตแกรม และแผนภูมิแนวโน้ม และสามารถพิมพ์หรือคัดลอกไปยังคลิปบอร์ดได้
●การควบคุมการสื่อสาร Mscomm.vbx
มีความสามารถในการสื่อสารแบบอนุกรมและสามารถใช้เพื่อส่งและรับข้อมูลระหว่างพอร์ตอนุกรม
●การควบคุมตารางข้อมูล Truegrid.vbx
สามารถใช้เป็นตารางแสดงข้อมูลทั่วไปหรือสามารถเชื่อมต่อฐานข้อมูลและตารางได้ เป็นเครื่องมือที่เหมาะสำหรับการสร้างเบราว์เซอร์ฐานข้อมูลหรือการแสดงข้อมูล
2. ดำเนินการแอปพลิเคชันอื่นๆ ที่ชั้นแอปพลิเคชัน
เมื่อรวบรวมซอฟต์แวร์ขนาดใหญ่ที่ซับซ้อน เรามักจะต้องมีโปรแกรมพิเศษบางโปรแกรมที่มีฟังก์ชันค่อนข้างอิสระและสมบูรณ์ เช่น โปรแกรมแก้ไข และโปรแกรมเหล่านี้มักจะเป็นโปรแกรมสากล เป็นที่นิยม และผ่านการทดสอบในทางปฏิบัติ หากโปรแกรมเหล่านี้ถูกเขียนใหม่โดยนักพัฒนา ไม่เพียงแต่ปริมาณงานของโปรแกรมและกระบวนการดีบักจะเพิ่มขึ้นอย่างมาก แต่ยังเป็นเรื่องยากที่จะจับคู่ฟังก์ชันของโปรแกรมทั่วไปเหล่านี้ด้วย แน่นอนว่าคงจะเหมาะเป็นอย่างยิ่งหากเราสามารถเรียกโปรแกรมเหล่านี้ได้โดยตรง โชคดีที่ VB มีฟังก์ชัน Shell ที่สามารถใช้เพื่อเรียกใช้แอปพลิเคชันอื่นๆ ได้ ดังนั้นฟังก์ชันบางอย่างของ VB สามารถดำเนินการให้เสร็จสิ้นโดยแอปพลิเคชันอื่นได้โดยตรง ซึ่งช่วยลดงานการเขียนโปรแกรมลงอย่างมาก
รูปแบบคือเชลล์ (สตริงคำสั่ง [, ประเภทหน้าต่าง])
สตริงคำสั่งคือชื่อของแอปพลิเคชันที่จะดำเนินการ นามสกุลของไฟล์ปฏิบัติการถูกจำกัดไว้ที่ ".COM", ".EXE", ".BAT", ".PIF" ประเภทของหน้าต่างเป็นค่าจำนวนเต็มซึ่งสอดคล้องกับรูปแบบหน้าต่างแสดงผลเมื่อรันโปรแกรม ซึ่งเป็นทางเลือก
ค่าประเภทหน้าต่าง
หน้าต่างประเภท 1, 5, 9
หน้าต่างปกติพร้อมตัวชี้ 2
หน้าต่างขั้นต่ำพร้อมตัวชี้ (ค่าเริ่มต้น) 3
หน้าต่างสูงสุดพร้อมพอยน์เตอร์ 4, 8
หน้าต่างปกติไม่มีพอยน์เตอร์ 6, 7
หน้าต่างเล็กที่สุด ไม่มีตัวชี้
เมื่อฟังก์ชันเชลล์เรียกใช้แอปพลิเคชันได้สำเร็จ จะส่งกลับรหัสงาน (TaskID) ซึ่งแสดงถึงการระบุเฉพาะของโปรแกรมที่รัน
[ตัวอย่าง]
X=เชลล์("C:WINDOWS/NOTEPAD.EXE", 1)
คำสั่งนี้เรียก NOTEPAD.EXE ในไฟล์แนบ WINDOWS ว่าเป็นโปรแกรมแก้ไขและส่งกลับค่า ID เป็น X -