คำอธิบาย
TSIZECTL เป็นส่วนประกอบ V+LCL ที่ไม่ใช่ภาพซึ่งช่วยให้คุณปรับขนาดเลือกและย้าย tControl decadents
ซึ่งแตกต่างจากการรับรู้ดั้งเดิมเวอร์ชันปัจจุบันรองรับทั้ง Delphi และ Lazarus ดังนั้นมันจึงได้รับแรงบันดาลใจจากเวอร์ชันดั้งเดิมของ Angus Johnson แต่ตอนนี้มันไม่เหมือนกับรุ่นเก่า/เก่า :)
คุณสมบัติ:
- ปุ่มที่ปรับแต่งได้อย่างสมบูรณ์: คุณสามารถเปลี่ยนจำนวน (จาก 4 เป็น 8), สี, ขนาด, ความโปร่งใส, รูปร่างและถ้าคุณต้องการ - คุณสามารถตั้งค่าภาพปุ่ม
- 5 ประเภทรูปร่าง: สแควร์, วงกลม, โรม, สามเหลี่ยมและ roundrect
- เฟรมการเลือกที่ปรับแต่งได้: คุณสมบัติ MovePanelCanvas เพื่อเข้าถึง Canvases เฟรมการเลือกทั้งหมดในครั้งเดียวโดยมีความโปร่งใส (brush.style: = bsclear) สนับสนุน
- คุณสมบัติ showframe เพื่อแสดง/ซ่อนกรอบการเลือก
- คุณสมบัติ MovePanelAlphablend เพื่อระบุอัลฟาช่องของกรอบการปรับขนาด/การเลือก
- คุณสมบัติ MovePanelImage เพื่อตั้งค่าภาพเฟรมที่เลือก
- การสนับสนุน TCUSTOMFORMS: เมื่อแบบฟอร์มถูกปรับขนาดด้วย TSIZECTRL จะไม่สามารถปิดหรือขยายสูงสุด/ย่อขนาดได้
- การสนับสนุนกริดพร้อมคุณสมบัติ: GridSize, Showgrid, GridColor, GridColorContrast
- การปรับขนาดตัวเลือก:
- คุณสมบัติ AlignTogrid - การควบคุมการจัดแนวกับกริด
- Applysizes คุณสมบัติ - เปิดใช้งานเพื่อเปลี่ยนขนาดของวัตถุทันที
- คุณสมบัติ MultitarGetResize - เพื่อปฏิเสธ/อนุญาตให้ปรับขนาดเป้าหมายเพียงไม่กี่ตัวพร้อมกัน
- คุณสมบัติข้อ จำกัด เพื่อระบุขนาดที่น้อยที่สุดและสูงสุดของวัตถุที่ปรับขนาดได้
- คุณสมบัติ MoveNly เพื่อปฏิเสธ/อนุญาตให้ปรับขนาดวัตถุ
- การสนับสนุนแท็กวัตถุเพื่อปฏิเสธวัตถุจากการเลือก
- ปุ่มที่ปรับแต่งได้: สี ({เนื้อหาเติม, ขอบ}) และรูปภาพสำหรับสถานะที่เปิดใช้งาน, โฮเวอร์และปิดการใช้งาน
- Applysizes Property - เพื่อใช้ขนาดกับวัตถุทันที
- คุณสมบัติ EditDisabled เพื่ออนุญาต (เปิดใช้งาน: = false)-> การแก้ไขส่วนประกอบปิดใช้งาน
- รูปแบบปุ่มการปรับขนาดที่แตกต่างกัน: ไม่มี (ปุ่มซ่อนอยู่) ปุ่ม (ปุ่มทั้งหมดมองเห็นได้), บรรทัด, ปุ่มเดียว
- ตัวเลือกการปรับขนาดการปรับขนาดที่แตกต่างกันซ่อนตัวเลือก: ไม่มี (ปุ่มสามารถมองเห็นได้ แต่คงที่), ซ่อน (ปุ่มถูกซ่อนอยู่), เลื่อน (ปุ่มจะถูกย้ายในกรณีที่เคลื่อนไหว แต่ซ่อนอยู่ในกรณีของการปรับขนาด)
- ตัวเลือกเพิ่มเติม:
- คุณสมบัติยืดที่มาพร้อมกับคุณสมบัติทุกภาพ (tpicture) เพื่อระบุภาพที่คุณต้องการจัดเก็บในขนาดดั้งเดิม
- ปุ่มปรับเปลี่ยนที่ปรับแต่งได้ (การเลือก, การเคลื่อนย้าย/ปรับขนาด, คีย์การจัดตำแหน่ง)
- กิจกรรม onhover สำหรับ tsizebtns (การปรับขนาด/มือจับ)
ข้อ จำกัด
Lazarus:- ปัจจุบันยังไม่ได้รับคุณสมบัติ MovePanelimage
- ในบางแพลตฟอร์มมันไม่สามารถรองรับอัลฟ่าโปร่งใส
ข้อผิดพลาดและข้อบกพร่อง:
- แก้ไขข้อบกพร่องทั่วไป:
- ข้อผิดพลาดกับการปรับขนาดกริด (showgrid) ในการควบคุมที่ไม่ใช่รูปแบบ
- ข้อบกพร่องในการเลือกด้วยการโฟกัสแบบฟอร์ม (เมื่อคุณพยายามเปลี่ยนรูปแบบและ Tsizectrl ยังคงจัดการกับเหตุการณ์)
- ข้อผิดพลาดในการเลือกด้วยรูปแบบ (เมื่อคุณมีขนาดขนาดแถบคำบรรยายพร้อมปุ่มแอ็คชั่นยังคงมีอยู่ซึ่งเป็นสิ่งที่น่ารำคาญ)
- การย้ายข้อบกพร่องที่เปิดใช้งานการเพิ่มการเพิ่มเป็นสองเท่า
- บั๊กที่มีขนาด btn เมื่อวัตถุซ้าย+ด้านบน = เส้นผ่านศูนย์กลาง btn (ขนาด)
- บั๊กที่มีการเรียกซ้ำใน defwindowProc - formWindowProc
- ข้อผิดพลาดที่มีการควบคุมที่ไม่ได้ออกแบบซึ่งเกิดจากการเลือกส่วนประกอบขนาดการทำลายขนาด
- Bug with Cursor: บางครั้งมันจะไม่เปลี่ยนแปลงเมื่อการเคลื่อนไหวเริ่มต้นขึ้น (เช่น tshape เป็นต้น)
- การเคลื่อนย้ายวัตถุด้วยปุ่มในขณะที่แก้ไขด้วยเมาส์ทำให้เกิดข้อบกพร่องในการปรับขนาด
- ข้อผิดพลาดกับวัตถุที่มองไม่เห็น: มันปฏิเสธที่มองเห็นได้ แต่การเลือกวัตถุส่วนบน
- ข้อบกพร่องสมัยใหม่ที่รู้จักกันดี:
- 1. เพิ่มการสนับสนุนการเลือกวัตถุที่ปิดใช้งาน [Lazarus]
วิธีแก้ปัญหาที่เป็นไปได้: เชื่อมต่อ wndproces ทั้งหมดเรียกซ้ำ?
เกือบแผน:
- คุณสมบัติใหม่:
- 1. จัดแนวกับบรรทัด (ฟังก์ชั่น, EF)
- 2. ตรวจจับรูปหลายเหลี่ยมควบคุมเพื่อวาดรูปร่างให้พอดีกับแบบฟอร์ม
- 3. การรองรับแท็กที่กำหนดเอง
- 4. D/L CL ความโปร่งใสที่แท้จริงการสนับสนุนอย่างรวดเร็วด้วยวิธีการ DrawFocusRect และ Focus Rect Type ซึ่งสามารถระบุวิธีการวาด Focus Rect
- 5. ทรัพย์สินเพื่อซ่อนโฟกัสจะแก้ไขเฉพาะเมื่อปรับขนาด
- refactorings:
- 1. การควบคุมการพลิกเมื่อขนาดเล็กเกินไป (เปลี่ยนตำแหน่ง + ปรับขนาด)
- 2. การตั้งค่าเฟรมสูงสุดใหม่ (เพิ่มคุณสมบัติ FrameTop เช่นทำให้ผู้ปกครอง TMovePanel เหมือนกับผู้ปกครอง TSIZEBTN หากจำเป็น) [Delphi, Lazarus]
- 3. ขีด จำกัด การปรับขนาดเมื่อแทรกการควบคุมในการจัดตำแหน่งหรือเมื่อการควบคุมมีทั้ง sub-ctrls ทั้งแบบจัดตำแหน่งและไม่สอดคล้องกัน (childs)