LazStats: Inherit PartialsUnit from BasicStatsReportFrameUnit.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7869 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-11-14 16:12:08 +00:00
parent 03cc1dfcc0
commit 1fff8a79e6
4 changed files with 602 additions and 811 deletions

View File

@ -405,7 +405,7 @@
<Unit37> <Unit37>
<Filename Value="forms\analysis\correlation\partialsunit.pas"/> <Filename Value="forms\analysis\correlation\partialsunit.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ComponentName Value="PartialsFrm"/> <ComponentName Value="PartialsForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="PartialsUnit"/> <UnitName Value="PartialsUnit"/>

View File

@ -1,573 +1,275 @@
object PartialsFrm: TPartialsFrm inherited PartialsForm: TPartialsForm
Left = 593 Left = 593
Height = 398 Height = 328
Top = 175 Top = 175
Width = 361 Width = 513
HelpType = htKeyword HelpType = htKeyword
HelpKeyword = 'html/PartialSemipartial.htm' HelpKeyword = 'html/PartialSemipartial.htm'
AutoSize = True
Caption = 'Partial Correlation' Caption = 'Partial Correlation'
ClientHeight = 398 ClientHeight = 328
ClientWidth = 361 ClientWidth = 513
OnActivate = FormActivate inherited ParamsPanel: TPanel
OnCreate = FormCreate Height = 312
OnShow = FormShow ClientHeight = 312
Position = poMainFormCenter inherited CloseBtn: TButton
LCLVersion = '2.1.0.0' Top = 287
object Label1: TLabel TabOrder = 13
AnchorSideLeft.Control = Owner end
AnchorSideTop.Control = Owner inherited ComputeBtn: TButton
Left = 8 Top = 287
Height = 15 TabOrder = 12
Top = 8 end
Width = 100 inherited ResetBtn: TButton
BorderSpacing.Left = 8 Top = 287
BorderSpacing.Top = 8 TabOrder = 11
Caption = 'Available Variables:' end
ParentColor = False inherited HelpBtn: TButton
Tag = 136
Top = 287
TabOrder = 10
end
inherited ButtonBevel: TBevel
Top = 271
end
object Label1: TLabel[5]
AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Control = ParamsPanel
Left = 0
Height = 15
Top = 0
Width = 100
Caption = 'Available Variables:'
ParentColor = False
end
object VarList: TListBox[6]
AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = DepInBtn
AnchorSideBottom.Control = Bevel3
Left = 0
Height = 135
Top = 17
Width = 126
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 2
BorderSpacing.Right = 6
ItemHeight = 0
MultiSelect = True
OnDblClick = VarListDblClick
OnSelectionChange = VarListSelectionChange
TabOrder = 0
end
object PartInBtn: TBitBtn[7]
AnchorSideTop.Control = VarList
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Bevel1
AnchorSideBottom.Control = Label4
Left = 33
Height = 26
Top = 160
Width = 26
Anchors = [akTop, akRight]
BorderSpacing.Top = 8
Images = MainDataModule.ImageList
ImageIndex = 3
OnClick = PartInBtnClick
Spacing = 0
TabOrder = 7
end
object PartOutBtn: TBitBtn[8]
AnchorSideLeft.Control = Bevel1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = PartInBtn
Left = 67
Height = 26
Top = 160
Width = 26
Images = MainDataModule.ImageList
ImageIndex = 2
OnClick = PartOutBtnClick
Spacing = 0
TabOrder = 8
end
object Label4: TLabel[9]
AnchorSideLeft.Control = PartList
AnchorSideTop.Control = PartInBtn
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = PartList
Left = 0
Height = 15
Top = 194
Width = 121
BorderSpacing.Top = 8
BorderSpacing.Bottom = 2
Caption = 'Variables Partialed Out:'
ParentColor = False
end
object PartList: TListBox[10]
AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Control = Label4
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = VarList
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = ButtonBevel
Left = 0
Height = 60
Top = 211
Width = 126
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Top = 2
ItemHeight = 0
MultiSelect = True
OnDblClick = PartListDblClick
OnSelectionChange = VarListSelectionChange
TabOrder = 9
end
object DepInBtn: TBitBtn[11]
AnchorSideLeft.Control = ParamsPanel
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = VarList
Left = 132
Height = 26
Top = 17
Width = 26
Images = MainDataModule.ImageList
ImageIndex = 1
OnClick = DepInBtnClick
Spacing = 0
TabOrder = 1
end
object DepOutBtn: TBitBtn[12]
AnchorSideLeft.Control = ParamsPanel
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = DepInBtn
AnchorSideTop.Side = asrBottom
Left = 132
Height = 26
Top = 47
Width = 26
BorderSpacing.Top = 4
Images = MainDataModule.ImageList
ImageIndex = 0
OnClick = DepOutBtnClick
Spacing = 0
TabOrder = 3
end
object PredInBtn: TBitBtn[13]
AnchorSideLeft.Control = ParamsPanel
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = DepOutBtn
AnchorSideTop.Side = asrBottom
Left = 132
Height = 26
Top = 93
Width = 26
BorderSpacing.Top = 20
Images = MainDataModule.ImageList
ImageIndex = 1
OnClick = PredInBtnClick
Spacing = 0
TabOrder = 4
end
object PredOutBtn: TBitBtn[14]
AnchorSideLeft.Control = ParamsPanel
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = PredInBtn
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 132
Height = 26
Top = 123
Width = 26
BorderSpacing.Top = 4
Images = MainDataModule.ImageList
ImageIndex = 0
OnClick = PredOutBtnClick
Spacing = 0
TabOrder = 5
end
object Label2: TLabel[15]
AnchorSideLeft.Control = DepVarEdit
AnchorSideTop.Control = DepInBtn
AnchorSideBottom.Control = DepVarEdit
Left = 164
Height = 15
Top = 17
Width = 152
Caption = 'Selected Dependent Variable:'
ParentColor = False
end
object Label3: TLabel[16]
AnchorSideLeft.Control = PredList
AnchorSideTop.Control = PredInBtn
Left = 164
Height = 15
Top = 93
Width = 147
Caption = 'Selected Predictor Variables:'
ParentColor = False
end
object DepVarEdit: TEdit[17]
AnchorSideLeft.Control = DepInBtn
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ParamsPanel
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 164
Height = 23
Top = 34
Width = 127
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 2
ReadOnly = True
TabOrder = 2
Text = 'DepVarEdit'
end
object PredList: TListBox[18]
AnchorSideLeft.Control = PredInBtn
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label3
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = ParamsPanel
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Bevel3
Left = 164
Height = 42
Top = 110
Width = 127
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Top = 2
ItemHeight = 0
MultiSelect = True
OnDblClick = PredListDblClick
OnSelectionChange = VarListSelectionChange
TabOrder = 6
end
object Bevel1: TBevel[19]
AnchorSideLeft.Control = VarList
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = VarList
AnchorSideTop.Side = asrBottom
Left = 59
Height = 28
Top = 152
Width = 8
Shape = bsSpacer
end
object Bevel3: TBevel[20]
AnchorSideTop.Control = ParamsPanel
AnchorSideTop.Side = asrCenter
Left = 8
Height = 8
Top = 152
Width = 40
Shape = bsSpacer
end
end end
object Label2: TLabel inherited ParamsSplitter: TSplitter
AnchorSideLeft.Control = DepVar Height = 328
AnchorSideTop.Control = DepInBtn
AnchorSideBottom.Control = DepVar
Left = 202
Height = 15
Top = 25
Width = 152
Caption = 'Selected Dependent Variable:'
ParentColor = False
end
object Label3: TLabel
AnchorSideLeft.Control = PredList
AnchorSideTop.Control = DepOutBtn
AnchorSideTop.Side = asrBottom
Left = 203
Height = 15
Top = 93
Width = 144
BorderSpacing.Top = 8
Caption = 'Selected Predictor Variables'
ParentColor = False
end
object Label4: TLabel
AnchorSideLeft.Control = PartList
AnchorSideTop.Control = PartInBtn
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = PartList
Left = 8
Height = 15
Top = 239
Width = 121
BorderSpacing.Top = 8
BorderSpacing.Bottom = 2
Caption = 'Variables Partialed Out:'
ParentColor = False
end
object VarList: TListBox
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = DepInBtn
AnchorSideBottom.Control = Bevel3
Left = 8
Height = 170
Top = 25
Width = 150
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Top = 2
BorderSpacing.Right = 8
ItemHeight = 0
MultiSelect = True
OnSelectionChange = VarListSelectionChange
TabOrder = 0
end
object DepInBtn: TBitBtn
AnchorSideLeft.Control = Owner
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = VarList
Left = 166
Height = 28
Top = 25
Width = 28
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00216324B81D5E2006FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF002A702F38256929F7216324D9FFFFFF00FFFFFF00FFFFFF00FFFFFF0061BE
6DFF5DB868FF58B162FF53A95CFF4DA156FF47994FFF419149FF3B8842FF3580
3BFF3F8845FF59A15EFF448B49FF216324CFFFFFFF00FFFFFF00FFFFFF0065C3
71FFA0D7A9FF9CD5A5FF98D3A1FF94D09DFF90CE98FF8BCB93FF87C98EFF82C6
89FF7EC384FF7AC180FF76BE7CFF458C4AFF216324C4FFFFFF00FFFFFF0068C7
74FFA5DAAEFFA2D8ABFF9ED6A7FF9AD4A3FF96D29FFF93CF9AFF8ECC95FF89CA
90FF85C78BFF81C587FF7DC282FF4A9150FF256929C9FFFFFF00FFFFFF0068C7
74FF68C774FF65C371FF61BE6DFF5DB868FF58B162FF53A95CFF4DA156FF4799
4FFF419149FF5AA362FF559D5CFF2F7835D1FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00419149F73B8842DBFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF0047994FBB41914906FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
}
Images = MainDataModule.ImageList
ImageIndex = 1
OnClick = DepInBtnClick
Spacing = 0
TabOrder = 1
end
object DepOutBtn: TBitBtn
AnchorSideLeft.Control = Owner
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = DepInBtn
AnchorSideTop.Side = asrBottom
Left = 166
Height = 28
Top = 57
Width = 28
BorderSpacing.Top = 4
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF004DA1560647994FB8FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF0053A95CD94DA156F747994F38FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF005DB868CF71BE7BFF7AC183FF5BAA64FF47994FFF419149FF3B8842FF3580
3BFF2F7835FF2A702FFF256929FF216324FF1D5E20FFFFFFFF00FFFFFF0065C3
71C47BC886FF9CD5A5FF98D3A1FF94D09DFF90CE98FF8BCB93FF87C98EFF82C6
89FF7EC384FF7AC180FF76BE7CFF72BD78FF216324FFFFFFFF00FFFFFF0068C7
74C97FCC8AFFA2D8ABFF9ED6A7FF9AD4A3FF96D29FFF93CF9AFF8ECC95FF89CA
90FF85C78BFF81C587FF7DC282FF78C07EFF256929FFFFFFFF00FFFFFF00FFFF
FF0068C774D180CD8BFF7CC987FF5DB868FF58B162FF53A95CFF4DA156FF4799
4FFF419149FF3B8842FF35803BFF2F7835FF2A702FFFFFFFFF00FFFFFF00FFFF
FF00FFFFFF0068C774DB65C371F7FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF0068C7740668C774BBFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
}
Images = MainDataModule.ImageList
ImageIndex = 0
OnClick = DepOutBtnClick
Spacing = 0
TabOrder = 2
end
object PredInBtn: TBitBtn
AnchorSideLeft.Control = Owner
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = DepOutBtn
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = Bevel4
Left = 166
Height = 28
Top = 122
Width = 28
Anchors = [akLeft, akBottom]
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00216324B81D5E2006FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF002A702F38256929F7216324D9FFFFFF00FFFFFF00FFFFFF00FFFFFF0061BE
6DFF5DB868FF58B162FF53A95CFF4DA156FF47994FFF419149FF3B8842FF3580
3BFF3F8845FF59A15EFF448B49FF216324CFFFFFFF00FFFFFF00FFFFFF0065C3
71FFA0D7A9FF9CD5A5FF98D3A1FF94D09DFF90CE98FF8BCB93FF87C98EFF82C6
89FF7EC384FF7AC180FF76BE7CFF458C4AFF216324C4FFFFFF00FFFFFF0068C7
74FFA5DAAEFFA2D8ABFF9ED6A7FF9AD4A3FF96D29FFF93CF9AFF8ECC95FF89CA
90FF85C78BFF81C587FF7DC282FF4A9150FF256929C9FFFFFF00FFFFFF0068C7
74FF68C774FF65C371FF61BE6DFF5DB868FF58B162FF53A95CFF4DA156FF4799
4FFF419149FF5AA362FF559D5CFF2F7835D1FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00419149F73B8842DBFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF0047994FBB41914906FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
}
Images = MainDataModule.ImageList
ImageIndex = 1
OnClick = PredInBtnClick
Spacing = 0
TabOrder = 4
end
object PredOutBtn: TBitBtn
AnchorSideLeft.Control = Owner
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = Bevel4
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 166
Height = 28
Top = 154
Width = 28
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF004DA1560647994FB8FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF0053A95CD94DA156F747994F38FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF005DB868CF71BE7BFF7AC183FF5BAA64FF47994FFF419149FF3B8842FF3580
3BFF2F7835FF2A702FFF256929FF216324FF1D5E20FFFFFFFF00FFFFFF0065C3
71C47BC886FF9CD5A5FF98D3A1FF94D09DFF90CE98FF8BCB93FF87C98EFF82C6
89FF7EC384FF7AC180FF76BE7CFF72BD78FF216324FFFFFFFF00FFFFFF0068C7
74C97FCC8AFFA2D8ABFF9ED6A7FF9AD4A3FF96D29FFF93CF9AFF8ECC95FF89CA
90FF85C78BFF81C587FF7DC282FF78C07EFF256929FFFFFFFF00FFFFFF00FFFF
FF0068C774D180CD8BFF7CC987FF5DB868FF58B162FF53A95CFF4DA156FF4799
4FFF419149FF3B8842FF35803BFF2F7835FF2A702FFFFFFFFF00FFFFFF00FFFF
FF00FFFFFF0068C774DB65C371F7FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF0068C7740668C774BBFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
}
Images = MainDataModule.ImageList
ImageIndex = 0
OnClick = PredOutBtnClick
Spacing = 0
TabOrder = 5
end
object PartInBtn: TBitBtn
AnchorSideTop.Control = VarList
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Bevel1
AnchorSideBottom.Control = Label4
Left = 51
Height = 28
Top = 203
Width = 28
Anchors = [akTop, akRight]
BorderSpacing.Top = 8
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00256929C4216425C9FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002D7533CF488F4DFF458C4AFF2265
26D1FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF003C8A430638833ED9519957FF79C07EFF76BF7CFF468D
4BFF236627DB20622306FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF0042924AB83D8C45F765AD6CFF7DC282FF7AC180FF4B92
50FF276D2CF7246828BBFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF0043944B384E9A55FF81C587FF7EC385FF317A
36FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0045954CFF85C78CFF82C689FF3682
3DFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004A9E53FF8ACA91FF87C98EFF3C8A
43FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0050A659FF8ECC95FF8BCB93FF4292
4AFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0056AD5FFF93CF9AFF90CE98FF489A
50FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005BB465FF96D29FFF94D09CFF4EA2
57FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005FBB6AFF9AD4A3FF98D3A1FF53AA
5DFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0063C06FFF9ED6A7FF9CD4A5FF59B2
63FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0066C572FFA2D8ABFFA0D7A9FF5DB8
68FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0068C774FF67C673FF65C270FF62BE
6DFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
}
Images = MainDataModule.ImageList
ImageIndex = 3
OnClick = PartInBtnClick
Spacing = 0
TabOrder = 7
end
object PartOutBtn: TBitBtn
AnchorSideLeft.Control = Bevel1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = PartInBtn
Left = 87
Height = 28
Top = 203
Width = 28
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00286E2DFF256929FF216425FF1E60
22FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF002D7533FF74BD7AFF72BD78FF2265
26FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00337D39FF79C07EFF76BF7CFF266B
2BFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0039853FFF7DC282FF7AC180FF2B72
30FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF003F8D46FF81C587FF7EC385FF317A
36FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0045954CFF85C78CFF82C689FF3682
3DFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF004A9E53FF8ACA91FF87C98EFF3C8A
43FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0050A659FF8ECC95FF8BCB93FF4292
4AFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0056AD5FFF93CF9AFF90CE98FF489A
50FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF005BB465FF96D29FFF94D09CFF5DAC
65FF499C5238FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF0065C371BB62BF6EF779C683FF9AD4A3FF98D3A1FF7DC3
86FF4FA458F74A9E53B8FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF0068C7740666C472DB7CCA87FF9ED6A7FF9CD4A5FF73C0
7DFF55AC5ED950A65906FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0066C572D17ECA88FF7BC885FF5DB8
68CFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0067C673C965C270C4FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
}
Images = MainDataModule.ImageList
ImageIndex = 2
OnClick = PartOutBtnClick
Spacing = 0
TabOrder = 8
end
object DepVar: TEdit
AnchorSideLeft.Control = DepInBtn
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = DepOutBtn
AnchorSideBottom.Side = asrBottom
Left = 202
Height = 23
Top = 42
Width = 151
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 8
BorderSpacing.Top = 2
BorderSpacing.Right = 8
ReadOnly = True
TabOrder = 3
Text = 'DepVar'
end
object PredList: TListBox
AnchorSideLeft.Control = PredInBtn
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label3
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Bevel3
Left = 203
Height = 85
Top = 110
Width = 150
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 9
BorderSpacing.Top = 2
BorderSpacing.Right = 8
ItemHeight = 0
MultiSelect = True
OnSelectionChange = VarListSelectionChange
TabOrder = 6
end
object PartList: TListBox
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Label4
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = VarList
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Bevel2
Left = 8
Height = 93
Top = 256
Width = 150
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Top = 2
ItemHeight = 0
MultiSelect = True
OnSelectionChange = VarListSelectionChange
TabOrder = 9
end
object ResetBtn: TButton
AnchorSideRight.Control = ComputeBtn
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 152
Height = 25
Top = 365
Width = 54
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 11
end
object ComputeBtn: TButton
AnchorSideRight.Control = CloseBtn
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 214
Height = 25
Top = 365
Width = 76
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 12
end
object CloseBtn: TButton
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 298
Height = 25
Top = 365
Width = 55
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Close'
ModalResult = 11
TabOrder = 13
end
object HelpBtn: TButton
Tag = 136
AnchorSideRight.Control = ResetBtn
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 93
Height = 25
Top = 365
Width = 51
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Left = 8
BorderSpacing.Top = 8
BorderSpacing.Right = 8
BorderSpacing.Bottom = 8
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 10
end
object Bevel1: TBevel
AnchorSideLeft.Control = VarList
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = VarList
AnchorSideTop.Side = asrBottom
Left = 79
Height = 28
Top = 195
Width = 8
Shape = bsSpacer
end
object Bevel2: TBevel
AnchorSideLeft.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = CloseBtn
Left = 0
Height = 8
Top = 349
Width = 361
Anchors = [akLeft, akRight, akBottom]
Shape = bsBottomLine
end
object Bevel3: TBevel
AnchorSideTop.Control = Owner
AnchorSideTop.Side = asrCenter
Left = 8
Height = 8
Top = 195
Width = 40
Shape = bsSpacer
end
object Bevel4: TBevel
AnchorSideLeft.Control = Owner
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = PredList
AnchorSideTop.Side = asrCenter
Left = 160
Height = 4
Top = 150
Width = 40
Shape = bsSpacer
end end
end end

