- Digao Dalpiaz News เกี่ยวกับโทรเลข



03/25/2024 (เวอร์ชัน 6.7) ( ขั้นต่ำ dzhtmltext เวอร์ชัน: 6.3 )
03/16/2024 (เวอร์ชัน 6.6)
03/10/2024 (เวอร์ชัน 6.5)
02/23/2024 (เวอร์ชัน 6.4)
02/22/2024 (เวอร์ชัน 6.3)
02/20/2024 (เวอร์ชัน 6.2)
Lib{Platform}{Config} โปรดตรวจสอบเส้นทางห้องสมุดของคุณ01/21/2024 (เวอร์ชัน 6.1) ( ขั้นต่ำ DZHTMLTEXT เวอร์ชัน: 5.2 )
01/12/2024 (เวอร์ชัน 6.0) ( ขั้นต่ำ dzhtmltext เวอร์ชัน: 5.1 )
คำเตือน!!! โปรดถอนการติดตั้งเวอร์ชันก่อนหน้าอย่างสมบูรณ์โดยการลบโฟลเดอร์ส่วนประกอบเขื่อนก่อนหน้านี้เนื่องจากไฟล์จำนวนมากได้เปลี่ยนชื่อและตำแหน่งของพวกเขา
12/11/2023 (เวอร์ชัน 5.2)
07/29/2023 (เวอร์ชัน 5.1)
04/11/2023 (เวอร์ชัน 5.0) ( ขั้นต่ำ dzhtmltext เวอร์ชัน: 4.0 )
DamUnitName09/12/2021 (เวอร์ชัน 4.16)
07/24/2021 (เวอร์ชัน 4.15)
06/13/2021 (เวอร์ชัน 4.14)
03/21/2021 (เวอร์ชัน 4.13)
03/14/2021 (เวอร์ชัน 4.12)
03/13/2021 (เวอร์ชัน 4.11)
03/05/2021 (เวอร์ชัน 4.10)
02/10/2021 (เวอร์ชัน 4.9)
12/18/2020 (เวอร์ชัน 4.8)
11/27/2020 (เวอร์ชัน 4.7)
11/11/2020 (เวอร์ชัน 4.6)
10/31/2020 (เวอร์ชัน 4.5)
10/27/2020 (เวอร์ชัน 4.4)
10/26/2020 (เวอร์ชัน 4.3) ( ขั้นต่ำ dzhtmltext เวอร์ชัน: 2.6 )
10/26/2020 (เวอร์ชัน 4.2)
10/18/2020 (เวอร์ชัน 4.1) ( ขั้นต่ำ dzhtmltext เวอร์ชัน: 2.04 )
10/14/2020 (เวอร์ชัน 4.0)
ข้อสังเกต:
09/24/2020
08/11/2020
08/07/2020
08/03/2020
07/30/2020
07/21/2020
05/25/2020
<img:nnn> ) จำเป็นต้องอัปเดตส่วนประกอบ TDZHTMLTEXT05/03/2020
05/02/2020
DamParams เพื่อเติมพารามิเตอร์เมื่อใช้วิธีข้อความ DAM สิ่งนี้จำเป็นสำหรับเวอร์ชัน Delphi ต่ำกว่า XE8 เนื่องจากไม่มีอาร์เรย์แบบไดนามิกเป็นประเภทรองรับSystem.ImageList จาก Damlist Unit (แพ็คเกจการออกแบบเวลา) เนื่องจากไม่ได้รับการสนับสนุนโดยเวอร์ชัน Delphi ต่ำกว่า XE8AutoWidth ใน TDAM ขณะนี้มีคุณสมบัติใหม่ FixedWidth ในส่วนประกอบ TDAMMSG ดังนั้นคุณสามารถระบุความกว้างที่กำหนดเองตามข้อความ ส่วนประกอบจะเก็บฟังก์ชั่นภายในความกว้างอัตโนมัติหากแก้ไขปัญหาเป็นศูนย์ (ค่าเริ่มต้น)CenterButtons เป็นค่าเริ่มต้นที่ผิดพลาดเนื่องจากรูปแบบกล่องโต้ตอบ Windows ใหม่มีปุ่มจัดเรียงทางด้านขวา04/26/2020
<imgres:{resource_name}> ใหม่ เพียงเพิ่มอิมเมจ PNG ลงในแหล่งข้อมูลแอปพลิเคชันและใช้แท็กเพื่ออ้างอิงลงในข้อความ การใช้งานนี้อยู่ในส่วนประกอบ DZHTMLTEXT ที่ใช้โดย DAM คุณเพียงแค่ต้องอัปเดตส่วนประกอบ DZHTMLTEXT ของคุณและคุณลักษณะนี้จะพร้อมใช้งาน โปรดอ่านส่วนแท็กภาพ DZHTMLTEXT ไปยังข้อมูลเพิ่มเติม สำคัญ: ภาพจะไม่ปรากฏให้เห็นในเวลาออกแบบ04/19/2020
10/07/2019
10/06/2019
10/05/2019
05/03/2019
02/11/2019
02/08/2019
02/07/2019
02/06/2019
02/05/2019
เพิ่มคุณสมบัติใหม่ MessageColor และ Buttonsolor บนส่วนประกอบ TDAM เพื่ออนุญาตการปรับแต่งกล่องโต้ตอบข้อความ
เกือบทุกแอปพลิเคชันที่คุณสร้างคุณต้องเพิ่มกล่องโต้ตอบข้อความ
Delphi มีตัวเลือกให้คุณไม่กี่ตัวเช่น ShowMessage, Messagedlg และ MessageBox
เมื่อโครงการของคุณมีขนาดใหญ่ขึ้นกล่องโต้ตอบอาจทำให้รหัสของคุณยุ่งเหยิงเป็นหลักหากคุณต้องการเขียนหลายบรรทัดในข้อความด้วยพารามิเตอร์จำนวนมาก
หากคุณต้องการจัดรูปแบบบางส่วนของข้อความคุณต้องเพิ่มป้ายกำกับในรูปแบบที่กำหนดเอง นี่อาจจะแย่จริงๆ
ดูข้อความนี้:
begin
ShowMessage( ' The task was scheduled to run at the time: ' +aTime+ ' . ' +# 13 # 10 +
# 13 # 10 +
' Please, check the schedule at main board. ' +
' If you want to change schedule, find by ID # ' +IntToStr(IDNumber)+ ' . ' +# 13 # 10 +
# 13 # 10 +
' This task was created by user ' +aUserName+ ' . Only this user can edit this task profile. ' );
end ;ดังนั้นฉันคิดว่ามันน่าเกลียดจริงๆคุณไม่คิดเหรอ? -
ด้วยเขื่อนคุณสามารถเขียนข้อความเดียวกันนี้ได้เช่นนี้: ?
begin
InfoTaskScheduled([aTime, IDNumber, aUserName]);
end ;ส่วนประกอบนี้ช่วยให้คุณจัดการข้อความแอปพลิเคชันทั้งหมดของคุณใน "คอนเทนเนอร์" คุณสามารถสร้างกล่องโต้ตอบข้อความด้วยผู้สร้างตัวช่วยสร้างช่วยให้คุณสามารถจัดรูปแบบข้อความ (ตัวหนา, ตัวเอียง, ขีดเส้นใต้, ชื่อตัวอักษร, ขนาดตัวอักษร, สีพื้นหลังข้อความ, การจัดตำแหน่งกลาง, จัดตำแหน่งขวา, ใช้การจัดตำแหน่งแท็บ, ลิงค์ที่คลิกได้ ฯลฯ )
คุณสามารถระบุปุ่มข้อความไอคอนชื่อฟอร์มและอื่น ๆ อีกมากมาย
จากนั้นคุณระบุชื่อสำหรับข้อความ ดังนั้นคุณสามารถโทรหาข้อความได้ที่ส่วนใดส่วนหนึ่งของแอปพลิเคชันของคุณเพียงแค่เรียกเมธอดด้วยชื่อข้อความ!
หากคุณระบุพารามิเตอร์ในข้อความข้อความจากนั้นเมื่อคุณเรียกวิธีการข้อความคุณสามารถระบุพารามิเตอร์ที่จะถูกแทนที่ในข้อความ
โปรดอ่านเอกสารนี้อย่างละเอียดเพื่อทราบว่าส่วนประกอบนี้ทำงานอย่างไร -
คอนเทนเนอร์ DAM แสดงรายการข้อความทั้งหมดที่สร้างไว้ที่ DFM:

