WEB开发网
开发学院软件开发Delphi 如何让程序出现windows标准对话框 阅读

如何让程序出现windows标准对话框

 2006-02-04 13:54:51 来源:WEB开发网   
核心提示: --如何让程序出现windows标准对话框(如:打开文件时的对话框)式样的帮助? --unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;const
 

--------------------------------------------------------------------------
如何让程序出现windows标准对话框(如:打开文件时的对话框)式样的帮助?

 --------------------------------------------------------------------------
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

const
  HH_DISPLAY_TOC  = $0001;
  HH_DISPLAY_TOPIC = $0000;
  HH_CLOSE_ALL   = $0012;
  HH_DISPLAY_INDEX = $0002;
  HH_HELP_CONTEXT  = $000F;
  HH_DISPLAY_SEARCH= $0003;
  HH_DISPLAY_TEXT_POPUP = $000E;

type
  HH_FTS_Query = record
   cbStruct : integer; // sizeof structure
   fUniCodeStrings : bool; // true if all strings are unicode
   pszSearchQuery : PChar; // string with the search query
   iproximity : longint; // Word PRoximity
   fStemmedSearch : bool; // true for stemmed search only
   fTitleOnly : bool; // true for title search only
   fExecute : bool; // true to initiate the search
   pszWindow : PChar; // window to display in
  end; // HH_FTS_Query

  HH_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;


type
  TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   Button4: TButton;
   Button5: TButton;

   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure Button4Click(Sender: TObject);
   procedure Button5Click(Sender: TObject);
  private
   { Private declarations }
  public
   { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function HtmlHelp(hwndCaller: HWND; pszFile: PChar; uCommand: UINT;
   dwData: PDWORD): HWND; stdcall; external 'hhctrl.ocx' Name 'HtmlHelpA';

procedure TForm1.Button1Click(Sender: TObject);
begin
  {
  调用缺省主题帮助
  此调用方式用于没有上下文ID号的情形,dwData可指定一个在CHM文件内的缺省htm文件,
  也可取Nil,这是HtmlHelp API最基本的一种用法。
  }
  HtmlHelp(handle,pchar('help.chm'),HH_DISPLAY_TOPIC,PDWORD(pchar('article.htm')));
  //或:HtmlHelp(handle,pchar('help.chm'),HH_DISPLAY_TOPIC,nil);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  {
  调用关键字帮助
  此调用方式中dwData取索引文件(.hhk)中存在的关键字。
  }
  HtmlHelp(handle,pchar('help.chm'),HH_DISPLAY_INDEX,PDWORD(pchar('ambaSio')));
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  dw: DWORD;
begin
  {
  调用上下文敏感帮助
  此调用方式用于含有映射信息的CHM文件, dwData取映射表中存在的ID号。
  }
  dw := 10;
  HtmlHelp(handle,pchar('>help.chm'),HH_HELP_CONTEXT,PDWORD(@dw));
  //这种方式我没试出来,可能是我的chm文件不含映射信息的缘故。
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  query: HH_FTS_Query;
begin
  {
  调用全文搜索帮助
  }
  with query do
  begin
   cbStruct := sizeof(HH_FTS_Query);
   fUniCodeStrings := false;
   iProximity := 1;
   fStemmedSearch := true;
   fExecute := true;
   fTitleOnly := false;
   pszWindow := 'MainWin';
   pszSearchQuery := nil;
  end;
  HtmlHelp(handle,pchar('help.chm'),HH_DISPLAY_SEARCH,PDWORD(@query));
end;

procedure TForm1.Button5Click(Sender: TObject);
var
  popup: HH_POPUP;
begin
  {
  调用弹出式帮助
  PszFile通常取NULL,也可以指定一个CHM和一个在该CHM文件中的TEXT文件,DwData用
  于指定一个指向HH_POPUP结构的指针。
  }
  with popup do
  begin
   cbStruct := sizeof(HH_POPUP);
   hinst:= 0;
   idString:=1;
   pszText:=nil;
   //pt:= pt;
   GetCursorPos(pt);
   clrForeground:=COLORREF(-1);
   clrBackground:=COLORREF(-1);
   rcMargins.Left := 0;
   rcMargins.Top := 0;
   rcMargins.Right := 25;
   rcMargins.Bottom := 25;
   pszFont:=LPCTSTR('BOLD');   
  end;
  HtmlHelp(handle,pchar('test.chm'),HH_DISPLAY_TEXT_POPUP,PDWORD(@popup));
  end;

end. 

Tags:如何 程序 出现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接