说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在Delphi中怎样调用chm帮助文件,感谢各位大侠!90分送上

编辑:说三道四文库 发布时间:2017-07-26 04:46
HTML文档下载 WORD文档下载 PDF文档下载
请写详细点,90分送上。
uses ShellApi;

ShellExecute(0, 'Open', Pchar('c:\yours.chm'), nil, nil, SW_SHOWNORMAL);
我有一个例程,如果你需要的话可以给你发过去。你的email是?
shellexecute(handle,'open','c:\windows\desktop\aa.chm','','',sW_show);
我从C++中改编的一个单元,包含了Html Help的常见函数和命令定义。


unit MyHTMLHelp;

interface

uses
Windows;

const
// Commands to pass to HtmlHelp()
HH_DISPLAY_TOPIC        = $0000;
HH_HELP_FINDER          = $0000;  // WinHelp equivalent
HH_DISPLAY_TOC          = $0001;  // not currently implemented
HH_DISPLAY_INDEX        = $0002;  // not currently implemented
HH_DISPLAY_SEARCH       = $0003;  // not currently implemented
HH_SET_WIN_TYPE         = $0004;
HH_GET_WIN_TYPE         = $0005;
HH_GET_WIN_HANDLE       = $0006;
HH_ENUM_INFO_TYPE       = $0007;  // Get Info type name, call repeatedly to enumerate, -1 at end
HH_SET_INFO_TYPE        = $0008;  // Add Info type to filter.
HH_SYNC                 = $0009;
HH_RESERVED1            = $000A;
HH_RESERVED2            = $000B;
HH_RESERVED3            = $000C;
HH_KEYWORD_LOOKUP       = $000D;
HH_DISPLAY_TEXT_POPUP   = $000E;  // display string resource id or text in a popup window
HH_HELP_CONTEXT         = $000F;  // display mapped numeric value in dwData
HH_TP_HELP_CONTEXTMENU  = $0010;  // text popup help, same as WinHelp HELP_CONTEXTMENU
HH_TP_HELP_WM_HELP      = $0011;  // text popup help, same as WinHelp HELP_WM_HELP
HH_CLOSE_ALL            = $0012;  // close all windows opened directly or indirectly by the caller
HH_ALINK_LOOKUP         = $0013;  // ALink version of HH_KEYWORD_LOOKUP
HH_GET_LAST_ERROR       = $0014;  // not currently implemented // See HHERROR.h
HH_ENUM_CATEGORY        = $0015; // Get category name, call repeatedly to enumerate, -1 at end
HH_ENUM_CATEGORY_IT     = $0016;  // Get category info type members, call repeatedly to enumerate, -1 at end
HH_RESET_IT_FILTER      = $0017;  // Clear the info type filter of all info types.
HH_SET_INCLUSIVE_FILTER = $0018;  // set inclusive filtering method for untyped topics to be included in display
HH_SET_EXCLUSIVE_FILTER = $0019;  // set exclusive filtering method for untyped topics to be excluded from display
HH_INITIALIZE            =$001C;  // Initializes the help system.
HH_UNINITIALIZE          =$001D;  // Uninitializes the help system.
HH_PRETRANSLATEMESSAGE  = $00fd;  // Pumps messages. (NULL, NULL, MSG*).
HH_SET_GLOBAL_PROPERTY  = $00fc;  // Set a global property. (NULL, NULL, HH_GPROP)

  HHWIN_PROP_TAB_AUTOHIDESHOW = (1 shl 0);    // Automatically hide/show tri-pane window
  HHWIN_PROP_ONTOP            = (1 shl 1);    // Top-most window
  HHWIN_PROP_NOTITLEBAR       = (1 shl 2);    // no title bar
  HHWIN_PROP_NODEF_STYLES     = (1 shl 3);    // no default window styles (only HH_WINTYPE.dwStyles)
  HHWIN_PROP_NODEF_EXSTYLES   = (1 shl 4);    // no default extended window styles (only HH_WINTYPE.dwExStyles)
  HHWIN_PROP_TRI_PANE         = (1 shl 5);    // use a tri-pane window
  HHWIN_PROP_NOTB_TEXT        = (1 shl 6);    // no text on toolbar buttons
  HHWIN_PROP_POST_QUIT        = (1 shl 7);    // post WM_QUIT message when window closes
  HHWIN_PROP_AUTO_SYNC        = (1 shl 8);    // automatically ssync contents and index
  HHWIN_PROP_TRACKING         = (1 shl 9);    // send tracking notification messages
  HHWIN_PROP_TAB_SEARCH       = (1 shl 10);   // include search tab in navigation pane