View File

@ -1,6 +1,6 @@
// File for testing: cansas.laz // File for testing: cansas.laz
// - Selected dependent variable --> jumps // - Selected dependent variable --> jumps
// - Seleckted predictor variables --> weight // - Selected predictor variables --> weight
// - variables partialed out --> waist, pulse // - variables partialed out --> waist, pulse
unit PartialsUnit; unit PartialsUnit;
@ -10,30 +10,23 @@ unit PartialsUnit;
interface interface
uses uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, ExtCtrls,
StdCtrls, Buttons, ExtCtrls, MainUnit, MatrixLib, FunctionsLib, Globals, BasicStatsReportFormUnit;
MainUnit, MatrixLib, FunctionsLib, OutputUnit, Globals, ContextHelpUnit;
type type
{ TPartialsFrm } { TPartialsForm }
TPartialsFrm = class(TForm) TPartialsForm = class(TBasicStatsReportForm)
Bevel1: TBevel; Bevel1: TBevel;
Bevel2: TBevel;
Bevel3: TBevel; Bevel3: TBevel;
Bevel4: TBevel;
DepInBtn: TBitBtn; DepInBtn: TBitBtn;
DepOutBtn: TBitBtn; DepOutBtn: TBitBtn;
HelpBtn: TButton;
PredInBtn: TBitBtn; PredInBtn: TBitBtn;
PredOutBtn: TBitBtn; PredOutBtn: TBitBtn;
PartInBtn: TBitBtn; PartInBtn: TBitBtn;
PartOutBtn: TBitBtn; PartOutBtn: TBitBtn;
ResetBtn: TButton; DepVarEdit: TEdit;
ComputeBtn: TButton;
CloseBtn: TButton;
DepVar: TEdit;
Label1: TLabel; Label1: TLabel;
Label2: TLabel; Label2: TLabel;
Label3: TLabel; Label3: TLabel;
@ -41,215 +34,87 @@ type
PartList: TListBox; PartList: TListBox;
PredList: TListBox; PredList: TListBox;
VarList: TListBox; VarList: TListBox;
procedure ComputeBtnClick(Sender: TObject);
procedure DepInBtnClick(Sender: TObject); procedure DepInBtnClick(Sender: TObject);
procedure DepOutBtnClick(Sender: TObject); procedure DepOutBtnClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure HelpBtnClick(Sender: TObject);
procedure PartInBtnClick(Sender: TObject); procedure PartInBtnClick(Sender: TObject);
procedure PartListDblClick(Sender: TObject);
procedure PartOutBtnClick(Sender: TObject); procedure PartOutBtnClick(Sender: TObject);
procedure PredInBtnClick(Sender: TObject); procedure PredInBtnClick(Sender: TObject);
procedure PredListDblClick(Sender: TObject);
procedure PredOutBtnClick(Sender: TObject); procedure PredOutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject); procedure VarListDblClick(Sender: TObject);
procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean); procedure VarListSelectionChange(Sender: TObject; {%H-}User: boolean);
private
{ private declarations } protected
FAutoSized: Boolean; procedure AdjustConstraints; override;
procedure UpdateBtnStates; procedure Compute; override;
procedure UpdateBtnStates; override;
function Validate(out AMsg: String; out AControl: TWinControl): Boolean; override;
public public
{ public declarations } constructor Create(AOwner: TComponent); override;
procedure Reset; override;
end; end;
var var
PartialsFrm: TPartialsFrm; PartialsForm: TPartialsForm;
implementation implementation
{$R *.lfm}
uses uses
Math, Math,
Utils, MathUnit; Utils, MathUnit;
{ TPartialsFrm }
procedure TPartialsFrm.ResetBtnClick(Sender: TObject); { TPartialsForm }
constructor TPartialsForm.Create(AOwner: TComponent);
begin
inherited;
end;
procedure TPartialsForm.AdjustConstraints;
begin
inherited;
ParamsPanel.Constraints.MinHeight := (PredOutBtn.Top + PredOutBtn.Height) * 2;
ParamsPanel.Constraints.MinWidth := Max(
4*CloseBtn.Width + 3*CloseBtn.BorderSpacing.Left,
MaxValue([Label1.Width, Label2.Width, Label3.Width, Label4.Width]) * 2 +
DepInBtn.Width + VarList.BorderSpacing.Right*2);
end;
procedure TPartialsForm.Compute;
var var
i: integer; rMatrix: DblDyneMat = nil;
begin workMat: DblDyneMat = nil;
DepVar.Text := ''; Means: DblDyneVec = nil;
VarList.Clear; Variances: DblDyneVec = nil;
PartList.Clear; StdDevs: DblDyneVec = nil;
PredList.Clear; PredVars: IntDyneVec = nil;
for i := 1 to OS3MainFrm.DataGrid.ColCount - 1 do CntrlVars: IntDyneVec = nil;
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); W: DblDyneVec = nil;
UpdateBtnStates; MatVars: IntDyneVec = nil;
end; vtimesw: DblDyneMat = nil;
W1: DblDyneMat = nil;
procedure TPartialsFrm.FormActivate(Sender: TObject); v: DblDyneMat = nil;
var
w: Integer;
begin
if FAutoSized then
exit;
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;
w := 2 * Max(Label2.Width, Label3.Width) + DepInBtn.Width + 4 * VarList.BorderSpacing.Left;
Constraints.MinWidth := w; //Max(Width, w);
Constraints.MinHeight := Height;
FAutoSized := true;
end;
procedure TPartialsFrm.FormCreate(Sender: TObject);
begin
Assert(OS3MainFrm <> nil);
end;
procedure TPartialsFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TPartialsFrm.HelpBtnClick(Sender: TObject);
begin
if ContextHelpForm = nil then
Application.CreateForm(TContextHelpForm, ContextHelpForm);
ContextHelpForm.HelpMessage((Sender as TButton).tag);
end;
procedure TPartialsFrm.PartInBtnClick(Sender: TObject);
var
i: integer;
begin
i := 0;
while i < VarList.Items.Count do
begin
if VarList.Selected[i] then
begin
PartList.Items.Add(VarList.Items[i]);
VarList.Items.Delete(i);
i := 0;
end else
i := i + 1;
end;
UpdateBtnStates;
end;
procedure TPartialsFrm.PartOutBtnClick(Sender: TObject);
var
i: integer;
begin
i := 0;
while i < PartList.Items.Count do
begin
if PartList.Selected[i] then
begin
VarList.Items.Add(PartList.Items[i]);
PartList.Items.Delete(i);
i := 0;
end else
i := i + 1;
end;
UpdateBtnStates;
end;
procedure TPartialsFrm.PredInBtnClick(Sender: TObject);
var
i: integer;
begin
i := 0;
while i < VarList.Items.Count do
begin
if VarList.Selected[i] then
begin
PredList.Items.Add(VarList.Items[i]);
VarList.Items.Delete(i);
i := 0;
end else
i := i + 1;
end;
UpdateBtnStates;
end;
procedure TPartialsFrm.PredOutBtnClick(Sender: TObject);
var
i: integer;
begin
i := 0;
while i < PredList.Items.Count do
begin
if PredList.Selected[i] then
begin
VarList.Items.Add(PredList.Items[i]);
PredList.Items.Delete(i);
i := 0;
end else
i := i + 1;
end;
UpdateBtnStates;
end;
procedure TPartialsFrm.DepInBtnClick(Sender: TObject);
var
index: integer;
begin
index := VarList.ItemIndex;
if (index > -1) and (DepVar.Text = '') then
begin
DepVar.Text := VarList.Items[index];
VarList.Items.Delete(index);
UpdateBtnStates;
end;
end;
procedure TPartialsFrm.DepOutBtnClick(Sender: TObject);
begin
if DepVar.Text <> '' then
begin
VarList.Items.Add(DepVar.Text);
DepVar.Text := '';
UpdateBtnStates;
end;
end;
procedure TPartialsFrm.ComputeBtnClick(Sender: TObject);
var
rmatrix, workmat: DblDyneMat;
Means, Variances, StdDevs, W: DblDyneVec;
R2Full, R2Cntrl, SemiPart, Partial, df1, df2, F, Prob: double; R2Full, R2Cntrl, SemiPart, Partial, df1, df2, F, Prob: double;
NoPredVars, NoCntrlVars, DepVarNo, TotNoVars, pcnt, ccnt, count: integer; NoPredVars, NoCntrlVars, DepVarNo, TotNoVars, pcnt, ccnt, count: integer;
PredVars, CntrlVars: IntDyneVec;
MatVars: IntDyneVec;
varstring: string; varstring: string;
i, j, K, L: integer; i, j, K, L: integer;
errorcode: boolean; errorcode: boolean = false;
vtimesw, W1, v: DblDyneMat;
lReport: TStrings; lReport: TStrings;
begin begin
DepVarNo := 1; DepVarNo := 1;
errorcode := false; errorcode := false;
if DepVar.Text = '' then
begin
MessageDlg('No dependent variable selected.', mtError, [mbOK], 0);
exit;
end;
// Get no. of predictor and control variables // Get no. of predictor and control variables
NoPredVars := PredList.Items.Count; NoPredVars := PredList.Items.Count;
NoCntrlVars := PartList.Items.Count; NoCntrlVars := PartList.Items.Count;
if (NoPredVars = 0) or (NoCntrlVars = 0) then
begin
MessageDlg('You must select at least one predictor and one control variable.', mtError, [mbOK], 0);
exit;
end;
TotNoVars := NoPredVars + NoCntrlVars + 1; TotNoVars := NoPredVars + NoCntrlVars + 1;
count := NoCases; count := NoCases;
@ -257,8 +122,8 @@ begin
SetLength(vtimesw,NoVariables,NoVariables); SetLength(vtimesw,NoVariables,NoVariables);
SetLength(v,NoVariables,NoVariables); SetLength(v,NoVariables,NoVariables);
SetLength(W1,NoVariables,NoVariables); SetLength(W1,NoVariables,NoVariables);
SetLength(rmatrix,NoVariables+1,NoVariables+1); // augmented SetLength(rmatrix,NoVariables+1,NoVariables+1); // +1: augmented
SetLength(workmat,NoVariables+1,NoVariables+1); // augmented SetLength(workmat,NoVariables+1,NoVariables+1); // +1: augmented
SetLength(PredVars,NoVariables); SetLength(PredVars,NoVariables);
SetLength(CntrlVars,NoVariables); SetLength(CntrlVars,NoVariables);
SetLength(Means,NoVariables); SetLength(Means,NoVariables);
@ -276,7 +141,7 @@ begin
pcnt := 1; pcnt := 1;
for i := 0 to NoPredVars - 1 do for i := 0 to NoPredVars - 1 do
begin begin
varstring := PredList.Items.Strings[i]; varstring := PredList.Items[i];
for j := 1 to NoVariables do for j := 1 to NoVariables do
begin begin
if varstring = OS3MainFrm.DataGrid.Cells[j,0] then if varstring = OS3MainFrm.DataGrid.Cells[j,0] then
@ -289,7 +154,7 @@ begin
ccnt := 1; ccnt := 1;
for i := 0 to NoCntrlVars - 1 do for i := 0 to NoCntrlVars - 1 do
begin begin
varstring := PartList.Items.Strings[i]; varstring := PartList.Items[i];
for j := 1 to NoVariables do for j := 1 to NoVariables do
begin begin
if varstring = OS3MainFrm.DataGrid.Cells[j,0] then if varstring = OS3MainFrm.DataGrid.Cells[j,0] then
@ -299,7 +164,7 @@ begin
end; end;
end; end;
end; end;
varstring := DepVar.Text; varstring := DepVarEdit.Text;
for i := 1 to NoVariables do for i := 1 to NoVariables do
if varstring = OS3MainFrm.DataGrid.Cells[i,0] then DepVarNo := i; if varstring = OS3MainFrm.DataGrid.Cells[i,0] then DepVarNo := i;
@ -363,6 +228,7 @@ begin
end; end;
end; end;
MatInv(workmat, vtimesw, v, W1, NoCntrlVars); MatInv(workmat, vtimesw, v, W1, NoCntrlVars);
R2Cntrl := 0.0; R2Cntrl := 0.0;
for i := 1 to NoCntrlVars do for i := 1 to NoCntrlVars do
begin begin
@ -375,6 +241,7 @@ begin
end; end;
R2Cntrl := R2Cntrl + W[i-1] * rmatrix[0,L-1]; R2Cntrl := R2Cntrl + W[i-1] * rmatrix[0,L-1];
end; end;
lReport.Add('Squared Multiple Correlation with control variables: %6.3f', [R2Cntrl]); lReport.Add('Squared Multiple Correlation with control variables: %6.3f', [R2Cntrl]);
lReport.Add(''); lReport.Add('');
lReport.Add('Standardized Regression Coefficients:'); lReport.Add('Standardized Regression Coefficients:');
@ -400,47 +267,228 @@ begin
lReport.Add(' D.F.1 %8.0f', [df1]); lReport.Add(' D.F.1 %8.0f', [df1]);
lReport.Add(' D.F.2 %8.0f', [df2]); lReport.Add(' D.F.2 %8.0f', [df2]);
DisplayReport(lReport); FReportFrame.DisplayReport(lReport);
finally finally
lReport.Free; lReport.Free;
MatVars := nil;
W := nil;
Variances := nil;
StdDevs := nil;
Means := nil;
CntrlVars := nil;
PredVars := nil;
workmat := nil;
rmatrix := nil;
v := nil;
W1 := nil;
vtimesw := nil;
end; end;
end; end;
procedure TPartialsFrm.UpdateBtnStates;
procedure TPartialsForm.DepInBtnClick(Sender: TObject);
var
index: integer;
begin
index := VarList.ItemIndex;
if (index > -1) and (DepVarEdit.Text = '') then
begin
DepVarEdit.Text := VarList.Items[index];
VarList.Items.Delete(index);
UpdateBtnStates;
end;
end;
procedure TPartialsForm.DepOutBtnClick(Sender: TObject);
begin
if DepVarEdit.Text <> '' then
begin
VarList.Items.Add(DepVarEdit.Text);
DepVarEdit.Text := '';
UpdateBtnStates;
end;
end;
procedure TPartialsForm.PartInBtnClick(Sender: TObject);
var
i: integer;
begin
i := 0;
while i < VarList.Items.Count do
begin
if VarList.Selected[i] then
begin
PartList.Items.Add(VarList.Items[i]);
VarList.Items.Delete(i);
i := 0;
end else
i := i + 1;
end;
UpdateBtnStates;
end;
procedure TPartialsForm.PartListDblClick(Sender: TObject);
var
index: Integer;
begin
index := PartList.ItemIndex;
if index > -1 then
begin
VarList.Items.Add(PartList.Items[index]);
PartList.Items.Delete(index);
UpdateBtnStates;
end;
end;
procedure TPartialsForm.PartOutBtnClick(Sender: TObject);
var
i: integer;
begin
i := 0;
if PartList.Items.Count = 0 then PartList.Selected[0] := true;
while i < PartList.Items.Count do
begin
if PartList.Selected[i] then
begin
VarList.Items.Add(PartList.Items[i]);
PartList.Items.Delete(i);
i := 0;
end else
i := i + 1;
end;
UpdateBtnStates;
end;
procedure TPartialsForm.PredInBtnClick(Sender: TObject);
var
i: integer;
begin
i := 0;
while i < VarList.Items.Count do
begin
if VarList.Selected[i] then
begin
PredList.Items.Add(VarList.Items[i]);
VarList.Items.Delete(i);
i := 0;
end else
i := i + 1;
end;
UpdateBtnStates;
end;
procedure TPartialsForm.PredListDblClick(Sender: TObject);
var
index: Integer;
begin
index := PredList.ItemIndex;
if index > -1 then
begin
VarList.Items.Add(PredList.Items[index]);
PredList.Items.Delete(index);
UpdateBtnStates;
end;
end;
procedure TPartialsForm.PredOutBtnClick(Sender: TObject);
var
i: integer;
begin
i := 0;
if PredList.Items.Count = 1 then PredList.Selected[0] := true;
while i < PredList.Items.Count do
begin
if PredList.Selected[i] then
begin
VarList.Items.Add(PredList.Items[i]);
PredList.Items.Delete(i);
i := 0;
end else
i := i + 1;
end;
UpdateBtnStates;
end;
procedure TPartialsForm.Reset;
var
i: integer;
begin
inherited;
DepVarEdit.Clear;
PartList.Clear;
PredList.Clear;
VarList.Clear;
for i := 1 to OS3MainFrm.DataGrid.ColCount - 1 do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
UpdateBtnStates;
end;
procedure TPartialsForm.UpdateBtnStates;
var var
lSelected: Boolean; lSelected: Boolean;
begin begin
inherited;
lSelected := AnySelected(VarList); lSelected := AnySelected(VarList);
DepInBtn.Enabled := lSelected and (DepVar.Text = ''); DepInBtn.Enabled := lSelected and (DepVarEdit.Text = '');
PredInBtn.Enabled := lSelected; PredInBtn.Enabled := lSelected;
PartInBtn.Enabled := lSelected; PartInBtn.Enabled := lSelected;
DepOutBtn.Enabled := DepVar.Text <> ''; DepOutBtn.Enabled := DepVarEdit.Text <> '';
PredOutBtn.Enabled := AnySelected(PredList); PredOutBtn.Enabled := AnySelected(PredList) or (PredList.Count = 1);
PartOutBtn.Enabled := AnySelected(Partlist); PartOutBtn.Enabled := AnySelected(Partlist) or (PartList.Count = 1);
end; end;
procedure TPartialsFrm.VarListSelectionChange(Sender: TObject; User: boolean);
function TPartialsForm.Validate(out AMsg: String; out AControl: TWinControl): Boolean;
begin
Result := false;
if DepVarEdit.Text = '' then
begin
AMsg := 'No dependent variable selected.';
AControl := VarList;
exit;
end;
if (PredList.Items.Count = 0) or (PartList.Items.Count = 0) then
begin
AMsg := 'You must select at least one predictor and one control variable.';
AControl := VarList;
exit;
end;
Result := true;
end;
procedure TPartialsForm.VarListDblClick(Sender: TObject);
var
index: Integer;
s: String;
begin
index := VarList.ItemIndex;
s := VarList.Items[index];
if index > -1 then
begin
if DepVarEdit.Text = '' then
begin
DepVarEdit.Text := s;
VarList.Items.Delete(index);
UpdateBtnStates;
end else
begin
PredList.Items.Add(s);
Varlist.Items.Delete(index);
UpdateBtnStates;
end;
end;
end;
procedure TPartialsForm.VarListSelectionChange(Sender: TObject; User: boolean);
begin begin
UpdateBtnStates; UpdateBtnStates;
end; end;
initialization
{$I partialsunit.lrs}
end. end.

