Implementasi sederhana dari asosiasi antara program Delphi dan bantuan Chm Penulis: Li Xin [email protected] QQ: 1348513 Bantuan format Chm adalah format baru yang hanya muncul setelah windows98. Dibandingkan dengan format .hlp, ia memiliki metode pengeditan yang lebih sederhana dan lebih Kaya grafis. Itu diperoleh dengan mengkompilasi file halaman web melalui alat produksi Chm, jadi secara teori Anda bisa membuat file bantuan seindah halaman web. Metode produksi paling sederhana: pertama gunakan FrontPage untuk membuat file bantuan, lalu gunakan HTMLHelpWorkshop untuk mengkompilasinya guna mendapatkan file bantuan *.chm. HTMLHelpWorkshop dapat diunduh dari situs web Microsoft. Bantuan dalam aplikasi dapat dibagi menjadi tipe peka konteks dan non-kontekstual. Peka konteks berarti bahwa setelah pengguna menekan tombol F1, layar bantuan yang terkait dengan objek yang sedang difokuskan (seperti formulir, kotak teks, kotak daftar drop-down) akan muncul; Bantuan non-asosiatif berarti setelah menekan tombol F1 di mana saja dalam program, layar bantuan yang sama akan muncul. Mari kita bicara tentang dua metode ini dan metode implementasi sederhana di Delphi. 1. Bantuan chm yang tidak terkait Di Delphi, Anda dapat langsung memanggil file bantuan chm melalui fungsi ShellExecute, sebagai berikut: useshellapi
.......var HWndHelp:Hwnd; i:integer;begin //Periksa apakah jendela bantuan sudah adaHWndHelp:=FindWindow(nil,conHelpTitle); HwndHelp ,WM_CLOSE,0,0); i:=ShellExecute(pegangan, 'open',Pchar(strCurExePath+'/help.chm''),nil, nil, sw_ShowNormal); jika i<>42 maka Showmessage('help.chm file bantuan rusak!');end; chm Untuk mengimplementasikan bantuan chm yang peka konteks di Delphi, Anda dapat memanggil fungsi HtmlHelpA di kontrol HHCTRL.OCX di bawah direktori sistem Windows System32. Langkah-langkah berikut diperlukan: 1. Tetapkan properti HelpContext dari kontrol yang relevan. Misalnya form utama frmMain::10100, kotak teks edtInput: 10101, kotak dialog dlgReport: 10200, kotak daftar kombo cbReportEdit: 102012, deklarasikan fungsi HtmlHelpA fungsi HtmlHelpA (hwndcaller:Longint; lpHelpFile:string; wCommand: Panjang;dwData :string): HWND;stdcall; eksternal 'hhctrl.ocx'3 Respons tombol F1 //Fungsi publik ShowChmHelp menampilkan layar bantuan yang berbeda. Prosedur ShowChmHelp(sTopic:string); var i:integer;begin i:=HtmlHelpA(application.Handle,Pchar(ExePath+'/help.chm'),HH_DISPLAY_TOPIC,sTopic); file bantuan chm rusak! '); keluar; akhir; akhir;….fungsi TfrmMain.FormHelp(Perintah: Word; Data: Integer; var CallHelp: Boolean): Boolean;mulai kasus Data 10100: ShowChmHelp(frmMain.htm); htm'); akhir;akhir;fungsi TdlgReport.FormHelp(Perintah: Word; Data: Integer; var CallHelp: Boolean): Boolean;mulai kasus Data 10200: ShowChmHelp('dlgReport.htm');10201: ShowChmHelp(cbReportEdit.htm');… else ShowChmHelp(default .htm'); akhir;akhir;