a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Delphi > 正文

Delphi程序與Chm幫助關聯的簡單實現

2019-11-18 18:36:46
字體:
來源:轉載
供稿:網友
Delphi程序與Chm幫助關聯的簡單實現
 
 作者:李新  kelvinsdu@sina.com  QQ:1348513
 
Chm格式的幫助是從windows98以后才出現的新的格式,與.hlp格式相比,具有更簡單的編輯方式、更豐富的畫面。它是通過Chm制作工具對網頁文件進行編譯得到的,所以理論上你可以把幫助文件做的和網頁一樣漂亮。
 
最簡單的制作方法:先用FronPage制作幫助文件,然后用HTML Help Workshop編譯就可以得到*.chm的幫助文件了。HTML Help Workshop可以到微軟的網站上去下載。
 
應用程序中的幫助可分為上下文關聯和非關聯兩種。上下文關聯,是指用戶按F1鍵后,出現與當前焦點對象(如窗體、文本框、下拉列表框)相關的幫助畫面;不同對象,出現的幫助不同。非關聯幫助,是指在程序任何位置按F1鍵后,出現同一幫助畫面。下面就這兩種方式,談談在Delphi中的簡單實現方法。
 
一、非關聯的chm幫助
在Delphi中,你可以通過ShellExecute函數直接調用chm幫助文件,具體如下:
uses shellapi
.......
var  HWndHelp:Hwnd;
     i:integer;
begin
   //檢查幫助窗口是否已經存在
   HWndHelp:=FindWindow(nil,conHelpTitle);
   if HwndHelp<>0 then  // 如存在則關閉
        SendMessage(HwndHelp,WM_CLOSE,0,0);
   i:=ShellExecute(handle, 'open',Pchar(strCurExePath+'/help.chm''),nil, nil, sw_ShowNormal);
   if i<>42 then
      Showmessage(' help.chm 幫助文件損壞!');
end;
 
二、上下文關聯的chm幫助
   在Delphi中實現上下文關聯的chm幫助,可以調用Windows系統目錄System32下的HHCTRL.OCX控件中的HtmlHelpA函數實現。 需要以下幾個步驟:
 
1 設置相關控件的HelpContext屬性。
  例,主窗體frmMain::10100 ,其中的文本框 edtInput:10101
對話框dlgReport:10200 ,其中的組合列表框 cbReportEdit:10201
 
2 聲明HtmlHelpA函數
 
function HtmlHelpA (hwndcaller:Longint; lpHelpFile:string; wCommand:Longint;dwData:string): HWND;stdcall; external '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);
  if i=0 then
  begin
      Showmessage(' help.chm 幫助文件損壞!');
      exit;
  end;
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');
   end;
end;
function 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');
   end;
end;

上一篇:在Delphi技巧實現權限管理

下一篇:Delphi托盤編程實戰演練

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 欧美一级二级三级 | 精品色区 | 免费av电影网站 | 毛片国产 | 色婷婷综合在线观看 | 久久久精品一区二区三区 | 91精品国产高清久久久久久久久 | 亚洲男人的天堂在线播放 | av高清在线免费观看 | 国产精品夜间视频香蕉 | 久久精品中文字幕 | 亚洲高清在线 | 伦理午夜电影免费观看 | 亚洲欧美一级 | 老司机精品福利视频 | 日本一级中文字幕久久久久久 | 麻豆一区二区 | 久久99精品久久久久久秒播放器 | 蜜臀va亚洲va欧美va天堂 | 精品久久网 | 日韩大片免费观看视频播放 | 国产亚洲精品美女久久久久久久久久 | 亚洲一区二区视频在线 | 国产精久久久久久久妇剪断 | 日本不卡免费新一二三区 | 国产69精品久久久久观看黑料 | 精品91| 国产免费无遮挡 | 亚洲二区视频 | 99精品国产一区二区三区 | 国产精品2区 | 黄色av电影在线 | 成人一区二区三区 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 亚洲视频中文字幕 | 久久4 | 一级毛片免费观看 | 日韩精品一区二区三区老鸭窝 | 十环传奇在线观看完整免费高清 | 国产激情视频在线观看 | 亚洲人成电影网 |