From 9b96b7f82f3b019b21eca79c5a48117471e63477 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Sat, 10 Oct 2020 18:01:57 +0000 Subject: [PATCH] LazStats: Move help text on form of SmoothDataUnit to "contextual" helpfile. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7762 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- applications/lazstats/LazStats.ini | 1 + .../analysis/descriptive/smoothdataunit.lfm | 78 +++++++++---------- .../analysis/descriptive/smoothdataunit.pas | 15 +++- .../forms/misc/basicstatsparamsformunit.lfm | 1 + 4 files changed, 53 insertions(+), 42 deletions(-) diff --git a/applications/lazstats/LazStats.ini b/applications/lazstats/LazStats.ini index 8124283df..064d89a3c 100644 --- a/applications/lazstats/LazStats.ini +++ b/applications/lazstats/LazStats.ini @@ -65,3 +65,4 @@ correlation, means, standard deviations and confidence interval for each correla 161=Directions:\n(1) Select the X variable common to all of the Y variables to be selected.\n(2) Select the Y variables.\n(3) Enter a label for the plot.\n(4) Select the options desired.\n(5) Click the Compute button to obtain results. 162=This procedure plots the frequency of cases in each of the groups in a group variable. The group variable should be defined as an integer variable.\n\nSelect the variable and type of plot and click the Compute button for the results. 163=The Resistant Line procedure creates three equal groups by sorting on the X variable and obtaining the median value of each group.\n\nThe median values for these three groups on both the X and Y variables are then plotted. The line from the low group median to the middle group median is plotted as well as the line from the middle group to the top group median. A comparison of the slope of these two lines gives an indication of the degree to which the data fit a straight line. Enter the X and Y variables to be analyzed and click the compute button. +164=This procedure smooths data by averaging every three data points starting with the first three to the last three. The data smoothing can be repeated multiple times. The first and last data points are unchanged. \ No newline at end of file diff --git a/applications/lazstats/source/forms/analysis/descriptive/smoothdataunit.lfm b/applications/lazstats/source/forms/analysis/descriptive/smoothdataunit.lfm index dff074148..5f88a029e 100644 --- a/applications/lazstats/source/forms/analysis/descriptive/smoothdataunit.lfm +++ b/applications/lazstats/source/forms/analysis/descriptive/smoothdataunit.lfm @@ -13,17 +13,16 @@ object DataSmoothingForm: TDataSmoothingForm OnCreate = FormCreate OnShow = ResetBtnClick Position = poMainFormCenter - LCLVersion = '2.0.10.0' + LCLVersion = '2.1.0.0' object Label1: TLabel AnchorSideLeft.Control = Owner - AnchorSideTop.Control = Memo1 - AnchorSideTop.Side = asrBottom + AnchorSideTop.Control = Owner Left = 8 Height = 15 - Top = 80 + Top = 8 Width = 49 BorderSpacing.Left = 8 - BorderSpacing.Top = 12 + BorderSpacing.Top = 8 Caption = 'Variables:' ParentColor = False end @@ -34,9 +33,9 @@ object DataSmoothingForm: TDataSmoothingForm AnchorSideRight.Control = VarInBtn AnchorSideBottom.Control = RepeatChk Left = 8 - Height = 211 - Top = 97 - Width = 184 + Height = 283 + Top = 25 + Width = 188 Anchors = [akTop, akLeft, akRight, akBottom] BorderSpacing.Left = 8 BorderSpacing.Top = 2 @@ -49,9 +48,9 @@ object DataSmoothingForm: TDataSmoothingForm object VarInBtn: TBitBtn AnchorSideTop.Control = VarList AnchorSideRight.Control = SelectedEdit - Left = 200 + Left = 204 Height = 28 - Top = 97 + Top = 25 Width = 28 Anchors = [akTop, akRight] BorderSpacing.Right = 8 @@ -65,9 +64,9 @@ object DataSmoothingForm: TDataSmoothingForm AnchorSideLeft.Control = VarInBtn AnchorSideTop.Control = VarInBtn AnchorSideTop.Side = asrBottom - Left = 200 + Left = 204 Height = 28 - Top = 129 + Top = 57 Width = 28 BorderSpacing.Top = 4 Images = MainDataModule.ImageList @@ -79,9 +78,9 @@ object DataSmoothingForm: TDataSmoothingForm object Label2: TLabel AnchorSideLeft.Control = SelectedEdit AnchorSideBottom.Control = SelectedEdit - Left = 236 + Left = 240 Height = 15 - Top = 105 + Top = 33 Width = 47 Anchors = [akLeft, akBottom] BorderSpacing.Bottom = 2 @@ -93,10 +92,10 @@ object DataSmoothingForm: TDataSmoothingForm AnchorSideRight.Side = asrBottom AnchorSideBottom.Control = VarOutBtn AnchorSideBottom.Side = asrBottom - Left = 236 + Left = 240 Height = 23 - Top = 122 - Width = 128 + Top = 50 + Width = 124 Anchors = [akRight, akBottom] BorderSpacing.Right = 8 BorderSpacing.Bottom = 12 @@ -119,7 +118,7 @@ object DataSmoothingForm: TDataSmoothingForm BorderSpacing.Bottom = 8 Caption = 'Reset' OnClick = ResetBtnClick - TabOrder = 4 + TabOrder = 7 end object ComputeBtn: TButton AnchorSideRight.Control = CloseBtn @@ -135,7 +134,7 @@ object DataSmoothingForm: TDataSmoothingForm BorderSpacing.Bottom = 8 Caption = 'Compute' OnClick = ComputeBtnClick - TabOrder = 5 + TabOrder = 8 end object CloseBtn: TButton AnchorSideRight.Control = Owner @@ -153,7 +152,7 @@ object DataSmoothingForm: TDataSmoothingForm Caption = 'Close' ModalResult = 11 OnClick = CloseBtnClick - TabOrder = 6 + TabOrder = 9 end object RepeatChk: TCheckBox AnchorSideLeft.Control = Owner @@ -169,7 +168,7 @@ object DataSmoothingForm: TDataSmoothingForm BorderSpacing.Top = 8 BorderSpacing.Bottom = 4 Caption = 'Execute smoothing' - TabOrder = 7 + TabOrder = 4 end object RepeatEdit: TEdit AnchorSideLeft.Control = RepeatChk @@ -182,7 +181,7 @@ object DataSmoothingForm: TDataSmoothingForm Width = 32 Alignment = taRightJustify BorderSpacing.Left = 8 - TabOrder = 8 + TabOrder = 5 Text = '1' end object Bevel1: TBevel @@ -198,23 +197,6 @@ object DataSmoothingForm: TDataSmoothingForm BorderSpacing.Bottom = 8 Shape = bsBottomLine end - object Memo1: TLabel - AnchorSideLeft.Control = Owner - AnchorSideTop.Control = Owner - AnchorSideRight.Control = Owner - AnchorSideRight.Side = asrBottom - Left = 8 - Height = 60 - Top = 8 - Width = 356 - Anchors = [akTop, akLeft, akRight] - BorderSpacing.Left = 8 - BorderSpacing.Top = 8 - BorderSpacing.Right = 8 - Caption = 'This procedure smooths data by averaging every three data points starting with the first three to the last three. The data smoothing can be repeated multiple times. The first and last data points are unchanged.' - ParentColor = False - WordWrap = True - end object Label3: TLabel AnchorSideLeft.Control = RepeatEdit AnchorSideLeft.Side = asrBottom @@ -228,4 +210,22 @@ object DataSmoothingForm: TDataSmoothingForm Caption = 'times' ParentColor = False end + object HelpBtn: TButton + Tag = 164 + AnchorSideRight.Control = ResetBtn + AnchorSideBottom.Control = Owner + AnchorSideBottom.Side = asrBottom + Left = 95 + Height = 25 + Top = 355 + Width = 51 + Anchors = [akRight, akBottom] + AutoSize = True + BorderSpacing.Left = 12 + BorderSpacing.Right = 9 + BorderSpacing.Bottom = 8 + Caption = 'Help' + OnClick = HelpBtnClick + TabOrder = 6 + end end diff --git a/applications/lazstats/source/forms/analysis/descriptive/smoothdataunit.pas b/applications/lazstats/source/forms/analysis/descriptive/smoothdataunit.pas index 49f728f15..9cf52b11c 100644 --- a/applications/lazstats/source/forms/analysis/descriptive/smoothdataunit.pas +++ b/applications/lazstats/source/forms/analysis/descriptive/smoothdataunit.pas @@ -7,7 +7,7 @@ interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, ExtCtrls, - MainUnit, Globals, DictionaryUnit; + MainUnit, Globals, DictionaryUnit, ContextHelpUnit; type @@ -16,12 +16,12 @@ type TDataSmoothingForm = class(TForm) Bevel1: TBevel; Label3: TLabel; - Memo1: TLabel; RepeatEdit: TEdit; RepeatChk: TCheckBox; ResetBtn: TButton; ComputeBtn: TButton; CloseBtn: TButton; + HelpBtn: TButton; SelectedEdit: TEdit; Label2: TLabel; VarInBtn: TBitBtn; @@ -32,6 +32,7 @@ type procedure ComputeBtnClick(Sender: TObject); procedure FormActivate(Sender: TObject); procedure FormCreate(Sender: TObject); + procedure HelpBtnClick(Sender: TObject); procedure ResetBtnClick(Sender: TObject); procedure VarInBtnClick(Sender: TObject); procedure VarListSelectionChange(Sender: TObject; User: boolean); @@ -142,7 +143,8 @@ begin if FAutoSized then exit; - w := MaxValue([ResetBtn.Width, ComputeBtn.Width, CloseBtn.Width]); + w := MaxValue([HelpBtn.Width, ResetBtn.Width, ComputeBtn.Width, CloseBtn.Width]); + HelpBtn.Constraints.MinWidth := w; ResetBtn.Constraints.MinWidth := w; ComputeBtn.Constraints.MinWidth := w; CloseBtn.Constraints.MinWidth := w; @@ -156,6 +158,13 @@ begin if DictionaryFrm = nil then Application.CreateForm(TDictionaryFrm, DictionaryFrm); end; +procedure TDataSmoothingForm.HelpBtnClick(Sender: TObject); +begin + if ContextHelpForm = nil then + Application.CreateForm(TContextHelpForm, ContextHelpForm); + ContextHelpForm.HelpMessage((Sender as TButton).Tag); +end; + procedure TDataSmoothingForm.VarInBtnClick(Sender: TObject); var index: integer; diff --git a/applications/lazstats/source/forms/misc/basicstatsparamsformunit.lfm b/applications/lazstats/source/forms/misc/basicstatsparamsformunit.lfm index 5117ca681..86bb88433 100644 --- a/applications/lazstats/source/forms/misc/basicstatsparamsformunit.lfm +++ b/applications/lazstats/source/forms/misc/basicstatsparamsformunit.lfm @@ -74,6 +74,7 @@ inherited BasicStatsParamsForm: TBasicStatsParamsForm AutoSize = True BorderSpacing.Right = 8 Caption = 'Help' + OnClick = HelpBtnClick TabOrder = 3 end object ButtonBevel: TBevel