รายการกล่องรายการ (tlistbox)
ส่วนประกอบนี้เป็นส่วนประกอบกล่อง Windows List มาตรฐานที่แสดงชุดของรายการที่ผู้ใช้สามารถเลือกเข้าร่วมลบหรือแก้ไขรายการ
1. การใช้งานส่วนประกอบ tllistbox ทั่วไป
กล่องรายการมักใช้ในแอปพลิเคชัน Windows กล่องรายการสามารถแสดงรายการหลายรายการในหน้าต่างโรลได้เพื่อให้ผู้ใช้เลือก ตัวอย่างเช่นใน IDE ของ Delphi เมื่อใช้คำสั่งรายการส่วนประกอบในเมนูมุมมอง Delphi แสดงรายการส่วนประกอบทั้งหมดใน VCL โปรแกรมส่วนใหญ่ใช้แอตทริบิวต์รายการเพื่อควบคุมรายการต่าง ๆ เช่นการใช้ items.strings [] เพื่อรับเนื้อหาของตัวเลือกที่แน่นอนและ items.add () และ items.delete () เพิ่มหรือลบรายการตัวเลือก ระบุหรือรับตัวเลือกปัจจุบันผ่านคุณสมบัติ itemindex
2. คุณสมบัติที่สำคัญของส่วนประกอบ tlistbox
·หมายเลขกล่องรายการคอลัมน์· ExtendedSelect คุณสมบัตินี้ใช้เพื่อตั้งค่าว่าจะอนุญาตให้เลือกหลายรายการพร้อมกันโดยใช้คีย์ Shift และคีย์ Ctrl · integralheight ความสูงของกล่องรายการมักจะเป็นจำนวนเต็มจำนวนเต็มของความสูงของรายการใน กล่องรายการ· itemheight คุณสมบัตินี้ใช้เพื่อตั้งค่าความสูงของแต่ละรายการในกล่องรายการ· itemindex คุณสมบัตินี้ใช้เพื่อตั้งค่าลำดับของรายการที่เลือกในกล่องรายการ·รายการทั้งหมดในกล่องรายการ คุณสมบัติรายการ· MultiSelect อนุญาตให้เลือกหลายรายการในเวลาเดียวกัน· SelCount ส่งคืนจำนวนรายการที่เลือกในปัจจุบัน·เลือกคุณสมบัตินี้ใช้เพื่อตรวจสอบว่ารายการที่ระบุถูกเลือก·เรียงลำดับคุณสมบัตินี้ใช้เพื่อตั้งค่ารายการใน กล่องรายการควรจัดเรียงตามลำดับตัวอักษร·สไตล์คุณสมบัตินี้ใช้ในการตั้งค่าสไตล์ของกล่องรายการต่อไปนี้อธิบายคุณสมบัติที่ใช้กันทั่วไปของส่วนประกอบ tlistbox ในโปรแกรม
(1) แอตทริบิวต์คอลัมน์
ค่าเริ่มต้นของคุณสมบัตินี้คือ 0 และกล่องรายการจะแสดงในคอลัมน์เดียว หากคุณสมบัตินี้ถูกตั้งค่าเป็นค่าที่มากกว่า 0 กล่องรายการจะกรอกในคอลัมน์ก่อน หากไม่สามารถแสดงได้อย่างสมบูรณ์ในคอลัมน์เดียวมันจะแสดงในคอลัมน์ 2 คอลัมน์ 3 และอื่น ๆ แต่เฉพาะจำนวนคอลัมน์ที่ตั้งค่าโดยคุณสมบัติคอลัมน์จะปรากฏบนหน้าจอมากที่สุด หากคุณสมบัตินี้ถูกตั้งค่าเป็น 2 คอลัมน์เพียงสองคอลัมน์จะปรากฏบนหน้าจอ
(2) ExtendedSelect Property
คุณสมบัตินี้ใช้เพื่อตั้งค่าว่าจะอนุญาตให้เลือกหลายรายการพร้อมกันด้วยคีย์ Shift และ CTRL หรือไม่โดยที่จะต้องตั้งค่าคุณสมบัติ multiSelect เป็น TRUE ผู้ใช้กดและถือปุ่ม Shift เพื่อเลือกหลายรายการ (ไม่จำเป็นต้องต่อเนื่อง)
(3) คุณสมบัติ integralheight
หากคุณสมบัตินี้ถูกตั้งค่าเป็นจริงและคุณสมบัติสไตล์ถูกตั้งค่าเป็น isownerDrawFixed ความสูงของกล่องรายการจะถูกปรับโดยอัตโนมัติเป็นจำนวนเต็มหลายความสูงของรายการในกล่องรายการ หากคุณสมบัตินี้ถูกตั้งค่าเป็น FALSE รายการสุดท้ายในกล่องรายการอาจไม่แสดงเต็มเนื่องจากความสูงของกล่องรายการไม่จำเป็นต้องเป็นจำนวนเต็มหลายตัวของคุณสมบัติ ItemHeight
(4) แอตทริบิวต์รายการ
เมื่อคุณสมบัติสไตล์ถูกตั้งค่าเป็น isownerFixed (กำหนดผู้ใช้) คุณสมบัตินี้จะใช้เพื่อตั้งค่าความสูงของแต่ละรายการในกล่องรายการ หากตั้งค่าคุณสมบัติ integralheight เป็นจริงความสูงของกล่องรายการทั้งหมดจะถูกปรับโดยอัตโนมัติด้วยค่าของคุณสมบัติ itemheight หากคุณสมบัติสไตล์ถูกตั้งค่าเป็น ISSTANDARD หรือ ISOWNERDRAWVARIABLE คุณสมบัติ INTIMHEIGHT จะไม่มีความหมาย
(5) แอตทริบิวต์ itemindex
คุณสมบัตินี้ใช้เพื่อตั้งค่าลำดับลำดับของรายการที่เลือกในกล่องรายการ หากคุณสมบัติ MultiSelect ถูกตั้งค่าเป็น TRUE และผู้ใช้เลือกหลายรายการคุณสมบัตินี้จะส่งคืนหมายเลขลำดับของรายการด้วยโฟกัสอินพุต รหัสตัวอย่างโปรแกรมมีดังนี้:
[delphi] ดู plaincopyproceduretform1.formCreate (ผู้ส่ง: tobject); vari: จำนวนเต็ม; engartlistbox1.multiselect: = false; button.caption = 'movetotop'; fori: = 1to10dolistbox1.items.add (รายการ ' ; end; processuretform1.button1click (ผู้ส่ง: tobject);
(6) คุณลักษณะของรายการ
รายการทั้งหมดในกล่องรายการจะถูกเข้าถึงผ่านคุณสมบัติรายการ
[Delphi] ดู plaincopyvarf: file; i: จำนวนเต็ม; beartfori: = 0to (filelistbox1.items.count-1) dobegintryiftiffileListbox1.Selected [i] thenebeginifnotfileexists (filelistbox1.items.strings [i]) .items.strings [i]+'notfound', mterror, [mbok], 0); ดำเนินการต่อ; สิ้นสุด; กำหนดไฟล์ (f, filelistbox1.items.strings [i]); รีเซ็ต (f, l); listbox1.items เพิ่ม (inttoStr (filesize (f)); closefile (f);
(7) คุณสมบัติหลายแบบเลือก
หากคุณสมบัตินี้ถูกตั้งค่าเป็น TRUE หลายรายการจะได้รับอนุญาตให้เลือกพร้อมกัน ผู้ใช้สามารถกดปุ่ม Ctrl หรือ Shift ได้เลือกรายการด้วยเมาส์หรือลากและวางด้วยเมาส์โดยตรงเพื่อเลือก
(8) คุณสมบัติที่จัดเรียง
คุณสมบัตินี้ใช้เพื่อตั้งค่าว่ารายการในกล่องรายการควรจัดเรียงตามตัวอักษรหรือไม่ สำหรับกล่องรายการเรียงลำดับรายการที่เพิ่มโดยการโทรเพิ่ม () หรือแทรก () จะย้ายไปยังสถานที่ที่เหมาะสมโดยอัตโนมัติ รหัสตัวอย่างโปรแกรมมีดังนี้:
[Delphi] ดู PlainCopyProcedureTform1.FormCreate (ผู้ส่ง: TOBJECT); item1 '); listbox1.items.add (' item4 '); สิ้นสุด;
(9) คุณลักษณะสไตล์
คุณสมบัตินี้ใช้เพื่อตั้งค่าสไตล์ของกล่องรายการ มันตั้งค่า 3 ค่าที่ผู้ใช้เลือกได้ต่อไปนี้ • LBStandard: แต่ละรายการเป็นสตริงและแต่ละรายการมีความสูงเท่ากัน • LbownerDrawFixed: รายการไม่จำเป็นต้องเป็นสตริง แต่ยังสามารถเป็นภาพได้ เหตุการณ์ OnDrawItem จะถูกเรียกใช้ก่อนที่แต่ละรายการจะปรากฏขึ้น • lbownerDrawVariable: รายการไม่จำเป็นต้องเป็นสตริงมันสามารถเป็นภาพและความสูงของรายการอาจแตกต่างกัน สองเหตุการณ์จะถูกเรียกใช้ก่อนที่แต่ละรายการจะปรากฏขึ้น
3. เหตุการณ์สำคัญของส่วนประกอบ tlistbox
· onDrawItem หากคุณสมบัติสไตล์ถูกตั้งค่าเป็น lbownerDrawFixed หรือ lbownerDrawVariable และรายการในกล่องรายการจำเป็นต้องได้รับการทาสีใหม่เหตุการณ์จะถูกเรียกใช้ เหตุการณ์จะถูกทริกเกอร์
4. วิธีสำคัญในการใช้ส่วนประกอบ tlistbox
วิธีการที่ใช้กันทั่วไปของส่วนประกอบ tlistbox ในโปรแกรมมีความชัดเจนซึ่งเป็นฟังก์ชั่นของการลบตัวเลือกทั้งหมดในกล่องรายการ
รายการใน ListBox แสดงสีที่แตกต่างกันอย่างไรตามเนื้อหา
1. เปลี่ยนคุณสมบัติสไตล์ของ ListBox1 เป็น lbownerDrawVariable2
ตัวอย่างเช่น:
[Delphi] ดู plaincopyproceduretform1.listbox1drawitem (การควบคุม: twincontrol; ดัชนี: จำนวนเต็ม; rect: trect; state: townerdrawstate); หมายเลขคี่ artiallistbox1.canvas.brush.color: = clwindow; listbox1.canvas.textrect (rect, rect.left, rect.top, listbox1.items [index]); endelse // สีเริ่มต้น รายการคือหมายเลข. brush.color: = clinactivecaptiontext; listbox1.canvas.textrect (rect, rect.left, rect.top, listbox1.items [ดัชนี]); end; ifodselectedinstatethen // สี .Color: = clhighlight; listbox1.canvas.textrect (rect, rect.left, rect.top, listbox1.items [ดัชนี]); สิ้นสุด;