diff --git a/applications/lazstats/LazStats.chm b/applications/lazstats/LazStats.chm index 271cc2ae3..3f038bec4 100644 Binary files a/applications/lazstats/LazStats.chm and b/applications/lazstats/LazStats.chm differ diff --git a/applications/lazstats/docs/HelpNDoc/LazStats.hnd b/applications/lazstats/docs/HelpNDoc/LazStats.hnd index 89dacd432..001edc203 100644 Binary files a/applications/lazstats/docs/HelpNDoc/LazStats.hnd and b/applications/lazstats/docs/HelpNDoc/LazStats.hnd differ diff --git a/applications/lazstats/source/LazStats.lpi b/applications/lazstats/source/LazStats.lpi index 05aa81b7b..fcf29e470 100644 --- a/applications/lazstats/source/LazStats.lpi +++ b/applications/lazstats/source/LazStats.lpi @@ -1408,7 +1408,7 @@ - + @@ -1417,6 +1417,12 @@ + + + + + + diff --git a/applications/lazstats/source/forms/help/helpunit.lfm b/applications/lazstats/source/forms/help/helpunit.lfm index e05716680..c4aca36b2 100644 --- a/applications/lazstats/source/forms/help/helpunit.lfm +++ b/applications/lazstats/source/forms/help/helpunit.lfm @@ -59,14 +59,14 @@ object HelpFrm: THelpFrm object HTMLHelpDatabase1: THTMLHelpDatabase BaseURL = 'file://html/' AutoRegister = True - KeywordPrefix = 'HTML/' - left = 24 - top = 24 + KeywordPrefix = 'html/' + Left = 32 + Top = 24 end object HTMLBrowserHelpViewer1: THTMLBrowserHelpViewer BrowserParams = '%s' AutoRegister = True - left = 168 - top = 24 + Left = 168 + Top = 24 end end diff --git a/applications/lazstats/source/forms/help/helpunit.pas b/applications/lazstats/source/forms/help/helpunit.pas index b54cc3541..eecdfbacb 100644 --- a/applications/lazstats/source/forms/help/helpunit.pas +++ b/applications/lazstats/source/forms/help/helpunit.pas @@ -5,7 +5,7 @@ unit HelpUnit; interface uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, + Classes, SysUtils, {FileUtil, }LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, LazHelpHTML, HelpIntfs; type @@ -30,8 +30,44 @@ type var HelpFrm: THelpFrm; +procedure ShowHelpTopic(AHelpContext: Word); overload; +procedure ShowHelpTopic(AHelpID: PChar); overload; + 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 } procedure THelpFrm.FormShow(Sender: TObject); @@ -45,8 +81,11 @@ begin end; procedure THelpFrm.HelpBtnClick(Sender: TObject); +var + fn: String; begin - ShowHelpOrErrorForKeyword('','HTML/LAZTOC.html'); + fn := Application.Location + 'html/LAZTOC.html'; + ShowHelpOrErrorForKeyword('', SwitchPathDelims(fn, true)); //Application.Location + 'html/LAZTOC.html'); end; initialization diff --git a/applications/lazstats/source/forms/mainunit.lfm b/applications/lazstats/source/forms/mainunit.lfm index c1db24e9f..db830f763 100644 --- a/applications/lazstats/source/forms/mainunit.lfm +++ b/applications/lazstats/source/forms/mainunit.lfm @@ -3,6 +3,8 @@ object OS3MainFrm: TOS3MainFrm Height = 519 Top = 194 Width = 725 + HelpType = htKeyword + HelpKeyword = 'TableofContents.htm' Caption = 'LazStats' ClientHeight = 499 ClientWidth = 725 @@ -234,8 +236,8 @@ object OS3MainFrm: TOS3MainFrm OnPrepareCanvas = DataGridPrepareCanvas end object MainMenu1: TMainMenu - left = 192 - top = 200 + Left = 192 + Top = 200 object MenuItem1: TMenuItem Caption = 'File' object NewFileBtn: TMenuItem @@ -1050,22 +1052,23 @@ object OS3MainFrm: TOS3MainFrm object MenuItem46: TMenuItem Caption = '-' end + object mnuShowTOC: TMenuItem + Caption = 'Table of Contents' + HelpContext = 152 + OnClick = mnuShowTOCClick + end object GridUse: TMenuItem Caption = 'Using the Grid' OnClick = GridUseClick end - object HelpContents: TMenuItem - Caption = 'General Help' - OnClick = HelpContentsClick - end end end object OpenDialog1: TOpenDialog - left = 312 - top = 200 + Left = 312 + Top = 200 end object SaveDialog1: TSaveDialog - left = 432 - top = 200 + Left = 432 + Top = 200 end end diff --git a/applications/lazstats/source/forms/mainunit.pas b/applications/lazstats/source/forms/mainunit.pas index 4a1b5204b..f987d76bc 100644 --- a/applications/lazstats/source/forms/mainunit.pas +++ b/applications/lazstats/source/forms/mainunit.pas @@ -7,18 +7,13 @@ unit MainUnit; {$mode objfpc}{$H+} -{$DEFINE USE_EXTERNAL_HELP_VIEWER} +//{$DEFINE USE_EXTERNAL_HELP_VIEWER} interface uses LCLType, Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, Menus, ExtCtrls, StdCtrls, Grids, - {$IFDEF USE_EXTERNAL_HELP_VIEWER} - {$IFDEF MSWINDOWS} - HtmlHelp, - {$ENDIF} - {$ENDIF} Globals, DataProcs, DictionaryUnit; type @@ -110,6 +105,7 @@ type MenuItem50: TMenuItem; MenuItem51: TMenuItem; MenuItem52: TMenuItem; + mnuShowTOC: TMenuItem; SimpChiSqr: TMenuItem; SRHItem: TMenuItem; OneCaseAnova: TMenuItem; @@ -137,7 +133,6 @@ type pcontrochart: TMenuItem; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; - HelpContents: TMenuItem; InsNewCol: TMenuItem; CopyCol: TMenuItem; CutCol: TMenuItem; @@ -282,8 +277,7 @@ type procedure CutColClick(Sender: TObject); procedure CutRowMenuClick(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 DataGridPrepareCanvas(sender: TObject; aCol, aRow: Integer; aState: TGridDrawState); @@ -303,7 +297,7 @@ type procedure GrdBkMnuClick(Sender: TObject); procedure GridUseClick(Sender: TObject); procedure GrpFreqClick(Sender: TObject); - procedure HelpContentsClick(Sender: TObject); + //procedure HelpContentsClick(Sender: TObject); procedure homotestClick(Sender: TObject); procedure HypergeoProbClick(Sender: TObject); procedure InsNewColClick(Sender: TObject); @@ -379,6 +373,7 @@ type procedure MenuItem98Click(Sender: TObject); procedure MenuItem99Click(Sender: TObject); procedure MenuItem30Click(Sender: TObject); + procedure mnuShowTOCClick(Sender: TObject); procedure MultDistsClick(Sender: TObject); procedure MultXvsYClick(Sender: TObject); procedure NestedABCClick(Sender: TObject); @@ -1339,6 +1334,9 @@ var ts: TTextStyle; justif: String; begin + if not (Sender = DataGrid) then + exit; + ts := DataGrid.Canvas.TextStyle; justif := DictionaryFrm.DictGrid.Cells[7, aCol]; if justif = '' then justif := 'L'; @@ -1589,27 +1587,17 @@ end; // Call HTML help (.chm file) function TOS3MainFrm.HelpHandler(Command: Word; Data: PtrInt; var CallHelp: Boolean): Boolean; -var - topic: UnicodeString; - res: Integer; - fn: UnicodeString; begin if Command = HELP_CONTEXT then - begin - // see: http://www.helpware.net/download/delphi/hh_doc.txt - fn := UnicodeString(Application.HelpFile); - res := htmlhelp.HtmlHelpW(0, PWideChar(fn), HH_HELP_CONTEXT, Data); - end else + ShowHelpTopic(Data) + else if Command = HELP_COMMAND then - begin - topic := UnicodeString(Application.HelpFile + '::/' + {%H-}PChar(Data)); - res := htmlhelp.HtmlHelpW(0, PWideChar(topic), HH_DISPLAY_TOPIC, 0); - end; + ShowHelpTopic({%H-}PChar(Data)); // Don't call regular help CallHelp := False; - Result := res <> 0; + Result := true; //res <> 0; end; {$ENDIF} {$ENDIF} @@ -1709,6 +1697,7 @@ begin GroupFreqForm.ShowModal; end; +(* replaced by ShowTOC // Menu "Help" > "General Help" procedure TOS3MainFrm.HelpContentsClick(Sender: TObject); begin @@ -1716,7 +1705,7 @@ begin Application.CreateForm(THelpFrm, HelpFrm); HelpFrm.ShowModal; end; - +*) // Menu "Analyses" > "Brown-Forsythe test for homogeneity of variance" procedure TOS3MainFrm.homotestClick(Sender: TObject); Var @@ -2029,9 +2018,15 @@ end; procedure TOS3MainFrm.MenuItem30Click(Sender: TObject); begin - RowColSwap; + RowColSwap; end; +procedure TOS3MainFrm.mnuShowTOCClick(Sender: TObject); +begin + ShowHelpTopic(mnuShowTOC.HelpContext); +end; + + initialization {$I mainunit.lrs} diff --git a/applications/lazstats/source/units/dataprocs.pas b/applications/lazstats/source/units/dataprocs.pas index 5940e9565..648abfd2b 100644 --- a/applications/lazstats/source/units/dataprocs.pas +++ b/applications/lazstats/source/units/dataprocs.pas @@ -1627,12 +1627,12 @@ end; procedure RowColSwap; VAR i, j, Rows, Cols : integer; - tempgrid : StrDyneMat; + tempgrid : StrDyneMat = nil; begin Assert(OS3MainFrm <> nil); Assert(DictionaryFrm <> nil); - SetLength(tempgrid,NoCases+1,NoVariables+1); + SetLength(tempgrid ,NoCases+1,NoVariables+1); Rows := NoCases; Cols := NoVariables; @@ -1803,7 +1803,8 @@ var i, j, k, NoStrings: integer; TempString: string; dup: boolean; - StrGrps, OneString : StrDyneVec; + StrGrps: StrdyneVec = nil; + OneString : StrDyneVec = nil; res: TModalResult; begin Result := true;