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
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 Height = 15
Top = 8 Top = 0
Width = 100 Width = 100
BorderSpacing.Left = 8
BorderSpacing.Top = 8
Caption = 'Available Variables:' Caption = 'Available Variables:'
ParentColor = False ParentColor = False
end end
object Label2: TLabel object VarList: TListBox[6]
AnchorSideLeft.Control = DepVar AnchorSideLeft.Control = ParamsPanel
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.Control = Label1
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = DepInBtn AnchorSideRight.Control = DepInBtn
AnchorSideBottom.Control = Bevel3 AnchorSideBottom.Control = Bevel3
Left = 8 Left = 0
Height = 170 Height = 135
Top = 25 Top = 17
Width = 150 Width = 126
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
ItemHeight = 0 ItemHeight = 0
MultiSelect = True MultiSelect = True
OnDblClick = VarListDblClick
OnSelectionChange = VarListSelectionChange OnSelectionChange = VarListSelectionChange
TabOrder = 0 TabOrder = 0
end end
object DepInBtn: TBitBtn object PartInBtn: TBitBtn[7]
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.Control = VarList
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Bevel1 AnchorSideRight.Control = Bevel1
AnchorSideBottom.Control = Label4 AnchorSideBottom.Control = Label4
Left = 51 Left = 33
Height = 28 Height = 26
Top = 203 Top = 160
Width = 28 Width = 26
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
BorderSpacing.Top = 8 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 Images = MainDataModule.ImageList
ImageIndex = 3 ImageIndex = 3
OnClick = PartInBtnClick OnClick = PartInBtnClick
Spacing = 0 Spacing = 0
TabOrder = 7 TabOrder = 7
end end
object PartOutBtn: TBitBtn object PartOutBtn: TBitBtn[8]
AnchorSideLeft.Control = Bevel1 AnchorSideLeft.Control = Bevel1
AnchorSideLeft.Side = asrBottom AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = PartInBtn AnchorSideTop.Control = PartInBtn
Left = 87 Left = 67
Height = 28 Height = 26
Top = 203 Top = 160
Width = 28 Width = 26
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 Images = MainDataModule.ImageList
ImageIndex = 2 ImageIndex = 2
OnClick = PartOutBtnClick OnClick = PartOutBtnClick
Spacing = 0 Spacing = 0
TabOrder = 8 TabOrder = 8
end end
object DepVar: TEdit object Label4: TLabel[9]
AnchorSideLeft.Control = DepInBtn AnchorSideLeft.Control = PartList
AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = PartInBtn
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner AnchorSideBottom.Control = PartList
AnchorSideRight.Side = asrBottom Left = 0
AnchorSideBottom.Control = DepOutBtn Height = 15
AnchorSideBottom.Side = asrBottom Top = 194
Left = 202 Width = 121
Height = 23 BorderSpacing.Top = 8
Top = 42 BorderSpacing.Bottom = 2
Width = 151 Caption = 'Variables Partialed Out:'
Anchors = [akTop, akLeft, akRight] ParentColor = False
BorderSpacing.Left = 8
BorderSpacing.Top = 2
BorderSpacing.Right = 8
ReadOnly = True
TabOrder = 3
Text = 'DepVar'
end end
object PredList: TListBox object PartList: TListBox[10]
AnchorSideLeft.Control = PredInBtn AnchorSideLeft.Control = ParamsPanel
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.Control = Label4
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = VarList AnchorSideRight.Control = VarList
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Bevel2 AnchorSideBottom.Control = ButtonBevel
Left = 8 Left = 0
Height = 93 Height = 60
Top = 256 Top = 211
Width = 150 Width = 126
Anchors = [akTop, akLeft, akRight, akBottom] Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Left = 8
BorderSpacing.Top = 2 BorderSpacing.Top = 2
ItemHeight = 0 ItemHeight = 0
MultiSelect = True MultiSelect = True
OnDblClick = PartListDblClick
OnSelectionChange = VarListSelectionChange OnSelectionChange = VarListSelectionChange
TabOrder = 9 TabOrder = 9
end end
object ResetBtn: TButton object DepInBtn: TBitBtn[11]
AnchorSideRight.Control = ComputeBtn AnchorSideLeft.Control = ParamsPanel
AnchorSideBottom.Control = Owner AnchorSideLeft.Side = asrCenter
AnchorSideBottom.Side = asrBottom AnchorSideTop.Control = VarList
Left = 152 Left = 132
Height = 25 Height = 26
Top = 365 Top = 17
Width = 54 Width = 26
Anchors = [akRight, akBottom] Images = MainDataModule.ImageList
AutoSize = True ImageIndex = 1
BorderSpacing.Left = 8 OnClick = DepInBtnClick
BorderSpacing.Top = 8 Spacing = 0
BorderSpacing.Right = 8 TabOrder = 1
BorderSpacing.Bottom = 8
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 11
end end
object ComputeBtn: TButton object DepOutBtn: TBitBtn[12]
AnchorSideRight.Control = CloseBtn AnchorSideLeft.Control = ParamsPanel
AnchorSideBottom.Control = Owner AnchorSideLeft.Side = asrCenter
AnchorSideBottom.Side = asrBottom AnchorSideTop.Control = DepInBtn
Left = 214 AnchorSideTop.Side = asrBottom
Height = 25 Left = 132
Top = 365 Height = 26
Width = 76 Top = 47
Anchors = [akRight, akBottom] Width = 26
AutoSize = True BorderSpacing.Top = 4
BorderSpacing.Left = 8 Images = MainDataModule.ImageList
BorderSpacing.Top = 8 ImageIndex = 0
BorderSpacing.Right = 8 OnClick = DepOutBtnClick
BorderSpacing.Bottom = 8 Spacing = 0
Caption = 'Compute' TabOrder = 3
OnClick = ComputeBtnClick
TabOrder = 12
end end
object CloseBtn: TButton object PredInBtn: TBitBtn[13]
AnchorSideRight.Control = Owner 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 AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom AnchorSideBottom.Side = asrBottom
Left = 298 Left = 164
Height = 25 Height = 23
Top = 365 Top = 34
Width = 55 Width = 127
Anchors = [akRight, akBottom] Anchors = [akTop, akLeft, akRight]
AutoSize = True BorderSpacing.Left = 6
BorderSpacing.Left = 8 BorderSpacing.Top = 2
BorderSpacing.Top = 8 ReadOnly = True
BorderSpacing.Right = 8 TabOrder = 2
BorderSpacing.Bottom = 8 Text = 'DepVarEdit'
Caption = 'Close'
ModalResult = 11
TabOrder = 13
end end
object HelpBtn: TButton object PredList: TListBox[18]
Tag = 136 AnchorSideLeft.Control = PredInBtn
AnchorSideRight.Control = ResetBtn AnchorSideLeft.Side = asrBottom
AnchorSideBottom.Control = Owner AnchorSideTop.Control = Label3
AnchorSideBottom.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 93 AnchorSideRight.Control = ParamsPanel
Height = 25 AnchorSideRight.Side = asrBottom
Top = 365 AnchorSideBottom.Control = Bevel3
Width = 51 Left = 164
Anchors = [akRight, akBottom] Height = 42
AutoSize = True Top = 110
BorderSpacing.Left = 8 Width = 127
BorderSpacing.Top = 8 Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Right = 8 BorderSpacing.Left = 6
BorderSpacing.Bottom = 8 BorderSpacing.Top = 2
Caption = 'Help' ItemHeight = 0
OnClick = HelpBtnClick MultiSelect = True
TabOrder = 10 OnDblClick = PredListDblClick
OnSelectionChange = VarListSelectionChange
TabOrder = 6
end end
object Bevel1: TBevel object Bevel1: TBevel[19]
AnchorSideLeft.Control = VarList AnchorSideLeft.Control = VarList
AnchorSideLeft.Side = asrCenter AnchorSideLeft.Side = asrCenter
AnchorSideTop.Control = VarList AnchorSideTop.Control = VarList
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 79 Left = 59
Height = 28 Height = 28
Top = 195 Top = 152
Width = 8 Width = 8
Shape = bsSpacer Shape = bsSpacer
end end
object Bevel2: TBevel object Bevel3: TBevel[20]
AnchorSideLeft.Control = Owner AnchorSideTop.Control = ParamsPanel
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 AnchorSideTop.Side = asrCenter
Left = 8 Left = 8
Height = 8 Height = 8
Top = 195 Top = 152
Width = 40 Width = 40
Shape = bsSpacer Shape = bsSpacer
end end
object Bevel4: TBevel end
AnchorSideLeft.Control = Owner inherited ParamsSplitter: TSplitter
AnchorSideLeft.Side = asrCenter Height = 328
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