HHWIN_PROP_TAB_HISTORY      = (1 shl 11);   // include history tab in navigation pane
  HHWIN_PROP_TAB_FAVORITES    = (1 shl 12);   // include favorites tab in navigation pane
  HHWIN_PROP_CHANGE_TITLE     = (1 shl 13);   // Put current HTML title in title bar
  HHWIN_PROP_NAV_ONLY_WIN     = (1 shl 14);   // Only display the navigation window
  HHWIN_PROP_NO_TOOLBAR       = (1 shl 15);   // Don't display a toolbar
  HHWIN_PROP_MENU             = (1 shl 16);   // Menu
  HHWIN_PROP_TAB_ADVSEARCH    = (1 shl 17);   // Advanced FTS UI.
  HHWIN_PROP_USER_POS         = (1 shl 18);   // After initial creation, user controls window size/position
  HHWIN_PROP_TAB_CUSTOM1      = (1 shl 19);   // Use custom tab #1
  HHWIN_PROP_TAB_CUSTOM2      = (1 shl 20);   // Use custom tab #2
  HHWIN_PROP_TAB_CUSTOM3      = (1 shl 21);   // Use custom tab #3
  HHWIN_PROP_TAB_CUSTOM4      = (1 shl 22);   // Use custom tab #4
  HHWIN_PROP_TAB_CUSTOM5      = (1 shl 23);   // Use custom tab #5
  HHWIN_PROP_TAB_CUSTOM6      = (1 shl 24);   // Use custom tab #6
  HHWIN_PROP_TAB_CUSTOM7      = (1 shl 25);   // Use custom tab #7
  HHWIN_PROP_TAB_CUSTOM8      = (1 shl 26);   // Use custom tab #8
  HHWIN_PROP_TAB_CUSTOM9      = (1 shl 27);   // Use custom tab #9
  HHWIN_TB_MARGIN             = (1 shl 28);   // the window type has a margin

  HHWIN_PARAM_PROPERTIES      = (1 shl 1);    // valid fsWinProperties
  HHWIN_PARAM_STYLES          = (1 shl 2);    // valid dwStyles
  HHWIN_PARAM_EXSTYLES        = (1 shl 3);    // valid dwExStyles
  HHWIN_PARAM_RECT            = (1 shl 4);    // valid rcWindowPos
  HHWIN_PARAM_NAV_WIDTH       = (1 shl 5);    // valid iNavWidth
  HHWIN_PARAM_SHOWSTATE       = (1 shl 6);    // valid nShowState
  HHWIN_PARAM_INFOTYPES       = (1 shl 7);    // valid apInfoTypes
  HHWIN_PARAM_TB_FLAGS        = (1 shl 8);    // valid fsToolBarFlags
  HHWIN_PARAM_EXPANSION       = (1 shl 9);    // valid fNotExpanded
  HHWIN_PARAM_TABPOS          = (1 shl 10);   // valid tabpos
  HHWIN_PARAM_TABORDER        = (1 shl 11);   // valid taborder
  HHWIN_PARAM_HISTORY_COUNT   = (1 shl 12);   // valid cHistory
  HHWIN_PARAM_CUR_TAB         = (1 shl 13);   // valid curNavType

  HHWIN_BUTTON_EXPAND         = (1 shl 1);   // Expand/contract button
  HHWIN_BUTTON_BACK           = (1 shl 2);   // Back button
  HHWIN_BUTTON_FORWARD        = (1 shl 3);   // Forward button
  HHWIN_BUTTON_STOP           = (1 shl 4);   // Stop button
  HHWIN_BUTTON_REFRESH        = (1 shl 5);   // Refresh button
  HHWIN_BUTTON_HOME           = (1 shl 6);   // Home button
  HHWIN_BUTTON_BROWSE_FWD     = (1 shl 7);    // not implemented
  HHWIN_BUTTON_BROWSE_BCK     = (1 shl 8);    // not implemented
  HHWIN_BUTTON_NOTES          = (1 shl 9);    // not implemented
