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>
<Filename Value="forms\analysis\correlation\partialsunit.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="PartialsFrm"/>
<ComponentName Value="PartialsForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="PartialsUnit"/>

View File

@ -1,573 +1,275 @@
object PartialsFrm: TPartialsFrm
inherited PartialsForm: TPartialsForm
Left = 593
Height = 398
Height = 328
Top = 175
Width = 361
Width = 513
HelpType = htKeyword
HelpKeyword = 'html/PartialSemipartial.htm'
AutoSize = True
Caption = 'Partial Correlation'
ClientHeight = 398
ClientWidth = 361
OnActivate = FormActivate
OnCreate = FormCreate
OnShow = FormShow
Position = poMainFormCenter
LCLVersion = '2.1.0.0'
object Label1: TLabel
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 8
ClientHeight = 328
ClientWidth = 513
inherited ParamsPanel: TPanel
Height = 312
ClientHeight = 312
inherited CloseBtn: TButton
Top = 287
TabOrder = 13
end
inherited ComputeBtn: TButton
Top = 287
TabOrder = 12
end
inherited ResetBtn: TButton
Top = 287
TabOrder = 11
end
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 = 8
Top = 0
Width = 100
BorderSpacing.Left = 8
BorderSpacing.Top = 8
Caption = 'Available Variables:'
ParentColor = False
end
object Label2: TLabel
AnchorSideLeft.Control = DepVar
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
object VarList: TListBox[6]
AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Control = Label1
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = DepInBtn
AnchorSideBottom.Control = Bevel3
Left = 8
Height = 170
Top = 25
Width = 150
Left = 0
Height = 135
Top = 17
Width = 126
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Top = 2
BorderSpacing.Right = 8
BorderSpacing.Right = 6
ItemHeight = 0
MultiSelect = True
OnDblClick = VarListDblClick
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
object PartInBtn: TBitBtn[7]
AnchorSideTop.Control = VarList
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Bevel1
AnchorSideBottom.Control = Label4
Left = 51
Height = 28
Top = 203
Width = 28
Left = 33
Height = 26
Top = 160
Width = 26
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
object PartOutBtn: TBitBtn[8]
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
}
Left = 67
Height = 26
Top = 160
Width = 26
Images = MainDataModule.ImageList
ImageIndex = 2
OnClick = PartOutBtnClick
Spacing = 0
TabOrder = 8
end
object DepVar: TEdit
AnchorSideLeft.Control = DepInBtn
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label2
object Label4: TLabel[9]
AnchorSideLeft.Control = PartList
AnchorSideTop.Control = PartInBtn
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'
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 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
object PartList: TListBox[10]
AnchorSideLeft.Control = ParamsPanel
AnchorSideTop.Control = Label4
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = VarList
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Bevel2
Left = 8
Height = 93
Top = 256
Width = 150
AnchorSideBottom.Control = ButtonBevel
Left = 0
Height = 60
Top = 211
Width = 126
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Top = 2
ItemHeight = 0
MultiSelect = True
OnDblClick = PartListDblClick
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
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 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
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 CloseBtn: TButton
AnchorSideRight.Control = Owner
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.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
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 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
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
object Bevel1: TBevel[19]
AnchorSideLeft.Control = VarList
AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = VarList
AnchorSideTop.Side = asrBottom
Left = 79
Left = 59
Height = 28
Top = 195
Top = 152
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
object Bevel3: TBevel[20]
AnchorSideTop.Control = ParamsPanel
AnchorSideTop.Side = asrCenter
Left = 8
Height = 8
Top = 195
Top = 152
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
inherited ParamsSplitter: TSplitter
Height = 328
end
end

View File

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

View File

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