ผู้สร้างตัวช่วยสร้างข้อความเพื่อปรับแต่งกล่องโต้ตอบข้อความ:

กล่องโต้ตอบข้อความ:?

ทางลัด
CTRL+Cมีอยู่ในแบบฟอร์มข้อความเพื่อคัดลอกข้อความไปยังคลิปบอร์ด
ก่อนอื่นคุณต้องติดตั้งส่วนประกอบ dzhtmltext ของฉัน รับที่นี่: https://github.com/digao-dalpiaz/dzhtmltext
นี่คือฉลากที่มีส่วนประกอบการจัดรูปแบบ HTML ข้อความใช้ส่วนประกอบนี้เพื่อแสดงข้อความที่จัดรูปแบบ
หากคุณกำลังติดตั้ง DZHTMLTEXT และ DAM ในครั้งเดียวโดยใช้ UTILITY ตัวติดตั้งส่วนประกอบหลังจากติดตั้ง DZHTMLTEXT คุณจะต้องเปิดและปิด DELPHI ก่อนที่จะติดตั้ง DAM (จำเป็นต้องอัปเดตไฟล์พา ธ ไลบรารีที่ใช้โดย MSBUILD)
LibWin32Releaseรองรับ Delphi XE3..delphi 12
ไปที่แพ็คเกจเมนู> เปิดไฟล์แพ็คเกจ (.lpk) และโหลด lazdampackage.lpk และคลิกที่ คอมไพล์
ไปที่แพ็คเกจเมนู> เปิดไฟล์แพ็คเกจ (.lpk) และโหลด lazdamdesignpackage.lpk และคลิกที่ ใช้> ติดตั้ง
ในเวลานี้ภาษาต่อไปนี้พร้อมใช้งานสำหรับข้อความ:
ภาษาตั้งค่าคำบรรยายภาพของปุ่มในกล่องโต้ตอบข้อความเช่นตกลง, ยกเลิก, ใช่, ไม่ใช่, และชื่อของแบบฟอร์ม, เมื่อข้อมูล, คำถาม, คำเตือน, ข้อผิดพลาดและข้อความ (กำหนดเอง) ชื่อฟอร์มสามารถเปลี่ยนแปลงได้ในคุณสมบัติข้อความและสามารถตั้งค่าโดยอัตโนมัติโดยวัตถุอื่น ๆ เช่นชื่อฟอร์มแม่ชื่อชื่อเรื่องหลักและชื่อแอปพลิเคชัน
คุณสามารถเปิดปัญหาเพื่อส่งการแปลภาษาใหม่หรือแก้ไขการแปลปัจจุบันให้ฉัน
แนวคิดหลักคือการวางหนึ่ง TDAM ในรูปแบบหลักหรือโมดูลข้อมูลหลัก TDAM เป็นคอนเทนเนอร์ที่มี TDAMMSG ทั้งหมด (กล่องโต้ตอบข้อความ)
ในการจัดการข้อความเพียง ดับเบิลคลิก ที่ส่วนประกอบ TDAM หรือคลิกขวาและเลือก จัดการข้อความ DAM
แต่จะเรียกข้อความได้อย่างไร?
TDAM มีคุณสมบัติที่เรียกว่า DamUnitName ที่นี่คุณกำหนดชื่อหน่วยเพื่อให้มีวิธีการข้อความทั้งหมด เมื่อคุณใช้ หน่วยการสร้าง ฟังก์ชั่นส่วนประกอบจะสร้างหน่วยนี้โดยอัตโนมัติที่โฟลเดอร์โครงการด้วยวิธีการที่ใช้ในข้อความที่สร้างขึ้นทั้งหมด (ที่มีชื่อเดียวกันกับชื่อข้อความ)
ดังนั้นทุกหน่วยคุณเพียงเพิ่มการใช้งานลงในหน่วยนี้และโทรหาข้อความที่คุณต้องการด้วยชื่อข้อความ หากข้อความมีพารามิเตอร์วิธีการจะถูกประกาศโดยอัตโนมัติเพื่อขอพารามิเตอร์ในอาร์เรย์
ใช่ แต่ถ้าฉันอยู่ในคลาสเดียวกัน (TFORM/TDATAMODULE) นั่นคือข้อความ TDAM และ TDAMMSG ถ้าฉันเรียกวิธีการตามชื่อข้อความ Delphi คิดว่าฉันหมายถึงวัตถุของข้อความ!
นี่เป็นความจริงและด้วยเหตุนี้ส่วนประกอบจึงมีฟังก์ชั่นที่ซ่อนอยู่ของวัตถุ คุณจะต้องตั้งชื่อข้อความที่ขึ้นต้นด้วย _ ดังนั้นตัวสร้างหน่วยจะลบอักขระนี้เพื่อตั้งชื่อวิธีการและ Delphi จะไม่สับสนทั้งสองสิ่ง
ฉันขอแนะนำให้คุณสร้างข้อความทั้งหมดที่ชื่อเริ่มต้นด้วยอักขระ _
หากคุณใช้ตัวช่วยสร้างชื่อจะเริ่มต้นด้วยอักขระนี้โดยอัตโนมัติ
มีปุ่มบนตัวจัดการเขื่อนเพื่อซ่อน/ยกเลิกข้อความที่เลือกทั้งหมด
โปรดจำไว้ว่าทุกครั้งที่คุณเปลี่ยนข้อความคุณต้องสร้างหน่วยใหม่ เพียงคลิกที่ปุ่มสร้างหน่วยเพื่ออัปเดต
ตกลง แต่ฉันไม่ต้องการใช้หน่วยนี้! มีวิธีอื่นหรือไม่?
แน่นอน. คุณสามารถเรียกข้อความโดยใช้ฟังก์ชั่นของวัตถุ TDAMMSG เพียงใช้ฟังก์ชั่นการเรียก Run วัตถุหรือฟังก์ชั่น RunAsBool ในกรณีนี้ฉันขอแนะนำให้คุณไม่ซ่อนข้อความดังนั้นคุณสามารถโทรด้วยชื่อวัตถุตามที่เป็นอยู่
แต่ฉันขอแนะนำให้คุณใช้หน่วยเพราะมันจะสมเหตุสมผลมากขึ้น
ฉันสามารถใช้คอนเทนเนอร์ TDAM มากกว่าหนึ่งรายการในแอปพลิเคชันของฉันได้หรือไม่?
ใช่คุณทำได้ TDAM ช่วยให้คุณสามารถกำหนดค่าการกำหนดค่าบางอย่างเช่นตัวอักษรข้อความและเสียง ดังนั้นคุณอาจมีมากกว่าหนึ่ง TDAM ที่จะมีกลุ่มของการกำหนดค่านี้ นอกจากนั้นคุณสามารถใช้ TDAM ต่างๆเพื่อจัดกลุ่มข้อความตามหมวดหมู่ คุณสามารถใส่ TDAM ในรูปแบบเฉพาะ แต่โปรดจำไว้ว่าคอนเทนเนอร์จำเป็นต้องมีอยู่เพื่อยิงข้อความแน่นอน
หากคุณใช้ TDAM มากกว่าหนึ่งรายการฉันขอแนะนำให้คุณตั้งค่า DamUnitName เดียวกันในส่วนประกอบ TDAM ทั้งหมดดังนั้นเมื่อคุณเรียกปุ่ม หน่วยสร้าง มันจะถูกสร้างหน่วยเดียวพร้อมข้อความทั้งหมดของคอนเทนเนอร์ TDAM ทั้งหมด ดังนั้นคุณสามารถใช้หน่วยเดียวนี้ได้ที่หน่วยอื่น ๆ ทั้งหมดของโครงการของคุณเพื่อโทรหาข้อความใด ๆ
รหัสผลลัพธ์ข้อความ:
หากคุณเรียกข้อความด้วยวิธีการชื่อข้อความวิธีการจะเป็นขั้นตอนหากข้อความมีเพียงปุ่มเดียว
หากข้อความมีปุ่มสองหรือสามปุ่มวิธีการจะเป็นฟังก์ชัน เมื่อมีสองปุ่มฟังก์ชั่นจะส่งคืนค่าบูลีนเสมอกลับมาจริงถ้าปุ่มแรกทางด้านซ้ายถูกคลิกหรือส่งกลับเท็จถ้าปุ่มที่สอง (ปุ่มสุดท้ายทางด้านขวา) ถูกคลิก
เมื่อข้อความมีปุ่มสามปุ่มฟังก์ชั่นจะส่งคืนค่าจำนวนเต็ม 1, 2 หรือ 3 ขึ้นอยู่กับปุ่มที่กดในกล่องโต้ตอบข้อความ ปุ่มแรกคือปุ่มซ้าย ประการที่สองคือปุ่มกลาง ปุ่มที่สามคือปุ่มขวา
ดังนั้นเมื่อใช้ปุ่มสามปุ่มคุณสามารถใช้ตัวแปรหรือแม้กระทั่ง case :
case QuestionSaveFile([aFileName]) of
1 : DoSaveFile; // Yes button
2 : { continue } ; // No button
3 : Abort; // Cancel button
end ; หากคุณต้องการใช้พารามิเตอร์ที่เปลี่ยนได้ในข้อความเพียงพิมพ์ %p คุณสามารถระบุพารามิเตอร์หลายตัวในข้อความเดียวกัน เมื่อคุณเรียกข้อความอาร์เรย์พารามิเตอร์จะอยู่ในลำดับเดียวกันกับที่พิมพ์ในข้อความ
อาร์เรย์พารามิเตอร์เป็นประเภทตัวแปรดังนั้นพวกเขาจึงไม่จำเป็นต้องมีการแปลง
ตัวอย่าง:
// TDamMsg Message property = 'This is a %p message number %p at time %p'
MyCustomMessage([ ' test ' , 123 , Now]);
// or
MsgInfo( ' This is a %p message number %p at time %p ' , [ ' test ' , 123 , Now]); ButtonsColor: TColor = กำหนดสีพื้นหลังของพื้นที่ปุ่มในกล่องโต้ตอบข้อความ
ButtonsFont: TFont = กำหนดตัวอักษรข้อความของปุ่มโต้ตอบ
ButtonsFontColor: TAlphaColor = กำหนดสีฟอนต์ข้อความของปุ่มโต้ตอบ (มีเฉพาะในสภาพแวดล้อม FMX)
CenterButtons: Boolean = กำหนดว่าปุ่มที่รูปแบบข้อความจะได้รับการจัดแนวตรงกลาง หากคุณสมบัตินี้เป็นเท็จปุ่มจะถูกจัดแนวที่ด้านขวาของแบบฟอร์ม
DamDefault: Boolean = กำหนดว่า TDAM นี้จะถูกใช้เพื่อยิงข้อความด่วน (โปรดอ่านส่วนข้อความด่วน) คุณสามารถกำหนดได้เพียงหนึ่งเดียวเป็นค่าเริ่มต้นในแอปพลิเคชัน
DamUnitName: String = ระบุชื่อหน่วยที่จะสร้างด้วยวิธีข้อความทั้งหมดในโฟลเดอร์โครงการ อย่าระบุนามสกุลไฟล์เนื่องจากส่วนประกอบจะกรอกชื่อโดยอัตโนมัติด้วยส่วนขยาย ".pas"
DialogBorder: Boolean = กำหนดว่าหน้าต่างของกล่องโต้ตอบข้อความจะมีเส้นขอบหรือไม่ คุณสามารถปิดการใช้งานคุณสมบัตินี้เพื่อสร้างธีมการโต้ตอบที่ทันสมัย
DialogPosition: TDamDlgPosition = กำหนดตำแหน่งการโต้ตอบแบบฟอร์มเริ่มต้นตำแหน่ง:
HandleExceptions: Boolean = กำหนด TDAM นี้เพื่อจัดการข้อยกเว้นแอปพลิเคชันทั้งหมดแสดงข้อความแสดงข้อผิดพลาดด้วยกล่องโต้ตอบเดียวกันกับข้อความเขื่อนอื่น ๆ ทั้งหมด สามารถตั้งค่า TDAM เพียงหนึ่งตัวเพื่อจัดการข้อยกเว้นในแอปพลิเคชัน
HideIcon: Boolean = ถ้าเป็นจริงไอคอนในกล่องโต้ตอบข้อความจะถูกระงับ
Images: TCustomImageList = ช่วยให้คุณตั้งค่า imageList โดยใช้ TAG <img:idx> ในข้อความข้อความโดยที่ idx เป็นดัชนีรูปภาพ
Language: TDamLanguage = กำหนดภาษาที่ใช้โดยปุ่มข้อความและชื่อแบบฟอร์มข้อความ เมื่อคุณวางอินสแตนซ์ขององค์ประกอบ TDAM คุณสมบัตินี้จะเริ่มต้นตามภาษาปัจจุบันของระบบ หากไม่มีภาษาตามระบบจะมีการตั้งค่าภาษาอังกฤษ คุณสมบัตินี้ไม่มีค่าเริ่มต้นอย่างแม่นยำเพราะควรจัดเก็บภาษาที่กำหนดไว้
MessageColor: TColor = กำหนดสีพื้นหลังของพื้นที่ข้อความในกล่องโต้ตอบข้อความ
MessageFont: TFont = กำหนดตัวอักษรข้อความของข้อความ
MessageFontColor: TAlphaColor = กำหนดสีตัวอักษรข้อความของข้อความ (มีเฉพาะในสภาพแวดล้อม FMX)
PlaySounds: Boolean = เปิดใช้งานเสียงของระบบเมื่อแสดงข้อความเตือนคำถามและชนิดข้อผิดพลาด
OnLinkClick(Sender: TObject; Msg: TDamMsg; const Target: string; var Handled: Boolean; var CloseMsg: Boolean; var MsgResult: TDamMsgRes) เหตุการณ์นี้จะถูกเรียกใช้เมื่อคลิกที่ลิงก์ที่มีอยู่ในข้อความ
โดยค่าเริ่มต้นเป้าหมายลิงก์จะถูกเปิดโดยอัตโนมัติโดยใช้ Shellexecute จาก Windows API ดังนั้นหากเป้าหมายคือเว็บลิงค์เบราว์เซอร์เริ่มต้นจะเปิดลิงก์หรือหากเป้าหมายเป็นไฟล์ระบบพา ธ จะถูกเรียกใช้/เปิดโดย Windows
หากคุณต้องการหลีกเลี่ยงพฤติกรรมนี้ให้ใช้กิจกรรมนี้และตั้งค่า Handled ให้เป็นจริง นอกจากนี้คุณยังสามารถตั้งค่า CloseMsg เป็น Flag TRUE และ MsgResult เมื่อคุณต้องการปิดหน้าต่างข้อความ
OnShowMessage(Sender: TObject; Msg: TDamMsg; var MsgText: String; var Handled: Boolean; var MsgResult: TDamMsgRes) ยิงก่อนที่ข้อความเขื่อนจะปรากฏขึ้นช่วยให้คุณสกัดกั้นข้อความและแม้แต่การแสดงข้อความบายพาสโดยใช้พารามิเตอร์ที่จัดการ
คำเตือน! หากคุณข้ามข้อความข้อยกเว้นส่วนประกอบจะไม่ยกข้อยกเว้นให้ดำเนินการต่อการดำเนินการรหัส (เว้นแต่คุณจะสร้างข้อยกเว้นของคุณเองตามขั้นตอนเหตุการณ์)
Button1: String = คำบรรยายภาพของปุ่ม 1 บนกล่องโต้ตอบข้อความ พร้อมใช้งานเมื่อปุ่ม = dbone/dbtwo/dbthree
Button2: String = คำบรรยายภาพของปุ่ม 2 บนกล่องโต้ตอบข้อความ พร้อมใช้งานเมื่อปุ่ม = dbtwo/dbthree
Button3: String = คำบรรยายภาพของปุ่ม 3 บนกล่องโต้ตอบข้อความ พร้อมใช้งานเมื่อปุ่ม = dbThree
Buttons: TDamMsgButtons = กำหนดปุ่มในกล่องโต้ตอบข้อความ:
CustomIcon: TIcon = กำหนดไอคอนที่กำหนดเองเพื่อแสดงในกล่องโต้ตอบข้อความ ไอคอนนี้จะแสดงเฉพาะเมื่อ icon = dicustom
CustomTitle: String = กำหนดชื่อที่กำหนดเองสำหรับแบบฟอร์มข้อความ คำบรรยายภาพนี้ใช้เท่านั้น Title = dtCustom
Dam: TDam = กำหนดคอนเทนเนอร์ DAM ของข้อความนี้
FixedWidth: Integer = กำหนดความกว้างคงที่ของชิ้นส่วนข้อความในหน้าต่างข้อความเป็นพิกเซล หากค่านี้เป็นศูนย์ (ค่าเริ่มต้น) ความกว้างของหน้าต่างจะถูกคำนวณโดยอัตโนมัติตามข้อความ มีขีด จำกัด คงที่ขั้นต่ำและสูงสุดสำหรับรูปแบบข้อความ (ขั้นต่ำ = 300px / สูงสุด = 75% ของความกว้างหน้าจอ - เมื่อ Android หรือ iOS, สูงสุด = 95% ของความกว้างหน้าจอ)
HelpContext: THelpContext = กำหนดบริบทความช่วยเหลือ หากมีการกำหนดคุณสมบัตินี้เมื่อกล่องโต้ตอบข้อความจะแสดงปุ่มช่วยเหลือและจะเปิดแอปพลิเคชันวิธีใช้ในเป้าหมายบริบท นอกจากนี้ยังเป็นไปได้ที่จะใช้คีย์ F1
HelpKeyword: String = กำหนดคำหลักช่วยเหลือ หากคุณสมบัตินี้ถูกกำหนดเมื่อกล่องโต้ตอบข้อความจะแสดงปุ่มช่วยเหลือและจะเปิดแอปพลิเคชันวิธีใช้ในเป้าหมายคำหลัก นอกจากนี้ยังเป็นไปได้ที่จะใช้คีย์ F1
Icon: TDamMsgIcon = กำหนดไอคอนในกล่องโต้ตอบข้อความ:
Message: String = ข้อความข้อความ โปรดใช้ผู้สร้างตัวช่วยสร้างข้อความสำหรับการจัดรูปแบบข้อความหรืออ่านเอกสาร HTLabel พารามิเตอร์ที่เปลี่ยนได้ถูกกำหนดโดย %p ที่ข้อความ ใช้พารามิเตอร์ที่อาร์เรย์ในวิธีข้อความในลำดับเดียวกับที่ระบุไว้ในข้อความ นอกจากนี้คุณยังสามารถระบุตัวอักษร {except} เพื่อจับข้อความข้อยกเว้นปัจจุบันและแทนที่ที่ตัวแปรนี้ในข้อความข้อความ (โปรดดูตัวอย่างข้อยกเว้น)
Name: String = ชื่อวัตถุข้อความ หากชื่อเริ่มต้นด้วยอักขระ _ หมายความว่าข้อความถูกซ่อนไว้ดังนั้น Delphi จะไม่คิดว่าคุณกำลังเรียกวัตถุนี้เมื่อคุณเรียกวิธีการของข้อความที่มีชื่อเดียวกัน
RaiseExcept: Boolean = ตั้งข้อความนี้เป็นข้อความเพิ่ม เมื่อคุณเรียกข้อความนี้จะถูกยกข้อยกเว้นด้วยข้อความ ในกรณีนี้คุณต้องใช้ TDAM อย่างน้อยหนึ่งรายการกับ HandleExceptions = TRUE มิฉะนั้นข้อความจะไม่ถูกจัดรูปแบบด้วยการปรับแต่ง DAM
SwapFocus: Boolean = โดยค่าเริ่มต้นเมื่อข้อความถูกยิงปุ่มแรกทางด้านซ้ายจะเริ่มต้นด้วยโฟกัสเสมอ หากคุณเปิดใช้งานตัวเลือกนี้ข้อความนี้จะเริ่มโฟกัสที่ปุ่มสุดท้าย (ปุ่มที่ขวา)
Title: TDamMsgTitle = กำหนดชื่อแบบฟอร์มข้อความ
พารามิเตอร์ข้อความทั้งหมดจะถูก "หลบหนี" โดยอัตโนมัติโดยส่วนประกอบ
ตัวอย่าง:
procedure Test1 ;
begin
MyCustomMessage([ ' This will display <b> literal string ' , ' This will display "%p" literal string ' ]);
end ;
procedure Test2 ;
begin
MsgInfo( ' <b>First message parameter</b>: %p ' , [ ' Here I want to display literal <> characters ' ]);
end ;%p และ {except} )หากคุณต้องการแสดงอักขระตัวอักษร HTML ในส่วนข้อความคงที่โปรดตรวจสอบค่าคงที่หลบหนีที่เอกสาร DZHTMLTEXT
procedure MsgInfo ( const Msg: String; const Params: TDamParams = nil ); // message with Information icon
procedure MsgWarn ( const Msg: String; const Params: TDamParams = nil ); // message with Warning icon
procedure MsgError ( const Msg: String; const Params: TDamParams = nil ); // message with Error icon
function MsgQuest ( const Msg: String; const Params: TDamParams = nil ): Boolean; // message with Question mark icon
procedure MsgRaise ( const Msg: String; const Params: TDamParams = nil ); // message with Error icon (this raises an exception)
procedure ShowErrorMsg ; // show current error message
function CaptureErrorMsg : String; // get current error message วิธีการเหล่านี้มีให้ทั่วโลกที่ UNIT DamUnit หรือชื่อหน่วยที่คุณระบุไว้ในคุณสมบัติ DamUnitName
คุณสามารถแสดงข้อความด่วนโดยตรงบนรหัสเพียงแค่พิมพ์ข้อความและพารามิเตอร์ที่คุณต้องการ
วิธีการเหล่านี้จะใช้คอนเทนเนอร์ TDAM ที่กำหนดเป็น ค่าเริ่มต้น ดังนั้นคุณต้องมี TDAM หนึ่งรายการพร้อมคุณสมบัติ
DamDefaultที่ตั้งไว้เป็น TRUE
ฟังก์ชั่น MsgQuest ผลลัพธ์เป็นจริงถ้ากดปุ่มใช่หรือส่งคืน false หากไม่มีปุ่มกด
วิธีการ ShowErrorMsg แสดงข้อยกเว้นในปัจจุบัน คุณสามารถใช้สิ่งนี้ได้เช่นเดียวกับการลองปิดบล็อก
ฟังก์ชั่น CaptureErrorMsg ช่วยให้คุณได้รับข้อความแสดงข้อผิดพลาดในข้อยกเว้นปัจจุบัน คุณควรใช้สิ่งนี้ที่ลอง .. ยกเว้นบล็อก
ตัวอย่างจับข้อยกเว้น:
try
DoSomeStuff;
except
ShowErrorMessage; // will show error message dialog using Dam concept
end ; try
DoSaveFile;
except
MsgError( ' Fatal error saving file: %p ' , [CaptureErrorMsg]);
end ; หากคุณระบุตัวอักษร {except} ที่ข้อความข้อความจะถูกแทนที่ด้วยข้อความแสดงข้อผิดพลาดปัจจุบัน:
try
DoSaveFile;
except
MsgError( ' Fatal error saving file: {except} ' ); // don't need to use CaptureErrorMsg function!
end ;นอกจากนี้คุณยังสามารถเพิ่มข้อยกเว้นอีกครั้ง:
try
DoSaveFile;
except
raise EDam.Create( ' Fatal error saving file: {except} ' ); // re-raise a new exception with better text message
end ; คุณสามารถตั้งค่าพารามิเตอร์ RaiseExcept บนวัตถุข้อความ DAM ดังนั้นเมื่อมีการเรียกข้อความข้อยกเว้นจะถูกยกขึ้น
ข้อควรจำ: เพื่อใช้ประโยชน์จากทรัพยากรเขื่อนคุณต้องตั้ง HandleExceptions กับวัตถุคอนเทนเนอร์เขื่อน เมื่อมีการยกข้อยกเว้นเขื่อนจะสกัดกั้นข้อยกเว้นนี้และแสดงกล่องโต้ตอบที่กำหนดเอง
ตัวอย่าง:
procedure TestException_Generic ;
begin
raise Exception.Create( ' This is my generic exception ' );
// HTML tags are NOT allowed when using generic exception
end ;
procedure TestException_DamRunTimeCreation ;
begin
raise EDam.Create( ' This is my <b>exception</b> with parameter %p ' , [ ' First parameter ' ]);
end ;
procedure TestException_DamDesignTimeCreation ;
begin
raise EDam.Create(MyCustomMessage, [ ' First parameter ' ]);
// MyCustomMessage represents a TDamMsg object created at design-time
end ;
procedure TestException_DamDesignTimeCreation_ByProperty ;
begin
_MyCustomMessage.Run([ ' First parameter ' ]);
// or
MyCustomMessage([ ' First parameter ' ]);
// MyCustomMessage represents a TDamMsg object created at design-time with property RaiseExcept=True
end ;
procedure TestException_Quick ;
begin
MsgRaise( ' This is my <b>exception</b> with parameter %p ' , [ ' First parameter ' ]);
// This method is for compatibility, but I recommend you to use "raise EDam.Create" instead.
end ;มีไฟล์ที่เรียกว่า damlang.ini (โฟลเดอร์ทรัพยากร) ซึ่งมีสตริงทั้งหมดที่ใช้กับส่วนประกอบ หากคุณต้องการเปลี่ยนข้อความในไฟล์นี้คุณจะต้องเรียกใช้ " สร้าง Dam Resource.bat " หลังจากนั้น ชุดนี้จะสร้างไฟล์ใหม่ " dam_resource.res " ที่โฟลเดอร์รูทคอมโพเนนต์
หลังจากนั้นโปรดเรียกใช้ " Afterbuild.bat " เพื่อเผยแพร่ไฟล์ทรัพยากรใหม่นี้ไปยังโฟลเดอร์ "LIB"
หากคุณต้องการเพิ่มภาษาใหม่จะต้องมีการเปลี่ยนแปลงบางอย่างในรหัส ดังนั้นโปรดเปิดปัญหาใหม่และโพสต์สตริงภาษาที่คุณต้องการจากนั้นฉันจะสมัครในส่วนประกอบ
เมื่อคุณใช้เวอร์ชัน Delphi ต่ำกว่า XE8 ในทุกวิธี DAM ที่มีพารามิเตอร์ TDAMPARAMS คุณจะไม่สามารถส่งพารามิเตอร์อาร์เรย์แบบไดนามิกได้โดยตรง
ในกรณีเช่นนี้ให้ใช้ฟังก์ชั่นทั่วโลก DamParams ฟังก์ชั่นนี้ยังมีอยู่ที่หน่วยที่สร้างโดยอัตโนมัติ DAM
ดังนั้นนี่คือตัวอย่างของวิธีการใช้วิธีข้อความเขื่อนในเวอร์ชันเหล่านี้:
// Quick message:
MsgInfo( ' This is a test message with parameter value = %p ' , DamParams([ 999 ]));
// Custom message:
MyCustomMessage(DamParams([ ' Parameter 1 ' , ' Parameter 2 ' ]));การออกแบบส่วนประกอบนี้เกิดขึ้นประมาณปี 2005 เมื่อฉันตรวจสอบความจำเป็นในการสร้างกล่องโต้ตอบมาตรฐานสำหรับแอปพลิเคชันของฉัน
ในเวลานั้นฉันเรียกองค์ประกอบของ "Dialog ดีกว่า" ซึ่งในภาษาโปรตุเกสจะเป็น DM ( Diálogo Melhor )
หลังจากนั้นไม่นานโครงการก็มีโครงสร้างใหม่กับคอนเทนเนอร์ จากนั้นฉันเปลี่ยนชื่อเป็น "Dies Dialog ที่ดีกว่า" ซึ่งในภาษาโปรตุเกสคือ Dam ( Diálogo Ainda Melhor ) -
ดังนั้นชื่อขององค์ประกอบจึงอยู่ที่เขื่อน
วันนี้ฉันใช้องค์ประกอบนี้ในแอปพลิเคชัน Delphi เกือบทั้งหมดของฉัน