HHWIN_BUTTON_CONTENTS       = (1 shl 10);   // not implemented
  HHWIN_BUTTON_SYNC           = (1 shl 11);   // Sync button
  HHWIN_BUTTON_OPTIONS        = (1 shl 12);   // Options button
  HHWIN_BUTTON_PRINT          = (1 shl 13);   // Print button
  HHWIN_BUTTON_INDEX          = (1 shl 14);   // not implemented
  HHWIN_BUTTON_SEARCH         = (1 shl 15);   // not implemented
  HHWIN_BUTTON_HISTORY        = (1 shl 16);   // not implemented
HHWIN_BUTTON_FAVORITES      = (1 shl 17);   // not implemented
  HHWIN_BUTTON_JUMP1          = (1 shl 18);
  HHWIN_BUTTON_JUMP2          = (1 shl 19);
  HHWIN_BUTTON_ZOOM           = (1 shl 20);
  HHWIN_BUTTON_TOC_NEXT       = (1 shl 21);
  HHWIN_BUTTON_TOC_PREV       = (1 shl 22);

HHWIN_DEF_BUTTONS =  HHWIN_BUTTON_EXPAND
or HHWIN_BUTTON_BACK
or HHWIN_BUTTON_OPTIONS
or HHWIN_BUTTON_PRINT;

// Button IDs
  IDTB_EXPAND      =       200;
  IDTB_CONTRACT    =       201;
  IDTB_STOP        =       202;
  IDTB_REFRESH     =       203;
  IDTB_BACK        =       204;
  IDTB_HOME        =       205;
  IDTB_SYNC        =       206;
  IDTB_PRINT       =       207;
  IDTB_OPTIONS     =       208;
  IDTB_FORWARD     =       209;
  IDTB_NOTES       =       210; // not implemented
  IDTB_BROWSE_FWD  =       211;
  IDTB_BROWSE_BACK =       212;
  IDTB_CONTENTS    =       213; // not implemented
  IDTB_INDEX       =       214; // not implemented
  IDTB_SEARCH      =       215; // not implemented
  IDTB_HISTORY     =       216; // not implemented
  IDTB_FAVORITES   =       217; // not implemented
  IDTB_JUMP1       =       218;
  IDTB_JUMP2       =       219;
  IDTB_CUSTOMIZE   =       221;
  IDTB_ZOOM        =       222;
IDTB_TOC_NEXT    =       223;
IDTB_TOC_PREV    =       224;

// Notification codes
HHN_FIRST       =       (0-860);
HHN_LAST        =       (0-879);

HHN_NAVCOMPLETE =  (HHN_FIRST-0);
HHN_TRACK       =  (HHN_FIRST-1);
HHN_WINDOW_CREATE =(HHN_FIRST-2);

type
tagHHN_NOTIFY = record
hdr : NMHDR;
pszUrl: PChar; // Multi-byte, null-terminated string
end;
HHN_NOTIFY = tagHHN_NOTIFY;

tagHH_POPUP = record
cbStruct:       integer;    // sizeof this structure
hinst:          longint;    // instance handle for string resource
idString:       UINT;       // string resource id, or text id if pszFile is specified in HtmlHelp call
pszText:        LPCTSTR;    // used if idString is zero
pt:             TPOINT;     // top center of popup window
clrForeground:  COLORREF;   // use -1 for default
clrBackground:  COLORREF;   // use -1 for default
rcMargins:      TRECT;      // amount of space between edges of window and text, -1 for each member to ignore
pszFont:        LPCTSTR;    // facename, point size, char set, BOLD ITALIC UNDERLINE
end;

HH_POPUP = tagHH_POPUP;

