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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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}

View File

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