Aวิธีบล็อคปุ่มฟังก์ชั่นของระบบ
บางครั้งเราไม่ต้องการให้โปรแกรมถูกขัดจังหวะโดยผู้ใช้ที่ใช้ Alt+Tab, Ctrl+Alt+Del, Ctrl+Esc และปุ่มฟังก์ชันอื่นๆ ของระบบ (เช่น โปรแกรมสาธิตอัตโนมัติ) แล้วเราควรทำอย่างไร? ฉันขอเตือนคุณว่าปุ่มฟังก์ชั่นเหล่านี้ไม่ทำงานเมื่อเรียกใช้โปรแกรมรักษาหน้าจอ - นั่นคือตราบใดที่โปรแกรมของคุณทำงานอยู่คุณสามารถ "หลอก" Windows เพื่อให้คิดว่ามันอยู่บนหน้าจอได้ สถานะการป้องกันยังคงอยู่ ! โปรดดูรหัสต่อไปนี้:
var
อุณหภูมิ : จำนวนเต็ม;
เริ่ม
ข้อมูลพารามิเตอร์ของระบบ (SPI_SCREENSAVERRUNNING, 1, @temp, 0);
จบ;
แน่นอนอย่าลืมคืนค่าการตั้งค่าและ "ปลุก" Windows เมื่อสิ้นสุดโปรแกรม รหัสมีดังนี้:
var
อุณหภูมิ : จำนวนเต็ม;
เริ่ม
ข้อมูลพารามิเตอร์ของระบบ (SPI_SCREENSAVERRUNNING, 0, @temp, 0);
จบ;
Bวิธีการแจ้งสาขา
การควบคุมส่วนใหญ่ใน Delphi มีคุณสมบัติ Hint ที่ใช้งานได้จริง ซึ่งเป็นพรอมต์แถบลอย แต่บางครั้งข้อความแจ้งก็ยาว สามารถแสดงแถบข้อความแบบลอยแยกกันได้หรือไม่ ในความเป็นจริง Hint เป็นสตริง ดังนั้น Delphi จะตีความอักขระควบคุมการขึ้นบรรทัดใหม่โดยอัตโนมัติเมื่อแสดงสตริง ดังนั้นเพียงเพิ่มอักขระควบคุมการขึ้นบรรทัดใหม่ ตามหลักการนี้ เรายังสามารถสร้างแถบพร้อมท์แนวตั้งที่ไม่ซ้ำใครได้อีกด้วย โปรดจัดเรียงป้ายกำกับใน form1 ก่อน แล้วดูโค้ดตัวอย่าง:
PROcedure TForm1.FormCreate (ผู้ส่ง: TObject);
start label1.Hint := 'แนวตั้ง' + #13 + 'ตรง' + #13 + 'ti' + #13 + 'show';
จบ;
Cวิธีการแสดงรูปภาพในเมนู
คุณเคยใช้ Office97 หรือไม่? คุณพบว่าการแสดงไอคอนในเมนูมีความสดชื่นหรือไม่? หากคุณต้องการให้โปรแกรมของคุณยอดเยี่ยมมาก โปรดเตรียม bmp โดยเร็วที่สุด!
สมมติว่าคุณวางแผนที่จะเพิ่มไอคอนเครื่องพิมพ์ (ชื่อไฟล์คือ c:/inter.bmp) ไปที่รายการที่ 9 (หมายเลขซีเรียลเปลี่ยนเป็น 8) "พิมพ์" ใต้แถบเมนู "ไฟล์" (ชื่อคือ n1) จากนั้น ตราบใดที่ OnCreate The ของแบบฟอร์มเขียนเหตุการณ์ดังนี้:
var
Bmp: TP รูปภาพ;
เริ่ม
Bmp := TPicture.Create;
Bmp.LoadFromFile(′c:/printer.bmp′);
SetMenuItemBitmaps (n1.Handle,8, MF_BYPOSITION,Bmp.Bitmap.Handle, Bmp.Bitmap.Handle);
จบ;
ในหมู่พวกเขา bitmap.handle แรกใช้สำหรับรายการเมนูที่ไม่ได้เลือก (ไม่เลือก) และอันที่สองระบุบิตแมปที่แสดงเมื่อเลือก (เลือก) พวกเขาสามารถเหมือนกันหรือแตกต่างกันได้ นอกจากนี้ เนื่องจากความสูงของรายการเมนูมีจำกัด หากบิตแมปมีขนาดใหญ่เกินไป ระบบจะแสดงเฉพาะมุมซ้ายบนเท่านั้น (เซี่ยงไฮ้ หวังเจิน)