tagHH_AKLINK = record
cbStruct:    integer;    // sizeof this structure
fReserved:   BOOL;       // must be FALSE (really!)
pszKeywords: LPCTSTR;    // semi-colon separated keywords
pszUrl:      LPCTSTR;    // URL to jump to if no keywords found (may be NULL)
pszMsgText:  LPCTSTR;    // Message text to display in MessageBox if pszUrl is NULL and no keyword match
pszMsgTitle: LPCTSTR;    // Message text to display in MessageBox if pszUrl is NULL and no keyword match
pszWindow:   LPCTSTR;    // Window to display URL in
fIndexOnFail:BOOL;       // Displays index if keyword lookup fails.
end;
HH_AKLINK = tagHH_AKLINK;

const
HHWIN_NAVTYPE_TOC          = 0;
HHWIN_NAVTYPE_INDEX        = 1;
HHWIN_NAVTYPE_SEARCH       = 2;
HHWIN_NAVTYPE_FAVORITES    = 3;
HHWIN_NAVTYPE_HISTORY      = 4;   // not implemented
HHWIN_NAVTYPE_AUTHOR       = 5;
HHWIN_NAVTYPE_CUSTOM_FIRST = 11;

IT_INCLUSIVE = 0;
IT_EXCLUSIVE = 1;
IT_HIDDEN    = 2;

type
tagHH_ENUM_IT=record
cbStruct :       integer;     // size of this structure
iType:           integer;     // the type of the information type ie. Inclusive, Exclusive, or Hidden
pszCatName:      LPCSTR;      // Set to the name of the Category to enumerate the info types in a category; else NULL
pszITName:       LPCSTR;      // volitile pointer to the name of the infotype. Allocated by call. Caller responsible for freeing
pszITDescription:LPCSTR;      // volitile pointer to the description of the infotype.
end;

HH_ENUM_IT  =  tagHH_ENUM_IT;
PHH_ENUM_IT = ^tagHH_ENUM_IT;

tagHH_ENUM_CAT = record
 cbStruct:          integer;  // size of this structure
 pszCatName:        LPCSTR;   // volitile pointer to the category name
 pszCatDescription: LPCSTR;   // volitile pointer to the category description
end;

HH_ENUM_CAT = tagHH_ENUM_CAT;
PHH_ENUM_CAT = ^tagHH_ENUM_CAT;

tagHH_SET_INFOTYPE = record
cbStruct:          integer;     // the size of this structure
pszCatName:        LPCSTR ;     // the name of the category, if any, the InfoType is a member of.
pszInfoTypeName:   LPCSTR ;     // the name of the info type to add to the filter
end;

HH_SET_INFOTYPE  = tagHH_SET_INFOTYPE;
PHH_SET_INFOTYPE = ^tagHH_SET_INFOTYPE;

HH_INFOTYPE  = DWORD;
PHH_INFOTYPE = ^HH_INFOTYPE;

const
HHWIN_NAVTAB_TOP          = 0;
HHWIN_NAVTAB_LEFT         = 1;
HHWIN_NAVTAB_BOTTOM       = 2;


HH_MAX_TABS          = 19;  // maximum number of tabs

HH_TAB_CONTENTS      = 0;
HH_TAB_INDEX         = 1;
HH_TAB_SEARCH        = 2;
HH_TAB_FAVORITES     = 3;
HH_TAB_HISTORY       = 4;
HH_TAB_AUTHOR        = 5;

HH_TAB_CUSTOM_FIRST  = 11;
HH_TAB_CUSTOM_LAST   = HH_MAX_TABS;

HH_MAX_TABS_CUSTOM   = HH_TAB_CUSTOM_LAST - HH_TAB_CUSTOM_FIRST + 1;


// HH_DISPLAY_SEARCH Command Related Structures and Constants
HH_FTS_DEFAULT_PROXIMITY = -1;

type
tagHH_FTS_QUERY=record
cbStruct:         integer;    // Sizeof structure in bytes.
fUniCodeStrings:  BOOL;      // TRUE if all strings are unicode.
pszSearchQuery:   LPCTSTR;// String containing the search query.
iProximity:       LongInt;      // Word proximity.
fStemmedSearch:   BOOL;      // TRUE for StemmedSearch only.
fTitleOnly:       BOOL;      // TRUE for Title search only.
fExecute:         BOOL;      // TRUE to initiate the search.
pszWindow:        LPCTSTR;// Window to display in
end;
HH_FTS_QUERY = tagHH_FTS_QUERY;

