การใช้งานการเชื่อมโยงอย่างง่ายระหว่างโปรแกรม Delphi และวิธีใช้ Chm ผู้แต่ง: Li Xin [email protected] QQ: 1348513 ความช่วยเหลือเกี่ยวกับรูปแบบ Chm เป็นรูปแบบใหม่ที่ปรากฏหลังจาก windows98 เท่านั้น เมื่อเปรียบเทียบกับรูปแบบ .hlp จะมีวิธีการแก้ไขที่ง่ายกว่าและสมบูรณ์กว่า กราฟิก ได้มาจากการรวบรวมไฟล์หน้าเว็บผ่านเครื่องมือการผลิต Chm ดังนั้นในทางทฤษฎีแล้ว คุณสามารถสร้างไฟล์วิธีใช้ให้สวยงามเหมือนกับหน้าเว็บได้ วิธีการผลิตที่ง่ายที่สุด: ขั้นแรกให้ใช้ FronPage เพื่อสร้างไฟล์วิธีใช้ จากนั้นใช้ HTMLHelpWorkshop เพื่อคอมไพล์เพื่อรับไฟล์วิธีใช้ *.chm สามารถดาวน์โหลด HTMLHelpWorkshop ได้จากเว็บไซต์ของ Microsoft วิธีใช้ในแอปพลิเคชันสามารถแบ่งออกเป็นประเภทตามบริบทและไม่ใช่ตามบริบท คำนึงถึงบริบทหมายความว่าหลังจากที่ผู้ใช้กดปุ่ม F1 หน้าจอวิธีใช้ที่เกี่ยวข้องกับวัตถุที่โฟกัสอยู่ในปัจจุบัน (เช่น แบบฟอร์ม กล่องข้อความ กล่องรายการแบบหล่นลง) จะปรากฏขึ้น วิธีใช้ที่แตกต่างกันจะปรากฏขึ้นสำหรับวัตถุที่แตกต่างกัน ความช่วยเหลือแบบไม่เชื่อมโยงหมายความว่าหลังจากกดปุ่ม F1 ที่ใดก็ได้ในโปรแกรม หน้าจอวิธีใช้เดียวกันนั้นจะปรากฏขึ้น เรามาพูดถึงสองวิธีนี้และวิธีการใช้งานอย่างง่ายใน Delphi 1. วิธีใช้ chm ที่ไม่เกี่ยวข้อง ใน Delphi คุณสามารถเรียกไฟล์วิธีใช้ chm ได้โดยตรงผ่านฟังก์ชัน ShellExecute ดังนี้: usedshellapi
.......var HWndHelp:Hwnd; i:integer;begin //ตรวจสอบว่ามีหน้าต่างช่วยเหลืออยู่แล้วHWndHelp:=FindWindow(nil,conHelpTitle); ถ้า HwndHelp<>0 แล้ว //ถ้ามีอยู่ ให้ปิด SendMessage( HwndHelp ,WM_CLOSE,0,0); i:=ShellExecute(จัดการ, 'open',Pchar(strCurExePath+'/help.chm''),nil, nil, sw_ShowNormal); ถ้า i<>42 แล้ว Showmessage('help.chm help file is Damage!');end; chm หากต้องการใช้วิธีใช้ chm ตามบริบทใน Delphi คุณสามารถเรียกใช้ฟังก์ชัน HtmlHelpA ในตัวควบคุม HHCTRL.OCX ภายใต้ไดเร็กทอรีระบบ Windows System32 จำเป็นต้องมีขั้นตอนต่อไปนี้: 1. ตั้งค่าคุณสมบัติ HelpContext ของตัวควบคุมที่เกี่ยวข้อง ตัวอย่างเช่น รูปแบบหลัก frmMain::10100 กล่องข้อความ edtInput: 10101 กล่องโต้ตอบ dlgReport: 10200 กล่องรายการคำสั่งผสม cbReportEdit: 102012 ประกาศฟังก์ชันฟังก์ชัน HtmlHelpA HtmlHelpA (hwndcaller:Longint; lpHelpFile:string; wCommand: Longint;dwData :string): HWND;stdcall; ภายนอก 'hhctrl.ocx'3 การตอบสนองของคีย์ F1 //ฟังก์ชันสาธารณะ ShowChmHelp แสดงหน้าจอวิธีใช้ที่แตกต่างกัน PROcedure ShowChmHelp(sTopic:string); var i:integer;begin i:=HtmlHelpA(application.Handle,Pchar(ExePath+'/help.chm'),HH_DISPLAY_TOPIC,sTopic); ถ้า i=0 ให้เริ่ม Showmessage(' help. ไฟล์วิธีใช้ chm เสียหาย! '); exit; end;….function TfrmMain.FormHelp(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;begin case Data of 10100: ShowChmHelp(frmMain.htm); 10101: ShowChmHelp('edtInput.htm');… else ShowChmHelp(default. htm'); สิ้นสุด; สิ้นสุด; ฟังก์ชั่น TdlgReport.FormHelp(Command: Word; Data: Integer; var CallHelp: Boolean): Boolean;begin case Data of 10200: ShowChmHelp('dlgReport.htm');10201: ShowChmHelp(cbReportEdit.htm');… else ShowChmHelp(default) .htm'); สิ้นสุด;สิ้นสุด;