View File

@ -563,41 +563,80 @@ implementation
{$R *.lfm} {$R *.lfm}
uses uses
Utils, BasicStatsFormUnit, // General
OptionsUnit, OutputUnit, LicenseUnit, TransFrmUnit, DescriptiveUnit, Utils, BasicStatsFormUnit, GridHelpUnit, OutputUnit, LicenseUnit,
FreqUnit, CrossTabUnit, BreakDownUnit, BoxPlotUnit, NormalityUnit, Rot3DUnit,
PlotXYUnit, BubblePlotUnit, StemLeafUnit, MultXvsYUnit, OneSampleUnit, // Comparisons
TwoCorrsUnit, TwoPropUnit, TtestUnit, BlkAnovaUnit, WithinANOVAUnit, ABCNestedUnit, ABRAnovaUnit, ANCOVAUNIT, AnovaTestsUnit, AxSAnovaUnit,
AxSAnovaUnit, ABRAnovaUnit, ANCOVAUNIT, LatinSqrsUnit, RMatUnit, PartialsUnit, BlkAnovaUnit, BNestAUnit, GLMUnit, LatinSqrsUnit, OneCaseAnovaUnit,
AutoCorUnit, CanonUnit, GLMUnit, StepFwdMRUnit, BlkMRegUnit, BackRegUnit, TtestUnit, TwoCorrsUnit, TwoPropUnit, WithinANOVAUnit,
BestRegUnit, SimultRegUnit, CoxRegUnit, LogRegUnit, LinProUnit, DiscrimUnit,
FactorUnit, HierarchUnit, PathUnit, LogLinScreenUnit, TwoWayLogLinUnit, // Cross-classification
ABCLogLinUnit, TestGenUnit, TestScoreUnit, RaschUnit, SuccIntUnit, GuttmanUnit, ABCLogLinUnit, LogLinScreenUnit, TwoWayLogLinUnit,
CompRelUnit, KR21Unit, SpBrUnit, RelChangeUnit, DIFUnit, PolyDIFUnit,
ChiSqrUnit, SpearmanUnit, MannWhitUUnit, ExactUnit, ConcordanceUnit, // Descriptive
KWAnovaUnit, WilcoxonUnit, CochranQUnit, SignTestUnit, FriedmanUnit, BoxPlotUnit, BreakDownUnit, BubblePlotUnit, CompareDistUnit, CrossTabUnit,
BinomialUnit, KendallTauUnit, KaplanMeierUnit, DescriptiveUnit, FreqUnit, GroupFreqUnit, MultXvsYUnit, NormalityUnit,
PlotXYUnit, ResistanceLineUnit, Rot3DUnit, SmoothDataUnit, StemLeafUnit,
XvsMultYUnit,
// Financial
DblDeclineUnit, LoanItUnit, SLDUnit, SumYrsDepUnit,
// Correlations
RMatUnit, PartialsUnit, AutoCorUnit, CanonUnit,
// Help
AboutUnit,
// Matrix manuipulation
matmanunit,
// Measurement
CompRelUnit, DIFUnit, gradebookunit, GuttmanUnit, KR21Unit, PolyDIFUnit,
RaschUnit, RelChangeUnit, SpBrUnit, SuccIntUnit, TestGenUnit, TestScoreUnit,
// Multiple Regression
BackRegUnit, BestRegUnit, BlkMRegUnit, CoxRegUnit, LinProUnit, LSMRunit,
SimultRegUnit, StepFwdMRUnit, TwoSLSUnit, WLSUnit,
// Multivariate
AvgLinkUnit, BartlettTestUnit, CorrespondenceUnit, DiscrimUnit, FactorUnit,
HierarchUnit, kmeansunit, MedianPolishUnit, PathUnit,
SingleLinkUnit,
// Nonparametric
BinomialUnit, ChiSqrUnit, CochranQUnit, ConcordanceUnit, ExactUnit,
FriedmanUnit, GenKappaUnit, KaplanMeierUnit, KappaUnit, KendallTauUnit,
KWAnovaUnit, LifeTableUnit, MannWhitUUnit, RIDITUnit, RunsTestUnit, SensUnit,
SignTestUnit, SimpleChiSqrUnit, SpearmanUnit, SRHTestUnit, WilcoxonUnit,
// One-sample tests
OneSampleUnit,
// Options
OptionsUnit,
// Simulations
CorSimUnit, DistribUnit, ErrorCurvesUnit, FProbUnit, GenRndValsUnit,
GenSeqUnit, HyperGeoUnit, MultGenUnit, PCurvesUnit, ProbChiSqrUnit,
ProbSmallerzUnit, ProbzUnit, TprobUnit, TwozProbUnit,
// Statistical process control // Statistical process control
XBarChartUnit, RChartUnit, SChartUnit, CUSUMUnit, CChartUnit, XBarChartUnit, RChartUnit, SChartUnit, CUSUMUnit, CChartUnit,
PChartUnit, UChartUnit, PChartUnit, UChartUnit,
CorSimUnit, // Tools
ErrorCurvesUnit, PCurvesUnit, DistribUnit, GenSeqUnit, GenRndValsUnit, CalculatorUnit, DataSmoothUnit, JPEGUnit, SelectCasesUnit, SortCasesUnit,
MultGenUnit, LoanItUnit, SumYrsDepUnit, SLDUnit, DblDeclineUnit,
RIDITUnit, TwoSLSUnit, WLSUnit, SortCasesUnit, // Not identified
SelectCasesUnit, GridHelpUnit, RecodeUnit, KappaUnit, AvgLinkUnit, kmeansunit, TransFrmUnit, LogRegUnit,
SingleLinkUnit, GenKappaUnit, CompareDistUnit, matmanunit, gradebookunit, RecodeUnit, InversezUnit, EquationUnit, ItemBankingUnit;
ProbzUnit, ProbSmallerzUnit, TwozProbUnit, InversezUnit, ProbChiSqrUnit,
TprobUnit, FProbUnit, HyperGeoUnit, BNestAUnit, ABCNestedUnit, BartlettTestUnit,
DataSmoothUnit, GroupFreqUnit, RunsTestUnit, XvsMultYUnit, SensUnit,
CorrespondenceUnit, EquationUnit, CalculatorUnit, JPEGUnit, ResistanceLineUnit,
MedianPolishUnit, OneCaseAnovaUnit, SmoothDataUnit, SRHTestUnit, AboutUnit,
ItemBankingUnit, ANOVATESTSUnit, SimpleChiSqrUnit, LifeTableUnit, LSMRunit;
const const
HELP_KEYWORD_PREFIX = 'html'; HELP_KEYWORD_PREFIX = 'html';
{ TOS3MainFrm } { TOS3MainFrm }
procedure TOS3MainFrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure TOS3MainFrm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@ -729,11 +768,12 @@ end;
// Menu "Correlation" > "Partial, Semipartial" // Menu "Correlation" > "Partial, Semipartial"
procedure TOS3MainFrm.mnuAnalysisCorrel_PartialClick(Sender: TObject); procedure TOS3MainFrm.mnuAnalysisCorrel_PartialClick(Sender: TObject);
begin begin
if PartialsFrm = nil then if PartialsForm = nil then
Application.CreateForm(TPartialsFrm, PartialsFrm); Application.CreateForm(TPartialsForm, PartialsForm);
PartialsFrm.ShowModal; PartialsForm.Show;
end; end;
// Menu "Correlation" > "Autocorrelation"
procedure TOS3MainFrm.mnuAnalysisCorrel_AutoCorrClick(Sender: TObject); procedure TOS3MainFrm.mnuAnalysisCorrel_AutoCorrClick(Sender: TObject);
begin begin
if AutoCorrFrm = nil then if AutoCorrFrm = nil then
@ -741,6 +781,7 @@ begin
AutocorrFrm.ShowModal; AutocorrFrm.ShowModal;
end; end;
// Menu "Correlation" > "Canonical"
procedure TOS3MainFrm.mnuAnalysisCorrel_CanonicalClick(Sender: TObject); procedure TOS3MainFrm.mnuAnalysisCorrel_CanonicalClick(Sender: TObject);
begin begin
if CannonFrm = nil then if CannonFrm = nil then