// HH_WINTYPE Structure

tagHH_WINTYPE =record
cbStruct:        integer;    // IN: size of this structure including all Information Types
fUniCodeStrings: BOOL;       // IN/OUT: TRUE if all strings are in UNICODE
pszType:         LPCTSTR;    // IN/OUT: Name of a type of window
fsValidMembers:  DWORD;      // IN: Bit flag of valid members (HHWIN_PARAM_)
fsWinProperties: DWORD;      // IN/OUT: Properties/attributes of the window (HHWIN_)

pszCaption:      LPCTSTR;    // IN/OUT: Window title
dwStyles:        DWORD;      // IN/OUT: Window styles
dwExStyles:      DWORD;      // IN/OUT: Extended Window styles
rcWindowPos:     TRECT;      // IN: Starting position, OUT: current position
nShowState:      integer;    // IN: show state (e.g., SW_SHOW)

hwndHelp:     HWND;          // OUT: window handle
hwndCaller:   HWND;          // OUT: who called this window

paInfoTypes: ^HH_INFOTYPE;   // IN: Pointer to an array of Information Types


// The following members are only valid if HHWIN_PROP_TRI_PANE is set
hwndToolBar:     HWND;       // OUT: toolbar window in tri-pane window
hwndNavigation:  HWND;       // OUT: navigation window in tri-pane window
hwndHTML:        HWND;       // OUT: window displaying HTML in tri-pane window
iNavWidth:       integer;    // IN/OUT: width of navigation window
rcHTML:          TRECT;      // OUT: HTML window coordinates

pszToc:         LPCTSTR;     // IN: Location of the table of contents file
pszIndex:       LPCTSTR;     // IN: Location of the index file
pszFile:        LPCTSTR;     // IN: Default location of the html file
pszHome:        LPCTSTR;     // IN/OUT: html file to display when Home button is clicked
fsToolBarFlags: DWORD;       // IN: flags controling the appearance of the toolbar
fNotExpanded:   BOOL;        // IN: TRUE/FALSE to contract or expand, OUT: current state
curNavType:     integer;     // IN/OUT: UI to display in the navigational pane
tabpos:         integer;     // IN/OUT: HHWIN_NAVTAB_TOP, HHWIN_NAVTAB_LEFT, or HHWIN_NAVTAB_BOTTOM
idNotify:       integer;     // IN: ID to use for WM_NOTIFY messages
tabOrder:       array[0..HH_MAX_TABS]of BYTE;       // IN/OUT: tab order: Contents, Index, Search, History, Favorites, Reserved 1-5, Custom tabs
cHistory:       integer;     // IN/OUT: number of history items to keep (default is 30)
pszJump1:       LPCTSTR;     // Text for HHWIN_BUTTON_JUMP1
pszJump2:       LPCTSTR;     // Text for HHWIN_BUTTON_JUMP2
pszUrlJump1:    LPCTSTR;     // URL for HHWIN_BUTTON_JUMP1
pszUrlJump2:    LPCTSTR;     // URL for HHWIN_BUTTON_JUMP2
rcMinSize:      TRECT;       // Minimum size for window (ignored in version 1)
cbInfoTypes:    integer;     // size of paInfoTypes:
pszCustomTabs:  LPCTSTR;     // multiple zero-terminated strings
end;

HH_WINTYPE = tagHH_WINTYPE;
PHH_WINTYPE = ^tagHH_WINTYPE;

THHACT = (
    HHACT_TAB_CONTENTS,
    HHACT_TAB_INDEX,
    HHACT_TAB_SEARCH,
    HHACT_TAB_HISTORY,
    HHACT_TAB_FAVORITES,

    HHACT_EXPAND,
    HHACT_CONTRACT,
    HHACT_BACK,
    HHACT_FORWARD,
    HHACT_STOP,
    HHACT_REFRESH,
    HHACT_HOME,
    HHACT_SYNC,
    HHACT_OPTIONS,
    HHACT_PRINT,
    HHACT_HIGHLIGHT,
    HHACT_CUSTOMIZE,
    HHACT_JUMP1,
    HHACT_JUMP2,
    HHACT_ZOOM,
    HHACT_TOC_NEXT,
HHACT_TOC_PREV,
HHACT_NOTES,
HHACT_LAST_ENUM
);

