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> <Unit66>
<Filename Value="forms\analysis\measurement_programs\raschunit.pas"/> <Filename Value="forms\analysis\measurement_programs\raschunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="RaschFrm"/> <ComponentName Value="RaschForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="RaschUnit"/> <UnitName Value="RaschUnit"/>

View File

@@ -1,29 +1,53 @@
object RaschFrm: TRaschFrm inherited RaschForm: TRaschForm
Left = 673 Left = 673
Height = 419 Height = 419
Top = 319 Top = 319
Width = 406 Width = 855
HelpType = htKeyword HelpType = htKeyword
HelpKeyword = 'html/RaschTestCalibration.htm' HelpKeyword = 'html/RaschTestCalibration.htm'
AutoSize = True
Caption = 'Rasch One Parameter Item Scaling' Caption = 'Rasch One Parameter Item Scaling'
ClientHeight = 419 ClientHeight = 419
ClientWidth = 406 ClientWidth = 855
OnActivate = FormActivate inherited ParamsPanel: TPanel
OnCreate = FormCreate Height = 403
OnShow = FormShow Width = 336
Position = poMainFormCenter ClientHeight = 403
LCLVersion = '2.1.0.0' ClientWidth = 336
object GroupBox1: TGroupBox inherited CloseBtn: TButton
AnchorSideLeft.Control = Owner 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 AnchorSideLeft.Side = asrCenter
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Bevel1 AnchorSideBottom.Control = ButtonBevel
Left = 36 Left = 0
Height = 93 Height = 93
Top = 277 Top = 269
Width = 334 Width = 336
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
AutoSize = True AutoSize = True
BorderSpacing.Left = 8 BorderSpacing.Left = 8
@@ -36,18 +60,18 @@ object RaschFrm: TRaschFrm
ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 2 ChildSizing.ControlsPerLine = 2
ClientHeight = 73 ClientHeight = 73
ClientWidth = 330 ClientWidth = 332
TabOrder = 4 TabOrder = 4
object ProxChk: TCheckBox object ProxChk: TCheckBox
Left = 12 Left = 12
Height = 19 Height = 19
Top = 6 Top = 6
Width = 179 Width = 181
Caption = 'Show Prox Calculations' Caption = 'Show Prox Calculations'
TabOrder = 0 TabOrder = 0
end end
object PlotItemsChk: TCheckBox object PlotItemDiffChk: TCheckBox
Left = 191 Left = 193
Height = 19 Height = 19
Top = 6 Top = 6
Width = 127 Width = 127
@@ -58,12 +82,12 @@ object RaschFrm: TRaschFrm
Left = 12 Left = 12
Height = 19 Height = 19
Top = 27 Top = 27
Width = 179 Width = 181
Caption = 'Plot Log Abilities' Caption = 'Plot Log Abilities'
TabOrder = 2 TabOrder = 2
end end
object ItemInfoChk: TCheckBox object ItemFuncsChk: TCheckBox
Left = 191 Left = 193
Height = 19 Height = 19
Top = 27 Top = 27
Width = 127 Width = 127
@@ -74,185 +98,94 @@ object RaschFrm: TRaschFrm
Left = 12 Left = 12
Height = 19 Height = 19
Top = 48 Top = 48
Width = 179 Width = 181
Caption = 'Plot Test Information function' Caption = 'Plot Test Information Function'
TabOrder = 4 TabOrder = 4
end end
end end
object ResetBtn: TButton object Label1: TLabel[6]
AnchorSideRight.Control = ComputeBtn AnchorSideLeft.Control = ParamsPanel
AnchorSideBottom.Control = Owner AnchorSideTop.Control = ParamsPanel
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
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 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 Height = 15
Top = 8 Top = 0
Width = 97 Width = 97
BorderSpacing.Left = 8
BorderSpacing.Top = 8
Caption = 'Available Variables' Caption = 'Available Variables'
ParentColor = False ParentColor = False
end end
object Label2: TLabel object Label2: TLabel[7]
AnchorSideLeft.Control = ItemList AnchorSideLeft.Control = ItemList
AnchorSideTop.Control = Owner AnchorSideTop.Control = ParamsPanel
Left = 225 Left = 187
Height = 15 Height = 15
Top = 8 Top = 0
Width = 93 Width = 93
BorderSpacing.Top = 8
BorderSpacing.Right = 8 BorderSpacing.Right = 8
Caption = 'Selected Variables' Caption = 'Selected Variables'
ParentColor = False ParentColor = False
end end
object VarList: TListBox object VarList: TListBox[8]
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Control = Label1 AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = InBtn AnchorSideRight.Control = InBtn
AnchorSideBottom.Control = GroupBox1 AnchorSideBottom.Control = OptionsGroup
Left = 8 Left = 0
Height = 244 Height = 244
Top = 25 Top = 17
Width = 173 Width = 149
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Top = 2 BorderSpacing.Top = 2
BorderSpacing.Right = 8 BorderSpacing.Right = 6
Constraints.MinHeight = 220 Constraints.MinHeight = 220
ItemHeight = 0 ItemHeight = 0
MultiSelect = True MultiSelect = True
OnSelectionChange = VarListSelectionChange OnSelectionChange = VarListSelectionChange
TabOrder = 0 TabOrder = 0
end end
object InBtn: TBitBtn object InBtn: TBitBtn[9]
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = ParamsPanel
AnchorSideLeft.Side = asrCenter AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = VarList AnchorSideTop.Control = VarList
Left = 189 Left = 155
Height = 28 Height = 26
Top = 25 Top = 17
Width = 28 Width = 26
Images = MainDataModule.ImageList Images = MainDataModule.ImageList
ImageIndex = 1 ImageIndex = 1
OnClick = InBtnClick OnClick = InBtnClick
Spacing = 0 Spacing = 0
TabOrder = 1 TabOrder = 1
end end
object ItemList: TListBox object ItemList: TListBox[10]
AnchorSideLeft.Control = InBtn AnchorSideLeft.Control = InBtn
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label2 AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner AnchorSideRight.Control = ParamsPanel
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = GroupBox1 AnchorSideBottom.Control = OptionsGroup
Left = 225 Left = 187
Height = 244 Height = 244
Top = 25 Top = 17
Width = 173 Width = 149
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8 BorderSpacing.Left = 6
BorderSpacing.Top = 2 BorderSpacing.Top = 2
BorderSpacing.Right = 8
ItemHeight = 0 ItemHeight = 0
MultiSelect = True MultiSelect = True
OnSelectionChange = VarListSelectionChange OnSelectionChange = VarListSelectionChange
TabOrder = 3 TabOrder = 3
end end
object OutBtn: TBitBtn object OutBtn: TBitBtn[11]
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = ParamsPanel
AnchorSideLeft.Side = asrCenter AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = InBtn AnchorSideTop.Control = InBtn
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 189 Left = 155
Height = 28 Height = 26
Top = 57 Top = 47
Width = 28 Width = 26
BorderSpacing.Top = 4 BorderSpacing.Top = 4
Images = MainDataModule.ImageList Images = MainDataModule.ImageList
ImageIndex = 0 ImageIndex = 0
@@ -261,3 +194,31 @@ object RaschFrm: TRaschFrm
TabOrder = 2 TabOrder = 2
end end
end end
inherited ParamsSplitter: TSplitter
Left = 348
Height = 419
end
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" // Menu "Analysis" > "Measurement Programs" > "Rasch Test Calibration"
procedure TOS3MainFrm.mnuAnalysisMeas_RashClick(Sender: TObject); procedure TOS3MainFrm.mnuAnalysisMeas_RashClick(Sender: TObject);
begin begin
if RaschFrm = nil then if RaschForm = nil then
Application.CreateForm(TRaschFrm, RaschFrm); Application.CreateForm(TRaschForm, RaschForm);
RaschFrm.ShowModal; RaschForm.Show;
end; end;
// Menu "Analysis" > "Measurement Programs" > "Successive Interval Scaling" // Menu "Analysis" > "Measurement Programs" > "Successive Interval Scaling"
@@ -786,7 +786,7 @@ procedure TOS3MainFrm.mnuAnalysisMeas_IntervalClick(Sender: TObject);
begin begin
if SuccIntFrm = nil then if SuccIntFrm = nil then
Application.CreateForm(TSuccIntFrm, SuccIntFrm); Application.CreateForm(TSuccIntFrm, SuccIntFrm);
SuccIntFrm.ShowModal; SuccIntFrm.Show;
end; end;
// Menu "Analysis" > "Measurement Programs" > "Guttman Scalogram Analysis // Menu "Analysis" > "Measurement Programs" > "Guttman Scalogram Analysis