LazStats: Show help contents. Improved help system. More entries in chm help file.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7606 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-08-16 13:22:07 +00:00
parent 4d6f43d583
commit f48d460f8f
8 changed files with 91 additions and 47 deletions

Binary file not shown.

View File

@ -1408,7 +1408,7 @@
</CodeGeneration> </CodeGeneration>
<Linking> <Linking>
<Debugging> <Debugging>
<UseExternalDbgSyms Value="True"/> <DebugInfoType Value="dsDwarf2"/>
</Debugging> </Debugging>
<LinkSmart Value="True"/> <LinkSmart Value="True"/>
<Options> <Options>
@ -1417,6 +1417,12 @@
</Win32> </Win32>
</Options> </Options>
</Linking> </Linking>
<Other>
<CustomOptions Value="-dUSE_EXTERNAL_HELP_VIEWER"/>
<OtherDefines Count="1">
<Define0 Value="USE_EXTERNAL_HELP_VIEWER"/>
</OtherDefines>
</Other>
</CompilerOptions> </CompilerOptions>
<Debugging> <Debugging>
<Exceptions Count="7"> <Exceptions Count="7">

View File

@ -59,14 +59,14 @@ object HelpFrm: THelpFrm
object HTMLHelpDatabase1: THTMLHelpDatabase object HTMLHelpDatabase1: THTMLHelpDatabase
BaseURL = 'file://html/' BaseURL = 'file://html/'
AutoRegister = True AutoRegister = True
KeywordPrefix = 'HTML/' KeywordPrefix = 'html/'
left = 24 Left = 32
top = 24 Top = 24
end end
object HTMLBrowserHelpViewer1: THTMLBrowserHelpViewer object HTMLBrowserHelpViewer1: THTMLBrowserHelpViewer
BrowserParams = '%s' BrowserParams = '%s'
AutoRegister = True AutoRegister = True
left = 168 Left = 168
top = 24 Top = 24
end end
end end

View File

@ -5,7 +5,7 @@ unit HelpUnit;
interface interface
uses uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, {FileUtil, }LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, LazHelpHTML, HelpIntfs; StdCtrls, LazHelpHTML, HelpIntfs;
type type
@ -30,8 +30,44 @@ type
var var
HelpFrm: THelpFrm; HelpFrm: THelpFrm;
procedure ShowHelpTopic(AHelpContext: Word); overload;
procedure ShowHelpTopic(AHelpID: PChar); overload;
implementation implementation
uses
{$IFDEF USE_EXTERNAL_HELP_VIEWER}
{$IFDEF MSWINDOWS}
htmlhelp,
{$ENDIF}
{$ENDIF}
LazFileUtils;
procedure ShowHelpTopic(AHelpContext: Word);
var
fn: UnicodeString;
begin
{$IFDEF USE_EXTERNAL_HELP_VIEWER}
{$IFDEF MSWINDOWS}
// see: http://www.helpware.net/download/delphi/hh_doc.txt
fn := UnicodeString(Application.HelpFile);
htmlhelp.HtmlHelpW(0, PWideChar(fn), HH_HELP_CONTEXT, AHelpContext);
{$ENDIF}
{$ENDIF}
end;
procedure ShowHelpTopic(AHelpID: PChar);
var
topic: UnicodeString;
begin
{$IFDEF USE_EXTERNAL_HELP_VIEWER}
{$IFDEF MSWINDOWS}
topic := UnicodeString(Application.HelpFile + '::/' + AHelpID);
htmlhelp.HtmlHelpW(0, PWideChar(topic), HH_DISPLAY_TOPIC, 0);
{$ENDIF}
{$ENDIF}
end;
{ THelpFrm } { THelpFrm }
procedure THelpFrm.FormShow(Sender: TObject); procedure THelpFrm.FormShow(Sender: TObject);
@ -45,8 +81,11 @@ begin
end; end;
procedure THelpFrm.HelpBtnClick(Sender: TObject); procedure THelpFrm.HelpBtnClick(Sender: TObject);
var
fn: String;
begin begin
ShowHelpOrErrorForKeyword('','HTML/LAZTOC.html'); fn := Application.Location + 'html/LAZTOC.html';
ShowHelpOrErrorForKeyword('', SwitchPathDelims(fn, true)); //Application.Location + 'html/LAZTOC.html');
end; end;
initialization initialization

View File