tagHHNTRACK=record
hdr:          NMHDR;
pszCurUrl:    PChar;         // Multi-byte, null-terminated string
idAction:     integer;       // HHACT_ value
phhWinType:   ^HH_WINTYPE;   // Current window type structure
end;
HHNTRACK = tagHHNTRACK;

const
// Use the following for GetProcAddress to load from hhctrl.ocx
   ATOM_HTMLHELP_API_ANSI   =  PChar(DWORD(WORD(14)));
   ATOM_HTMLHELP_API_UNICODE = PChar(DWORD(WORD(15)));

///////////////////////////////////////////////////////////////////////////////
//
// Global Control Properties.
//
// tagHH_GPROPID = (
const
    HH_GPROPID_SINGLETHREAD      =1;  // VARIANT_BOOL: True for single thread
    HH_GPROPID_TOOLBAR_MARGIN    =2;  // long: Provides a left/right margin around the toolbar.
    HH_GPROPID_UI_LANGUAGE       =3;  // long: LangId of the UI.
    HH_GPROPID_CURRENT_SUBSET    =4;  // BSTR: Current subset.
    HH_GPROPID_CONTENT_LANGUAGE  =5;  // long: LandId for desired content.
// );
//  HH_GPROPID = tagHH_GPROPID;
type
HH_GPROPID = integer;


///////////////////////////////////////////////////////////////////////////////
//
// Global Property structure
//
tagHH_GLOBAL_PROPERTY=record
id:       HH_GPROPID;
vari:      Variant;
end;

HH_GLOBAL_PROPERTY = tagHH_GLOBAL_PROPERTY;

DWORD_PTR = ^DWORD;


THTMLHelpA = function (hwndCaller: HWND; pszFile: LPCSTR;
uCommand:DWORD; dwData: DWORD): HWND; stdcall;
THtmlHelpW = function (hwndCaller: HWND; pszFile: PWideChar;
uCommand:DWORD; dwData: DWORD): HWND; stdcall;
{$IFDEF UNICODE}
THTMLHelp = THTMLHelpW;
{$ELSE}
THTMLHelp = THTMLHelpA;
{$ENDIF}

function HTMLHelpA(hwndCaller: HWND; pszFile: LPCSTR;
uCommand: DWORD; dwData: DWORD): HWND; stdcall;
function HtmlHelpW(hwndCaller: HWND; pszFile: PWideChar;
uCommand: DWORD; dwData: DWORD): HWND; stdcall;
{$IFDEF UNICODE}
function HtmlHelp(hwndCaller: HWND; pszFile: PWideChar;
uCommand: DWORD; dwData: DWORD): HWND; stdcall;
{$ELSE}
function HTMLHelp(hwndCaller: HWND; pszFile: LPCSTR;
uCommand: DWORD; dwData: DWORD): HWND; stdcall;
{$ENDIF}

function HTMLHelpOK: Boolean;

implementation

var
hHHCtrlLib: THandle;
pHTMLHelpA: THTMLHelpA;
pHTMLHelpW: THTMLHelpW;
pHTMLHelp : THTMLHelp;

function HTMLHelpOK: Boolean;
begin
Result := hHHCtrlLib <> 0;
end;

function HTMLHelpA(hwndCaller:HWND; pszFile: LPCSTR;
uCommand:DWORD; dwData: DWORD):HWND;
begin
if Assigned(pHTMLHelpA) then
Result := pHTMLHelpA(hwndCaller, pszFile, uCommand, dwData)
else
Result := 0;
end;

function HtmlHelpW(hwndCaller : HWND; pszFile: PWideChar;
uCommand: DWORD; dwData : DWORD) : HWND;
begin
if Assigned(pHTMLHelpW) then
Result := pHTMLHelpW(hwndCaller, pszFile, uCommand, dwData)
else
Result := 0;
end;

