1. วิธีรับหมายเลขบรรทัดปัจจุบัน
เมื่อใช้ตัวควบคุม RichEdit (หรือบันทึกช่วยจำ) เพื่อสร้างโปรแกรมแก้ไขข้อความ คุณสามารถรับจำนวนบรรทัดทั้งหมดได้โดยการเข้าถึงแอตทริบิวต์จำนวนบรรทัด อย่างไรก็ตาม เป็นการยากที่จะทราบหมายเลขบรรทัดของบรรทัดที่เคอร์เซอร์อยู่ในปัจจุบัน ตั้งอยู่ เนื่องจาก Delphi ไม่ได้ระบุคุณลักษณะนี้ หากต้องการใช้ฟังก์ชันตัวแก้ไขที่จำเป็นนี้ ต้องเรียก em_ LineFromChar โปรดลองทำตามขั้นตอนด้านล่างนี้
ขั้นแรกให้จัดเรียง RichEdit หรือบันทึกช่วยจำ (ตัวแก้ไขที่มีชื่อ) และปุ่มในหน้าต่าง เขียนโค้ดต่อไปนี้ในเหตุการณ์ onclick ของปุ่ม
var
CurrentLine:จำนวนเต็ม;
เริ่ม
CurrentLine:=ตัวแก้ไข??ดำเนินการ(em_ LineFromChar,SFFFF,0);
แอปพลิเคชัน?? MessageBox (PChar ('หมายเลขบรรทัดปัจจุบันคือ' + IntToStr (CurrentLine)), 'ข้อความ', mb_ iconinformation);
จบ;
โปรดทราบว่าบรรทัดแรกมีจำนวนบรรทัดเป็นศูนย์
2. วิธียกเลิกการดำเนินการ (เลิกทำ)
สำหรับบันทึกช่วยจำ ไม่จำเป็นต้องมีการเขียนโปรแกรมเพื่อดำเนินการเลิกทำ ตราบใดที่แอตทริบิวต์เมนูป๊อปอัปว่างเปล่า คุณสามารถเปิดใช้งานเมนูการทำงานทั่วไปได้ด้วยปุ่มเมาส์ขวาในระหว่างรันไทม์ รวมถึงหกรายการ: เลิกทำ ตัด คัดลอก วาง ลบ และเลือก ทั้งหมด. .
แต่น่าเสียดายที่วิธีนี้ใช้ไม่ได้กับตัวควบคุม RichEdit ที่ทรงพลัง ดังนั้นเราจึงต้องออกแบบป๊อปอัปเมมูด้วยตัวเอง เมื่อคุณใช้ CutToClipBoard และคำสั่งอื่น ๆ เพื่อทำหน้าที่ "ตัด" ได้อย่างง่ายดายและราบรื่น คุณจะพบว่าคุณไม่สามารถหาคำสั่งเช่นเลิกทำหรือยกเลิกเพื่อดำเนินการ "เลิกทำ" ได้
ในเวลานี้คุณต้องจัดการดังนี้:
RichEdit1??ดำเนินการ(EM_UNDO,0,0);
คุณควรตรวจสอบว่าอนุญาตให้เลิกทำหรือไม่ ซึ่งจะเป็นการเปิดหรือปิดรายการ "เลิกทำ" ในเมนูป๊อปอัป:
Undo1??Enabled:=RichEdit??Perform(EM_CANUNDO,0,0)<>0;
โปรแกรมข้างต้นผ่านการดีบักใน Delphi3