@ -3,6 +3,8 @@ object OS3MainFrm: TOS3MainFrm
Height = 519 Height = 519
Top = 194 Top = 194
Width = 725 Width = 725
HelpType = htKeyword
HelpKeyword = 'TableofContents.htm'
Caption = 'LazStats' Caption = 'LazStats'
ClientHeight = 499 ClientHeight = 499
ClientWidth = 725 ClientWidth = 725
@ -234,8 +236,8 @@ object OS3MainFrm: TOS3MainFrm
OnPrepareCanvas = DataGridPrepareCanvas OnPrepareCanvas = DataGridPrepareCanvas
end end
object MainMenu1: TMainMenu object MainMenu1: TMainMenu
left = 192 Left = 192
top = 200 Top = 200
object MenuItem1: TMenuItem object MenuItem1: TMenuItem
Caption = 'File' Caption = 'File'
object NewFileBtn: TMenuItem object NewFileBtn: TMenuItem
@ -1050,22 +1052,23 @@ object OS3MainFrm: TOS3MainFrm
object MenuItem46: TMenuItem object MenuItem46: TMenuItem
Caption = '-' Caption = '-'
end end
object mnuShowTOC: TMenuItem
Caption = 'Table of Contents'
HelpContext = 152
OnClick = mnuShowTOCClick
end
object GridUse: TMenuItem object GridUse: TMenuItem
Caption = 'Using the Grid' Caption = 'Using the Grid'
OnClick = GridUseClick OnClick = GridUseClick
end end
object HelpContents: TMenuItem
Caption = 'General Help'
OnClick = HelpContentsClick
end
end end
end end
object OpenDialog1: TOpenDialog object OpenDialog1: TOpenDialog
left = 312 Left = 312
top = 200 Top = 200
end end
object SaveDialog1: TSaveDialog object SaveDialog1: TSaveDialog
left = 432 Left = 432
top = 200 Top = 200
end end
end end

View File