{$IFDEF UNICODE}
function HtmlHelp(hwndCaller : HWND; pszFile: PWideChar;
uCommand: DWORD; dwData : DWORD) : HWND;
{$ELSE}
function HTMLHelp(hwndCaller:HWND; pszFile: LPCSTR;
uCommand:DWORD; dwData: DWORD):HWND;
{$ENDIF}
begin
if Assigned(pHTMLHelp) then
Result := pHTMLHelp(hwndCaller, pszFile, uCommand, dwData)
else
Result := 0;
end;

initialization
begin
hHHCtrlLib := LoadLibrary('HHCtrl.ocx');
if HTMLHelpOK then begin
pHTMLHelpA := GetProcAddress(hHHCtrlLib, 'HtmlHelpA');
pHTMLHelpW := GetProcAddress(hHHCtrlLib, 'HtmlHelpW');
{$IFDEF UNICODE}
pHtmlHelp := pHTMLHelpW;
{$ELSE}
pHtmlHelp := pHTMLHelpA;
{$ENDIF}
end;
end;

finalization
begin
 if HTMLHelpOK then FreeLibrary(hHHCtrlLib);
end;

end.
 
恐怖而又冗长!
To Wingsun:
    可以发一份给我吗?我的地址是:mrxiong@21cn.com ,多谢了!
