LazStats: Inherit RaschUnit from BasicStatisReportAndChartUnit. Some refactoring.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7896 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-11-22 18:48:59 +00:00
parent 905e205bf1
commit 9da0a4334a
4 changed files with 633 additions and 717 deletions

View File

@ -637,7 +637,7 @@
<Unit66>
<Filename Value="forms\analysis\measurement_programs\raschunit.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="RaschFrm"/>
<ComponentName Value="RaschForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="RaschUnit"/>

View File

@ -1,263 +1,224 @@
object RaschFrm: TRaschFrm
inherited RaschForm: TRaschForm
Left = 673
Height = 419
Top = 319
Width = 406
Width = 855
HelpType = htKeyword
HelpKeyword = 'html/RaschTestCalibration.htm'
AutoSize = True
Caption = 'Rasch One Parameter Item Scaling'
ClientHeight = 419
ClientWidth = 406
OnActivate = FormActivate
OnCreate = FormCreate
OnShow = FormShow
Position = poMainFormCenter
LCLVersion = '2.1.0.0'
object GroupBox1: TGroupBox
AnchorSideLeft.Control = Owner
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Bevel1
Left = 36
Height = 93
Top = 277
Width = 334
Anchors = [akLeft, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
Caption = 'Output Options:'
ChildSizing.LeftRightSpacing = 12
ChildSizing.TopBottomSpacing = 6
ChildSizing.VerticalSpacing = 2
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 2
ClientHeight = 73
ClientWidth = 330
TabOrder = 4
object ProxChk: TCheckBox
Left = 12
Height = 19
Top = 6
Width = 179
Caption = 'Show Prox Calculations'
ClientWidth = 855
inherited ParamsPanel: TPanel
Height = 403
Width = 336
ClientHeight = 403
ClientWidth = 336
inherited CloseBtn: TButton
Left = 281
Top = 378
TabOrder = 8
end
inherited ComputeBtn: TButton
Left = 197
Top = 378
TabOrder = 7
end
inherited ResetBtn: TButton
Left = 135
Top = 378
TabOrder = 6
end
inherited HelpBtn: TButton
Tag = 140
Left = 76
Top = 378
TabOrder = 5
end
inherited ButtonBevel: TBevel
Top = 362
Width = 336
end
object OptionsGroup: TGroupBox[5]
AnchorSideLeft.Control = ParamsPanel
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = ButtonBevel
Left = 0
Height = 93
Top = 269
Width = 336
Anchors = [akLeft, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
Caption = 'Output Options:'
ChildSizing.LeftRightSpacing = 12
ChildSizing.TopBottomSpacing = 6
ChildSizing.VerticalSpacing = 2
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 2
ClientHeight = 73
ClientWidth = 332
TabOrder = 4
object ProxChk: TCheckBox
Left = 12
Height = 19
Top = 6
Width = 181
Caption = 'Show Prox Calculations'
TabOrder = 0
end
object PlotItemDiffChk: TCheckBox
Left = 193
Height = 19
Top = 6
Width = 127
Caption = 'Plot Item Difficulties'
TabOrder = 1
end
object PlotScrsChk: TCheckBox
Left = 12
Height = 19
Top = 27
Width = 181
Caption = 'Plot Log Abilities'
TabOrder = 2
end
object ItemFuncsChk: TCheckBox
Left = 193
Height = 19
Top = 27
Width = 127
Caption = 'Plot Item Functions'
TabOrder = 3
end
object TestInfoChk: TCheckBox
Left = 12
Height = 19
Top = 48
Width = 181
Caption = 'Plot Test Information Function'
TabOrder = 4
end
end
object Label1: TLabel[6]
AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Control = ParamsPanel
Left = 0
Height = 15
Top = 0
Width = 97
Caption = 'Available Variables'
ParentColor = False
end
object Label2: TLabel[7]
AnchorSideLeft.Control = ItemList
AnchorSideTop.Control = ParamsPanel
Left = 187
Height = 15
Top = 0
Width = 93
BorderSpacing.Right = 8
Caption = 'Selected Variables'
ParentColor = False
end
object VarList: TListBox[8]
AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = InBtn
AnchorSideBottom.Control = OptionsGroup
Left = 0
Height = 244
Top = 17
Width = 149
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 2
BorderSpacing.Right = 6
Constraints.MinHeight = 220
ItemHeight = 0
MultiSelect = True
OnSelectionChange = VarListSelectionChange
TabOrder = 0
end
object PlotItemsChk: TCheckBox
Left = 191
Height = 19
Top = 6
Width = 127
Caption = 'Plot Item Difficulties'
object InBtn: TBitBtn[9]
AnchorSideLeft.Control = ParamsPanel
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = VarList
Left = 155
Height = 26
Top = 17
Width = 26
Images = MainDataModule.ImageList
ImageIndex = 1
OnClick = InBtnClick
Spacing = 0
TabOrder = 1
end
object PlotScrsChk: TCheckBox
Left = 12
Height = 19
Top = 27
Width = 179
Caption = 'Plot Log Abilities'
TabOrder = 2
end
object ItemInfoChk: TCheckBox
Left = 191
Height = 19
Top = 27
Width = 127
Caption = 'Plot Item Functions'
object ItemList: TListBox[10]
AnchorSideLeft.Control = InBtn
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ParamsPanel
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = OptionsGroup
Left = 187
Height = 244
Top = 17
Width = 149
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Top = 2
ItemHeight = 0
MultiSelect = True
OnSelectionChange = VarListSelectionChange
TabOrder = 3
end
object TestInfoChk: TCheckBox
Left = 12
Height = 19
Top = 48
Width = 179
Caption = 'Plot Test Information function'
TabOrder = 4
object OutBtn: TBitBtn[11]
AnchorSideLeft.Control = ParamsPanel
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = InBtn
AnchorSideTop.Side = asrBottom
Left = 155
Height = 26
Top = 47
Width = 26
BorderSpacing.Top = 4
Images = MainDataModule.ImageList
ImageIndex = 0
OnClick = OutBtnClick
Spacing = 0
TabOrder = 2
end
end
object ResetBtn: TButton
AnchorSideRight.Control = ComputeBtn
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 197
Height = 25
Top = 386
Width = 54
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 6
inherited ParamsSplitter: TSplitter
Left = 348
Height = 419
end
object ComputeBtn: TButton
AnchorSideRight.Control = CloseBtn
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 259
Height = 25
Top = 386
Width = 76
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 7
end
object CloseBtn: TButton
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 343
Height = 25
Top = 386
Width = 55
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Close'
ModalResult = 11
TabOrder = 8
end
object HelpBtn: TButton
Tag = 140
AnchorSideRight.Control = ResetBtn
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 138
Height = 25
Top = 386
Width = 51
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 5
end
object Bevel1: TBevel
AnchorSideLeft.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = CloseBtn
Left = 0
Height = 8
Top = 370
Width = 406
Anchors = [akLeft, akRight, akBottom]
Shape = bsBottomLine
end
object Label1: TLabel
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 8
Height = 15
Top = 8
Width = 97
BorderSpacing.Left = 8
BorderSpacing.Top = 8
Caption = 'Available Variables'
ParentColor = False
end
object Label2: TLabel
AnchorSideLeft.Control = ItemList
AnchorSideTop.Control = Owner
Left = 225
Height = 15
Top = 8
Width = 93
BorderSpacing.Top = 8
BorderSpacing.Right = 8
Caption = 'Selected Variables'
ParentColor = False
end
object VarList: TListBox
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = InBtn
AnchorSideBottom.Control = GroupBox1
Left = 8
Height = 244
Top = 25
Width = 173
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Top = 2
BorderSpacing.Right = 8
Constraints.MinHeight = 220
ItemHeight = 0
MultiSelect = True
OnSelectionChange = VarListSelectionChange
TabOrder = 0
end
object InBtn: TBitBtn
AnchorSideLeft.Control = Owner
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = VarList
Left = 189
Height = 28
Top = 25
Width = 28
Images = MainDataModule.ImageList
ImageIndex = 1
OnClick = InBtnClick
Spacing = 0
TabOrder = 1
end
object ItemList: TListBox
AnchorSideLeft.Control = InBtn
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = GroupBox1
Left = 225
Height = 244
Top = 25
Width = 173
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Top = 2
BorderSpacing.Right = 8
ItemHeight = 0
MultiSelect = True
OnSelectionChange = VarListSelectionChange
TabOrder = 3
end
object OutBtn: TBitBtn
AnchorSideLeft.Control = Owner
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = InBtn
AnchorSideTop.Side = asrBottom
Left = 189
Height = 28
Top = 57
Width = 28
BorderSpacing.Top = 4
Images = MainDataModule.ImageList
ImageIndex = 0
OnClick = OutBtnClick
Spacing = 0
TabOrder = 2
inherited PageControl: TPageControl
Left = 357
Height = 403
Width = 490
ActivePage = ItemFuncsPage
TabIndex = 3
inherited ChartPage: TTabSheet
Caption = 'Plot Item Difficulties'
TabVisible = False
end
object ScoresPage: TTabSheet[2]
Caption = 'Plot Log Abilities'
TabVisible = False
end
object ItemFuncsPage: TTabSheet[3]
Caption = 'Plot Item Functions'
TabVisible = False
end
object TestInfoPage: TTabSheet[4]
Caption = 'Plot Test Info'
TabVisible = False
end
end
end

View File

@ -776,9 +776,9 @@ end;
// Menu "Analysis" > "Measurement Programs" > "Rasch Test Calibration"
procedure TOS3MainFrm.mnuAnalysisMeas_RashClick(Sender: TObject);
begin
if RaschFrm = nil then
Application.CreateForm(TRaschFrm, RaschFrm);
RaschFrm.ShowModal;
if RaschForm = nil then
Application.CreateForm(TRaschForm, RaschForm);
RaschForm.Show;
end;
// Menu "Analysis" > "Measurement Programs" > "Successive Interval Scaling"
@ -786,7 +786,7 @@ procedure TOS3MainFrm.mnuAnalysisMeas_IntervalClick(Sender: TObject);
begin
if SuccIntFrm = nil then
Application.CreateForm(TSuccIntFrm, SuccIntFrm);
SuccIntFrm.ShowModal;
SuccIntFrm.Show;
end;
// Menu "Analysis" > "Measurement Programs" > "Guttman Scalogram Analysis