หน่วย Delphi ที่มีประโยชน์และส่วนประกอบที่นำเสนอโดย Cornelius Concepts, LLC
ห้องสมุดนี้มีหน่วยและส่วนประกอบที่ฉันพัฒนาขึ้นซึ่งมีประโยชน์ในหลาย ๆ สถานการณ์ แต่พวกเขาไปไกลกว่าการเป็นประโยชน์-พวกเขายังสอน มีความคิดเห็นและตัวอย่างและส่วนประกอบแสดงหลายแง่มุมของวิธีการเขียนส่วนประกอบ Delphi เช่นการแยกแพ็คเกจระหว่างเวลาทำงานและเวลาการออกแบบวิธีการรวมส่วนประกอบช่วยเปิดใช้งานโดยคลิกขวาที่ส่วนประกอบและแม้กระทั่งการรวมเข้ากับหน้าจอ Splash ของ Delphi และเกี่ยวกับกล่อง
เพียงแค่วางส่วนประกอบนี้ลงในรูปแบบและขนาดและตำแหน่งจะถูกบันทึกโดยอัตโนมัติเมื่อปิดและกู้คืนเมื่อเปิด นอกจากนี้ยังประหยัดค่าอื่นด้วยวิธีการที่สะดวก มีสองรูปแบบ:
ส่วนประกอบทั้งสองนี้มีค่าเริ่มต้นในการบันทึกไฟล์หรือการตั้งค่ารีจิสทรีในสถานที่ที่เหมาะสมด้วยการตั้งค่าน้อยที่สุดและสร้างคีย์หรือส่วนตามชื่อของแบบฟอร์ม ดังนั้นคุณสามารถวางส่วนประกอบเหล่านี้ได้อย่างรวดเร็วและง่ายดายในแต่ละรูปแบบ
ด้วยวิธีการเพิ่มเติมสำหรับการบันทึก/กู้คืนค่าจำนวนเต็มสตริงและบูลีนทำให้การจดจำข้อมูลผู้ใช้อย่างง่ายง่ายมาก:
- procedure SaveStrValue(const Name:string;const Value:string);
- procedure SaveIntValue(const Name:string;const Value: Integer);
- procedure SaveBoolValue(const Name:string;const Value: Boolean);
- function RestoreStrValue(const Name:string; const Default: string = ''):string;
- function RestoreIntValue(const Name:string; const Default: Integer = 0): Integer;
- function RestoreBoolValue(const Name:string; const Default: Boolean = False): Boolean;
ส่วนประกอบนี้รวมถึงกิจวัตรที่เขียนโดยคนที่ชื่อนีลในกลุ่มข่าว DBISAM เมื่อหลายปีก่อน กลายเป็นส่วนประกอบสิ่งนี้จะแนบไปกับคีย์บอร์ดและเมาส์ windows hooks เพื่อดูการไม่ใช้งานบนคอมพิวเตอร์และปรากฏข้อความพร้อมตัวจับเวลานับถอยหลังเพื่อปิดแอปพลิเคชัน กรณีการใช้งานหนึ่งคือแอปพลิเคชันฐานข้อมูล 2 ระดับที่ปล่อยให้ไฟล์และบันทึกเปิดอยู่
ส่วนประกอบนี้ถูกลบออกจากรุ่น Delphi 10.3 Rio เพื่อใช้การใช้คลาส TSTOPWATCH ของ Delphi
นี่เป็นองค์ประกอบที่ง่ายมากที่ซ่อนรายละเอียดของเวลาการดำเนินการ เพียงแค่โทรเริ่มทำสิ่งของของคุณจากนั้นโทรหยุดและคุณมีคุณสมบัติต่อไปนี้พร้อมใช้งาน:
ส่วนประกอบนี้ไม่ได้ตรวจสอบการเปลี่ยนแปลงในเขตเวลา (ถ้าใช้กับอุปกรณ์มือถือ) หรือบัญชีสำหรับเวลาประหยัดเวลากลางวัน มันถูกออกแบบมาสำหรับการดำเนินงานที่ค่อนข้างสั้น (น้อยกว่าหนึ่งชั่วโมง)
ส่วนประกอบต่อไปนี้ได้รับการสนับสนุนผ่าน Delphi XE เท่านั้นและลบออกจากแพ็คเกจใหม่
นานมาแล้วฉันใช้ชุดส่วนประกอบ InfoPower ซึ่งมีองค์ประกอบการค้นหาที่เพิ่มขึ้นที่ดีจริงๆซึ่งจะแสดงรายการบันทึกการจับคู่ในขณะที่คุณพิมพ์ ฉันทำลวดลายส่วนประกอบนี้ออกจากแนวคิดนั้น แต่ยังเพิ่มปุ่มที่ผู้ใช้กำหนดและคุณสมบัติอื่น ๆ อีกมากมาย ฉันยังใช้การควบคุม Raize สำหรับคุณสมบัติการแสดงผลที่ดีเป็นพิเศษ-และผูกมันไว้อย่างใกล้ชิดกับส่วนประกอบฐานข้อมูล DBISAM มันเป็นโครงการที่เฉพาะเจาะจงในเวลานั้น แต่ฉันใช้มันและรูปแบบของมัน (เช่นการเปลี่ยน dbisam สำหรับส่วนประกอบที่เพิ่มขึ้น) ในโครงการอื่น ๆ ตั้งแต่นั้นมา
นี่อาจเป็นองค์ประกอบที่น่าสนใจที่จะดูเพราะมันเป็นตัวอย่างที่ดีของวิธีการสร้างองค์ประกอบผสม
เขียนเพื่อสนับสนุนโครงการเก่าเมื่อหลายปีก่อนสิ่งนี้ช่วยให้การรวมชื่อคู่ = คู่กับตัวคั่น เลิกใช้แล้วในการใช้ TSTRINGLIST
ให้การบันทึกที่รวดเร็วและรวดเร็วไปยังไฟล์ข้อความ เลิกใช้เพราะห้องสมุดและวิธีการบันทึกใหม่เป็นที่ต้องการ
ตัวแสดงไฟล์ข้อความอย่างง่ายในหน้าต่างแบบป๊อปอัพโมดอล
ในที่สุดคำเกี่ยวกับหน่วยสแตนด์อโลน
โฟลเดอร์นี้มีสองหน่วยคือ UDMCUSTOMWEBGENERATOR และ UDMDBISAMWEBGENERATOR พวกเขาเป็นโมดูลข้อมูลและเป็นอันดับแรกคือคลาสพื้นฐานที่มีส่วนประกอบของ WebBroker สองตัวคือ TPAGEPRODUCER และ TDATASETTABLEPRODUCER สิ่งเหล่านี้ถูกเขียนขึ้นเมื่อหลายปีก่อนก่อนที่ระบบการจัดการเนื้อหา (CMSs) จะได้รับความนิยมและฉันพยายามใช้ Delphi สำหรับการพัฒนาเว็บทั้งหมดของฉัน มันกลับกลายเป็นว่าทำงานได้มากกว่าที่คุ้มค่าสำหรับโครงการขนาดใหญ่และมีเครื่องมือบนเว็บที่ยอดเยี่ยมมากมายในตอนนี้ดังนั้นจึงไม่ได้ใช้มากขึ้นอีกต่อไป อย่างไรก็ตามยังมีงานเป็นครั้งคราวที่พบว่ากิจวัตรเหล่านี้มีประโยชน์ดังนั้นฉันจึงเก็บไว้รอบ ๆ
คลาสเหล่านี้ขยายประโยชน์ของ WebBroker โดยการสร้างลิงก์ระหว่างแท็ก HTML และฐานข้อมูล ฐานข้อมูลเดียวที่ฉันเคยใช้ในแบบนี้คือ DBISAM ฉันไม่ได้ใช้ DBISAM มาหลายปีแล้วดังนั้นฉันไม่รู้ว่ามันยังคงรวบรวมหรือไม่ แต่มันแสดงให้เห็นว่าคลาสพื้นฐานสามารถสืบเชื้อสายมาได้อย่างไรสำหรับความต้องการเฉพาะของคุณ
โปรดอ่านความคิดเห็นในรหัสสำหรับข้อมูลเพิ่มเติม
โฟลเดอร์ "Misc" มีสามหน่วย (อาจเพิ่มเพิ่มเติมในภายหลัง): USEARCHRECLIST , UXMLDATES และ UTESTUTILS
อันแรก USEARCHRECLIST มีการประกาศประเภทขั้นตอนสองสามขั้นตอนและขั้นตอนหนึ่ง: GETSEARCHRECS
TPathStatusProc = reference to procedure (const Path: string; var Stop: Boolean);
TFileFoundProc = reference to procedure (FileInfo: TSearchRec);
procedure GetSearchRecs(const Path, Pattern: string; const Recursive: Boolean; PathStatusProc: TPathStatusProc; FileFoundProc: TFileFoundProc);
GetSearchRecs สำรวจต้นไม้ไดเรกทอรีที่กำลังมองหาไฟล์ที่ตรงกับรูปแบบและการเรียก PathStatusProc สำหรับทุกเส้นทางที่พบและ FileFoundProc สำหรับทุกไฟล์ที่พบที่ตรงกับรูปแบบ
นี่คือตัวอย่างการโทรที่จะลบไฟล์บันทึกเก่า:
GetSearchRecs(LogFolder, '*.log', False, nil,
procedure (FileInfo: TSearchRec)
begin
if FileInfo.TimeStamp < Now - 90 then
FileDelete(TPath.Combine(LogFolder, FileInfo.Name), True);
end);
หน่วยที่สองคือ uxmldates ทำให้ง่ายต่อการทำงานกับวันที่ที่พบในไฟล์ XML รูปแบบทั่วไปคือ: yyyy-mm-dd "t" hh: mm: ss แต่วิธีการ ConvertTodelphateDideFromxml สามารถใช้สตริงได้โดยไม่ต้องใช้เวลา
หน่วยที่สาม Utestutils มีฟังก์ชั่นบางอย่างที่ใช้ในโครงการบางโครงการที่ฉันต้องการสร้างข้อมูลการทดสอบเช่นวันที่เวลาตัวเลขประเภทการชำระเงิน ฯลฯ พวกเขามีประโยชน์ที่จะมี