Image List
Image list เป็นตัว control ที่มักจะใช้เป็น container สำหรับภาพและไอคอน ที่ใช้โดยตัว control อื่น เช่น Tree view, List view, Tab strip และ Image combo ขณะที่เรียกใช้โปรแกรม Image list จะมองไม่เห็นและแสดงภาพที่เก็บไว้ การใช้ Image list เก็บภาพอื่น ช่วยให้การประมวลผลเร็วขึ้น
การเพิ่มภาพ
Image list เก็บภาพจากการสร้าง collection ของ List images โดยแต่ละรายการของ List image จะเก็บภาพ 1 ภาพ และการอ้างอิงอ๊อบเจค ผ่านดัชนี หรือ String Key รูปแบบกราฟฟิก ที่ List image สามารถเก็บได้คือ บิตแม็บ (.bmp), ไอคอน (.ico), เคอร์เซอร์ (.car), JPEG (.jpg), GIF (.gif)
การเพิ่มภาพขณะออกแบบ
การเพิ่มภาพขณะออกแบบทำได้ง่าย
- วาด Image list ลงบนฟอร์ม
- คลิกเมาส์ปุ่มขวา เลือกคำสั่ง Properties จากเมนู pop-up เมื่อไดอะล๊อกบ๊อกซ์ Properties ปรากฏขึ้น ให้ไปที่แท็บ Image จากนั้นคลิกปุ่มคำสั่ง Insert Picture แล้วดึงภาพจากตำแหน่งที่เก็บ
- กำหนด Key ด้วยข้อความให้แต่ละภาพ เพื่อทำให้สะดวกในการอ้างอิง ข้อความของ Key (string key) ที่ใช้ต้องไม่ซ้ำกันภายใน collection รวมทั้งสามารถระบุข้อความสำหรับคุณสมบัติ Tag ของภาพเพื่อใช้ในการอธิบายภาพหรือสารสนเทศเกี่ยวกับภาพ ถ้ามีการเพิ่มหรือลบ image ต่อมา มีผลกับตัวเลขดัชนีของ image
การเพิ่มภาพใน collection ของ List image สามารถจัดได้ทุกขนาด ถ้าใช้ภาพเหล่านี้ใน Common control อื่นๆ เมื่อมีการปรับขนาดภาพแรก ภาพทั้งหมดต่อไปจะได้รับการปรับขนาดตามขนาดของภาพแรก
การเพิ่มภาพขณะเรียกใช้
การเพิ่มภาพขณะเรียกใช้ ใช้เมธอด Add ใน collection ของ List image และมีไวยากรณ์ คือ
Add ([Index], [Key], [Picture]) As ListImage
Index คือ ค่าดัชนีของภาพ
Key คือ key string ของภาพ
Picture คือ ตำแหน่งที่เก็บหรือพาร์ทของภาพ
' ilsToolbar AsImageList
Dim lstitem As ListImage
Set lstitem = ilsToolbar.ListImages.Add(, "Save", LoadPicture("C:\VB6Prog\save.bmp"))
ถ้าข้ามอากิวเมนต์ Index เป็นการเพิ่มภาพใหม่ต่อท้ายของ collection
ให้ดู project ตัวอย่าง "ImgList.vbp" ถ้าต้องการกำหนดข้อความให้คุณสมบัติ
Tag ของอ๊อบเจคที่สร้าง การเพิ่มภาพต้องทำโดยไม่มีตัวแปร
With ilsToolbar.ListImages.Add(, "Cut", LoadPicture("C:\VB6Prog\cut.bmp"))
.Tag = "Cut icon"
End With
การยกเลิกภาพใน List image ให้ใช้เมธอด Remove ใน collection ของ List image
ilsToolbar.ListImages.Remove "Cut"
การยกเลิกภาพทั้งหมดใช้เมธอด Clear
ilsToolbar.ListImages.Clear
การดึงภาพออกมาและการวาดภาพ
ถ้ามีการกำหนดความสัมพันธ์ระหว่าง Image list กับตัว control อื่น การทำงานในการดึงภาพออกและแสดงภาพทำได้โดยอัตโนมัติ แต่ถ้าต้องการดึงภาพออกมาทั้งหมด หรือสั่งพิมพ์ภาพต้องศึกษาการประยุกต์คุณสมบัติและเมธอด
การดึงภาพทีละภาพ
อ๊อบเจค List image แต่ละอ๊อบเจค ใช้คุณสมบัติ Picture สำหรับการดึงภาพออกมาและกำหนดให้กับตัว control ตามปกติ คือ Picture หรือ Image
' picPicture As Picture box
Set picToolbar.Picture = ilsToolbar.ListImages("Save").Picture
โดยทั่วไปคุณสมบัติ Picture ของอ๊อบเจค List image ใช้ได้เหมือนกับคุณสมบัติ Picture ของ Picture box หรือ Image
With ilsToolbar
PaintPicture.ListImages("Cut").Picture, 0, 0, _
ScaleX(.ImageWidth, vbPixels) * 2, ScaleY(.ImageHeight, vbPixels) * 4
End With
การใช้เมธอด PaintPicture ทำให้สามารถแสดงภาพใน List image บนฟอร์มหรือ Picture box อ๊อบเจค List image มีเมธอด ExtractIcon สำหรับการสร้างไอคอนและส่งออกไปยังผู้เรียก
frmImglist.MouseIcon = ilsToolbar.ListImages("Pointer").ExtractIcon
เมธอด SavePicture ใช้บันทึกภาพ
SavePicture ilsToolbar.ListImages("Save").Picture, "C:\My Documents\save.bmp"
ตัวอักษรใหญ่และเล็กมีผลแตกต่าง (case sensitivity) กับการใช้ใน collection ของ List image
การสร้างภาพโปร่งใส
Image list มีคุณสมบัติ MaskColor ในการหาค่าของสีเพื่อทำให้โปร่งใส เมื่อมีการทำงานกราฟฟิกบนอ๊อบเจค List image หรือการแสดงภาพภายในตัว control อื่น การกำหนดค่าสีให้กับคุณสมบัติ MaskColor ทำได้ทั้งในเวลาออกแบบและเรียกใช้ด้วยคำสั่ง และต้องตรวจสอบว่าคุณสมบัติ UseMaskColor ตั้งค่าเป็น True
ilsToolbar.MaskColor = vbWhite
ilsToolbar.UseMaskColor = True
|