@ -7,18 +7,13 @@ unit MainUnit;
{$mode objfpc}{$H+} {$mode objfpc}{$H+}
{$DEFINE USE_EXTERNAL_HELP_VIEWER} //{$DEFINE USE_EXTERNAL_HELP_VIEWER}
interface interface
uses uses
LCLType, Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, LCLType, Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics,
Dialogs, Menus, ExtCtrls, StdCtrls, Grids, Dialogs, Menus, ExtCtrls, StdCtrls, Grids,
{$IFDEF USE_EXTERNAL_HELP_VIEWER}
{$IFDEF MSWINDOWS}
HtmlHelp,
{$ENDIF}
{$ENDIF}
Globals, DataProcs, DictionaryUnit; Globals, DataProcs, DictionaryUnit;
type type
@ -110,6 +105,7 @@ type
MenuItem50: TMenuItem; MenuItem50: TMenuItem;
MenuItem51: TMenuItem; MenuItem51: TMenuItem;
MenuItem52: TMenuItem; MenuItem52: TMenuItem;
mnuShowTOC: TMenuItem;
SimpChiSqr: TMenuItem; SimpChiSqr: TMenuItem;
SRHItem: TMenuItem; SRHItem: TMenuItem;
OneCaseAnova: TMenuItem; OneCaseAnova: TMenuItem;
@ -137,7 +133,6 @@ type
pcontrochart: TMenuItem; pcontrochart: TMenuItem;
OpenDialog1: TOpenDialog; OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog; SaveDialog1: TSaveDialog;
HelpContents: TMenuItem;
InsNewCol: TMenuItem; InsNewCol: TMenuItem;
CopyCol: TMenuItem; CopyCol: TMenuItem;
CutCol: TMenuItem; CutCol: TMenuItem;
@ -282,8 +277,7 @@ type
procedure CutColClick(Sender: TObject); procedure CutColClick(Sender: TObject);
procedure CutRowMenuClick(Sender: TObject); procedure CutRowMenuClick(Sender: TObject);
procedure DataGridClick(Sender: TObject); procedure DataGridClick(Sender: TObject);
procedure DataGridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState procedure DataGridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
);
procedure DataGridKeyPress(Sender: TObject; var Key: char); procedure DataGridKeyPress(Sender: TObject; var Key: char);
procedure DataGridPrepareCanvas(sender: TObject; aCol, aRow: Integer; procedure DataGridPrepareCanvas(sender: TObject; aCol, aRow: Integer;
aState: TGridDrawState); aState: TGridDrawState);
@ -303,7 +297,7 @@ type
procedure GrdBkMnuClick(Sender: TObject); procedure GrdBkMnuClick(Sender: TObject);
procedure GridUseClick(Sender: TObject); procedure GridUseClick(Sender: TObject);
procedure GrpFreqClick(Sender: TObject); procedure GrpFreqClick(Sender: TObject);
procedure HelpContentsClick(Sender: TObject); //procedure HelpContentsClick(Sender: TObject);
procedure homotestClick(Sender: TObject); procedure homotestClick(Sender: TObject);
procedure HypergeoProbClick(Sender: TObject); procedure HypergeoProbClick(Sender: TObject);
procedure InsNewColClick(Sender: TObject); procedure InsNewColClick(Sender: TObject);
@ -379,6 +373,7 @@ type
procedure MenuItem98Click(Sender: TObject); procedure MenuItem98Click(Sender: TObject);
procedure MenuItem99Click(Sender: TObject); procedure MenuItem99Click(Sender: TObject);
procedure MenuItem30Click(Sender: TObject); procedure MenuItem30Click(Sender: TObject);
procedure mnuShowTOCClick(Sender: TObject);
procedure MultDistsClick(Sender: TObject); procedure MultDistsClick(Sender: TObject);
procedure MultXvsYClick(Sender: TObject); procedure MultXvsYClick(Sender: TObject);
procedure NestedABCClick(Sender: TObject); procedure NestedABCClick(Sender: TObject);
@ -1339,6 +1334,9 @@ var
ts: TTextStyle; ts: TTextStyle;
justif: String; justif: String;
begin begin
if not (Sender = DataGrid) then
exit;
ts := DataGrid.Canvas.TextStyle; ts := DataGrid.Canvas.TextStyle;
justif := DictionaryFrm.DictGrid.Cells[7, aCol]; justif := DictionaryFrm.DictGrid.Cells[7, aCol];
if justif = '' then justif := 'L'; if justif = '' then justif := 'L';
@ -1589,27 +1587,17 @@ end;
// Call HTML help (.chm file) // Call HTML help (.chm file)
function TOS3MainFrm.HelpHandler(Command: Word; Data: PtrInt; function TOS3MainFrm.HelpHandler(Command: Word; Data: PtrInt;
var CallHelp: Boolean): Boolean; var CallHelp: Boolean): Boolean;
var
topic: UnicodeString;
res: Integer;
fn: UnicodeString;
begin begin
if Command = HELP_CONTEXT then if Command = HELP_CONTEXT then
begin ShowHelpTopic(Data)
// see: http://www.helpware.net/download/delphi/hh_doc.txt else
fn := UnicodeString(Application.HelpFile);
res := htmlhelp.HtmlHelpW(0, PWideChar(fn), HH_HELP_CONTEXT, Data);
end else
if Command = HELP_COMMAND then if Command = HELP_COMMAND then
begin ShowHelpTopic({%H-}PChar(Data));
topic := UnicodeString(Application.HelpFile + '::/' + {%H-}PChar(Data));
res := htmlhelp.HtmlHelpW(0, PWideChar(topic), HH_DISPLAY_TOPIC, 0);
end;
// Don't call regular help // Don't call regular help
CallHelp := False; CallHelp := False;
Result := res <> 0; Result := true; //res <> 0;
end; end;
{$ENDIF} {$ENDIF}
{$ENDIF} {$ENDIF}
@ -1709,6 +1697,7 @@ begin
GroupFreqForm.ShowModal; GroupFreqForm.ShowModal;
end; end;
(* replaced by ShowTOC
// Menu "Help" > "General Help" // Menu "Help" > "General Help"
procedure TOS3MainFrm.HelpContentsClick(Sender: TObject); procedure TOS3MainFrm.HelpContentsClick(Sender: TObject);
begin begin
@ -1716,7 +1705,7 @@ begin
Application.CreateForm(THelpFrm, HelpFrm); Application.CreateForm(THelpFrm, HelpFrm);
HelpFrm.ShowModal; HelpFrm.ShowModal;
end; end;
*)
// Menu "Analyses" > "Brown-Forsythe test for homogeneity of variance" // Menu "Analyses" > "Brown-Forsythe test for homogeneity of variance"
procedure TOS3MainFrm.homotestClick(Sender: TObject); procedure TOS3MainFrm.homotestClick(Sender: TObject);
Var Var
@ -2032,6 +2021,12 @@ begin
RowColSwap; RowColSwap;
end; end;
procedure TOS3MainFrm.mnuShowTOCClick(Sender: TObject);
begin
ShowHelpTopic(mnuShowTOC.HelpContext);
end;
initialization initialization
{$I mainunit.lrs} {$I mainunit.lrs}

View File

@ -1627,7 +1627,7 @@ end;
procedure RowColSwap; procedure RowColSwap;
VAR VAR
i, j, Rows, Cols : integer; i, j, Rows, Cols : integer;
tempgrid : StrDyneMat; tempgrid : StrDyneMat = nil;
begin begin
Assert(OS3MainFrm <> nil); Assert(OS3MainFrm <> nil);
Assert(DictionaryFrm <> nil); Assert(DictionaryFrm <> nil);
@ -1803,7 +1803,8 @@ var
i, j, k, NoStrings: integer; i, j, k, NoStrings: integer;
TempString: string; TempString: string;
dup: boolean; dup: boolean;
StrGrps, OneString : StrDyneVec; StrGrps: StrdyneVec = nil;
OneString : StrDyneVec = nil;
res: TModalResult; res: TModalResult;
begin begin
Result := true; Result := true;