为数据库建立索引-Delphi资料 掀开SQL Server 7.0的面纱-Delphi资料 限制数据库记录数-Delphi资料 向数据库发送密码-Delphi资料 一个关于字符串的小问题-Delphi资料 用 QuickReport for Delphi 制作报表 用Delphi 开发数据库程序经验三则 用Delphi 实 现 不 同 数 据 库 系 统 之 间 的 数 据 转 移 用DELPHI本身的控件输出TABLE表数据 用Delphi编程访问SQLServer数据库 用delphi编写医院的复杂报表 用Delphi程序维护Paradox 数据表的索引 用Delphi的InterBase数据库开发C&amp;S应用程序 用Delphi进行数据库之间转换 用Delphi开发“瘦”单机数据库应用系统 用Delphi如何实现VFP中的Cache特性 用Delphi设计数据库应用的几点体会 在我们日常工作中,常会碰到这样一个难题:一大堆-Delphi资料 用DELPHI制作应用软件 用Dephi 程 序 维 护Paradox 数 据 表 的 索 引-Delphi资料 用Dephi程序维护Paradox数据表的索引-Delphi资料 用InstallShield制作数据库应用系统的安装程序-Delphi资料 在BDE中使用ASCII-Delphi资料 在DBMemo中查找文字-Delphi资料 在Delphi 程序中维护DBF 数据库 在Delphi 中 利 用 Tbatch 组 件 完 成 数 据 批 处 理 在Delphi 中使用计算出的字段 在Delphi3 程 序 中自 动 检 测、 建 立 数 据 库 别 名 和 表 格 在Delphi3程序中自动检测、建立数据库别名和表格 在Delphi4 BDE中配置Access数据库 在Delphi5 中修改了Delphi自带的VCL Source文件后怎样重建Delphi的库文 请问 0x80030002 是什么错误呀? 哪里能下载poi包 pb8中怎样打开pb7的*.pbl文件? 可不可以控制菜单的一个子菜单不可见? helpkeyword属性设置问题 我想自己攒1台机器,用来家用和学习,比如学.net等,打算在4000—5500左右,请大家帮忙推荐一下给怎样配置? 100分悬赏,求可以通过身份验证的发送电子邮件的程序的例子,决不食言。 flash中有没有类似photoshop中的模糊滤镜的功能? 运行中终止系统! 怎样实现单击展开一个节点 请问哪里有VTune Profiler下载?据说它能分析VC代码中各函数所占用的开销 请教:用简单的查询来说明分布式数据库是怎么实现的? 事务日至到底有什么用呀? 两个线程共同调用一个静态函数,如何在一个线程调用的时候,阻塞另一线程的调用? 定制控件可不可以使用用户控件作为子控件? 我的困惑,一个值得深思的问题 存储过程,我再加一个参数@sessionuser char(8),在调用该存储过程时,我如何把参数传给sp_querycard? 如何实现页面剪切? hot, hot, hot! 有关Java Swing的编程问题 两个线程共同调用一个静态函数,如何在一个线程调用的时候,阻塞另一线程的调用? 如何将程序做成服务的形势,如何调用,有没有这样的实例啊 如何在2000下進行命令行撥號 打印问题请教!!急!!! 來取分關於weblogic7 俺也灌一次水: 45/59 = ? 一个关于处理WORD文档的问题? 喜欢许巍 的请进来 不通过DataSource 如何给DataGrid 的DataGridBoolColumn列赋值?(在线等待中...) 谁有MicroStation BASIC开发语言参考中文版 请问:如何通过JAVA程序访问Web页面? Win2000的最小安装需要多少容量?快抢分啦! 如何将一个table从原来的tablespace移到另一个tablespace 计算一个月有几周,星期一为第一天,相关语句 骆驼您好,刚才没看到你的回贴的时候,那个贴我已经结贴了,我还有问题请教,请进,多谢。 请问哪里有VTune Profiler下载?据说它能分析VC代码中各函数所占用的开销 请问如何在ftp上收发xml文件。。。请具体点告诉我或贴源码或贴相关文章地址 文件解析 VC的OPENGL编程显示提示框时,显示内容是以前绘图的,不是最新绘图的,怎么办? 请问为什么create table bbb as select * from aaa ,aaa上面的缺省值还有索引都掉了呢? 如何在数据库里存文本文件? 用什么工具可以查看内存是否有泄露, Win2000上是什么, Win98上是什么 为什么用oledbadapter不能更新数据库阿? 软件陷阱问题 请问哪里有VTune Profiler下载?据说它能分析VC代码中各函数所占用的开销 在weblogic7.0上面jsp文件运行问题 请教关于打印遇到的问题 谁能个--报表例子(水晶报表。vb.net)--报表的数据源要是动态生成的。 利用WMI管理WINDOWS 请教:如何在chm帮助文件中执行应用程序。谢谢 Weblogic+Mysql的Jsp/Java程序的数据库该怎样连接?? 在java代码中引用php的变量?请问如何写? 卢浮宫胜利女神像将“闭门美容”普京关注远东洪灾赔偿事宜 银行或免去美国媒体称普京在叙利亚问题上一直保持联合国叙化武调查即将结束 潘基文缩短美国将于30日公布叙化武事件销密版情沙特将家暴列入违法行为 施暴者最多面德媒推测联合国调查员离开叙利亚后空袭叙利亚反对派称政府军已将导弹转至安全德媒称西方对叙利亚行动有临阵退缩之嫌德国失业人数上升 总数已接近300万美国加州大火持续肆虐 政府出动无人机德媒称西方对叙利亚行动有临阵退缩之嫌新西兰窃贼扮“乳牛”超市偷牛排 警方叙利亚文化遗产遭战火摧残 联合国组织俄罗斯银行或免去部分远东地区洪灾灾民普京关注远东洪灾赔偿事宜 银行或免去美国加州大火持续肆虐 政府出动无人机美议员称奥巴马仍在权衡对叙化武事件应日本企业慰劳加班员工 聘15位女经理俄媒称至少12个北约成员国拒参与对叙美国将于30日公布叙化武事件销密版情这点的机会,不抓住将后悔终生!如何利用新浪博客推广网店、微商、淘宝内黄县审计局狠抓民生资金审计副市长刘建发看望付艳军一家CRB600H高强钢筋应用技术规程编程艳玲:“我想把爱传递下去”省养老服务业发展政策落实情况督查组莅绿色世界公益理财靠谱吗?怎么样注册?文峰区总工会举办第二届冬泳比赛激励每个孩子做最好的自己汇集三大功能 上海虹桥商务区打造长三图文:暴雨致居庸关长城护坡滑坡图文:17岁难民火车上持斧砍乘客日本里约奥运金牌目标为上届两倍 为迎图文:台湾旅游大巴起火24名大陆游客图文:中考后择校:三牛中美中学到底能楚天都市报讯 □赵自力“五”林传奇:一梦值10万随地吐痰被推下站台不只是惊悚2196万!湖北环保史上开出最大罚单没细看合同 押金难要回
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