LazStats: Remove original source files due to svn issues

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7879 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-11-16 10:54:23 +00:00
parent 5f7a256075
commit 3924ba854b
264 changed files with 0 additions and 90430 deletions

View File

@ -1,574 +0,0 @@
object ABCLogLinearFrm: TABCLogLinearFrm
Left = 122
Height = 434
Top = 170
Width = 699
Caption = 'Log Linear Analysis for AxBxC Classification Table'
ClientHeight = 434
ClientWidth = 699
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 343
Height = 14
Top = 40
Width = 64
Caption = 'No. of Rows:'
ParentColor = False
end
object Label2: TLabel
Left = 464
Height = 14
Top = 36
Width = 62
Caption = 'No. of Cols.:'
ParentColor = False
end
object Label3: TLabel
Left = 230
Height = 14
Top = 71
Width = 63
Caption = 'Row Variable'
ParentColor = False
end
object Label4: TLabel
Left = 230
Height = 14
Top = 151
Width = 77
Caption = 'Column Variable'
ParentColor = False
end
object Label5: TLabel
Left = 231
Height = 14
Top = 232
Width = 63
Caption = 'Slice Variable'
ParentColor = False
end
object Label6: TLabel
Left = 230
Height = 14
Top = 312
Width = 93
Caption = 'Frequency Variable'
ParentColor = False
end
object Label7: TLabel
Left = 584
Height = 14
Top = 30
Width = 64
Caption = 'No. of Slices:'
ParentColor = False
end
object FileFromGrp: TRadioGroup
Left = 6
Height = 57
Top = 5
Width = 176
AutoFill = True
Caption = 'Enter Data From:'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 39
ClientWidth = 172
Items.Strings = (
'File Data in the Main Grid'
'Data Entered on this Form'
)
OnClick = FileFromGrpClick
TabOrder = 0
end
object VarList: TListBox
Left = 8
Height = 309
Top = 66
Width = 173
ItemHeight = 0
TabOrder = 1
end
object RowInBtn: TBitBtn
Left = 192
Height = 28
Top = 72
Width = 31
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
}
NumGlyphs = 0
OnClick = RowInBtnClick
TabOrder = 2
end
object RowOutBtn: TBitBtn
Left = 192
Height = 28
Top = 104
Width = 31
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
}
NumGlyphs = 0
OnClick = RowOutBtnClick
TabOrder = 3
end
object ColInBtn: TBitBtn
Left = 192
Height = 28
Top = 152
Width = 31
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
}
NumGlyphs = 0
OnClick = ColInBtnClick
TabOrder = 4
end
object ColOutBtn: TBitBtn
Left = 192
Height = 28
Top = 184
Width = 31
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
}
NumGlyphs = 0
OnClick = ColOutBtnClick
TabOrder = 5
end
object SliceBtnIn: TBitBtn
Left = 192
Height = 28
Top = 232
Width = 31
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
}
NumGlyphs = 0
OnClick = SliceBtnInClick
TabOrder = 6
end
object SliceBtnOut: TBitBtn
Left = 191
Height = 28
Top = 264
Width = 31
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
}
NumGlyphs = 0
OnClick = SliceBtnOutClick
TabOrder = 7
end
object FreqInBtn: TBitBtn
Left = 192
Height = 28
Top = 312
Width = 31
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
}
NumGlyphs = 0
OnClick = FreqInBtnClick
TabOrder = 8
end
object FreqOutBtn: TBitBtn
Left = 192
Height = 28
Top = 344
Width = 31
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
}
NumGlyphs = 0
OnClick = FreqOutBtnClick
TabOrder = 9
end
object NRowsEdit: TEdit
Left = 409
Height = 21
Top = 26
Width = 43
OnKeyPress = NRowsEditKeyPress
TabOrder = 10
Text = 'NRowsEdit'
end
object NColsEdit: TEdit
Left = 528
Height = 21
Top = 26
Width = 47
OnKeyPress = NColsEditKeyPress
TabOrder = 11
Text = 'NColsEdit'
end
object Grid: TStringGrid
Left = 343
Height = 310
Top = 62
Width = 346
ColCount = 2
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing, goTabs, goSmoothScroll]
RowCount = 2
TabOrder = 12
end
object RowVarEdit: TEdit
Left = 230
Height = 21
Top = 87
Width = 107
TabOrder = 13
Text = 'RowVarEdit'
end
object ColVarEdit: TEdit
Left = 231
Height = 21
Top = 168
Width = 107
TabOrder = 14
Text = 'Edit3'
end
object SliceVarEdit: TEdit
Left = 230
Height = 21
Top = 248
Width = 107
TabOrder = 15
Text = 'Edit3'
end
object FreqVarEdit: TEdit
Left = 230
Height = 21
Top = 328
Width = 107
TabOrder = 16
Text = 'Edit3'
end
object ResetBtn: TButton
Left = 8
Height = 27
Top = 387
Width = 73
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 17
end
object CancelBtn: TButton
Left = 109
Height = 27
Top = 387
Width = 73
Caption = 'Cancel'
ModalResult = 2
TabOrder = 18
end
object ComputeBtn: TButton
Left = 343
Height = 27
Top = 387
Width = 73
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 19
end
object ReturnBtn: TButton
Left = 448
Height = 27
Top = 387
Width = 73
Caption = 'Return'
ModalResult = 1
TabOrder = 20
end
object NslicesEdit: TEdit
Left = 647
Height = 21
Top = 24
Width = 39
OnKeyPress = NslicesEditKeyPress
TabOrder = 21
Text = 'NslicesEdit'
end
object HelpBtn: TButton
Tag = 101
Left = 224
Height = 27
Top = 387
Width = 73
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 22
end
end

View File

@ -1,472 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TABCLogLinearFrm','FORMDATA',[
'TPF0'#16'TABCLogLinearFrm'#15'ABCLogLinearFrm'#4'Left'#2'z'#6'Height'#3#178#1
+#3'Top'#3#170#0#5'Width'#3#187#2#7'Caption'#6'2Log Linear Analysis for AxBxC'
+' Classification Table'#12'ClientHeight'#3#178#1#11'ClientWidth'#3#187#2#6'O'
+'nShow'#7#8'FormShow'#10'LCLVersion'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'L'
+'eft'#3'W'#1#6'Height'#2#14#3'Top'#2'('#5'Width'#2'@'#7'Caption'#6#12'No. of'
+' Rows:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#208#1#6'Height'
+#2#14#3'Top'#2'$'#5'Width'#2'>'#7'Caption'#6#13'No. of Cols.:'#11'ParentColo'
+'r'#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#230#0#6'Height'#2#14#3'Top'#2'G'#5'W'
+'idth'#2'?'#7'Caption'#6#12'Row Variable'#11'ParentColor'#8#0#0#6'TLabel'#6
+'Label4'#4'Left'#3#230#0#6'Height'#2#14#3'Top'#3#151#0#5'Width'#2'M'#7'Capti'
+'on'#6#15'Column Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'
+#3#231#0#6'Height'#2#14#3'Top'#3#232#0#5'Width'#2'?'#7'Caption'#6#14'Slice V'
+'ariable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label6'#4'Left'#3#230#0#6'Height'
+#2#14#3'Top'#3'8'#1#5'Width'#2']'#7'Caption'#6#18'Frequency Variable'#11'Par'
+'entColor'#8#0#0#6'TLabel'#6'Label7'#4'Left'#3'H'#2#6'Height'#2#14#3'Top'#2
+#30#5'Width'#2'@'#7'Caption'#6#14'No. of Slices:'#11'ParentColor'#8#0#0#11'T'
+'RadioGroup'#11'FileFromGrp'#4'Left'#2#6#6'Height'#2'9'#3'Top'#2#5#5'Width'#3
+#176#0#8'AutoFill'#9#7'Caption'#6#16'Enter Data From:'#28'ChildSizing.LeftRi'
+'ghtSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.Enlarge'
+'Horizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7
+#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScale'
+'Childs'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.'
+'Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'
+#2#1#12'ClientHeight'#2''''#11'ClientWidth'#3#172#0#13'Items.Strings'#1#6#26
+'File Data in the Main Grid'#6#25'Data Entered on this Form'#0#7'OnClick'#7
+#16'FileFromGrpClick'#8'TabOrder'#2#0#0#0#8'TListBox'#7'VarList'#4'Left'#2#8
+#6'Height'#3'5'#1#3'Top'#2'B'#5'Width'#3#173#0#10'ItemHeight'#2#0#8'TabOrder'
+#2#1#0#0#7'TBitBtn'#8'RowInBtn'#4'Left'#3#192#0#6'Height'#2#28#3'Top'#2'H'#5
+'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0
+'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0
+#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'
+#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'a'#190
+'m'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255
+'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139
+'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160
+#215#169#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255
+#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128
+#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199
+'t'#255#165#218#174#255#162#216#171#255#158#214#167#255#154#212#163#255#150
+#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255
+#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255
+#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255
+'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163
+'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247
+';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
,#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187
+'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnCl'
+'ick'#7#13'RowInBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#9'RowOutBtn'#4'Left'
+#3#192#0#6'Height'#2#28#3'Top'#2'h'#5'Width'#2#31#10'Glyph.Data'#10':'#4#0#0
+'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0
+#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0']'#184'h'
+#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255
+';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255
+#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134#255#156#213#165#255#152
+#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255
+#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!'
+'c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201#127#204#138#255#162#216
+#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142
+#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255
+'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'
+#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255
+'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'
+#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199
+'t'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'
+#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#14'RowOutBtnClick'#8'TabO'
+'rder'#2#3#0#0#7'TBitBtn'#8'ColInBtn'#4'Left'#3#192#0#6'Height'#2#28#3'Top'#3
+#152#0#5'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0
+'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0
+#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'
+#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'
+#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195
+'q'#255#160#215#169#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255
+#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255
+#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255
+']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145
+'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#13'ColInBtnClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#9'Col'
+'OutBtn'#4'Left'#3#192#0#6'Height'#2#28#3'Top'#3#184#0#5'Width'#2#31#10'Glyp'
+'h.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0
+#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'
+#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'
+#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134
+#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203
+#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190
+'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201#127
+#204#138#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255
+#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135
+#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255
+#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177
+'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#14
+'ColOutBtnClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'#10'SliceBtnIn'#4'Left'#3#192
+#0#6'Height'#2#28#3'Top'#3#232#0#5'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'
+#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0
+#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169
+'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255
,'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255
+#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161
+#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198
+#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196
+#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255
+#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149
+#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'
+#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195
+'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255
+'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#15'SliceBtnInClick'#8'TabOrder'
+#2#6#0#0#7'TBitBtn'#11'SliceBtnOut'#4'Left'#3#191#0#6'Height'#2#28#3'Top'#3#8
+#1#5'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0
+#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0
+#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153
+'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'
+#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255
+'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'
+#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195
+'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255
+#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255
+#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#16'SliceBtnOutClick'#8'TabOrder'#2#7#0#0#7'TBitBtn'#9
+'FreqInBtn'#4'Left'#3#192#0#6'Height'#2#28#3'Top'#3'8'#1#5'Width'#2#31#10'Gl'
+'yph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0
+#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'
+#184#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'
+#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'
+#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255
+#255#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165
+#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201
+#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140
+'J'#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255
+#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154
+#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194
+#130#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'
+#199't'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'
+#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/'
+'x5'#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#14'FreqInBtnClick'
+#8'TabOrder'#2#8#0#0#7'TBitBtn'#10'FreqOutBtn'#4'Left'#3#192#0#6'Height'#2#28
+#3'Top'#3'X'#1#5'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0
+#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0
+'d'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'
+#6'G'#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217
+'M'#161'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193
+#131#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'
+#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255
+#0'e'#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157
+#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195
+#132#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0
+#255#255#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255
+#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144
+#255#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255
+#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'
+#201#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153
+'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#15'FreqOutBtnClick'#8'TabOrder'#2#9#0#0
+#5'TEdit'#9'NRowsEdit'#4'Left'#3#153#1#6'Height'#2#21#3'Top'#2#26#5'Width'#2
+'+'#10'OnKeyPress'#7#17'NRowsEditKeyPress'#8'TabOrder'#2#10#4'Text'#6#9'NRow'
+'sEdit'#0#0#5'TEdit'#9'NColsEdit'#4'Left'#3#16#2#6'Height'#2#21#3'Top'#2#26#5
+'Width'#2'/'#10'OnKeyPress'#7#17'NColsEditKeyPress'#8'TabOrder'#2#11#4'Text'
+#6#9'NColsEdit'#0#0#11'TStringGrid'#4'Grid'#4'Left'#3'W'#1#6'Height'#3'6'#1#3
+'Top'#2'>'#5'Width'#3'Z'#1#8'ColCount'#2#2#7'Options'#11#15'goFixedVertLine'
+#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#13'goRangeSelect'#9'goEdi'
+'ting'#6'goTabs'#14'goSmoothScroll'#0#8'RowCount'#2#2#8'TabOrder'#2#12#0#0#5
,'TEdit'#10'RowVarEdit'#4'Left'#3#230#0#6'Height'#2#21#3'Top'#2'W'#5'Width'#2
+'k'#8'TabOrder'#2#13#4'Text'#6#10'RowVarEdit'#0#0#5'TEdit'#10'ColVarEdit'#4
+'Left'#3#231#0#6'Height'#2#21#3'Top'#3#168#0#5'Width'#2'k'#8'TabOrder'#2#14#4
+'Text'#6#5'Edit3'#0#0#5'TEdit'#12'SliceVarEdit'#4'Left'#3#230#0#6'Height'#2
+#21#3'Top'#3#248#0#5'Width'#2'k'#8'TabOrder'#2#15#4'Text'#6#5'Edit3'#0#0#5'T'
+'Edit'#11'FreqVarEdit'#4'Left'#3#230#0#6'Height'#2#21#3'Top'#3'H'#1#5'Width'
+#2'k'#8'TabOrder'#2#16#4'Text'#6#5'Edit3'#0#0#7'TButton'#8'ResetBtn'#4'Left'
+#2#8#6'Height'#2#27#3'Top'#3#131#1#5'Width'#2'I'#7'Caption'#6#5'Reset'#7'OnC'
+'lick'#7#13'ResetBtnClick'#8'TabOrder'#2#17#0#0#7'TButton'#9'CancelBtn'#4'Le'
+'ft'#2'm'#6'Height'#2#27#3'Top'#3#131#1#5'Width'#2'I'#7'Caption'#6#6'Cancel'
+#11'ModalResult'#2#2#8'TabOrder'#2#18#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3
+'W'#1#6'Height'#2#27#3'Top'#3#131#1#5'Width'#2'I'#7'Caption'#6#7'Compute'#7
+'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#19#0#0#7'TButton'#9'ReturnBtn'
+#4'Left'#3#192#1#6'Height'#2#27#3'Top'#3#131#1#5'Width'#2'I'#7'Caption'#6#6
+'Return'#11'ModalResult'#2#1#8'TabOrder'#2#20#0#0#5'TEdit'#11'NslicesEdit'#4
+'Left'#3#135#2#6'Height'#2#21#3'Top'#2#24#5'Width'#2''''#10'OnKeyPress'#7#19
+'NslicesEditKeyPress'#8'TabOrder'#2#21#4'Text'#6#11'NslicesEdit'#0#0#7'TButt'
+'on'#7'HelpBtn'#3'Tag'#2'e'#4'Left'#3#224#0#6'Height'#2#27#3'Top'#3#131#1#5
+'Width'#2'I'#7'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2
+#22#0#0#0
]);

View File

@ -1,995 +0,0 @@
unit ABCLogLinUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls, StdCtrls, Buttons, Grids, Math, OutPutUnit, MainUnit,
FunctionsLib, Globals, DataProcs, contexthelpunit;
type
{ TABCLogLinearFrm }
TABCLogLinearFrm = class(TForm)
HelpBtn: TButton;
RowInBtn: TBitBtn;
RowOutBtn: TBitBtn;
ColInBtn: TBitBtn;
ColOutBtn: TBitBtn;
SliceBtnIn: TBitBtn;
SliceBtnOut: TBitBtn;
FreqInBtn: TBitBtn;
FreqOutBtn: TBitBtn;
NslicesEdit: TEdit;
Label7: TLabel;
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
NRowsEdit: TEdit;
NColsEdit: TEdit;
RowVarEdit: TEdit;
ColVarEdit: TEdit;
SliceVarEdit: TEdit;
FreqVarEdit: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Grid: TStringGrid;
VarList: TListBox;
FileFromGrp: TRadioGroup;
procedure ColInBtnClick(Sender: TObject);
procedure ColOutBtnClick(Sender: TObject);
procedure ComputeBtnClick(Sender: TObject);
procedure FileFromGrpClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FreqInBtnClick(Sender: TObject);
procedure FreqOutBtnClick(Sender: TObject);
procedure NColsEditKeyPress(Sender: TObject; var Key: char);
procedure NRowsEditKeyPress(Sender: TObject; var Key: char);
procedure NslicesEditKeyPress(Sender: TObject; var Key: char);
procedure ResetBtnClick(Sender: TObject);
procedure HelpBtnClick(Sender: TObject);
procedure RowInBtnClick(Sender: TObject);
procedure RowOutBtnClick(Sender: TObject);
procedure SliceBtnInClick(Sender: TObject);
procedure SliceBtnOutClick(Sender: TObject);
private
{ private declarations }
procedure ModelEffect(Nrows,Ncols,Nslices : integer;
VAR Data : DblDyneCube;
VAR RowMarg : DblDyneVec;
VAR ColMarg : DblDyneVec;
VAR SliceMarg : DblDyneVec;
VAR AB : DblDyneMat;
VAR AC : DblDyneMat;
VAR BC : DblDyneMat;
VAR Total : double;
Model : integer);
procedure Iterate(Nrows, Ncols, Nslices : integer;
VAR Data : DblDyneCube;
VAR RowMarg : DblDyneVec;
VAR ColMarg : DblDyneVec;
VAR SliceMarg : DblDyneVec;
VAR Total : double;
VAR Expected : DblDyneCube;
VAR NewRowMarg : DblDyneVec;
VAR NewColMarg : DblDyneVec;
VAR NewSliceMarg : DblDyneVec;
VAR NewTotal : double);
procedure PrintTable(Nrows, Ncols, Nslices : integer;
VAR Data : DblDyneCube;
VAR RowMarg : DblDyneVec;
VAR ColMarg : DblDyneVec;
VAR SliceMarg : DblDyneVec;
Total : double);
procedure PrintLamdas(Nrows,Ncols,Nslices : integer;
Var CellLambdas : DblDyneQuad;
mu : double);
procedure PrintMatrix(VAR X : DblDyneMat;
Nrows, Ncols: integer;
Title : string);
public
{ public declarations }
end;
var
ABCLogLinearFrm: TABCLogLinearFrm;
implementation
{ TABCLogLinearFrm }
procedure TABCLogLinearFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
Grid.ColCount := 4;
Grid.RowCount := 2;
Grid.Cells[0,0] := 'ROW';
Grid.Cells[1,0] := 'COL';
Grid.Cells[2,0] := 'SLICE';
Grid.Cells[3,0] := 'FREQ.';
VarList.Clear;
for i := 1 to NoVariables do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
RowVarEdit.Text := '';
ColVarEdit.Text := '';
SliceVarEdit.Text := '';
FreqVarEdit.Text := '';
NRowsEdit.Text := '';
NColsEdit.Text := '';
NSlicesEdit.Text := '';
VarList.Visible := false;
RowInBtn.Visible := false;
RowOutBtn.Visible := false;
ColInBtn.Visible := false;
ColOutBtn.Visible := false;
SliceBtnIn.Visible := false;
SliceBtnOut.Visible := false;
FreqInBtn.Visible := false;
FreqOutBtn.Visible := false;
Label1.Visible := false;
Label2.Visible := false;
Label3.Visible := false;
Label4.Visible := false;
Label5.Visible := false;
Label6.Visible := false;
Label7.Visible := false;
RowVarEdit.Visible := false;
ColVarEdit.Visible := false;
SliceVarEdit.Visible := false;
FreqVarEdit.Visible := false;
NRowsEdit.Visible := false;
NColsEdit.Visible := false;
NSlicesEdit.Visible := false;
Grid.Visible := false;
end;
procedure TABCLogLinearFrm.HelpBtnClick(Sender: TObject);
begin
ContextHelpForm.HelpMessage((Sender as TButton).tag);
end;
procedure TABCLogLinearFrm.RowInBtnClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
RowVarEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
RowOutBtn.Visible := true;
RowInBtn.Visible := false;
end;
procedure TABCLogLinearFrm.RowOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(RowVarEdit.Text);
RowInBtn.Visible := true;
RowOutBtn.Visible := false;
RowVarEdit.Text := '';
end;
procedure TABCLogLinearFrm.SliceBtnInClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
SliceVarEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
SliceBtnOut.Visible := true;
SliceBtnIn.Visible := false;
end;
procedure TABCLogLinearFrm.SliceBtnOutClick(Sender: TObject);
begin
VarList.Items.Add(SliceVarEdit.Text);
SliceBtnIn.Visible := true;
SliceBtnOut.Visible := false;
FreqVarEdit.Text := '';
end;
procedure TABCLogLinearFrm.FileFromGrpClick(Sender: TObject);
begin
if FileFromGrp.ItemIndex = 0 then // file from main form
begin
VarList.Visible := true;
RowInBtn.Visible := true;
RowOutBtn.Visible := false;
ColInBtn.Visible := true;
ColOutBtn.Visible := false;
SliceBtnIn.Visible := true;
SliceBtnOut.Visible := false;
FreqInBtn.Visible := true;
FreqOutBtn.Visible := false;
Label4.Visible := true;
Label5.Visible := true;
Label6.Visible := true;
Label3.Visible := true;
RowVarEdit.Visible := true;
ColVarEdit.Visible := true;
SliceVarEdit.Visible := true;
FreqVarEdit.Visible := true;
Label1.Visible := false;
Label2.Visible := false;
Label7.Visible := false;
NRowsEdit.Visible := false;
NColsEdit.Visible := false;
NSlicesEdit.Visible := false;
Grid.Visible := false;
end;
if FileFromGrp.ItemIndex = 1 then // data from this form
begin
VarList.Visible := false;
RowInBtn.Visible := false;
RowOutBtn.Visible := false;
ColInBtn.Visible := false;
ColOutBtn.Visible := false;
SliceBtnIn.Visible := false;
SliceBtnOut.Visible := false;
FreqInBtn.Visible := false;
FreqOutBtn.Visible := false;
Label4.Visible := false;
Label5.Visible := false;
Label6.Visible := false;
Label3.Visible := false;
RowVarEdit.Visible := false;
ColVarEdit.Visible := false;
SliceVarEdit.Visible := false;
FreqVarEdit.Visible := false;
Label1.Visible := true;
Label2.Visible := true;
Label7.Visible := true;
NRowsEdit.Visible := true;
NColsEdit.Visible := true;
NSlicesEdit.Visible := true;
Grid.Visible := true;
end;
end;
procedure TABCLogLinearFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(Self);
end;
procedure TABCLogLinearFrm.FreqInBtnClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
FreqVarEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
FreqOutBtn.Visible := true;
FreqInBtn.Visible := false;
end;
procedure TABCLogLinearFrm.FreqOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(FreqVarEdit.Text);
FreqInBtn.Visible := true;
FreqOutBtn.Visible := false;
FreqVarEdit.Text := '';
end;
procedure TABCLogLinearFrm.NColsEditKeyPress(Sender: TObject; var Key: char);
begin
if ord(Key) = 13 then NslicesEdit.SetFocus;
end;
procedure TABCLogLinearFrm.NRowsEditKeyPress(Sender: TObject; var Key: char);
begin
if ord(Key) = 13 then NcolsEdit.SetFocus;
end;
procedure TABCLogLinearFrm.NslicesEditKeyPress(Sender: TObject; var Key: char);
var
i, j, k, row : integer;
Nslices, Ncols, Nrows : integer;
begin
if ord(Key) = 13 then
begin
Nrows := StrToInt(NrowsEdit.Text);
Ncols := StrToInt(NcolsEdit.Text);
Nslices := StrToInt(NslicesEdit.Text);
Grid.RowCount := Nrows * Ncols * Nslices + 1;
row := 1;
for k := 1 to Nslices do
begin
for j := 1 to Ncols do
begin
for i := 1 to Nrows do
begin
Grid.Cells[0,row] := IntToStr(i);
Grid.Cells[1,row] := IntToStr(j);
Grid.Cells[2,row] := IntToStr(k);
row := row + 1;
end;
end;
end;
Grid.SetFocus;
end;
end;
procedure TABCLogLinearFrm.ColInBtnClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
ColVarEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
ColOutBtn.Visible := true;
ColInBtn.Visible := false;
end;
procedure TABCLogLinearFrm.ColOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(ColVarEdit.Text);
ColInBtn.Visible := true;
ColOutBtn.Visible := false;
ColVarEdit.Text := '';
end;
procedure TABCLogLinearFrm.ComputeBtnClick(Sender: TObject);
var
i, j, k, row, col, slice, Nrows, Ncols, Nslices : integer;
Data : DblDyneCube;
AB, AC, BC : DblDyneMat;
RowMarg, ColMarg, SliceMarg : DblDyneVec;
Total : double;
arraysize : integer;
Model : integer;
astr, Title : string;
RowCol, ColCol, SliceCol, Fcol : integer;
GridPos : IntDyneVec;
value : integer;
Fx : double;
begin
Nrows := 0;
Ncols := 0;
Nslices := 0;
Total := 0.0;
if FileFromGrp.ItemIndex = 0 then // mainfrm input
begin
SetLength(GridPos,4);
for i := 1 to NoVariables do
begin
if RowVarEdit.Text = OS3MainFrm.DataGrid.Cells[i,0] then GridPos[0] := i;
if ColVarEdit.Text = OS3MainFrm.DataGrid.Cells[i,0] then GridPos[1] := i;
if SliceVarEdit.Text = OS3MainFrm.DataGrid.Cells[i,0] then GridPos[2] := i;
if FreqVarEdit.Text = OS3MainFrm.DataGrid.Cells[i,0] then GridPos[3] := i;
end;
// get no. of rows, columns and slices
for i := 1 to OS3MainFrm.DataGrid.RowCount - 1 do
begin
value := StrToInt(OS3MainFrm.DataGrid.Cells[GridPos[0],i]);
if value > Nrows then Nrows := value;
value := StrToInt(OS3MainFrm.DataGrid.Cells[GridPos[1],i]);
if value > Ncols then Ncols := value;
value := StrToInt(OS3MainFrm.DataGrid.Cells[GridPos[2],i]);
if value > Nslices then Nslices := value;
end;
SetLength(AB,Nrows+1,Ncols+1);
SetLength(AC,Nrows+1,Nslices+1);
SetLength(BC,Ncols+1,Nslices+1);
SetLength(Data,Nrows+1,Ncols+1,Nslices+1);
SetLength(RowMarg,Nrows+1);
SetLength(ColMarg,Ncols+1);
SetLength(SliceMarg,Nslices+1);
for i := 1 to Nrows do
for j := 1 to Ncols do
AB[i,j] := 0.0;
for i := 1 to Nrows do
for k := 1 to Nslices do
AC[i,k] := 0.0;
for j := 1 to Ncols do
for k := 1 to Nslices do
BC[j,k] := 0.0;
arraysize := Nrows * Ncols * Nslices;
// Get data
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Data[i,j,k] := 0.0;
rowcol := GridPos[0];
colcol := GridPos[1];
slicecol := GridPos[2];
Fcol := GridPos[3];
for i := 1 to OS3MainFrm.DataGrid.RowCount - 1 do
begin
if Not GoodRecord(i, 4, GridPos) then continue;
row := StrToInt(OS3MainFrm.DataGrid.Cells[rowcol,i]);
col := StrToInt(OS3MainFrm.DataGrid.Cells[colcol,i]);
slice := StrToInt(OS3MainFrm.DataGrid.Cells[slicecol,i]);
Fx := StrToInt(OS3MainFrm.DataGrid.Cells[Fcol,i]);
Data[row,col,slice] := Data[row,col,slice] + Fx;
Total := Total + Fx;
RowMarg[row] := RowMarg[row] + Fx;
ColMarg[col] := ColMarg[col] + Fx;
SliceMarg[slice] := SliceMarg[slice] + Fx;
AB[row,col] := AB[row,col] + Fx;
AC[row,slice] := AC[row,slice] + Fx;
BC[col,slice] := BC[col,slice] + Fx;
end;
GridPos := nil;
end;
if FileFromGrp.ItemIndex = 1 then // form input
begin
Nrows := StrToInt(NrowsEdit.Text);
Ncols := StrToInt(NcolsEdit.Text);
Nslices := StrToInt(NslicesEdit.Text);
SetLength(AB,Nrows+1,Ncols+1);
SetLength(AC,Nrows+1,Nslices+1);
SetLength(BC,Ncols+1,Nslices+1);
SetLength(Data,Nrows+1,Ncols+1,Nslices+1);
SetLength(RowMarg,Nrows+1);
SetLength(ColMarg,Ncols+1);
SetLength(SliceMarg,Nslices+1);
for i := 1 to Nrows do
for j := 1 to Ncols do
AB[i,j] := 0.0;
for i := 1 to Nrows do
for k := 1 to Nslices do
AC[i,k] := 0.0;
for j := 1 to Ncols do
for k := 1 to Nslices do
BC[j,k] := 0.0;
arraysize := Nrows * Ncols * Nslices;
// get data
for i := 1 to arraysize do
begin
row := StrToInt(Grid.Cells[0,i]);
col := StrToInt(Grid.Cells[1,i]);
slice := StrToInt(Grid.Cells[2,i]);
Data[row,col,slice] := StrToInt(Grid.Cells[3,i]);
AB[row,col] := AB[row,col] + Data[row,col,slice];
AC[row,slice] := AC[row,slice] + Data[row,col,slice];
BC[col,slice] := BC[col,slice] + Data[row,col,slice];
Total := Total + Data[row,col,slice];
RowMarg[row] := RowMarg[row] + Data[row,col,slice];
ColMarg[col] := ColMarg[col] + Data[row,col,slice];
SliceMarg[slice] := SliceMarg[slice] + Data[row,col,slice];
end;
end;
// print heading of output
OutPutFrm.RichEdit.Clear;
OutPutFrm.RichEdit.Lines.Add('Log-Linear Analysis of a Three Dimension Table');
OutPutFrm.RichEdit.Lines.Add('');
// print observed matrix
astr := 'Observed Frequencies';
OutPutFrm.RichEdit.Lines.Add(astr);
PrintTable(Nrows,Ncols,Nslices,Data,RowMarg,ColMarg,SliceMarg,Total);
OutPutFrm.RichEdit.Lines.Add('');
// Print sub-matrices
Title := 'Sub-matrix AB';
PrintMatrix(AB,Nrows,Ncols,Title);
Title := 'Sub-matrix AC';
PrintMatrix(AC,Nrows,Nslices,Title);
Title := 'Sub-matrix BC';
PrintMatrix(BC,Ncols,Nslices,Title);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
for Model := 1 to 9 do
ModelEffect(Nrows,Ncols,Nslices,Data,RowMarg,ColMarg,
SliceMarg,AB,AC,BC,Total,Model);
SliceMarg := nil;
ColMarg := nil;
RowMarg := nil;
Data := nil;
BC := nil;
AC := nil;
AB := nil;
end;
procedure TABCLogLinearFrm.ModelEffect(Nrows,Ncols,Nslices : integer;
VAR Data : DblDyneCube;
VAR RowMarg : DblDyneVec;
VAR ColMarg : DblDyneVec;
VAR SliceMarg : DblDyneVec;
VAR AB : DblDyneMat;
VAR AC : DblDyneMat;
VAR BC : DblDyneMat;
VAR Total : double;
Model : integer);
var
i, j, k, l : integer;
CellLambdas : DblDyneQuad;
LogData, Expected : DblDyneCube;
Title, astr : string;
NewRowMarg,NewColMarg,NewSliceMarg : DblDyneVec;
LogRowMarg, LogColMarg, LogSliceMarg : DblDyneVec;
NewTotal : double;
ABLogs, ACLogs, BCLogs : DblDyneMat;
LogTotal, mu, ModelTotal, Ysqr : double;
DF : integer;
begin
// Get expected values for chosen model
SetLength(Expected,Nrows+1,Ncols+1,Nslices+1);
SetLength(NewRowMarg,Nrows+1);
SetLength(NewColMarg,Ncols+1);
SetLength(NewSliceMarg,Nslices+1);
SetLength(LogRowMarg,Nrows+1);
SetLength(LogColMarg,Ncols+1);
SetLength(LogSliceMarg,Nslices+1);
SetLength(ABLogs,Nrows+1,Ncols+1);
SetLength(ACLogs,Nrows+1,Nslices+1);
SetLength(BCLogs,Ncols+1,Nslices+1);
SetLength(LogData,Nrows+1,Ncols+1,Nslices+1);
SetLength(CellLambdas,Nrows+1,Ncols+1,Nslices+1,8);
if Model = 1 then // Saturated model
begin
Title := 'Saturated Model';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := Data[i,j,k];
end;
if Model = 2 then // independence
begin
Title := 'Model of Independence';
Iterate(Nrows,Ncols,Nslices,Data,RowMarg,ColMarg,SliceMarg,Total,
Expected,NewRowMarg,NewColMarg,NewSliceMarg,NewTotal);
end;
if Model = 3 then // no AB effect
begin
Title := 'No AB Effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := AC[i,k] * BC[j,k] / SliceMarg[k];
end;
if Model = 4 then // no AC effect
begin
Title := 'No AC Effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := AB[i,j] * BC[j,k] / ColMarg[j];
end;
if Model = 5 then // no BC effect
begin
Title := 'No BC Effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := AB[i,j] * AC[i,k] / RowMarg[i];
end;
if Model = 6 then // no C effect
begin
Title := 'Model of No Slice (C) effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := (RowMarg[i] / Total) *
(ColMarg[j] / Total) * (Total / Nslices);
end;
if Model = 7 then // no B effect
begin
Title := 'Model of no Column (B) effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := (RowMarg[i] / Total) *
(SliceMarg[k] / Total) * (Total / Ncols);
end;
if Model = 8 then // no A effect
begin
Title := 'Model of no Row (A) effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := (ColMarg[j] / Total) *
(SliceMarg[k] / Total) * (Total / Nrows);
end;
if Model = 9 then // Equiprobability Model
begin
Title := 'Equi-probability Model';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := Total /
(Nrows * NCols * Nslices);
end;
LogTotal := 0.0;
for i := 1 to Nrows do
begin
NewRowMarg[i] := 0.0;
LogRowMarg[i] := 0.0;
end;
for j := 1 to Ncols do
begin
NewColMarg[j] := 0.0;
LogColMarg[j] := 0.0;
end;
for k := 1 to Nslices do
begin
NewSliceMarg[k] := 0.0;
LogSliceMarg[k] := 0.0;
end;
for i := 1 to Nrows do
for j := 1 to Ncols do
ABLogs[i,j] := 0.0;
for i := 1 to Nrows do
for k := 1 to Nslices do
ACLogs[i,k] := 0.0;
for j := 1 to Ncols do
for k := 1 to Nslices do
BCLogs[j,k] := 0.0;
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
NewRowMarg[i] := NewRowMarg[i] + Expected[i,j,k];
NewColMarg[j] := NewColMarg[j] + Expected[i,j,k];
NewSliceMarg[k] := NewSliceMarg[k] + Expected[i,j,k];
end;
end;
end;
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
LogData[i,j,k] := ln(Expected[i,j,k]);
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
LogRowMarg[i] := LogRowMarg[i] + LogData[i,j,k];
LogColMarg[j] := LogColMarg[j] + LogData[i,j,k];
LogSliceMarg[k] := LogSliceMarg[k] + LogData[i,j,k];
ABLogs[i,j] := ABLogs[i,j] + LogData[i,j,k];
ACLogs[i,k] := ACLogs[i,k] + LogData[i,j,k];
BCLogs[j,k] := BCLogs[j,k] + LogData[i,j,k];
LogTotal := LogTotal + LogData[i,j,k];
end;
end;
end;
for i := 1 to Nrows do LogRowMarg[i] := LogRowMarg[i] / (Ncols * Nslices);
for j := 1 to Ncols do LogColMarg[j] := LogColMarg[j] / (Nrows * Nslices);
for k := 1 to Nslices do LogSliceMarg[k] := LogSliceMarg[k] / (Ncols * Nrows);
LogTotal := LogTotal / (Ncols * Nrows * Nslices);
for i := 1 to Nrows do
for j := 1 to Ncols do
ABLogs[i,j] := ABLogs[i,j] / Nslices;
for i := 1 to Nrows do
for k := 1 to Nslices do
ACLogs[i,k] := ACLogs[i,k] / Ncols;
for j := 1 to Ncols do
for k := 1 to Nslices do
BCLogs[j,k] := BCLogs[j,k] / Nrows;
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
CellLambdas[i,j,k,1] := LogRowMarg[i] - LogTotal;
CellLambdas[i,j,k,2] := LogColMarg[j] - LogTotal;
CellLambdas[i,j,k,3] := LogSliceMarg[k] - LogTotal;
CellLambdas[i,j,k,4] := ABLogs[i,j] - LogRowMarg[i]
- LogColMarg[j] + LogTotal;
CellLambdas[i,j,k,5] := ACLogs[i,k] - LogRowMarg[i]
- LogSliceMarg[k] + LogTotal;
CellLambdas[i,j,k,6] := BCLogs[j,k] - LogColMarg[j]
- LogSliceMarg[k] + LogTotal;
CellLambdas[i,j,k,7] := LogData[i,j,k] + LogRowMarg[i]
+ LogColMarg[j] + LogSliceMarg[k]
- ABLogs[i,j] - ACLogs[i,k]
- BCLogs[j,k] - LogTotal;
end;
end;
end;
mu := LogTotal;
// Get Y square for model
Ysqr := 0.0;
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Ysqr := Ysqr + (Data[i,j,k] * ln(Data[i,j,k] / Expected[i,j,k]));
Ysqr := 2.0 * Ysqr;
OutPutFrm.RichEdit.Lines.Add(Title);
OutPutFrm.RichEdit.Lines.Add('');
astr := 'Expected Frequencies';
OutPutFrm.RichEdit.Lines.Add(astr);
PrintTable(Nrows,Ncols,Nslices,Expected,NewRowMarg,NewColMarg,
NewSliceMarg,NewTotal);
OutPutFrm.RichEdit.Lines.Add('');
astr := 'Log Frequencies';
OutPutFrm.RichEdit.Lines.Add(astr);
PrintTable(Nrows,Ncols,Nslices,LogData,LogRowMarg,LogColMarg,LogSliceMarg,LogTotal);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
astr := 'Cell Parameters';
OutPutFrm.RichEdit.Lines.Add(astr);
PrintLamdas(Nrows,Ncols,Nslices,CellLambdas, mu);
OutPutFrm.RichEdit.Lines.Add('');
astr := 'G squared statistic for model fit = ' + format('%6.3f',[Ysqr]);
case Model of
1 : DF := 0; // saturated
2 : DF := Nrows * Ncols * Nslices - Nrows - Ncols - Nslices + 2; // independence
3 : DF := Nslices * (Nrows - 1) * (Ncols - 1); //no AB effect
4 : DF := Ncols * (Nrows - 1) * (Nslices - 1); // no AC effect
5 : DF := Nrows * (Ncols - 1) * (Nslices - 1); // no BC effect
6 : DF := Nrows * Ncols * Nslices - Nrows - Ncols + 1; // no C effect
7 : DF := Nrows * Ncols * Nslices - Nrows - Nslices + 1; // no B effect
8 : DF := Nrows * Ncols * Nslices - Ncols - Nslices + 1; // no A effect
9 : DF := Nrows * Ncols * Nslices - 1; // Equiprobability
end;
astr := astr + ' D.F. = ' + IntToStr(DF);
OutPutFrm.RichEdit.Lines.Add(astr);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
CellLambdas := nil;
LogData := nil;
BCLogs := nil;
ACLogs := nil;
ABLogs := nil;
LogSliceMarg := nil;
LogColMarg := nil;
LogRowMarg := nil;
NewSliceMarg := nil;
NewColMarg := nil;
NewRowMarg := nil;
Expected := nil;
end;
//-------------------------------------------------------------------
procedure TABCLogLinearFrm.Iterate(Nrows, Ncols, Nslices : integer;
VAR Data : DblDyneCube;
VAR RowMarg : DblDyneVec;
VAR ColMarg : DblDyneVec;
VAR SliceMarg : DblDyneVec;
VAR Total : double;
VAR Expected : DblDyneCube;
VAR NewRowMarg : DblDyneVec;
VAR NewColMarg : DblDyneVec;
VAR NewSliceMarg : DblDyneVec;
VAR NewTotal : double);
Label Step;
var
Aprevious : DblDyneCube;
i, j, k : integer;
delta : double;
difference : double;
begin
SetLength(Aprevious,Nrows+1,Ncols+1,Nslices+1);
delta := 0.1;
difference := 0.0;
for i := 1 to Nrows do newrowmarg[i] := 0.0;
for j := 1 to Ncols do newcolmarg[j] := 0.0;
for k := 1 to Nslices do newslicemarg[k] := 0.0;
// initialize expected values
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
expected[i,j,k] := 1.0;
Aprevious[i,j,k] := 1.0;
end;
end;
end;
Step:
// step 1: initialize new row margins and calculate expected value
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
newrowmarg[i] := newrowmarg[i] + expected[i,j,k];
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
expected[i,j,k] := (RowMarg[i] / newrowmarg[i]) * expected[i,j,k];
// step 2: initialize new col margins and calculate expected values
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
newcolmarg[j] := newcolmarg[j] + expected[i,j,k];
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
expected[i,j,k] := (ColMarg[j] / newcolmarg[j]) * expected[i,j,k];
// step 3: initialize new slice margins and calculate expected values
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
newslicemarg[k] := newslicemarg[k] + expected[i,j,k];
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
expected[i,j,k] := (SliceMarg[k] / newslicemarg[k]) * expected[i,j,k];
// step 4: check for change and quit if smaller than delta
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
if abs(APrevious[i,j,k]-expected[i,j,k]) > difference then
difference := abs(APrevious[i,j,k]-expected[i,j,k]);
if difference < delta then
begin
newtotal := 0.0;
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
newtotal := newtotal + expected[i,j,k];
exit;
end
else begin
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
APrevious[i,j,k] := expected[i,j,k];
for i := 1 to Nrows do newrowmarg[i] := 0.0;
for j := 1 to Ncols do newcolmarg[j] := 0.0;
for k := 1 to Nslices do newslicemarg[k] := 0.0;
difference := 0.0;
goto step;
end;
Aprevious := nil;
end;
//-------------------------------------------------------------------
procedure TABCLogLinearFrm.PrintTable(Nrows, Ncols, Nslices : integer;
VAR Data : DblDyneCube;
VAR RowMarg : DblDyneVec;
VAR ColMarg : DblDyneVec;
VAR SliceMarg : DblDyneVec;
Total : double);
var
astr : string;
i, j,k : integer;
begin
astr := ' A B C VALUE ';
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
astr := format('%3d %3d %3d %8.3f',[i,j,k,Data[i,j,k]]);
OutPutFrm.RichEdit.Lines.Add(astr);
end;
end;
end;
astr := 'Totals for Dimension A';
OutPutFrm.RichEdit.Lines.Add(astr);
for i := 1 to Nrows do
begin
astr := format('Row %d %8.3f',[i,RowMarg[i]]);
OutPutFrm.RichEdit.Lines.Add(astr);
end;
astr := 'Totals for Dimension B';
OutPutFrm.RichEdit.Lines.Add(astr);
for j := 1 to Ncols do
begin
astr := format('Col %d %8.3f',[j,ColMarg[j]]);
OutPutFrm.RichEdit.Lines.Add(astr);
end;
astr := 'Totals for Dimension C';
OutPutFrm.RichEdit.Lines.Add(astr);
for k := 1 to Nslices do
begin
astr := format('Slice %d %8.3f',[k,SliceMarg[k]]);
OutPutFrm.RichEdit.Lines.Add(astr);
end;
end;
//-------------------------------------------------------------------
procedure TABCLogLinearFrm.PrintLamdas(Nrows,Ncols,Nslices : integer;
Var CellLambdas : DblDyneQuad;
mu : double);
var
i, j, k, l : integer;
astr : string;
begin
astr := 'ROW COL SLICE MU LAMBDA A LAMBDA B LAMBDA C';
OutPutFrm.RichEdit.Lines.Add(astr);
astr := ' LAMBDA AB LAMBDA AC LAMBDA BC LAMBDA ABC';
OutPutFrm.RichEdit.Lines.Add(astr);
OutPutFrm.RichEdit.Lines.Add('');
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
astr := format('%3d %3d %3d ',[i,j,k]);
astr := astr + format(' %8.3f ',[mu]);
for l := 1 to 3 do
astr := astr + format(' %8.3f ',[CellLambdas[i,j,k,l]]);
OutPutFrm.RichEdit.Lines.Add(astr);
astr := ' ';
for l := 4 to 7 do
astr := astr + format(' %8.3f ',[CellLambdas[i,j,k,l]]);
OutPutFrm.RichEdit.Lines.Add(astr);
OutPutFrm.RichEdit.Lines.Add('');
end;
end;
end;
end;
//-------------------------------------------------------------------
procedure TABCLogLinearFrm.PrintMatrix(VAR X : DblDyneMat;
Nrows, Ncols: integer;
Title : string);
Label loop;
var
i, j : integer;
first, last : integer;
astr : string;
begin
OutPutFrm.RichEdit.Lines.Add(Title);
OutPutFrm.RichEdit.Lines.Add('');
first := 1;
last := Ncols;
if last > 6 then last := 6;
loop:
astr := 'ROW/COL';
for j := first to last do astr := astr + format(' %3d ',[j]);
OutPutFrm.RichEdit.Lines.Add(astr);
for i := 1 to Nrows do
begin
astr := format(' %3d ',[i]);
for j := first to last do astr := astr + format(' %8.3f ',[X[i,j]]);
OutPutFrm.RichEdit.Lines.Add(astr);
end;
if last < Ncols then
begin
first := last + 1;
last := Ncols;
if last > 6 then last := 6;
goto loop;
end;
OutPutFrm.RichEdit.Lines.Add('');
end;
initialization
{$I abcloglinunit.lrs}
end.

View File

@ -1,956 +0,0 @@
unit ABRAnovaUnit;
{$mode objfpc}{$H+}
interface
uses
contexthelpunit,Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, MainUnit, OutPutUnit, FunctionsLib, GraphLib, Globals,
DataProcs, MatrixLib;
type
{ TABRAnovaFrm }
TABRAnovaFrm = class(TForm)
AInBtn: TBitBtn;
AOutBtn: TBitBtn;
BInBtn: TBitBtn;
BOutBtn: TBitBtn;
CInBtn: TBitBtn;
COutBtn: TBitBtn;
ACodes: TEdit;
BCodes: TEdit;
HelpBtn: TButton;
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
TestChk: TCheckBox;
PlotChk: TCheckBox;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
CList: TListBox;
VarList: TListBox;
procedure AInBtnClick(Sender: TObject);
procedure AOutBtnClick(Sender: TObject);
procedure BInBtnClick(Sender: TObject);
procedure BOutBtnClick(Sender: TObject);
procedure CInBtnClick(Sender: TObject);
procedure ComputeBtnClick(Sender: TObject);
procedure COutBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure HelpBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
private
{ private declarations }
ColNoSelected : IntDyneVec;
ACol, BCol, NoSelected, MinA, MaxA, MinB, MaxB, NoAGrps, NoBGrps : integer;
group, MaxRows, MaxCols, TotalN, NinGrp : integer;
SubjTot, GrandTotal, SumXSqr : double;
DFA, DFB, DFC, DFAB, DFAC, DFBC, DFABC, DFBetween : double;
DFerrorBetween, DFWithin, DFerrorWithin : double;
SSA, SSB, SSC, SSAB, SSAC, SSBC, SSABC, SSBetweenSubjects : double;
SSerrorBetween, SSWithinSubjects, SSerrorWithin : double;
MSA, MSB, MSC, MSAB, MSAC, MSBC, MSABC, MSerrorBetween, MSerrorWithin : double;
FA, FB, FC, FAB, FAC, FBC, FABC : double;
ProbA, ProbB, ProbC, ProbAB, ProbAC, ProbBC, ProbABC : double;
Acnt, Bcnt, Ccnt : IntDyneVec;
ASums, BSums, CSums, SumPSqr : DblDyneVec;
ABSums, ACSums, BCSums, AMatrix, PooledMat : DblDyneMat;
ABCSums : DblDyneCube;
ABCNcnt : IntDyneCube;
RowLabels, ColLabels : StrDyneVec;
selected : integer;
procedure InitData(Sender: TObject);
procedure GetData(Sender: TObject);
procedure Calculate(Sender: TObject);
procedure Summarize(Sender: TObject);
procedure MeansReport(Sender: TObject);
procedure BoxTests(Sender: TObject);
procedure GraphMeans(Sender: TObject);
procedure CleanUp(Sender: TObject);
public
{ public declarations }
end;
var
ABRAnovaFrm: TABRAnovaFrm;
implementation
{ TABRAnovaFrm }
procedure TABRAnovaFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
VarList.Items.Clear;
CList.Items.Clear;
ACodes.Text := '';
BCodes.Text := '';
AinBtn.Visible := true;
AOutBtn.Visible := false;
BInBtn.Visible := true;
BOutBtn.Visible := false;
CInBtn.Visible := true;
COutBtn.Visible := false;
for i := 1 to NoVariables do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
PlotChk.Checked := false;
TestChk.Checked := false;
end;
procedure TABRAnovaFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TABRAnovaFrm.HelpBtnClick(Sender: TObject);
begin
ContextHelpForm.HelpMessage((Sender as TButton).tag);
end;
procedure TABRAnovaFrm.AInBtnClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
ACodes.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
AinBtn.Visible := false;
AOutBtn.Visible := true;
end;
procedure TABRAnovaFrm.AOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(ACodes.Text);
ACodes.Text := '';
AinBtn.Visible := true;
AOutBtn.Visible := false;
end;
procedure TABRAnovaFrm.BInBtnClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
BCodes.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
BInBtn.Visible := false;
BOutBtn.Visible := true;
end;
procedure TABRAnovaFrm.BOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(BCodes.Text);
BCodes.Text := '';
BInBtn.Visible := true;
BOutBtn.Visible := false;
end;
procedure TABRAnovaFrm.CInBtnClick(Sender: TObject);
VAR i, index : integer;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
CList.Items.Add(VarList.Items.Strings[i]);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
COutBtn.Visible := true;
end;
procedure TABRAnovaFrm.ComputeBtnClick(Sender: TObject);
begin
InitData(self);
GetData(self);
Calculate(self);
Summarize(self);
MeansReport(self);
if TestChk.Checked then BoxTests(self);
if PlotChk.Checked then GraphMeans(self);
CleanUp(self);
end;
procedure TABRAnovaFrm.COutBtnClick(Sender: TObject);
VAR index : integer;
begin
index := CList.ItemIndex;
if index < 0 then
begin
COutBtn.Visible := false;
exit;
end;
VarList.Items.Add(CList.Items.Strings[index]);
CList.Items.Delete(index);
end;
procedure TABRAnovaFrm.InitData(Sender: TObject);
var
cellstring : string;
i, j, k : integer;
begin
SetLength(ColNoSelected,NoVariables);
ACol := 0;
BCol := 0;
for i := 1 to NoVariables do
begin
cellstring := OS3MainFrm.DataGrid.Cells[i,0];
if (cellstring = ACodes.Text) then ACol := i;
if (cellstring = BCodes.Text) then BCol := i;
end;
if ( (ACol = 0) or (BCol = 0)) then
begin
ShowMessage('ERROR! Select a variable for the A and B Variable Codes.');
exit;
end;
NoSelected := CList.Items.Count;
MinA := 10000;
MaxA := -10000;
MinB := 10000;
MaxB := -10000;
for i := 1 to NoCases do
begin
if NOT ValidValue(i,ACol) then continue;
cellstring := Trim(OS3MainFrm.DataGrid.Cells[ACol,i]);
group := round(StrToFloat(cellstring));
if (group > MaxA) then MaxA := group;
if (group < MinA) then MinA := group;
cellstring := Trim(OS3MainFrm.DataGrid.Cells[BCol,i]);
if Not ValidValue(i,BCol) then continue;
group := round(StrToFLoat(cellstring));
if (group > MaxB) then MaxB := group;
if (group < MinB) then MinB := group;
end;
NoAGrps := MaxA - MinA + 1;
NoBGrps := MaxB - MinB + 1;
MaxRows := NoAGrps * NoBGrps;
MaxCols := NoSelected;
if (NoBGrps > NoSelected) then MaxCols := NoBGrps;
if (MaxCols > MaxRows) then MaxRows := MaxCols;
// allocate storage for arrays
SetLength(ASums,NoAGrps);
SetLength(Bsums,NoBGrps);
SetLength(Csums,NoCases);
SetLength(ABSums,NoAGrps,NoBGrps);
SetLength(ACSums,NoAGrps,NoSelected);
SetLength(BCSums,NoBGrps,NoSelected);
SetLength(AMatrix,MaxRows,MaxRows);
SetLength(SumPSqr,NoCases);
SetLength(Acnt,NoAGrps);
SetLength(Bcnt,NoBGrps);
SetLength(Ccnt,MaxRows);
SetLength(RowLabels,NoSelected);
SetLength(ColLabels,NoSelected);
SetLength(ABCSums,NoAGrps,NoBGrps,NoSelected);
SetLength(ABCNcnt,NoAGrps,NoBGrps,NoSelected);
// initialize arrays
for i := 0 to NoAGrps-1 do
begin
ASums[i] := 0.0;
Acnt[i] := 0;
for j := 0 to NoBGrps-1 do
begin
ABSums[i,j] := 0.0;
for k := 0 to NoSelected-1 do
begin
ABCSums[i,j,k] := 0.0;
ABCNcnt[i,j,k] := 0;
end;
end;
for j := 0 to NoSelected-1 do
begin
ACSums[i,j] := 0.0;
end;
end;
for i := 0 to NoBGrps-1 do
begin
BSums[i] := 0.0;
Bcnt[i] := 0;
for j := 0 to NoSelected-1 do
begin
BCSums[i,j] := 0.0;
end;
end;
for i := 0 to NoSelected-1 do
begin
CSums[i] := 0.0;
Ccnt[i] := 0;
end;
for i := 0 to NoCases-1 do SumPSqr[i] := 0.0;
GrandTotal := 0.0;
TotalN := 0;
SumXSqr := 0.0;
end;
procedure TABRAnovaFrm.GetData(Sender: TObject);
var
i, j, SubjA, SubjB : integer;
cellstring : string;
X : double;
begin
for i := 0 to NoSelected - 1 do
begin
cellstring := CList.Items.Strings[i];
for j := 1 to NoVariables do
begin
if (OS3MainFrm.DataGrid.Cells[j,0] = cellstring) then ColNoSelected[i] := j;
end;
end;
ColNoSelected[NoSelected] := ACol;
ColNoSelected[NoSelected+1] := BCol;
selected := NoSelected + 2;
// read data and store sums
for i := 1 to NoCases do
begin
if not GoodRecord(i,selected,ColNoSelected) then continue;
SubjA := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ACol,i])));
SubjA := SubjA - MinA + 1;
SubjB := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[BCol,i])));
SubjB := SubjB - MinB + 1;
SubjTot := 0.0;
for j := 1 to NoSelected do
begin
X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ColNoSelected[j-1],i]));
SubjTot := SubjTot + X;
SumXSqr := SumXSqr + (X * X);
ABCSums[SubjA-1,SubjB-1,j-1] := ABCSums[SubjA-1,SubjB-1,j-1] + X;
ABCNcnt[SubjA-1,SubjB-1,j-1] := ABCNcnt[SubjA-1,SubjB-1,j-1] + 1;
Acnt[SubjA-1] := Acnt[SubjA-1] + 1;
Bcnt[SubjB-1] := Bcnt[SubjB-1] + 1;
Ccnt[j-1] := Ccnt[j-1] + 1;
TotalN := TotalN + 1;
end;
SumPSqr[i-1] := SumPSqr[i-1] + (SubjTot * SubjTot);
GrandTotal := GrandTotal + SubjTot;
NinGrp := ABCNcnt[0,0,0];
end;
end;
procedure TABRAnovaFrm.Calculate(Sender: TObject);
var
SumA, SumB, SumC, SumAB, SumAC, SumBC, SumABC : double;
Term1, Term2, Term3, Term4, Term5, Term6, Term7, Term8, Term9, Term10 : double;
i, j, k, CountA, CountB, CountC, CountAB, CountAC, CountBC : integer;
begin
Term1 := (GrandTotal * GrandTotal) / TotalN;
Term2 := SumXSqr;
Term3 := 0.0;
for i := 1 to NoAGrps do
begin
SumA := 0.0;
countA := countA + Acnt[i-1];
for j := 1 to NoBGrps do
for k := 1 to NoSelected do SumA := SumA + ABCSums[i-1,j-1,k-1];
ASums[i-1] := ASums[i-1] + SumA;
Term3 := Term3 + (SumA * SumA);
end;
Term3 := Term3 / (NinGrp * NoBGrps * NoSelected);
Term4 := 0;
for j := 1 to NoBGrps do
begin
SumB := 0.0;
CountB := CountB + Bcnt[j-1];
for i := 1 to NoAGrps do
for k := 1 to NoSelected do SumB := SumB + ABCSums[i-1,j-1,k-1];
BSums[j-1] := BSums[j-1] + SumB;
Term4 := Term4 + (SumB * SumB);
end;
Term4 := Term4 / (NinGrp * NoAGrps * NoSelected);
Term5 := 0.0;
for k := 1 to NoSelected do
begin
SumC := 0.0;
CountC := CountC + Ccnt[k-1];
for i := 1 to NoAGrps do
for j := 1 to NoBGrps do SumC := SumC + ABCSums[i-1,j-1,k-1];
CSums[k-1] := CSums[k-1] + SumC;
Term5 := Term5 + (SumC * SumC);
end;
Term5 := Term5 / (NinGrp * NoAGrps * NoBGrps);
Term6 := 0.0;
for i := 1 to NoAGrps do
begin
for j := 1 to NoBGrps do
begin
SumAB := 0.0;
//CountAB := CountAB + ABcnt^[i,j];
for k := 1 to NoSelected do SumAB := SumAB + ABCSums[i-1,j-1,k-1];
ABSums[i-1,j-1] := ABSums[i-1,j-1] + SumAB;
Term6 := Term6 + (SumAB * SumAB);
end;
end;
Term6 := Term6 / (NinGrp * NoSelected);
Term7 := 0.0;
for i := 1 to NoAGrps do
begin
for k := 1 to NoSelected do
begin
SumAC := 0.0;
for j := 1 to NoBGrps do SumAC := SumAC + ABCSums[i-1,j-1,k-1];
ACSums[i-1,k-1] := ACSums[i-1,k-1] + SumAC;
Term7 := Term7 + (SumAC * SumAC);
end;
end;
Term7 := Term7 / (NinGrp * NoBGrps);
Term8 := 0.0;
for j := 1 to NoBGrps do
begin
for k := 1 to NoSelected do
begin
SumBC := 0.0;
for i := 1 to NoAGrps do SumBC := SumBC + ABCSums[i-1,j-1,k-1];
BCSums[j-1,k-1] := BCSums[j-1,k-1] + SumBC;
Term8 := Term8 + (SumBC * SumBC);
end;
end;
Term8 := Term8 / (NinGrp * NoAGrps);
Term9 := 0.0;
for i := 1 to NoAGrps do
begin
for j := 1 to NoBGrps do
begin
for k := 1 to NoSelected do
begin
SumABC := ABCSums[i-1,j-1,k-1];
//CountABC := CountABC + ABCNcnt[i,j,k];
Term9 := Term9 + (SumABC * SumABC);
end;
end;
end;
Term9 := Term9 / NinGrp;
Term10 := 0.0;
for i := 1 to NoCases do Term10 := Term10 + SumPSqr[i-1];
Term10 := Term10 / NoSelected;
//Get DF, SS, MS, F and Probabilities
DFBetween := (NinGrp * NoAGrps * NoBGrps) - 1.0;
DFA := NoAGrps - 1.0;
DFB := NoBGrps - 1.0;
DFAB := (NoAGrps - 1.0) * (NoBGrps - 1.0);
DFerrorBetween := (NoAGrps * NoBGrps) * (NinGrp - 1.0);
DFWithin := (NinGrp * NoAGrps * NoBGrps) * (NoSelected - 1.0);
DFC := NoSelected - 1.0;
DFAC := (NoAGrps - 1.0) * (NoSelected - 1.0);
DFBC := (NoBGrps - 1.0) * (NoSelected - 1.0);
DFABC := (NoAGrps - 1.0) * (NoBGrps - 1.0) * (NoSelected - 1.0);
DFerrorWithin := NoAGrps * NoBGrps * (NinGrp - 1.0) * (NoSelected - 1.0);
SSBetweenSubjects := Term10 - Term1;
SSA := Term3 - Term1;
SSB := Term4 - Term1;
SSAB := Term6 - Term3 - Term4 + Term1;
SSerrorBetween := Term10 - Term6;
SSWithinSubjects := Term2 - Term10;
SSC := Term5 - Term1;
SSAC := Term7 - Term3 - Term5 + Term1;
SSBC := Term8 - Term4 - Term5 + Term1;
SSABC := Term9 - Term6 - Term7 - Term8 + Term3 + Term4 + Term5 - Term1;
SSerrorWithin := Term2 - Term9 - Term10 + Term6;
MSA := SSA / DFA;
MSB := SSB / DFB;
MSAB := SSAB / DFAB;
MSerrorBetween := SSerrorBetween / DFerrorBetween;
MSC := SSC / DFC;
MSAC := SSAC / DFAC;
MSBC := SSBC / DFBC;
MSABC := SSABC / DFABC;
MSerrorWithin := SSerrorWithin / DFerrorWithin;
FA := MSA / MSerrorBetween;
FB := MSB / MSerrorBetween;
FAB := MSAB / MSerrorBetween;
FC := MSC / MSerrorWithin;
FAC := MSAC / MSerrorWithin;
FBC := MSBC / MSerrorWithin;
FABC := MSABC / MSerrorWithin;
ProbA := probf(FA,DFA,DFerrorBetween);
ProbB := probf(FB,DFB,DFerrorBetween);
ProbAB := probf(FAB,DFAB,DFerrorBetween);
ProbC := probf(FC,DFC,DFerrorWithin);
ProbAC := probf(FAC,DFAC,DFerrorWithin);
ProbBC := probf(FBC,DFBC,DFerrorWithin);
ProbABC := probf(FABC,DFABC,DFerrorWithin);
end;
procedure TABRAnovaFrm.Summarize(Sender: TObject);
var
outline : string;
begin
OutPutFrm.RichEdit.Clear;
OutPutFrm.RichEdit.Lines.Add('SOURCE DF SS MS F PROB.');
OutPutFrm.RichEdit.Lines.Add('');
outline := format('Between Subjects %5.0f%10.3f',[DFBetween,SSBetweenSubjects]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' A Effects %5.0f%10.3f%10.3f%10.3f%10.3f',
[DFA, SSA, MSA, FA, ProbA]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' B Effects %5.0f%10.3f%10.3f%10.3f%10.3f',
[DFB, SSB, MSB, FB, ProbB]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' AB Effects %5.0f%10.3f%10.3f%10.3f%10.3f',
[DFAB, SSAB, MSAB, FAB, ProbAB]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' Error Between %5.0f%10.3f%10.3f',
[DFerrorBetween,SSerrorBetween,MSerrorBetween]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
outline := format('Within Subjects %5.0f%10.3f',
[DFWithin,SSWithinSubjects]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' C Replications %5.0f%10.3f%10.3f%10.3f%10.3f',
[DFC, SSC, MSC, FC, ProbC]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' AC Effects %5.0f%10.3f%10.3f%10.3f%10.3f',
[DFAC, SSAC, MSAC, FAC, ProbAC]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' BC Effects %5.0f%10.3f%10.3f%10.3f%10.3f',
[DFBC, SSBC, MSBC, FBC, ProbBC]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' ABC Effects %5.0f%10.3f%10.3f%10.3f%10.3f',
[DFABC, SSABC, MSABC, FABC, ProbABC]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' Error Within %5.0f%10.3f%10.3f',
[DFerrorWithin, SSerrorWithin, MSerrorWithin]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
outline := format('Total %5.0f%10.3f',
[DFBetween + DFWithin, SSBetweenSubjects + SSWithinSubjects]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.ShowModal;
end;
procedure TABRAnovaFrm.MeansReport(Sender: TObject);
var
ColHeader, LabelStr : string;
Title : string;
i, j, k, row : integer;
begin
row := 1;
OutPutFrm.RichEdit.Clear;
Title := 'ABR Means Table';
ColHeader := 'Repeated Measures';
for i := 1 to NoAGrps do
begin
for j := 1 to NoBGrps do
begin
LabelStr := format('A%d B%d',[i,j]);
RowLabels[row-1] := LabelStr;
for k := 1 to NoSelected do
begin
AMatrix[row-1,k-1] := ABCSums[i-1,j-1,k-1] / NinGrp;
ColLabels[k-1] := OS3MainFrm.DataGrid.Cells[ColNoSelected[k-1],0];
end;
row := row + 1;
end;
end;
MAT_PRINT(AMatrix,MaxRows,NoSelected,Title,RowLabels,ColLabels,NinGrp);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('');
Title := 'AB Means Table';
ColHeader := 'B Levels';
for i := 1 to NoAGrps do
begin
LabelStr := format('A%d',[i]);
RowLabels[i-1] := LabelStr;
for j := 1 to NoBGrps do
begin
AMatrix[i-1,j-1] := ABSums[i-1,j-1] / (NinGrp * NoSelected);
end;
end;
for j := 1 to NoBGrps do
begin
LabelStr := format('B %d',[j]);
ColLabels[j-1] := LabelStr;
end;
MAT_PRINT(AMatrix,NoAgrps,NoBgrps,Title,RowLabels,ColLabels,NinGrp*NoSelected);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('');
Title := 'AC Means Table';
ColHeader := 'C Levels';
for i := 1 to NoAGrps do
begin
LabelStr := format('A%d',[i-1]);
RowLabels[i-1] := LabelStr;
for j := 1 to NoSelected do
AMatrix[i-1,j-1] := ACSums[i-1,j-1] / (NinGrp * NoBGrps);
end;
for j := 1 to NoSelected do
begin
LabelStr := format('C %d',[j-1]);
ColLabels[j-1] := LabelStr;
end;
MAT_PRINT(AMatrix,NoAGrps,NoSelected,Title,RowLabels,ColLabels,NinGrp*NoBGrps);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('');
Title := 'BC Means Table';
ColHeader := 'C Levels';
for i := 1 to NoBGrps do
begin
LabelStr := format('B%d',[i]);
RowLabels[i-1] := LabelStr;
for j := 1 to NoSelected do
begin
AMatrix[i-1,j-1] := BCSums[i-1,j-1] / (NinGrp * NoAGrps);
end;
end;
for j := 1 to NoSelected do
begin
LabelStr := format('C %d',[j]);
ColLabels[j-1] := LabelStr;
end;
MAT_PRINT(AMatrix,NoBGrps,NoSelected,Title,RowLabels,ColLabels,NinGrp*NoAGrps);
OutPutFrm.ShowModal;
end;
procedure TABRAnovaFrm.BoxTests(Sender: TObject);
var
XVector, XSums : DblDyneVec;
DetMat, MeanCovMat : DblDyneMat;
Det, M1, M2, Sum1, C1, C2, f1, f2, chi, ProbChi, X, avgvar,avgcov : double;
ColHeader, LabelStr : string;
Title : string;
i, j, k, l, row, SubjA, SubjB, N, p, quad : integer;
errorcode : boolean;
begin
SetLength(XVector,NoSelected);
SetLength(XSums,NoSelected);
SetLength(DetMat,NoSelected+1,NoSelected+1);
SetLength(MeanCovMat,NoSelected+1,NoSelected+1);
SetLength(PooledMat,NoSelected+1,NoSelected+1);
for i := 1 to NoSelected do
begin
LabelStr := format('C%d',[i]);
RowLabels[i-1] := LabelStr;
ColLabels[i-1] := LabelStr;
for j := 1 to NoSelected do PooledMat[i-1,j-1] := 0.0;
end;
// get variance-covariance AMatrix for the repeated measures within
// each combination of A and B levels. Pool them for the pooled
// covariance AMatrix. Get Determinants of each AMatrix.
OutPutFrm.RichEdit.Clear;
Sum1 := 0.0;
for i := 1 to NoAGrps do
begin
for j := 1 to NoBGrps do
begin
LabelStr := format('Variance-Covariance AMatrix for A%d B%d',
[i,j]);
Title := LabelStr;
ColHeader := 'C Levels';
// initialize AMatrix for this combination
for k := 1 to NoSelected do
begin
for l := 1 to NoSelected do AMatrix[k-1,0] := 0.0;
XSums[k-1] := 0.0;
end;
// read data and add to covariances
for row := 1 to NoCases do
begin
if Not GoodRecord(row,selected,ColNoSelected) then continue;
SubjA := round(StrToFLoat(Trim(OS3MainFrm.DataGrid.Cells[ACol,row])));
SubjA := SubjA - MinA + 1;
SubjB := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[BCol,row])));
SubjB := SubjB - MinB + 1;
if ((SubjA <> i)or(SubjB <> j)) then continue;
for k := 1 to NoSelected do
begin
X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ColNoSelected[k-1],row]));
XVector[k-1] := X;
XSums[k-1] := XSums[k-1] + X;
end;
for k := 1 to NoSelected do
begin
for l := 1 to NoSelected do
begin
AMatrix[k-1,l-1] := AMatrix[k-1,l-1] + (XVector[k-1] * XVector[l-1]);
end;
end;
end; // next case
// convert sums of cross-products to variance-covariance
for k := 1 to NoSelected do
begin
for l := 1 to NoSelected do
begin
AMatrix[k-1,l-1] := AMatrix[k-1,l-1] - (XSums[k-1]*XSums[l-1] /
NinGrp);
AMatrix[k-1,l-1] := AMatrix[k-1,l-1] / (NinGrp - 1);
PooledMat[k-1,l-1] := PooledMat[k-1,l-1] + AMatrix[k-1,l-1];
end;
end;
MAT_PRINT(AMatrix,NoSelected,NoSelected,Title,RowLabels,ColLabels,NoCases);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('');
for k := 1 to NoSelected do
for l := 1 to NoSelected do
DetMat[k-1,l-1] := AMatrix[k-1,l-1];
Determ(DetMat,NoSelected, NoSelected,Det,errorcode);
if (Det > 0.0e35) then Sum1 := sum1 + (NinGrp * ln(Det))
else ShowMessage('WARNING! Determinant of a covariance AMatrix near 0.');
end;// next B level
end; // next A level
// get pooled variance-covariance
for i := 1 to NoSelected do
for j := 1 to NoSelected do
PooledMat[i-1,j-1] := PooledMat[i-1,j-1] / (NoAGrps * NoBGrps);
Title := 'Pooled Variance-Covariance AMatrix';
MAT_PRINT(PooledMat,NoSelected,NoSelected,Title,RowLabels,ColLabels,NoCases);
// calculate F-Max for variance homogeneity
// calculate Box test for covariance homogeneity
for i := 1 to NoSelected do
for j := 1 to NoSelected do
DetMat[i-1,j-1] := PooledMat[i-1,j-1];
Determ(DetMat,NoSelected,NoSelected,Det,errorcode);
if (Det > 0.0e35) then
begin
M1 := (NinGrp*NoAGrps*NoBGrps * ln(Det)) - Sum1;
C1 := (2.0 * NoSelected * NoSelected + 3.0 * NoSelected - 1.0) /
(6.0 * (NoSelected+1) * (NoAGrps * NoBGrps - 1.0));
C1 := C1 * ( (NoAGrps * NoBGrps * (1.0 / NinGrp)) - (1.0 / (NinGrp * NoAGrps * NoBGrps)));
f1 := (NoSelected * (NoSelected + 1.0) * (NoAGrps * NoBGrps - 1.0))/2.0;
chi := (1.0 - C1) * M1;
ProbChi := 1.0 - chisquaredprob(chi,round(f1));
OutPutFrm.RichEdit.Lines.Add('');
LabelStr := 'Test that sample covariances are from same population:';
OutPutFrm.RichEdit.Lines.Add(LabelStr);
LabelStr := format('Chi-Squared := %10.3f with %d degrees of freedom.',
[chi,round(f1)]);
OutPutFrm.RichEdit.Lines.Add(LabelStr);
LabelStr := format('Probability of > Chi-Squared := %10.3f',[ProbChi]);
OutPutFrm.RichEdit.Lines.Add(LabelStr);
OutPutFrm.RichEdit.Lines.Add('');
end
else ShowMessage('WARNING! Determinant of a pooled covariance AMatrix near 0.');
// test that pooled covariance has form of equal variances and equal covariances
if (Det > 0.0e35) then // determinant of pooled covariance > 0
begin
M2 := Det;
avgvar := 0.0;
for i := 1 to NoSelected do avgvar := avgvar + PooledMat[i-1,i-1];
avgvar := avgvar / NoSelected;
avgcov := 0.0;
for i := 1 to NoSelected-1 do
for j := i+1 to NoSelected do
avgcov := avgcov + PooledMat[i-1,j-1];
avgcov := avgcov / (NoSelected * (NoSelected - 1) / 2);
for i := 1 to NoSelected do DetMat[i-1,i-1] := avgvar;
for i := 1 to NoSelected-1 do
begin
for j := i+1 to NoSelected do
begin
DetMat[i-1,j-1] := avgcov;
DetMat[j-1,i-1] := avgcov;
end;
end;
Determ(DetMat,NoSelected,NoSelected,Det,errorcode);
if (Det > 0.0e35) then
begin
N := NoAGrps * NoBGrps * NinGrp;
p := NoAGrps * NoBGrps;
quad := NoSelected * NoSelected + NoSelected - 4;
M2 := ln(M2 / Det);
M2 := -(N - p) * M2;
C2 := NoSelected * (NoSelected + 1) * (NoSelected + 1) *
(2 * NoSelected - 3);
C2 := C2 / (6 * (N - p) * (NoSelected - 1) * quad);
f2 := quad / 2;
chi := (1.0 - C2) * M2;
ProbChi := 1.0 - chisquaredprob(chi,round(f2));
OutPutFrm.RichEdit.Lines.Add('');
LabelStr := 'Test that variance-covariances AMatrix has equal variances and equal covariances:';
OutPutFrm.RichEdit.Lines.Add(LabelStr);
LabelStr := format('Chi-Squared := %10.3f with %d degrees of freedom.',
[chi,round(f2)]);
OutPutFrm.RichEdit.Lines.Add(LabelStr);
LabelStr := format('Probability of > Chi-Squared := %10.3f',[ProbChi]);
OutPutFrm.RichEdit.Lines.Add(LabelStr);
OutPutFrm.RichEdit.Lines.Add('');
end
else ShowMessage('WARNING! Determinant of theoretical covariance AMatrix near zero.');
end;
OutPutFrm.ShowModal;
// cleanup
PooledMat := nil;
MeanCovMat := nil;
DetMat := nil;
XSums := nil;
XVector := nil;
end;
procedure TABRAnovaFrm.GraphMeans(Sender: TObject);
var
MaxMean : double;
outline : string;
i, j : integer;
begin
// Do AB interaction
// Get maximum cell mean
MaxMean := ABSums[0,0] / (NinGrp*NoSelected);
SetLength(GraphFrm.Ypoints,NoAGrps,NoBGrps);
SetLength(GraphFrm.Xpoints,1,NoBGrps);
for i := 1 to NoAGrps do
begin
outline := 'A ' + IntToStr(i);
GraphFrm.SetLabels[i] := outline;
for j := 1 to NoBGrps do
begin
GraphFrm.Ypoints[i-1,j-1] := ABSums[i-1,j-1] / (NinGrp * NoSelected);
if GraphFrm.Ypoints[i-1,j-1] > MaxMean then MaxMean := GraphFrm.Ypoints[i-1,j-1];
end;
end;
for j := 1 to NoBGrps do
begin
GraphFrm.Xpoints[0,j-1] := j;
end;
GraphFrm.nosets := NoAGrps;
GraphFrm.nbars := NoBGrps;
GraphFrm.Heading := 'AxBxR ANOVA';
GraphFrm.XTitle := 'B TREATMENT GROUP';
GraphFrm.YTitle := 'Mean';
GraphFrm.barwideprop := 0.5;
GraphFrm.AutoScale := false;
GraphFrm.GraphType := 2; // 3d Vertical Bar Chart
GraphFrm.miny := 0.0;
GraphFrm.maxy := maxmean;
GraphFrm.BackColor := clYellow;
GraphFrm.WallColor := clBlack;
GraphFrm.FloorColor := clLtGray;
GraphFrm.ShowBackWall := true;
GraphFrm.ShowModal;
// Do AC interaction
MaxMean := ACSums[0,0] / (NinGrp*NoBGrps);
SetLength(GraphFrm.Ypoints,NoAGrps,NoSelected);
SetLength(GraphFrm.Xpoints,1,NoSelected);
for i := 1 to NoAGrps do
begin
outline := 'A ' + IntToStr(i);
GraphFrm.SetLabels[i] := outline;
for j := 1 to NoSelected do
begin
GraphFrm.Ypoints[i-1,j-1] := ACSums[i-1,j-1] / (NinGrp * NoBGrps);
if GraphFrm.Ypoints[i-1,j-1] > MaxMean then MaxMean := GraphFrm.Ypoints[i-1,j-1];
end;
end;
for j := 1 to NoSelected do
begin
GraphFrm.Xpoints[0,j-1] := j;
end;
GraphFrm.nosets := NoAGrps;
GraphFrm.nbars := NoSelected;
GraphFrm.Heading := 'AxBxR ANOVA';
GraphFrm.XTitle := 'C TREATMENT (WITHIN SUBJECTS) GROUP';
GraphFrm.YTitle := 'Mean';
GraphFrm.barwideprop := 0.5;
GraphFrm.AutoScale := false;
GraphFrm.GraphType := 2; // 3d Vertical Bar Chart
GraphFrm.miny := 0.0;
GraphFrm.maxy := maxmean;
GraphFrm.BackColor := clYellow;
GraphFrm.WallColor := clBlack;
GraphFrm.FloorColor := clLtGray;
GraphFrm.ShowBackWall := true;
GraphFrm.ShowModal;
// Do BC interaction
SetLength(GraphFrm.Ypoints,NoBGrps,NoSelected);
SetLength(GraphFrm.Xpoints,NoSelected);
MaxMean := BCSums[0,0] / (NinGrp*NoAGrps);
for i := 1 to NoBGrps do
for j := 1 to NoSelected do
if ((BCSums[i-1,j-1] / (NinGrp*NoAGrps)) > MaxMean) then
MaxMean := BCSums[i-1,j-1] / (NinGrp*NoAGrps);
for i := 1 to NoBGrps do
begin
outline := 'B ' + IntToStr(i);
GraphFrm.SetLabels[i] := outline;
for j := 1 to NoSelected do
begin
GraphFrm.Ypoints[i-1,j-1] := BCSums[i-1,j-1] / (NinGrp * NoAGrps);
if GraphFrm.Ypoints[i-1,j-1] > MaxMean then MaxMean := GraphFrm.Ypoints[i-1,j-1];
end;
end;
for j := 1 to NoSelected do
begin
GraphFrm.Xpoints[0,j-1] := j;
end;
GraphFrm.nosets := NoBGrps;
GraphFrm.nbars := NoSelected;
GraphFrm.Heading := 'AxBxR ANOVA';
GraphFrm.XTitle := 'C TREATMENT (WITHIN SUBJECTS) GROUP';
GraphFrm.YTitle := 'Mean';
GraphFrm.barwideprop := 0.5;
GraphFrm.AutoScale := false;
GraphFrm.GraphType := 2; // 3d Vertical Bar Chart
GraphFrm.miny := 0.0;
GraphFrm.maxy := maxmean;
GraphFrm.BackColor := clYellow;
GraphFrm.WallColor := clBlack;
GraphFrm.FloorColor := clLtGray;
GraphFrm.ShowBackWall := true;
GraphFrm.ShowModal;
// cleanup the heap
GraphFrm.Xpoints := nil;
GraphFrm.Ypoints := nil;
end;
procedure TABRAnovaFrm.CleanUp(Sender: TObject);
begin
ABCNcnt := nil;
ABCSums := nil;
ColLabels := nil;
RowLabels := nil;
Ccnt := nil;
Bcnt := nil;
Acnt := nil;
SumPSqr := nil;
AMatrix := nil;
BCSums := nil;
ACSums := nil;
ABSums := nil;
CSums := nil;
BSums := nil;
ASums := nil;
ColNoSelected := nil;
end;
initialization
{$I abranovaunit.lrs}
end.

View File

@ -1,418 +0,0 @@
object ABRAnovaFrm: TABRAnovaFrm
Left = 228
Height = 355
Top = 104
Width = 534
Caption = 'AxBxR ANOVA (two between and repeated measures)'
ClientHeight = 355
ClientWidth = 534
OnShow = FormShow
LCLVersion = '0.9.29'
object Label1: TLabel
Left = 16
Height = 14
Top = 8
Width = 94
Caption = 'Available Variables:'
ParentColor = False
end
object Label2: TLabel
Left = 255
Height = 14
Top = 24
Width = 83
Caption = 'Factor A Variable'
ParentColor = False
end
object Label3: TLabel
Left = 255
Height = 14
Top = 96
Width = 82
Caption = 'Factor B Variable'
ParentColor = False
end
object Label4: TLabel
Left = 255
Height = 14
Top = 168
Width = 97
Caption = 'Repeated Measures'
ParentColor = False
end
object VarList: TListBox
Left = 16
Height = 239
Top = 24
Width = 181
ItemHeight = 0
MultiSelect = True
TabOrder = 0
end
object AInBtn: TBitBtn
Left = 211
Height = 26
Top = 24
Width = 30
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
}
NumGlyphs = 0
OnClick = AInBtnClick
TabOrder = 1
end
object AOutBtn: TBitBtn
Left = 211
Height = 26
Top = 56
Width = 30
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
}
NumGlyphs = 0
OnClick = AOutBtnClick
TabOrder = 2
end
object BInBtn: TBitBtn
Left = 210
Height = 26
Top = 96
Width = 30
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
}
NumGlyphs = 0
OnClick = BInBtnClick
TabOrder = 3
end
object BOutBtn: TBitBtn
Left = 210
Height = 26
Top = 128
Width = 30
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
}
NumGlyphs = 0
OnClick = BOutBtnClick
TabOrder = 4
end
object CInBtn: TBitBtn
Left = 211
Height = 26
Top = 168
Width = 30
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
}
NumGlyphs = 0
OnClick = CInBtnClick
TabOrder = 5
end
object COutBtn: TBitBtn
Left = 210
Height = 26
Top = 200
Width = 30
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
}
NumGlyphs = 0
OnClick = COutBtnClick
TabOrder = 6
end
object ACodes: TEdit
Left = 255
Height = 21
Top = 40
Width = 139
TabOrder = 7
Text = 'ACodes'
end
object BCodes: TEdit
Left = 255
Height = 21
Top = 112
Width = 138
TabOrder = 8
Text = 'BCodes'
end
object CList: TListBox
Left = 256
Height = 155
Top = 184
Width = 143
ItemHeight = 0
TabOrder = 9
end
object GroupBox1: TGroupBox
Left = 16
Height = 69
Top = 272
Width = 225
Caption = 'Options:'
ClientHeight = 51
ClientWidth = 221
TabOrder = 10
object PlotChk: TCheckBox
Left = 7
Height = 17
Top = 1
Width = 72
Caption = 'Plot Means'
TabOrder = 0
end
object TestChk: TCheckBox
Left = 9
Height = 17
Top = 24
Width = 177
Caption = 'Test Homogeneity of Covariance'
TabOrder = 1
end
end
object ResetBtn: TButton
Left = 440
Height = 27
Top = 24
Width = 89
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 11
end
object CancelBtn: TButton
Left = 440
Height = 27
Top = 72
Width = 89
Caption = 'Cancel'
ModalResult = 2
TabOrder = 12
end
object ComputeBtn: TButton
Left = 440
Height = 27
Top = 168
Width = 89
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 13
end
object ReturnBtn: TButton
Left = 440
Height = 27
Top = 216
Width = 89
Caption = 'Return'
ModalResult = 1
TabOrder = 14
end
object HelpBtn: TButton
Tag = 102
Left = 440
Height = 27
Top = 120
Width = 89
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 15
end
end

View File

@ -1,347 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TABRAnovaFrm','FORMDATA',[
'TPF0'#12'TABRAnovaFrm'#11'ABRAnovaFrm'#4'Left'#3#228#0#6'Height'#3'c'#1#3'To'
+'p'#2'h'#5'Width'#3#22#2#7'Caption'#6'/AxBxR ANOVA (two between and repeated'
+' measures)'#12'ClientHeight'#3'c'#1#11'ClientWidth'#3#22#2#6'OnShow'#7#8'Fo'
+'rmShow'#10'LCLVersion'#6#8'0.9.30.4'#0#6'TLabel'#6'Label1'#4'Left'#2#16#6'H'
+'eight'#2#16#3'Top'#2#8#5'Width'#2'f'#7'Caption'#6#20'Available Variables:'
+#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#255#0#6'Height'#2#16#3
+'Top'#2#24#5'Width'#2'Z'#7'Caption'#6#17'Factor A Variable'#11'ParentColor'#8
+#0#0#6'TLabel'#6'Label3'#4'Left'#3#255#0#6'Height'#2#16#3'Top'#2'`'#5'Width'
+#2'Y'#7'Caption'#6#17'Factor B Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'L'
+'abel4'#4'Left'#3#255#0#6'Height'#2#16#3'Top'#3#168#0#5'Width'#2'g'#7'Captio'
+'n'#6#17'Repeated Measures'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'L'
+'eft'#2#16#6'Height'#3#239#0#3'Top'#2#24#5'Width'#3#181#0#10'ItemHeight'#2#0
+#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#6'AInBtn'#4'Left'#3#211#0#6
+'Height'#2#26#3'Top'#2#24#5'Width'#2#30#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0
+'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4
+#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'
+#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'
+#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0
+#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255
+#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137
+#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255
+#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158
+#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255
+#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255
+'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'
+#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'
+#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'AInBtnClick'#8'TabOrder'#2#1
,#0#0#7'TBitBtn'#7'AOutBtn'#4'Left'#3#211#0#6'Height'#2#26#3'Top'#2'8'#5'Widt'
+'h'#2#30#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0
+#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0
+#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247
+'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['
+#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255
+'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'
+#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206
+#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'
+#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0
+'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154#212#163
+#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133#199
+#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0
+#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135#255']'
+#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'
+#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7
+'OnClick'#7#12'AOutBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#6'BInBtn'#4'Left'
+#3#210#0#6'Height'#2#26#3'Top'#2'`'#5'Width'#2#30#10'Glyph.Data'#10':'#4#0#0
+'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0
+#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'
+#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'
+#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255
+#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211
+#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130
+#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'
+#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171
+#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204
+#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'
+#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255
+'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161
+'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'BInBtnClick'#8'TabOrde'
+'r'#2#3#0#0#7'TBitBtn'#7'BOutBtn'#4'Left'#3#210#0#6'Height'#2#26#3'Top'#3#128
+#0#5'Width'#2#30#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0
+#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0
+#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153
+'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'
+#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255
+'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'
+#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195
+'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144
,#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255
+#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255
+#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#12'BOutBtnClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#6'CInB'
+'tn'#4'Left'#3#211#0#6'Height'#2#26#3'Top'#3#168#0#5'Width'#2#30#10'Glyph.Da'
+'ta'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0
+#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184
+#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177
+'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255
+#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255
+#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142
+#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'
+#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162
+#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255
+#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130
+#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199
+'t'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255
+'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'
+#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'CInBtnClick'#8
+'TabOrder'#2#5#0#0#7'TBitBtn'#7'COutBtn'#4'Left'#3#210#0#6'Height'#2#26#3'To'
+'p'#3#200#0#5'Width'#2#30#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0
+#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'
+#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'
+#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161
+'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131
+#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/'
+'x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'
+#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255
+#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132
+#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255
+#255#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154
+#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255
+#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201
+#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'
+#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'Num'
+'Glyphs'#2#0#7'OnClick'#7#12'COutBtnClick'#8'TabOrder'#2#6#0#0#5'TEdit'#6'AC'
+'odes'#4'Left'#3#255#0#6'Height'#2#23#3'Top'#2'('#5'Width'#3#139#0#8'TabOrde'
+'r'#2#7#4'Text'#6#6'ACodes'#0#0#5'TEdit'#6'BCodes'#4'Left'#3#255#0#6'Height'
+#2#23#3'Top'#2'p'#5'Width'#3#138#0#8'TabOrder'#2#8#4'Text'#6#6'BCodes'#0#0#8
+'TListBox'#5'CList'#4'Left'#3#0#1#6'Height'#3#155#0#3'Top'#3#184#0#5'Width'#3
+#143#0#10'ItemHeight'#2#0#8'TabOrder'#2#9#0#0#9'TGroupBox'#9'GroupBox1'#4'Le'
+'ft'#2#16#6'Height'#2'E'#3'Top'#3#16#1#5'Width'#3#225#0#7'Caption'#6#8'Optio'
+'ns:'#12'ClientHeight'#2'3'#11'ClientWidth'#3#221#0#8'TabOrder'#2#10#0#9'TCh'
+'eckBox'#7'PlotChk'#4'Left'#2#7#6'Height'#2#19#3'Top'#2#1#5'Width'#2'O'#7'Ca'
+'ption'#6#10'Plot Means'#8'TabOrder'#2#0#0#0#9'TCheckBox'#7'TestChk'#4'Left'
+#2#9#6'Height'#2#19#3'Top'#2#24#5'Width'#3#194#0#7'Caption'#6#30'Test Homoge'
+'neity of Covariance'#8'TabOrder'#2#1#0#0#0#7'TButton'#8'ResetBtn'#4'Left'#3
+#184#1#6'Height'#2#27#3'Top'#2#24#5'Width'#2'Y'#7'Caption'#6#5'Reset'#7'OnCl'
+'ick'#7#13'ResetBtnClick'#8'TabOrder'#2#11#0#0#7'TButton'#9'CancelBtn'#4'Lef'
+'t'#3#184#1#6'Height'#2#27#3'Top'#2'H'#5'Width'#2'Y'#7'Caption'#6#6'Cancel'
+#11'ModalResult'#2#2#8'TabOrder'#2#12#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3
+#184#1#6'Height'#2#27#3'Top'#3#168#0#5'Width'#2'Y'#7'Caption'#6#7'Compute'#7
+'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#13#0#0#7'TButton'#9'ReturnBtn'
+#4'Left'#3#184#1#6'Height'#2#27#3'Top'#3#216#0#5'Width'#2'Y'#7'Caption'#6#6
+'Return'#11'ModalResult'#2#1#8'TabOrder'#2#14#0#0#7'TButton'#7'HelpBtn'#3'Ta'
+'g'#2'f'#4'Left'#3#184#1#6'Height'#2#27#3'Top'#2'x'#5'Width'#2'Y'#7'Caption'
+#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#15#0#0#0
]);

View File

@ -1,980 +0,0 @@
unit AJKLogLinUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, Math, OutPutUnit, Buttons, ExtCtrls, MainUnit, FunctionsUnit,
GlobalDefs, DataProcs;
type cube = array[1..10,1..10,1..10] of double;
type matrix = array[1..10,1..10] of double;
type vector = array[1..10] of double;
type quad = array[1..10,1..10,1..10,1..7] of double;
type
TAJKLogLinearFrm = class(TForm)
Memo1: TMemo;
Label1: TLabel;
NrowsEdit: TEdit;
Label2: TLabel;
NcolsEdit: TEdit;
Label3: TLabel;
NslicesEdit: TEdit;
Grid: TStringGrid;
ComputeBtn: TButton;
ExitBtn: TButton;
FileFromGrp: TRadioGroup;
VarList: TListBox;
RowInBtn: TBitBtn;
RowOutBtn: TBitBtn;
Label4: TLabel;
RowVarEdit: TEdit;
ColInBtn: TBitBtn;
ColOutBtn: TBitBtn;
Label5: TLabel;
ColVarEdit: TEdit;
FreqInBtn: TBitBtn;
FreqOutBtn: TBitBtn;
Label6: TLabel;
FreqVarEdit: TEdit;
CancelBtn: TButton;
ResetBtn: TButton;
SliceBtnIn: TBitBtn;
SliceBtnOut: TBitBtn;
Label7: TLabel;
SliceVarEdit: TEdit;
procedure FormShow(Sender: TObject);
procedure ExitBtnClick(Sender: TObject);
procedure NrowsEditKeyPress(Sender: TObject; var Key: Char);
procedure NcolsEditKeyPress(Sender: TObject; var Key: Char);
procedure NslicesEditKeyPress(Sender: TObject; var Key: Char);
procedure ComputeBtnClick(Sender: TObject);
procedure ModelEffect(Nrows,Ncols,Nslices : integer;
VAR Data : cube;
VAR RowMarg : vector;
VAR ColMarg : vector;
VAR SliceMarg : vector;
VAR AB : matrix;
VAR AC : matrix;
VAR BC : matrix;
VAR Total : double;
Model : integer);
procedure Iterate(Nrows, Ncols, Nslices : integer;
VAR Data : cube;
VAR RowMarg : vector;
VAR ColMarg : vector;
VAR SliceMarg : vector;
VAR Total : double;
VAR Expected : cube;
VAR NewRowMarg : vector;
VAR NewColMarg : vector;
VAR NewSliceMarg : vector;
VAR NewTotal : double);
procedure PrintTable(Nrows, Ncols, Nslices : integer;
VAR Data : cube;
VAR RowMarg : vector;
VAR ColMarg : vector;
VAR SliceMarg : vector;
Total : double);
procedure PrintLamdas(Nrows,Ncols,Nslices : integer;
Var CellLambdas : Quad;
mu : double);
procedure PrintMatrix(VAR X : matrix;
Nrows, Ncols: integer;
Title : string);
procedure CancelBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
procedure FileFromGrpClick(Sender: TObject);
procedure RowInBtnClick(Sender: TObject);
procedure RowOutBtnClick(Sender: TObject);
procedure ColInBtnClick(Sender: TObject);
procedure ColOutBtnClick(Sender: TObject);
procedure SliceBtnInClick(Sender: TObject);
procedure SliceBtnOutClick(Sender: TObject);
procedure FreqInBtnClick(Sender: TObject);
procedure FreqOutBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
AJKLogLinearFrm: TAJKLogLinearFrm;
implementation
{$R *.DFM}
procedure TAJKLogLinearFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(Self);
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.ExitBtnClick(Sender: TObject);
begin
Close;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.NrowsEditKeyPress(Sender: TObject;
var Key: Char);
begin
if ord(Key) = 13 then NcolsEdit.SetFocus;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.NcolsEditKeyPress(Sender: TObject;
var Key: Char);
begin
if ord(Key) = 13 then NslicesEdit.SetFocus;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.NslicesEditKeyPress(Sender: TObject;
var Key: Char);
var
i, j, k, row : integer;
Nslices, Ncols, Nrows : integer;
begin
if ord(Key) = 13 then
begin
Nrows := StrToInt(NrowsEdit.Text);
Ncols := StrToInt(NcolsEdit.Text);
Nslices := StrToInt(NslicesEdit.Text);
Grid.RowCount := Nrows * Ncols * Nslices + 1;
row := 1;
for k := 1 to Nslices do
begin
for j := 1 to Ncols do
begin
for i := 1 to Nrows do
begin
Grid.Cells[0,row] := IntToStr(i);
Grid.Cells[1,row] := IntToStr(j);
Grid.Cells[2,row] := IntToStr(k);
row := row + 1;
end;
end;
end;
Grid.SetFocus;
end;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.ComputeBtnClick(Sender: TObject);
var
i, j, k, row, col, slice, Nrows, Ncols, Nslices : integer;
Data : cube;
AB, AC, BC : matrix;
RowMarg, ColMarg, SliceMarg : vector;
Total : double;
arraysize : integer;
Model : integer;
astr, Title : string;
RowCol, ColCol, SliceCol, Fcol : integer;
GridPos : IntDyneVec;
value : integer;
Fx : double;
begin
Nrows := 0;
Ncols := 0;
Nslices := 0;
Total := 0.0;
if FileFromGrp.ItemIndex = 0 then // mainfrm input
begin
SetLength(GridPos,4);
for i := 1 to NoVariables do
begin
if RowVarEdit.Text = MainFrm.Grid.Cells[i,0] then GridPos[0] := i;
if ColVarEdit.Text = MainFrm.Grid.Cells[i,0] then GridPos[1] := i;
if SliceVarEdit.Text = MainFrm.Grid.Cells[i,0] then GridPos[2] := i;
if FreqVarEdit.Text = MainFrm.Grid.Cells[i,0] then GridPos[3] := i;
end;
// get no. of rows, columns and slices
for i := 1 to MainFrm.Grid.RowCount - 1 do
begin
value := StrToInt(MainFrm.Grid.Cells[GridPos[0],i]);
if value > Nrows then Nrows := value;
value := StrToInt(MainFrm.Grid.Cells[GridPos[1],i]);
if value > Ncols then Ncols := value;
value := StrToInt(MainFrm.Grid.Cells[GridPos[2],i]);
if value > Nslices then Nslices := value;
end;
for i := 1 to Nrows do
for j := 1 to Ncols do
AB[i,j] := 0.0;
for i := 1 to Nrows do
for k := 1 to Nslices do
AC[i,k] := 0.0;
for j := 1 to Ncols do
for k := 1 to Nslices do
BC[j,k] := 0.0;
arraysize := Nrows * Ncols * Nslices;
// Get data
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Data[i,j,k] := 0.0;
rowcol := GridPos[0];
colcol := GridPos[1];
slicecol := GridPos[2];
Fcol := GridPos[3];
for i := 1 to MainFrm.Grid.RowCount - 1 do
begin
if Not GoodRecord(i, 4, GridPos) then continue;
row := StrToInt(MainFrm.Grid.Cells[rowcol,i]);
col := StrToInt(MainFrm.Grid.Cells[colcol,i]);
slice := StrToInt(MainFrm.Grid.Cells[slicecol,i]);
Fx := StrToInt(MainFrm.Grid.Cells[Fcol,i]);
Data[row,col,slice] := Data[row,col,slice] + Fx;
Total := Total + Fx;
RowMarg[row] := RowMarg[row] + Fx;
ColMarg[col] := ColMarg[col] + Fx;
SliceMarg[slice] := SliceMarg[slice] + Fx;
AB[row,col] := AB[row,col] + Fx;
AC[row,slice] := AC[row,slice] + Fx;
BC[col,slice] := BC[col,slice] + Fx;
end;
GridPos := nil;
end;
if FileFromGrp.ItemIndex = 1 then // form input
begin
Nrows := StrToInt(NrowsEdit.Text);
Ncols := StrToInt(NcolsEdit.Text);
Nslices := StrToInt(NslicesEdit.Text);
for i := 1 to Nrows do
for j := 1 to Ncols do
AB[i,j] := 0.0;
for i := 1 to Nrows do
for k := 1 to Nslices do
AC[i,k] := 0.0;
for j := 1 to Ncols do
for k := 1 to Nslices do
BC[j,k] := 0.0;
arraysize := Nrows * Ncols * Nslices;
// get data
for i := 1 to arraysize do
begin
row := StrToInt(Grid.Cells[0,i]);
col := StrToInt(Grid.Cells[1,i]);
slice := StrToInt(Grid.Cells[2,i]);
Data[row,col,slice] := StrToInt(Grid.Cells[3,i]);
AB[row,col] := AB[row,col] + Data[row,col,slice];
AC[row,slice] := AC[row,slice] + Data[row,col,slice];
BC[col,slice] := BC[col,slice] + Data[row,col,slice];
Total := Total + Data[row,col,slice];
RowMarg[row] := RowMarg[row] + Data[row,col,slice];
ColMarg[col] := ColMarg[col] + Data[row,col,slice];
SliceMarg[slice] := SliceMarg[slice] + Data[row,col,slice];
end;
end;
// print heading of output
OutPutFrm.RichEdit.Clear;
OutPutFrm.RichEdit.Lines.Add('Log-Linear Analysis of a Three Dimension Table');
OutPutFrm.RichEdit.Lines.Add('');
// print observed matrix
astr := 'Observed Frequencies';
OutPutFrm.RichEdit.Lines.Add(astr);
PrintTable(Nrows,Ncols,Nslices,Data,RowMarg,ColMarg,SliceMarg,Total);
OutPutFrm.RichEdit.Lines.Add('');
// Print sub-matrices
Title := 'Sub-matrix AB';
PrintMatrix(AB,Nrows,Ncols,Title);
Title := 'Sub-matrix AC';
PrintMatrix(AC,Nrows,Nslices,Title);
Title := 'Sub-matrix BC';
PrintMatrix(BC,Ncols,Nslices,Title);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
for Model := 1 to 9 do
ModelEffect(Nrows,Ncols,Nslices,Data,RowMarg,ColMarg,
SliceMarg,AB,AC,BC,Total,Model);
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.ModelEffect(Nrows,Ncols,Nslices : integer;
VAR Data : cube;
VAR RowMarg : vector;
VAR ColMarg : vector;
VAR SliceMarg : vector;
VAR AB : matrix;
VAR AC : matrix;
VAR BC : matrix;
VAR Total : double;
Model : integer);
var
i, j, k, l : integer;
CellLambdas : Quad;
LogData, Expected : cube;
Title, astr : string;
NewRowMarg,NewColMarg,NewSliceMarg : vector;
LogRowMarg, LogColMarg, LogSliceMarg : vector;
NewTotal : double;
ABLogs, ACLogs, BCLogs : matrix;
LogTotal, mu, ModelTotal, Ysqr : double;
DF : integer;
begin
// Get expected values for chosen model
if Model = 1 then // Saturated model
begin
Title := 'Saturated Model';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := Data[i,j,k];
end;
if Model = 2 then // independence
begin
Title := 'Model of Independence';
Iterate(Nrows,Ncols,Nslices,Data,RowMarg,ColMarg,SliceMarg,Total,
Expected,NewRowMarg,NewColMarg,NewSliceMarg,NewTotal);
end;
if Model = 3 then // no AB effect
begin
Title := 'No AB Effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := AC[i,k] * BC[j,k] / SliceMarg[k];
end;
if Model = 4 then // no AC effect
begin
Title := 'No AC Effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := AB[i,j] * BC[j,k] / ColMarg[j];
end;
if Model = 5 then // no BC effect
begin
Title := 'No BC Effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := AB[i,j] * AC[i,k] / RowMarg[i];
end;
if Model = 6 then // no C effect
begin
Title := 'Model of No Slice (C) effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := (RowMarg[i] / Total) *
(ColMarg[j] / Total) * (Total / Nslices);
end;
if Model = 7 then // no B effect
begin
Title := 'Model of no Column (B) effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := (RowMarg[i] / Total) *
(SliceMarg[k] / Total) * (Total / Ncols);
end;
if Model = 8 then // no A effect
begin
Title := 'Model of no Row (A) effect';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := (ColMarg[j] / Total) *
(SliceMarg[k] / Total) * (Total / Nrows);
end;
if Model = 9 then // Equiprobability Model
begin
Title := 'Equi-probability Model';
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Expected[i,j,k] := Total /
(Nrows * NCols * Nslices);
end;
LogTotal := 0.0;
for i := 1 to Nrows do
begin
NewRowMarg[i] := 0.0;
LogRowMarg[i] := 0.0;
end;
for j := 1 to Ncols do
begin
NewColMarg[j] := 0.0;
LogColMarg[j] := 0.0;
end;
for k := 1 to Nslices do
begin
NewSliceMarg[k] := 0.0;
LogSliceMarg[k] := 0.0;
end;
for i := 1 to Nrows do
for j := 1 to Ncols do
ABLogs[i,j] := 0.0;
for i := 1 to Nrows do
for k := 1 to Nslices do
ACLogs[i,k] := 0.0;
for j := 1 to Ncols do
for k := 1 to Nslices do
BCLogs[j,k] := 0.0;
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
NewRowMarg[i] := NewRowMarg[i] + Expected[i,j,k];
NewColMarg[j] := NewColMarg[j] + Expected[i,j,k];
NewSliceMarg[k] := NewSliceMarg[k] + Expected[i,j,k];
end;
end;
end;
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
LogData[i,j,k] := ln(Expected[i,j,k]);
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
LogRowMarg[i] := LogRowMarg[i] + LogData[i,j,k];
LogColMarg[j] := LogColMarg[j] + LogData[i,j,k];
LogSliceMarg[k] := LogSliceMarg[k] + LogData[i,j,k];
ABLogs[i,j] := ABLogs[i,j] + LogData[i,j,k];
ACLogs[i,k] := ACLogs[i,k] + LogData[i,j,k];
BCLogs[j,k] := BCLogs[j,k] + LogData[i,j,k];
LogTotal := LogTotal + LogData[i,j,k];
end;
end;
end;
for i := 1 to Nrows do LogRowMarg[i] := LogRowMarg[i] / (Ncols * Nslices);
for j := 1 to Ncols do LogColMarg[j] := LogColMarg[j] / (Nrows * Nslices);
for k := 1 to Nslices do LogSliceMarg[k] := LogSliceMarg[k] / (Ncols * Nrows);
LogTotal := LogTotal / (Ncols * Nrows * Nslices);
for i := 1 to Nrows do
for j := 1 to Ncols do
ABLogs[i,j] := ABLogs[i,j] / Nslices;
for i := 1 to Nrows do
for k := 1 to Nslices do
ACLogs[i,k] := ACLogs[i,k] / Ncols;
for j := 1 to Ncols do
for k := 1 to Nslices do
BCLogs[j,k] := BCLogs[j,k] / Nrows;
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
CellLambdas[i,j,k,1] := LogRowMarg[i] - LogTotal;
CellLambdas[i,j,k,2] := LogColMarg[j] - LogTotal;
CellLambdas[i,j,k,3] := LogSliceMarg[k] - LogTotal;
CellLambdas[i,j,k,4] := ABLogs[i,j] - LogRowMarg[i]
- LogColMarg[j] + LogTotal;
CellLambdas[i,j,k,5] := ACLogs[i,k] - LogRowMarg[i]
- LogSliceMarg[k] + LogTotal;
CellLambdas[i,j,k,6] := BCLogs[j,k] - LogColMarg[j]
- LogSliceMarg[k] + LogTotal;
CellLambdas[i,j,k,7] := LogData[i,j,k] + LogRowMarg[i]
+ LogColMarg[j] + LogSliceMarg[k]
- ABLogs[i,j] - ACLogs[i,k]
- BCLogs[j,k] - LogTotal;
end;
end;
end;
mu := LogTotal;
// Get Y square for model
Ysqr := 0.0;
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Ysqr := Ysqr + (Data[i,j,k] * ln(Data[i,j,k] / Expected[i,j,k]));
Ysqr := 2.0 * Ysqr;
OutPutFrm.RichEdit.Lines.Add(Title);
OutPutFrm.RichEdit.Lines.Add('');
astr := 'Expected Frequencies';
OutPutFrm.RichEdit.Lines.Add(astr);
PrintTable(Nrows,Ncols,Nslices,Expected,NewRowMarg,NewColMarg,
NewSliceMarg,NewTotal);
OutPutFrm.RichEdit.Lines.Add('');
astr := 'Log Frequencies';
OutPutFrm.RichEdit.Lines.Add(astr);
PrintTable(Nrows,Ncols,Nslices,LogData,LogRowMarg,LogColMarg,LogSliceMarg,LogTotal);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
astr := 'Cell Parameters';
OutPutFrm.RichEdit.Lines.Add(astr);
PrintLamdas(Nrows,Ncols,Nslices,CellLambdas, mu);
OutPutFrm.RichEdit.Lines.Add('');
astr := 'G squared statistic for model fit = ' + format('%6.3f',[Ysqr]);
case Model of
1 : DF := 0; // saturated
2 : DF := Nrows * Ncols * Nslices - Nrows - Ncols - Nslices + 2; // independence
3 : DF := Nslices * (Nrows - 1) * (Ncols - 1); //no AB effect
4 : DF := Ncols * (Nrows - 1) * (Nslices - 1); // no AC effect
5 : DF := Nrows * (Ncols - 1) * (Nslices - 1); // no BC effect
6 : DF := Nrows * Ncols * Nslices - Nrows - Ncols + 1; // no C effect
7 : DF := Nrows * Ncols * Nslices - Nrows - Nslices + 1; // no B effect
8 : DF := Nrows * Ncols * Nslices - Ncols - Nslices + 1; // no A effect
9 : DF := Nrows * Ncols * Nslices - 1; // Equiprobability
end;
astr := astr + ' D.F. = ' + IntToStr(DF);
OutPutFrm.RichEdit.Lines.Add(astr);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.Iterate(Nrows, Ncols, Nslices : integer;
VAR Data : cube;
VAR RowMarg : vector;
VAR ColMarg : vector;
VAR SliceMarg : vector;
VAR Total : double;
VAR Expected : cube;
VAR NewRowMarg : vector;
VAR NewColMarg : vector;
VAR NewSliceMarg : vector;
VAR NewTotal : double);
Label Step;
var
previous : cube;
i, j, k : integer;
delta : double;
difference : double;
begin
delta := 0.1;
difference := 0.0;
for i := 1 to Nrows do newrowmarg[i] := 0.0;
for j := 1 to Ncols do newcolmarg[j] := 0.0;
for k := 1 to Nslices do newslicemarg[k] := 0.0;
// initialize expected values
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
expected[i,j,k] := 1.0;
previous[i,j,k] := 1.0;
end;
end;
end;
Step:
// step 1: initialize new row margins and calculate expected value
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
newrowmarg[i] := newrowmarg[i] + expected[i,j,k];
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
expected[i,j,k] := (RowMarg[i] / newrowmarg[i]) * expected[i,j,k];
// step 2: initialize new col margins and calculate expected values
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
newcolmarg[j] := newcolmarg[j] + expected[i,j,k];
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
expected[i,j,k] := (ColMarg[j] / newcolmarg[j]) * expected[i,j,k];
// step 3: initialize new slice margins and calculate expected values
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
newslicemarg[k] := newslicemarg[k] + expected[i,j,k];
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
expected[i,j,k] := (SliceMarg[k] / newslicemarg[k]) * expected[i,j,k];
// step 4: check for change and quit if smaller than delta
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
if abs(Previous[i,j,k]-expected[i,j,k]) > difference then
difference := abs(Previous[i,j,k]-expected[i,j,k]);
if difference < delta then
begin
newtotal := 0.0;
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
newtotal := newtotal + expected[i,j,k];
exit;
end
else begin
for i := 1 to Nrows do
for j := 1 to Ncols do
for k := 1 to Nslices do
Previous[i,j,k] := expected[i,j,k];
for i := 1 to Nrows do newrowmarg[i] := 0.0;
for j := 1 to Ncols do newcolmarg[j] := 0.0;
for k := 1 to Nslices do newslicemarg[k] := 0.0;
difference := 0.0;
goto step;
end;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.PrintTable(Nrows, Ncols, Nslices : integer;
VAR Data : cube;
VAR RowMarg : vector;
VAR ColMarg : vector;
VAR SliceMarg : vector;
Total : double);
var
astr : string;
i, j,k : integer;
begin
astr := ' A B C VALUE ';
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
astr := format('%3d %3d %3d %8.3f',[i,j,k,Data[i,j,k]]);
OutPutFrm.RichEdit.Lines.Add(astr);
end;
end;
end;
astr := 'Totals for Dimension A';
OutPutFrm.RichEdit.Lines.Add(astr);
for i := 1 to Nrows do
begin
astr := format('Row %d %8.3f',[i,RowMarg[i]]);
OutPutFrm.RichEdit.Lines.Add(astr);
end;
astr := 'Totals for Dimension B';
OutPutFrm.RichEdit.Lines.Add(astr);
for j := 1 to Ncols do
begin
astr := format('Col %d %8.3f',[j,ColMarg[j]]);
OutPutFrm.RichEdit.Lines.Add(astr);
end;
astr := 'Totals for Dimension C';
OutPutFrm.RichEdit.Lines.Add(astr);
for k := 1 to Nslices do
begin
astr := format('Slice %d %8.3f',[k,SliceMarg[k]]);
OutPutFrm.RichEdit.Lines.Add(astr);
end;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.PrintLamdas(Nrows,Ncols,Nslices : integer;
Var CellLambdas : Quad;
mu : double);
var
i, j, k, l : integer;
astr : string;
begin
astr := 'ROW COL SLICE MU LAMBDA A LAMBDA B LAMBDA C';
OutPutFrm.RichEdit.Lines.Add(astr);
astr := ' LAMBDA AB LAMBDA AC LAMBDA BC LAMBDA ABC';
OutPutFrm.RichEdit.Lines.Add(astr);
OutPutFrm.RichEdit.Lines.Add('');
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
for k := 1 to Nslices do
begin
astr := format('%3d %3d %3d ',[i,j,k]);
astr := astr + format(' %8.3f ',[mu]);
for l := 1 to 3 do
astr := astr + format(' %8.3f ',[CellLambdas[i,j,k,l]]);
OutPutFrm.RichEdit.Lines.Add(astr);
astr := ' ';
for l := 4 to 7 do
astr := astr + format(' %8.3f ',[CellLambdas[i,j,k,l]]);
OutPutFrm.RichEdit.Lines.Add(astr);
OutPutFrm.RichEdit.Lines.Add('');
end;
end;
end;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.PrintMatrix(VAR X : matrix;
Nrows, Ncols: integer;
Title : string);
Label loop;
var
i, j : integer;
first, last : integer;
astr : string;
begin
OutPutFrm.RichEdit.Lines.Add(Title);
OutPutFrm.RichEdit.Lines.Add('');
first := 1;
last := Ncols;
if last > 6 then last := 6;
loop:
astr := 'ROW/COL';
for j := first to last do astr := astr + format(' %3d ',[j]);
OutPutFrm.RichEdit.Lines.Add(astr);
for i := 1 to Nrows do
begin
astr := format(' %3d ',[i]);
for j := first to last do astr := astr + format(' %8.3f ',[X[i,j]]);
OutPutFrm.RichEdit.Lines.Add(astr);
end;
if last < Ncols then
begin
first := last + 1;
last := Ncols;
if last > 6 then last := 6;
goto loop;
end;
OutPutFrm.RichEdit.Lines.Add('');
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.CancelBtnClick(Sender: TObject);
begin
AJKLogLinearFrm.Hide;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.ResetBtnClick(Sender: TObject);
var
i, j : integer;
begin
// for i := 0 to Grid.RowCount - 1 do
// for j := 0 to Grid.ColCount - 1 do
// Grid.Cells[j,i] := '';
Grid.ColCount := 4;
Grid.RowCount := 2;
Grid.Cells[0,0] := 'ROW';
Grid.Cells[1,0] := 'COL';
Grid.Cells[2,0] := 'SLICE';
Grid.Cells[3,0] := 'FREQ.';
VarList.Clear;
for i := 1 to NoVariables do
VarList.Items.Add(MainFrm.Grid.Cells[i,0]);
RowVarEdit.Text := '';
ColVarEdit.Text := '';
FreqVarEdit.Text := '';
NRowsEdit.Text := '';
NColsEdit.Text := '';
NSlicesEdit.Text := '';
VarList.Visible := false;
RowInBtn.Visible := false;
RowOutBtn.Visible := false;
ColInBtn.Visible := false;
ColOutBtn.Visible := false;
FreqInBtn.Visible := false;
FreqOutBtn.Visible := false;
Label4.Visible := false;
Label5.Visible := false;
Label6.Visible := false;
Label7.Visible := false;
RowVarEdit.Visible := false;
ColVarEdit.Visible := false;
SliceVarEdit.Visible := false;
FreqVarEdit.Visible := false;
Memo1.Visible := false;
Label1.Visible := false;
Label2.Visible := false;
Label3.Visible := false;
NRowsEdit.Visible := false;
NColsEdit.Visible := false;
NSlicesEdit.Visible := false;
Grid.Visible := false;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.FileFromGrpClick(Sender: TObject);
begin
if FileFromGrp.ItemIndex = 0 then // file from main form
begin
VarList.Visible := true;
RowInBtn.Visible := true;
RowOutBtn.Visible := false;
ColInBtn.Visible := true;
ColOutBtn.Visible := false;
SliceBtnIn.Visible := true;
SliceBtnOut.Visible := false;
FreqInBtn.Visible := true;
FreqOutBtn.Visible := false;
Label4.Visible := true;
Label5.Visible := true;
Label6.Visible := true;
Label7.Visible := true;
RowVarEdit.Visible := true;
ColVarEdit.Visible := true;
SliceVarEdit.Visible := true;
FreqVarEdit.Visible := true;
Memo1.Visible := false;
Label1.Visible := false;
Label2.Visible := false;
Label3.Visible := false;
NRowsEdit.Visible := false;
NColsEdit.Visible := false;
NSlicesEdit.Visible := false;
Grid.Visible := false;
end;
if FileFromGrp.ItemIndex = 1 then // data from this form
begin
VarList.Visible := false;
RowInBtn.Visible := false;
RowOutBtn.Visible := false;
ColInBtn.Visible := false;
ColOutBtn.Visible := false;
SliceBtnIn.Visible := false;
SliceBtnOut.Visible := false;
FreqInBtn.Visible := false;
FreqOutBtn.Visible := false;
Label4.Visible := false;
Label5.Visible := false;
Label6.Visible := false;
Label7.Visible := false;
RowVarEdit.Visible := false;
ColVarEdit.Visible := false;
SliceVarEdit.Visible := false;
FreqVarEdit.Visible := false;
Memo1.Visible := true;
Label1.Visible := true;
Label2.Visible := true;
Label3.Visible := true;
NRowsEdit.Visible := true;
NColsEdit.Visible := true;
NSlicesEdit.Visible := true;
Grid.Visible := true;
end;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.RowInBtnClick(Sender: TObject);
var
index : integer;
begin
index := VarList.ItemIndex;
RowVarEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
RowOutBtn.Visible := true;
RowInBtn.Visible := false;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.RowOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(RowVarEdit.Text);
RowInBtn.Visible := true;
RowOutBtn.Visible := false;
RowVarEdit.Text := '';
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.ColInBtnClick(Sender: TObject);
var
index : integer;
begin
index := VarList.ItemIndex;
ColVarEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
ColOutBtn.Visible := true;
ColInBtn.Visible := false;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.ColOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(ColVarEdit.Text);
ColInBtn.Visible := true;
ColOutBtn.Visible := false;
ColVarEdit.Text := '';
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.SliceBtnInClick(Sender: TObject);
var
index : integer;
begin
index := VarList.ItemIndex;
SliceVarEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
SliceBtnOut.Visible := true;
SliceBtnIn.Visible := false;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.SliceBtnOutClick(Sender: TObject);
begin
VarList.Items.Add(SliceVarEdit.Text);
SliceBtnIn.Visible := true;
SliceBtnOut.Visible := false;
FreqVarEdit.Text := '';
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.FreqInBtnClick(Sender: TObject);
var
index : integer;
begin
index := VarList.ItemIndex;
FreqVarEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
FreqOutBtn.Visible := true;
FreqInBtn.Visible := false;
end;
//-------------------------------------------------------------------
procedure TAJKLogLinearFrm.FreqOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(FreqVarEdit.Text);
FreqInBtn.Visible := true;
FreqOutBtn.Visible := false;
FreqVarEdit.Text := '';
end;
//-------------------------------------------------------------------
end.

File diff suppressed because it is too large Load Diff

View File

@ -1,445 +0,0 @@
object ANCOVAfrm: TANCOVAfrm
Left = 204
Height = 412
Top = 192
Width = 747
Caption = 'Analysis of Covariance Using Multiple Regression Methods'
ClientHeight = 412
ClientWidth = 747
OnShow = FormShow
Position = poScreenCenter
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 8
Height = 14
Top = 9
Width = 94
Caption = 'Available Variables:'
ParentColor = False
end
object Label2: TLabel
Left = 265
Height = 14
Top = 31
Width = 95
Caption = 'Dependent Variable'
ParentColor = False
end
object Label3: TLabel
Left = 265
Height = 14
Top = 111
Width = 66
Caption = 'Fixed Factors'
ParentColor = False
end
object Label4: TLabel
Left = 265
Height = 14
Top = 256
Width = 53
Caption = 'Covariates'
ParentColor = False
end
object VarList: TListBox
Left = 8
Height = 383
Top = 24
Width = 210
ItemHeight = 0
MultiSelect = True
TabOrder = 0
end
object DepIn: TBitBtn
Left = 224
Height = 26
Top = 31
Width = 34
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
}
NumGlyphs = 0
OnClick = DepInClick
TabOrder = 1
end
object DepOut: TBitBtn
Left = 224
Height = 26
Top = 64
Width = 34
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
}
NumGlyphs = 0
OnClick = DepOutClick
TabOrder = 2
end
object FixedIn: TBitBtn
Left = 224
Height = 26
Top = 144
Width = 34
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
}
NumGlyphs = 0
OnClick = FixedInClick
TabOrder = 3
end
object FixedOut: TBitBtn
Left = 224
Height = 26
Top = 176
Width = 34
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
}
NumGlyphs = 0
OnClick = FixedOutClick
TabOrder = 4
end
object CovIn: TBitBtn
Left = 224
Height = 26
Top = 280
Width = 34
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
}
NumGlyphs = 0
OnClick = CovInClick
TabOrder = 5
end
object CovOut: TBitBtn
Left = 224
Height = 26
Top = 312
Width = 34
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
}
NumGlyphs = 0
OnClick = CovOutClick
TabOrder = 6
end
object DepVar: TEdit
Left = 263
Height = 21
Top = 48
Width = 139
TabOrder = 7
Text = 'DepVar'
end
object FixedList: TListBox
Left = 264
Height = 111
Top = 129
Width = 136
ItemHeight = 0
MultiSelect = True
TabOrder = 8
end
object CovList: TListBox
Left = 263
Height = 123
Top = 272
Width = 134
ItemHeight = 0
MultiSelect = True
TabOrder = 9
end
object GroupBox1: TGroupBox
Left = 416
Height = 176
Top = 136
Width = 191
Caption = 'Output Options:'
ClientHeight = 158
ClientWidth = 187
TabOrder = 10
object Describe: TCheckBox
Left = 9
Height = 17
Top = 9
Width = 119
Caption = 'Descriptive Statistics'
TabOrder = 0
end
object RMats: TCheckBox
Left = 8
Height = 17
Top = 39
Width = 116
Caption = 'Correlation Matrices'
TabOrder = 1
end
object Inverses: TCheckBox
Left = 8
Height = 17
Top = 72
Width = 113
Caption = 'Inverse of Matrices'
TabOrder = 2
end
object PlotMeans: TCheckBox
Left = 7
Height = 17
Top = 106
Width = 106
Caption = 'Plot Factor Means'
TabOrder = 3
end
object MultCompChk: TCheckBox
Left = 7
Height = 17
Top = 134
Width = 149
Caption = 'Show Multiple Comparisons'
TabOrder = 4
end
end
object ResetBtn: TButton
Left = 635
Height = 27
Top = 151
Width = 76
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 11
end
object CancelBtn: TButton
Left = 635
Height = 27
Top = 208
Width = 76
Caption = 'Cancel'
ModalResult = 2
TabOrder = 12
end
object ComputeBtn: TButton
Left = 635
Height = 27
Top = 304
Width = 76
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 13
end
object ReturnBtn: TButton
Left = 635
Height = 27
Top = 352
Width = 76
Caption = 'Return'
ModalResult = 1
TabOrder = 14
end
object HelpBtn: TButton
Tag = 103
Left = 638
Height = 27
Top = 256
Width = 73
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 15
end
end

View File

@ -1,353 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TANCOVAfrm','FORMDATA',[
'TPF0'#10'TANCOVAfrm'#9'ANCOVAfrm'#4'Left'#3#204#0#6'Height'#3#156#1#3'Top'#3
+#192#0#5'Width'#3#235#2#7'Caption'#6'8Analysis of Covariance Using Multiple '
+'Regression Methods'#12'ClientHeight'#3#156#1#11'ClientWidth'#3#235#2#6'OnSh'
+'ow'#7#8'FormShow'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#8'0.9.2'
+'8.2'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'#2#14#3'Top'#2#9#5'Width'#2
+'^'#7'Caption'#6#20'Available Variables:'#11'ParentColor'#8#0#0#6'TLabel'#6
+'Label2'#4'Left'#3#9#1#6'Height'#2#14#3'Top'#2#31#5'Width'#2'_'#7'Caption'#6
+#18'Dependent Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#9
+#1#6'Height'#2#14#3'Top'#2'o'#5'Width'#2'B'#7'Caption'#6#13'Fixed Factors'#11
+'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#3#9#1#6'Height'#2#14#3'Top'#3
+#0#1#5'Width'#2'5'#7'Caption'#6#10'Covariates'#11'ParentColor'#8#0#0#8'TList'
+'Box'#7'VarList'#4'Left'#2#8#6'Height'#3#127#1#3'Top'#2#24#5'Width'#3#210#0
+#10'ItemHeight'#2#0#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#5'DepIn'
+#4'Left'#3#224#0#6'Height'#2#26#3'Top'#2#31#5'Width'#2'"'#10'Glyph.Data'#10
+':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0
+' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'
+#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'
+#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0
+#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255
+#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142
+#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'
+#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162
+#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255
+#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130
+#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199
+'t'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255
+'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'
+#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#10'DepInClick'#8
,'TabOrder'#2#1#0#0#7'TBitBtn'#6'DepOut'#4'Left'#3#224#0#6'Height'#2#26#3'Top'
+#2'@'#5'Width'#2'"'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'
+#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0
+#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153
+'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'
+#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255
+'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'
+#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195
+'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255
+#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255
+#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#11'DepOutClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#7'Fixed'
+'In'#4'Left'#3#224#0#6'Height'#2#26#3'Top'#3#144#0#5'Width'#2'"'#10'Glyph.Da'
+'ta'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0
+#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184
+#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177
+'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255
+#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255
+#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142
+#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'
+#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162
+#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255
+#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130
+#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199
+'t'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255
+'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'
+#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#12'FixedInClick'#8
+'TabOrder'#2#3#0#0#7'TBitBtn'#8'FixedOut'#4'Left'#3#224#0#6'Height'#2#26#3'T'
+'op'#3#176#0#5'Width'#2'"'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0
+#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'
+#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'
+#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161
+'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131
+#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/'
+'x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'
+#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255
,#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132
+#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255
+#255#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154
+#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255
+#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201
+#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'
+#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'Num'
+'Glyphs'#2#0#7'OnClick'#7#13'FixedOutClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#5
+'CovIn'#4'Left'#3#224#0#6'Height'#2#26#3'Top'#3#24#1#5'Width'#2'"'#10'Glyph.'
+'Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16
+#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184
+#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177
+'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255
+#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255
+#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142
+#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'
+#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162
+#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255
+#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130
+#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199
+'t'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255
+'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'
+#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#10'CovInClick'#8
+'TabOrder'#2#5#0#0#7'TBitBtn'#6'CovOut'#4'Left'#3#224#0#6'Height'#2#26#3'Top'
+#3'8'#1#5'Width'#2'"'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0
+'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0
+#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'
+#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161
+'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131
+#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/'
+'x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'
+#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255
+#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132
+#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255
+#255#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154
+#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255
+#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201
+#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'
+#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'Num'
+'Glyphs'#2#0#7'OnClick'#7#11'CovOutClick'#8'TabOrder'#2#6#0#0#5'TEdit'#6'Dep'
+'Var'#4'Left'#3#7#1#6'Height'#2#21#3'Top'#2'0'#5'Width'#3#139#0#8'TabOrder'#2
+#7#4'Text'#6#6'DepVar'#0#0#8'TListBox'#9'FixedList'#4'Left'#3#8#1#6'Height'#2
+'o'#3'Top'#3#129#0#5'Width'#3#136#0#10'ItemHeight'#2#0#11'MultiSelect'#9#8'T'
+'abOrder'#2#8#0#0#8'TListBox'#7'CovList'#4'Left'#3#7#1#6'Height'#2'{'#3'Top'
+#3#16#1#5'Width'#3#134#0#10'ItemHeight'#2#0#11'MultiSelect'#9#8'TabOrder'#2#9
+#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3#160#1#6'Height'#3#176#0#3'Top'#3#136
+#0#5'Width'#3#191#0#7'Caption'#6#15'Output Options:'#12'ClientHeight'#3#158#0
+#11'ClientWidth'#3#187#0#8'TabOrder'#2#10#0#9'TCheckBox'#8'Describe'#4'Left'
+#2#9#6'Height'#2#17#3'Top'#2#9#5'Width'#2'w'#7'Caption'#6#22'Descriptive Sta'
+'tistics'#8'TabOrder'#2#0#0#0#9'TCheckBox'#5'RMats'#4'Left'#2#8#6'Height'#2
+#17#3'Top'#2''''#5'Width'#2't'#7'Caption'#6#20'Correlation Matrices'#8'TabOr'
+'der'#2#1#0#0#9'TCheckBox'#8'Inverses'#4'Left'#2#8#6'Height'#2#17#3'Top'#2'H'
+#5'Width'#2'q'#7'Caption'#6#19'Inverse of Matrices'#8'TabOrder'#2#2#0#0#9'TC'
+'heckBox'#9'PlotMeans'#4'Left'#2#7#6'Height'#2#17#3'Top'#2'j'#5'Width'#2'j'#7
+'Caption'#6#17'Plot Factor Means'#8'TabOrder'#2#3#0#0#9'TCheckBox'#11'MultCo'
+'mpChk'#4'Left'#2#7#6'Height'#2#17#3'Top'#3#134#0#5'Width'#3#149#0#7'Caption'
+#6#25'Show Multiple Comparisons'#8'TabOrder'#2#4#0#0#0#7'TButton'#8'ResetBtn'
+#4'Left'#3'{'#2#6'Height'#2#27#3'Top'#3#151#0#5'Width'#2'L'#7'Caption'#6#5'R'
+'eset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#11#0#0#7'TButton'#9'Canc'
+'elBtn'#4'Left'#3'{'#2#6'Height'#2#27#3'Top'#3#208#0#5'Width'#2'L'#7'Caption'
+#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#12#0#0#7'TButton'#10'ComputeB'
+'tn'#4'Left'#3'{'#2#6'Height'#2#27#3'Top'#3'0'#1#5'Width'#2'L'#7'Caption'#6#7
+'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#13#0#0#7'TButton'#9
+'ReturnBtn'#4'Left'#3'{'#2#6'Height'#2#27#3'Top'#3'`'#1#5'Width'#2'L'#7'Capt'
+'ion'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#14#0#0#7'TButton'#7'Help'
+'Btn'#3'Tag'#2'g'#4'Left'#3'~'#2#6'Height'#2#27#3'Top'#3#0#1#5'Width'#2'I'#7
+'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#15#0#0#0
]);

View File

@ -1,545 +0,0 @@
unit ANOVATESTS;
{$MODE Delphi}
Interface
uses LCLIntf, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
FUNCTIONSLIB, OUTPUTUNIT, GLOBALS;
procedure TUKEY(error_ms : double; { mean squared for residual }
error_df : double; { deg. freedom for residual }
value : double; { size of smallest group }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { no. of cases in a group }
min_grp : integer; { minimum group code }
max_grp : integer); { maximum group code }
procedure SCHEFFETEST(error_ms : double; { mean squared residual }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { count of cases in a group }
min_grp : integer; { code of first group }
max_grp : integer; { code of last group }
total_n : double); { total number of cases }
procedure Newman_Keuls(error_ms : double; { residual mean squared }
error_df : double; { deg. freedom for error }
value : double; { number in smallest group }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { count of cases in a group }
min_grp : integer; { lowest group code }
max_grp : integer); { largest group code }
procedure TUKEY_KRAMER(error_ms : double; { residual mean squared }
error_df : double; { deg. freedom for error }
value : double; { number in smallest group }
group_total : DblDyneVec; { sum of scores in group }
group_count : DblDyneVec; { number of caes in group }
min_grp : integer; { code of lowest group }
max_grp : integer); { code of highst group }
procedure CONTRASTS(error_ms : double; { residual ms }
error_df : double; { residual df }
group_total : DblDyneVec; { group sums }
group_count : DblDyneVec; { group cases }
min_grp : integer; { lowest code }
max_grp : integer; { highest code }
overall_probf : double); { prob of overall test }
procedure Bonferroni( group_total : DblDyneVec; { sum of scores in group }
group_count : DblDyneVec; { number of caes in group }
group_var : DblDyneVec; { group variances }
min_grp : integer; { code of lowest group }
max_grp : integer); { code of highst group }
procedure TUKEYBTEST(ErrorMS : double; // within groups error
ErrorDF : double; // degrees of freedom within
group_total : DblDyneVec; // vector of group sums
group_count : DblDyneVec; // vector of group n's
min_grp : integer; // smallest group code
max_grp : integer; // largest group code
groupsize : double); // size of groups (all equal)
{ --------------------------------------------------------------------- }
Implementation
Uses BLKANOVAUNIT;
procedure TUKEY(error_ms : double; { mean squared for residual }
error_df : double; { deg. freedom for residual }
value : double; { size of smallest group }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { no. of cases in a group }
min_grp : integer; { minimum group code }
max_grp : integer); { maximum group code }
var
sig : boolean;
divisor : double;
df1 : integer;
alpha : double;
contrast, mean1, mean2 : double;
q_stat : double;
i,j : integer;
outline : string;
begin
alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' Tukey HSD Test for Differences Between Means');
outline := format(' alpha selected = %4.2f',[alpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('Groups Difference Statistic Probability Significant?');
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
divisor := sqrt(error_ms / value );
for i := min_grp to max_grp - 1 do
for j := i + 1 to max_grp do
begin
outline := format('%2d - %2d ',[i,j]);
mean1 := group_total[i-1] / group_count[i-1];
mean2 := group_total[j-1] / group_count[j-1];
contrast := mean1 - mean2;
outline := outline + format('%7.3f q = ',[contrast]);
contrast := abs(contrast / divisor) ;
outline := outline + format('%6.3f ',[contrast]);
df1 := max_grp - min_grp + 1;
q_stat := STUDENT(contrast,error_df,df1);
outline := outline + format(' %6.4f',[q_stat]);
if alpha >= q_stat then sig := TRUE else sig := FALSE;
if sig = TRUE then outline := outline + ' YES '
else outline := outline + ' NO';
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
end;
{ ------------------------------------------------------------------------ }
procedure SCHEFFETEST(error_ms : double; { mean squared residual }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { count of cases in a group }
min_grp : integer; { code of first group }
max_grp : integer; { code of last group }
total_n : double); { total number of cases }
var
statistic, stat_var, stat_sd : double;
mean1, mean2, alpha, difference, prob_scheffe, f_prob, df1, df2 : double;
outline : string;
i, j : integer;
begin
alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' Scheffe contrasts among pairs of means.');
outline := format(' alpha selected = %4.2f',[alpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('Group vs Group Difference Scheffe Critical Significant?');
OutPutFrm.RichEdit.Lines.Add(' Statistic Value');
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------');
alpha := 1.0 - alpha ;
for i:= min_grp to max_grp - 1 do
for j := i + 1 to max_grp do
begin
outline := format('%2d %2d ',[i,j]);
mean1 := group_total[i-1] / group_count[i-1];
mean2 := group_total[j-1] / group_count[j-1];
difference := mean1 - mean2;
outline := outline + format('%8.2f ',[difference]);
stat_var := error_ms *
( 1.0 / group_count[i-1] + 1.0 / group_count[j-1]);
stat_sd := sqrt(stat_var);
statistic := abs(difference / stat_sd);
outline := outline + format('%8.2f ',[statistic]);
df1 := max_grp - min_grp;
df2 := total_n - df1 + 1;
f_prob := fpercentpoint(alpha,round(df1),round(df2) );
prob_scheffe := sqrt(df1 * f_prob);
outline := outline + format('%8.3f ',[prob_scheffe]);
if statistic > prob_scheffe then outline := outline + 'YES'
else outline := outline + 'NO';
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------');
end;
{ ----------------------------------------------------------------------- }
procedure Newman_Keuls(error_ms : double; { residual mean squared }
error_df : double; { deg. freedom for error }
value : double; { number in smallest group }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { count of cases in a group }
min_grp : integer; { lowest group code }
max_grp : integer); { largest group code }
var
i, j : integer;
temp1, temp2 : double;
groupno : IntDyneVec;
alpha : double;
contrast, mean1, mean2 : double;
q_stat : double;
divisor : double;
tempno : integer;
df1 : integer;
sig : boolean;
outline : string;
begin
SetLength(groupno,max_grp-min_grp+1);
for i := min_grp to max_grp do groupno[i-1] := i;
for i := min_grp to max_grp - 1 do
begin
for j := i + 1 to max_grp do
begin
if group_total[i-1] / group_count[i-1] >
group_total[j-1] / group_count[j-1] then
begin
temp1 := group_total[i-1];
temp2 := group_count[i-1];
tempno := groupno[i-1];
group_total[i-1] := group_total[j-1];
group_count[i-1] := group_count[j-1];
groupno[i-1] := groupno[j-1];
group_total[j-1] := temp1;
group_count[j-1] := temp2;
groupno[j-1] := tempno;
end;
end;
end;
alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' Neuman-Keuls Test for Contrasts on Ordered Means');
outline := format(' alpha selected = %4.2f',[alpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Group Mean');
for i := 1 to max_grp do
begin
outline := format('%3d %10.3f',[groupno[i-1],group_total[i-1] / group_count[i-1]]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Groups Difference Statistic d.f. Probability Significant?');
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------');
divisor := sqrt(error_ms / value);
for i := min_grp to max_grp - 1 do
begin
for j := i + 1 to max_grp do
begin
outline := format('%2d - %2d ',[groupno[i-1],groupno[j-1]]);
mean1 := group_total[i-1] / group_count[i-1];
mean2 := group_total[j-1] / group_count[j-1];
contrast := mean1 - mean2;
outline := outline + format('%7.3f q = ',[contrast]);
contrast := abs(contrast / divisor );
df1 := j - i + 1;
outline := outline + format('%6.3f %2d %3.0f ',[contrast,df1,error_df]);
q_stat := STUDENT(contrast,error_df,df1);
outline := outline + format(' %6.4f',[q_stat]);
if alpha > q_stat then sig := TRUE else sig := FALSE;
if sig = TRUE then outline := outline + ' YES'
else outline := outline + ' NO';
OutPutFrm.RichEdit.Lines.Add(outline);
end;
end;
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------');
groupno := nil;
end;
{ ----------------------------------------------------------------------- }
procedure TUKEY_KRAMER(error_ms : double; { residual mean squared }
error_df : double; { deg. freedom for error }
value : double; { number in smallest group }
group_total : DblDyneVec; { sum of scores in group }
group_count : DblDyneVec; { number of caes in group }
min_grp : integer; { code of lowest group }
max_grp : integer); { code of highst group }
var
sig : boolean;
divisor : double;
df1 : integer;
alpha : double;
contrast, mean1, mean2 : double;
q_stat : double;
outline : string;
i, j : integer;
begin
alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' Tukey-Kramer Test for Differences Between Means');
outline := format(' alpha selected = %4.2f',[alpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('Groups Difference Statistic Probability Significant?');
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
for i := min_grp to max_grp - 1 do
for j := i + 1 to max_grp do
begin
outline := format('%2d - %2d ',[i,j]);
mean1 := group_total[i-1] / group_count[i-1];
mean2 := group_total[j-1] / group_count[j-1];
contrast := mean1 - mean2;
outline := outline + format('%7.3f q = ',[contrast]);
divisor := sqrt(error_ms *
( ( 1.0/group_count[i-1] + 1.0/group_count[j-1] ) / 2 ) );
contrast := abs(contrast / divisor) ;
outline := outline + format('%6.3f ',[contrast]);
df1 := max_grp - min_grp + 1;
q_stat := STUDENT(contrast,error_df,df1);
outline := outline + format(' %6.4f',[q_stat]);
if alpha >= q_stat then sig := TRUE else sig := FALSE;
if sig = TRUE then outline := outline + ' YES '
else outline := outline + ' NO';
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
end;
{ ------------------------------------------------------------------------ }
procedure CONTRASTS(error_ms : double; { residual ms }
error_df : double; { residual df }
group_total : DblDyneVec; { group sums }
group_count : DblDyneVec; { group cases }
min_grp : integer; { lowest code }
max_grp : integer; { highest code }
overall_probf : double); { prob of overall test }
var
nocontrasts, i, j, k : integer;
df1, df2, probstat, statistic, alpha : double;
coefficients : array[1..20,1..20] of double;
nonorthog : boolean;
weight, sumcross : double;
response : string[5];
outline : string;
prompt : string;
begin
outline := format('Enter the number of contrasts (less than %2d or 0:',[max_grp-min_grp+1]);
response := InputBox('ORTHOGONAL CONTRASTS',outline,'0');
nocontrasts := StrToInt(response);
if nocontrasts > 0 then
begin
for i := 1 to nocontrasts do
begin
outline := format('Contrast number %2d',[i]);
for j := 1 to (max_grp - min_grp+1) do
begin
prompt := format('Group %2d coefficient = ',[j]);
response := InputBox(outline,prompt,'1');
coefficients[i,j] := StrToFloat(response);
end;
end;
{ Check for orthogonality }
nonorthog := FALSE;
for i := 1 to nocontrasts - 1 do
begin
for j := i + 1 to nocontrasts do
begin
sumcross := 0;
for k := 1 to (max_grp - min_grp + 1) do
begin
sumcross := sumcross +
coefficients[i,k]*coefficients[j,k];
end;
if sumcross <> 0 then nonorthog := TRUE;
if sumcross <> 0 then
begin
outline := format('contrasts %2d and %2d not orthogonal.',[i,j]);
ShowMessage('ERROR!' + outline);
end;
end;
end;
if NOT nonorthog then
begin
alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
if overall_probf > alpha then
begin
OutPutFrm.RichEdit.Lines.Add('No contrasts significant.');
exit;
end;
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' ORTHOGONAL CONTRASTS');
OutPutFrm.RichEdit.Lines.Add('Contrast Statistic Probability Critical Value Significant?');
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
for i := 1 to nocontrasts do
begin
statistic := 0.0;
weight := 0.0;
for j := 1 to (max_grp - min_grp + 1) do
begin
statistic := statistic + (coefficients[i,j] *
(group_total[j-1] / group_count[j-1]));
weight := weight + (sqr(coefficients[i,j]) /
group_count[j-1]);
end;
statistic := sqr(statistic);
statistic := statistic / (error_ms * weight);
outline := format('%3d %9.4f ',[i,statistic]);
df1 := 1;
df2 := error_df;
probstat := probf(statistic,round(df1),round(df2)) / 2;
outline := outline + format('%8.3f %5.2f ',[probstat,alpha]);
if probstat < alpha then outline := outline + 'YES'
else outline := outline + 'NO';
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Contrast Coefficients Used:');
for i := 1 to nocontrasts do
begin
outline := format('Contrast %2d ',[i]);
for j := 1 to (max_grp - min_grp + 1) do
outline := outline + format('%4.1f ',[coefficients[i,j]]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
end; { if orthogonal }
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
end; { if nocontrasts > 0 }
end; { of procedure CONTRASTS }
{ ----------------------------------------------------------------------- }
procedure Bonferroni( group_total : DblDyneVec; { sum of scores in group }
group_count : DblDyneVec; { number of cases in group }
group_var : DblDyneVec; { group variances }
min_grp : integer; { code of lowest group }
max_grp : integer); { code of highst group }
var
i, j : integer;
alpha : double;
contrast, mean1, mean2 : double;
divisor : double;
df2 : integer;
outline : string;
testalpha : double;
NoGrps : integer;
tprob : double;
sig : string[6];
SS1, SS2 : double;
begin
alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' Bonferroni Test for Differences Between Means');
outline := format(' Overall alpha selected = %4.2f',[alpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
NoGrps := max_grp - min_grp + 1;
testalpha := alpha / ( (NoGrps * (NoGrps-1)) / 2.0 );
outline := format('Comparisons made at alpha / no. comparisons = %5.3f',[testalpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Groups Difference Statistic Prob > Value Significant?');
for i := 1 to NoGrps - 1 do
begin
for j := i+1 to NoGrps do
begin
mean1 := group_total[i-1] / group_count[i-1];
mean2 := group_total[j-1] / group_count[j-1];
SS1 := group_var[i-1] * (group_count[i-1] - 1.0);
SS2 := group_var[j-1] * (group_count[j-1] - 1.0);
divisor := (SS1 + SS2) / (group_count[i-1] + group_count[j-1] - 2.0);
divisor := sqrt(divisor * ( 1.0 / group_count[i-1] + 1.0 / group_count[j-1]));
contrast := abs(mean1-mean2) / divisor;
df2 := round(group_count[i-1] + group_count[j-1] - 2.0);
tprob := probt(contrast,df2);
if testalpha >= tprob then sig := 'YES' else sig := 'NO';
outline := format('%3d - %3d %10.3f %10.3f %10.3f %s',
[min_grp+i-1,min_grp+j-1,mean1-mean2,contrast,tprob,sig]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
end;
end;
//-------------------------------------------------------------------
procedure TUKEYBTEST(ErrorMS : double; // within groups error
ErrorDF : double; // degrees of freedom within
group_total : DblDyneVec; // vector of group sums
group_count : DblDyneVec; // vector of group n's
min_grp : integer; // smallest group code
max_grp : integer; // largest group code
groupsize : double); // size of groups (all equal)
var
alpha : double;
outline : string;
i, j : integer;
df1 : double;
qstat : double;
tstat : double;
groupno : IntDyneVec;
temp1, temp2 : double;
tempno : integer;
NoGrps : integer;
contrast : double;
mean1, mean2 : double;
sig : string[6];
groups : double;
response : string[5];
divisor : double;
begin
SetLength(groupno,max_grp-min_grp+1);
alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' Tukey B Test for Contrasts on Ordered Means');
outline := format(' alpha selected = %4.2f',[alpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Groups Difference Statistic d.f. Prob.>value Significant?');
divisor := sqrt(ErrorMS / groupsize);
NoGrps := max_grp - min_grp + 1;
for i := min_grp to max_grp do groupno[i-1] := i;
for i := 1 to NoGrps - 1 do
begin
for j := i + 1 to NoGrps do
begin
if group_total[i-1] / group_count[i-1] >
group_total[j-1] / group_count[j-1] then
begin
temp1 := group_total[i-1];
temp2 := group_count[i-1];
tempno := groupno[i-1];
group_total[i-1] := group_total[j-1];
group_count[i-1] := group_count[j-1];
groupno[i-1] := groupno[j-1];
group_total[j-1] := temp1;
group_count[j-1] := temp2;
groupno[j-1] := tempno;
end;
end;
end;
for i := 1 to NoGrps-1 do
begin
for j := i+1 to NoGrps do
begin
mean1 := group_total[i-1] / group_count[i-1];
mean2 := group_total[j-1] / group_count[j-1];
contrast := abs((mean1 - mean2) / divisor);
df1 := j - i + 1.0;
qstat := STUDENT(contrast,ErrorDF,df1);
groups := NoGrps;
tstat := STUDENT(contrast,ErrorDF,groups);
qstat := (qstat + tstat) / 2.0;
if alpha >= qstat then sig := 'YES' else sig := 'NO';
outline := format('%3d - %3d %10.3f %10.3f %4.0f,%4.0f %5.3f %s',
[groupno[i-1],groupno[j-1],
mean1-mean2,contrast,df1,ErrorDF,qstat,sig]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
end;
groupno := nil;
end;
//-------------------------------------------------------------------
end.


File diff suppressed because it is too large Load Diff

View File

@ -1,448 +0,0 @@
object AutocorrFrm: TAutocorrFrm
Left = 176
Height = 432
Top = 90
Width = 503
Caption = 'Autocorrelation'
ClientHeight = 432
ClientWidth = 503
OnShow = FormShow
LCLVersion = '0.9.30'
object Label3: TLabel
Left = 6
Height = 16
Top = 72
Width = 102
Caption = 'Available Variables:'
ParentColor = False
end
object Label4: TLabel
Left = 193
Height = 16
Top = 88
Width = 90
Caption = 'Selected Variable'
ParentColor = False
end
object Label5: TLabel
Left = 152
Height = 16
Top = 168
Width = 68
Caption = 'Alpha Level: '
ParentColor = False
end
object Label6: TLabel
Left = 149
Height = 16
Top = 191
Width = 83
Caption = 'Maximum Lag: '
ParentColor = False
end
object GroupBox1: TGroupBox
Left = 7
Height = 41
Top = 16
Width = 283
Caption = 'The series is code in:'
ClientHeight = 23
ClientWidth = 279
TabOrder = 0
object ColBtn: TRadioButton
Left = 9
Height = 19
Top = 1
Width = 99
Caption = 'A Grid Column'
OnClick = ColBtnClick
TabOrder = 0
end
object RowBtn: TRadioButton
Left = 153
Height = 19
Top = 1
Width = 109
Caption = 'A row of the grid'
OnClick = RowBtnClick
TabOrder = 1
end
end
object GroupBox2: TGroupBox
Left = 296
Height = 121
Top = 24
Width = 195
Caption = 'Include Cases:'
ClientHeight = 103
ClientWidth = 191
TabOrder = 1
object Label1: TLabel
Left = 57
Height = 16
Top = 84
Width = 15
Caption = 'To'
ParentColor = False
end
object AllCasesBtn: TRadioButton
Left = 8
Height = 19
Top = 2
Width = 67
Caption = 'All Cases'
TabOrder = 0
end
object OnlyCasesBtn: TRadioButton
Left = 7
Height = 19
Top = 26
Width = 112
Caption = 'Only Cases From:'
TabOrder = 1
end
object FromCaseEdit: TEdit
Left = 88
Height = 23
Top = 48
Width = 57
TabOrder = 2
Text = 'FromCaseEdit'
end
object ToCaseEdit: TEdit
Left = 87
Height = 23
Top = 79
Width = 58
TabOrder = 3
Text = 'ToCaseEdit'
end
end
object GroupBox3: TGroupBox
Left = 296
Height = 44
Top = 161
Width = 195
Caption = 'Projection Option:'
ClientHeight = 26
ClientWidth = 191
TabOrder = 2
object Label2: TLabel
Left = 128
Height = 16
Top = 5
Width = 34
Caption = 'Points'
ParentColor = False
end
object ProjectChk: TCheckBox
Left = 8
Height = 19
Top = 2
Width = 57
Caption = 'Project'
TabOrder = 0
end
object ProjPtsEdit: TEdit
Left = 72
Height = 23
Top = 1
Width = 42
TabOrder = 1
end
end
object GroupBox4: TGroupBox
Left = 297
Height = 149
Top = 216
Width = 194
Caption = 'Data Smoothing:'
ClientHeight = 131
ClientWidth = 190
TabOrder = 3
object MeanChk: TCheckBox
Left = 9
Height = 19
Top = 2
Width = 105
Caption = 'Center on Mean'
TabOrder = 0
end
object DifferenceChk: TCheckBox
Left = 8
Height = 19
Top = 18
Width = 136
Caption = 'Difference Smoothing'
TabOrder = 1
end
object MoveAvgChk: TCheckBox
Left = 8
Height = 19
Top = 37
Width = 152
Caption = 'Moving Average Smooth'
TabOrder = 2
end
object ExpSmoothChk: TCheckBox
Left = 8
Height = 19
Top = 55
Width = 135
Caption = 'Exponentially Smooth'
TabOrder = 3
end
object FourierSmoothChk: TCheckBox
Left = 8
Height = 19
Top = 74
Width = 131
Caption = 'Fourier Filter Smooth'
TabOrder = 4
end
object PolyChk: TCheckBox
Left = 8
Height = 19
Top = 90
Width = 185
Caption = 'Polynomial Regression Smooth'
TabOrder = 5
end
object MRegSmoothChk: TCheckBox
Left = 9
Height = 19
Top = 108
Width = 169
Caption = 'Multiple Regression Smooth'
TabOrder = 6
end
end
object VarList: TListBox
Left = 6
Height = 274
Top = 88
Width = 138
ItemHeight = 0
TabOrder = 4
end
object InBtn: TBitBtn
Left = 153
Height = 27
Top = 95
Width = 31
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
}
NumGlyphs = 0
OnClick = InBtnClick
TabOrder = 5
end
object OutBtn: TBitBtn
Left = 153
Height = 27
Top = 125
Width = 31
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
}
NumGlyphs = 0
OnClick = OutBtnClick
TabOrder = 6
end
object DepVarEdit: TEdit
Left = 185
Height = 23
Top = 112
Width = 105
TabOrder = 7
Text = 'DepVarEdit'
end
object AlphaEdit: TEdit
Left = 223
Height = 23
Top = 161
Width = 41
TabOrder = 8
Text = 'AlphaEdit'
end
object MaxLagEdit: TEdit
Left = 221
Height = 23
Top = 184
Width = 43
TabOrder = 9
Text = 'MaxLagEdit'
end
object GroupBox5: TGroupBox
Left = 153
Height = 149
Top = 216
Width = 137
Caption = 'Analysis / Output Options'
ClientHeight = 131
ClientWidth = 133
TabOrder = 10
object PlotChk: TCheckBox
Left = 7
Height = 19
Top = 2
Width = 87
Caption = 'Correlogram'
TabOrder = 0
end
object StatsChk: TCheckBox
Left = 7
Height = 19
Top = 16
Width = 66
Caption = 'Statistics'
TabOrder = 1
end
object RMatChk: TCheckBox
Left = 7
Height = 19
Top = 32
Width = 132
Caption = 'Print correlation Mat.'
TabOrder = 2
end
object PartialsChk: TCheckBox
Left = 6
Height = 19
Top = 48
Width = 142
Caption = 'Partial autocorrelations'
TabOrder = 3
end
object YuleWalkerChk: TCheckBox
Left = 6
Height = 19
Top = 64
Width = 120
Caption = 'Yule-Walker Coef.s'
TabOrder = 4
end
object ResidChk: TCheckBox
Left = 5
Height = 19
Top = 80
Width = 88
Caption = 'Residual Plot'
TabOrder = 5
end
end
object ResetBtn: TButton
Left = 6
Height = 26
Top = 385
Width = 76
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 11
end
object CancelBtn: TButton
Left = 104
Height = 26
Top = 385
Width = 76
Caption = 'Cancel'
ModalResult = 2
TabOrder = 12
end
object ComputeBtn: TButton
Left = 320
Height = 26
Top = 385
Width = 76
Caption = 'Compute'
ModalResult = 1
OnClick = ComputeBtnClick
TabOrder = 13
end
object ReturnBtn: TButton
Left = 415
Height = 26
Top = 385
Width = 76
Caption = 'Return'
ModalResult = 1
OnClick = ReturnBtnClick
TabOrder = 14
end
object HelpBtn: TButton
Tag = 104
Left = 208
Height = 27
Top = 384
Width = 73
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 15
end
end

View File

@ -1,189 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TAutocorrFrm','FORMDATA',[
'TPF0'#12'TAutocorrFrm'#11'AutocorrFrm'#4'Left'#3#176#0#6'Height'#3#176#1#3'T'
+'op'#2'Z'#5'Width'#3#247#1#7'Caption'#6#15'Autocorrelation'#12'ClientHeight'
+#3#176#1#11'ClientWidth'#3#247#1#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#6
+'0.9.30'#0#6'TLabel'#6'Label3'#4'Left'#2#6#6'Height'#2#16#3'Top'#2'H'#5'Widt'
+'h'#2'f'#7'Caption'#6#20'Available Variables:'#11'ParentColor'#8#0#0#6'TLabe'
+'l'#6'Label4'#4'Left'#3#193#0#6'Height'#2#16#3'Top'#2'X'#5'Width'#2'Z'#7'Cap'
+'tion'#6#17'Selected Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'L'
+'eft'#3#152#0#6'Height'#2#16#3'Top'#3#168#0#5'Width'#2'D'#7'Caption'#6#13'Al'
+'pha Level: '#11'ParentColor'#8#0#0#6'TLabel'#6'Label6'#4'Left'#3#149#0#6'He'
+'ight'#2#16#3'Top'#3#191#0#5'Width'#2'S'#7'Caption'#6#13'Maximum Lag: '#11'P'
+'arentColor'#8#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#7#6'Height'#2')'#3'To'
+'p'#2#16#5'Width'#3#27#1#7'Caption'#6#22'The series is code in:'#12'ClientHe'
+'ight'#2#23#11'ClientWidth'#3#23#1#8'TabOrder'#2#0#0#12'TRadioButton'#6'ColB'
+'tn'#4'Left'#2#9#6'Height'#2#19#3'Top'#2#1#5'Width'#2'c'#7'Caption'#6#13'A G'
+'rid Column'#7'OnClick'#7#11'ColBtnClick'#8'TabOrder'#2#0#0#0#12'TRadioButto'
+'n'#6'RowBtn'#4'Left'#3#153#0#6'Height'#2#19#3'Top'#2#1#5'Width'#2'm'#7'Capt'
+'ion'#6#17'A row of the grid'#7'OnClick'#7#11'RowBtnClick'#8'TabOrder'#2#1#0
+#0#0#9'TGroupBox'#9'GroupBox2'#4'Left'#3'('#1#6'Height'#2'y'#3'Top'#2#24#5'W'
+'idth'#3#195#0#7'Caption'#6#14'Include Cases:'#12'ClientHeight'#2'g'#11'Clie'
+'ntWidth'#3#191#0#8'TabOrder'#2#1#0#6'TLabel'#6'Label1'#4'Left'#2'9'#6'Heigh'
+'t'#2#16#3'Top'#2'T'#5'Width'#2#15#7'Caption'#6#2'To'#11'ParentColor'#8#0#0
+#12'TRadioButton'#11'AllCasesBtn'#4'Left'#2#8#6'Height'#2#19#3'Top'#2#2#5'Wi'
+'dth'#2'C'#7'Caption'#6#9'All Cases'#8'TabOrder'#2#0#0#0#12'TRadioButton'#12
+'OnlyCasesBtn'#4'Left'#2#7#6'Height'#2#19#3'Top'#2#26#5'Width'#2'p'#7'Captio'
+'n'#6#16'Only Cases From:'#8'TabOrder'#2#1#0#0#5'TEdit'#12'FromCaseEdit'#4'L'
+'eft'#2'X'#6'Height'#2#23#3'Top'#2'0'#5'Width'#2'9'#8'TabOrder'#2#2#4'Text'#6
+#12'FromCaseEdit'#0#0#5'TEdit'#10'ToCaseEdit'#4'Left'#2'W'#6'Height'#2#23#3
+'Top'#2'O'#5'Width'#2':'#8'TabOrder'#2#3#4'Text'#6#10'ToCaseEdit'#0#0#0#9'TG'
+'roupBox'#9'GroupBox3'#4'Left'#3'('#1#6'Height'#2','#3'Top'#3#161#0#5'Width'
+#3#195#0#7'Caption'#6#18'Projection Option:'#12'ClientHeight'#2#26#11'Client'
+'Width'#3#191#0#8'TabOrder'#2#2#0#6'TLabel'#6'Label2'#4'Left'#3#128#0#6'Heig'
+'ht'#2#16#3'Top'#2#5#5'Width'#2'"'#7'Caption'#6#6'Points'#11'ParentColor'#8#0
+#0#9'TCheckBox'#10'ProjectChk'#4'Left'#2#8#6'Height'#2#19#3'Top'#2#2#5'Width'
+#2'9'#7'Caption'#6#7'Project'#8'TabOrder'#2#0#0#0#5'TEdit'#11'ProjPtsEdit'#4
+'Left'#2'H'#6'Height'#2#23#3'Top'#2#1#5'Width'#2'*'#8'TabOrder'#2#1#0#0#0#9
+'TGroupBox'#9'GroupBox4'#4'Left'#3')'#1#6'Height'#3#149#0#3'Top'#3#216#0#5'W'
+'idth'#3#194#0#7'Caption'#6#15'Data Smoothing:'#12'ClientHeight'#3#131#0#11
+'ClientWidth'#3#190#0#8'TabOrder'#2#3#0#9'TCheckBox'#7'MeanChk'#4'Left'#2#9#6
+'Height'#2#19#3'Top'#2#2#5'Width'#2'i'#7'Caption'#6#14'Center on Mean'#8'Tab'
+'Order'#2#0#0#0#9'TCheckBox'#13'DifferenceChk'#4'Left'#2#8#6'Height'#2#19#3
+'Top'#2#18#5'Width'#3#136#0#7'Caption'#6#20'Difference Smoothing'#8'TabOrder'
+#2#1#0#0#9'TCheckBox'#10'MoveAvgChk'#4'Left'#2#8#6'Height'#2#19#3'Top'#2'%'#5
+'Width'#3#152#0#7'Caption'#6#21'Moving Average Smooth'#8'TabOrder'#2#2#0#0#9
+'TCheckBox'#12'ExpSmoothChk'#4'Left'#2#8#6'Height'#2#19#3'Top'#2'7'#5'Width'
+#3#135#0#7'Caption'#6#20'Exponentially Smooth'#8'TabOrder'#2#3#0#0#9'TCheckB'
+'ox'#16'FourierSmoothChk'#4'Left'#2#8#6'Height'#2#19#3'Top'#2'J'#5'Width'#3
+#131#0#7'Caption'#6#21'Fourier Filter Smooth'#8'TabOrder'#2#4#0#0#9'TCheckBo'
+'x'#7'PolyChk'#4'Left'#2#8#6'Height'#2#19#3'Top'#2'Z'#5'Width'#3#185#0#7'Cap'
+'tion'#6#28'Polynomial Regression Smooth'#8'TabOrder'#2#5#0#0#9'TCheckBox'#13
+'MRegSmoothChk'#4'Left'#2#9#6'Height'#2#19#3'Top'#2'l'#5'Width'#3#169#0#7'Ca'
+'ption'#6#26'Multiple Regression Smooth'#8'TabOrder'#2#6#0#0#0#8'TListBox'#7
+'VarList'#4'Left'#2#6#6'Height'#3#18#1#3'Top'#2'X'#5'Width'#3#138#0#10'ItemH'
+'eight'#2#0#8'TabOrder'#2#4#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#153#0#6'Height'
+#2#27#3'Top'#2'_'#5'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0
+#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0
+#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161
+'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255
+'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255
+#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255#148#208#157
+#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195
+#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0
+#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158#214#167#255
+#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144
+#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201
+#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190
+'m'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255
+'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#9'NumGlyphs'#2#0#7'OnClick'#7#10'InBtnClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'
+#6'OutBtn'#4'Left'#3#153#0#6'Height'#2#27#3'Top'#2'}'#5'Width'#2#31#10'Glyph'
+'.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16
+#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255
+'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'
+#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134#255#156
,#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255
+#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255
+'r'#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201#127#204#138
+#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207
+#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'
+#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'
+#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'
+#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'OutBtnClick'#8
+'TabOrder'#2#6#0#0#5'TEdit'#10'DepVarEdit'#4'Left'#3#185#0#6'Height'#2#23#3
+'Top'#2'p'#5'Width'#2'i'#8'TabOrder'#2#7#4'Text'#6#10'DepVarEdit'#0#0#5'TEdi'
+'t'#9'AlphaEdit'#4'Left'#3#223#0#6'Height'#2#23#3'Top'#3#161#0#5'Width'#2')'
+#8'TabOrder'#2#8#4'Text'#6#9'AlphaEdit'#0#0#5'TEdit'#10'MaxLagEdit'#4'Left'#3
+#221#0#6'Height'#2#23#3'Top'#3#184#0#5'Width'#2'+'#8'TabOrder'#2#9#4'Text'#6
+#10'MaxLagEdit'#0#0#9'TGroupBox'#9'GroupBox5'#4'Left'#3#153#0#6'Height'#3#149
+#0#3'Top'#3#216#0#5'Width'#3#137#0#7'Caption'#6#25'Analysis / Output Options'
+#12'ClientHeight'#3#131#0#11'ClientWidth'#3#133#0#8'TabOrder'#2#10#0#9'TChec'
+'kBox'#7'PlotChk'#4'Left'#2#7#6'Height'#2#19#3'Top'#2#2#5'Width'#2'W'#7'Capt'
+'ion'#6#11'Correlogram'#8'TabOrder'#2#0#0#0#9'TCheckBox'#8'StatsChk'#4'Left'
+#2#7#6'Height'#2#19#3'Top'#2#16#5'Width'#2'B'#7'Caption'#6#10'Statistics'#8
+'TabOrder'#2#1#0#0#9'TCheckBox'#7'RMatChk'#4'Left'#2#7#6'Height'#2#19#3'Top'
+#2' '#5'Width'#3#132#0#7'Caption'#6#22'Print correlation Mat.'#8'TabOrder'#2
+#2#0#0#9'TCheckBox'#11'PartialsChk'#4'Left'#2#6#6'Height'#2#19#3'Top'#2'0'#5
+'Width'#3#142#0#7'Caption'#6#24'Partial autocorrelations'#8'TabOrder'#2#3#0#0
+#9'TCheckBox'#13'YuleWalkerChk'#4'Left'#2#6#6'Height'#2#19#3'Top'#2'@'#5'Wid'
+'th'#2'x'#7'Caption'#6#18'Yule-Walker Coef.s'#8'TabOrder'#2#4#0#0#9'TCheckBo'
+'x'#8'ResidChk'#4'Left'#2#5#6'Height'#2#19#3'Top'#2'P'#5'Width'#2'X'#7'Capti'
+'on'#6#13'Residual Plot'#8'TabOrder'#2#5#0#0#0#7'TButton'#8'ResetBtn'#4'Left'
+#2#6#6'Height'#2#26#3'Top'#3#129#1#5'Width'#2'L'#7'Caption'#6#5'Reset'#7'OnC'
+'lick'#7#13'ResetBtnClick'#8'TabOrder'#2#11#0#0#7'TButton'#9'CancelBtn'#4'Le'
+'ft'#2'h'#6'Height'#2#26#3'Top'#3#129#1#5'Width'#2'L'#7'Caption'#6#6'Cancel'
+#11'ModalResult'#2#2#8'TabOrder'#2#12#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3
+'@'#1#6'Height'#2#26#3'Top'#3#129#1#5'Width'#2'L'#7'Caption'#6#7'Compute'#11
+'ModalResult'#2#1#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#13#0#0#7'TB'
+'utton'#9'ReturnBtn'#4'Left'#3#159#1#6'Height'#2#26#3'Top'#3#129#1#5'Width'#2
+'L'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#7'OnClick'#7#14'ReturnBtnClic'
+'k'#8'TabOrder'#2#14#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2'h'#4'Left'#3#208#0#6
+'Height'#2#27#3'Top'#3#128#1#5'Width'#2'I'#7'Caption'#6#4'Help'#7'OnClick'#7
+#12'HelpBtnClick'#8'TabOrder'#2#15#0#0#0
]);

View File

@ -1,214 +0,0 @@
unit AutoPlotUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls, StdCtrls, Printers, Globals;
type
{ TAutoPlotFrm }
TAutoPlotFrm = class(TForm)
Image1: TImage;
PrintBtn: TButton;
ReturnBtn: TButton;
Panel1: TPanel;
procedure FormShow(Sender: TObject);
procedure PrintBtnClick(Sender: TObject);
procedure AutoPlot(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
correlations, partcors : DblDyneVec;
uplimit, lowlimit : double;
npoints : integer;
DepVarEdit : string;
PlotPartCors : boolean; // true to plot partial correlations
PlotLimits : boolean; // true to show upper and lower limits
end;
var
AutoPlotFrm: TAutoPlotFrm;
implementation
{ TAutoPlotFrm }
procedure TAutoPlotFrm.FormShow(Sender: TObject);
begin
AutoPlotFrm.Image1.Canvas.Clear;
AutoPlot(self);
end;
procedure TAutoPlotFrm.PrintBtnClick(Sender: TObject);
var r : Trect;
begin
with Printer do
begin
Printer.Orientation := poPortrait;
r := Rect(20,20,printer.pagewidth-20,printer.pageheight div 2 + 20);
BeginDoc;
Canvas.StretchDraw(r,Image1.Picture.BitMap);
EndDoc;
end;
end;
procedure TAutoPlotFrm.AutoPlot(Sender: TObject);
var
topmarg, botmarg, leftmarg, rightmarg, verthi, horizlong : integer;
i, X, Y, middle, yincrement, xincrement, labelheight : integer;
labelstring : string;
labelstr : string;
corstep, yprop, scaley : double;
begin
height := AutoPlotFrm.Image1.Canvas.Height;
width := AutoPlotFrm.Image1.Canvas.Width;
middle := height div 2;
topmarg := height div 10;
verthi := height - (2 * topmarg);
botmarg := topmarg + verthi;
leftmarg := width div 10;
horizlong := width - 2 * leftmarg;
rightmarg := leftmarg + horizlong;
yincrement := verthi div 20;
xincrement := horizlong div npoints;
// AutoPlotFrm.Show;
AutoPlotFrm.Image1.Canvas.Pen.Color := clBlack;
// print title at top, centered
labelstring := 'Autocorrelations analysis for :';
labelstring := labelstring + DepVarEdit;
X := (leftmarg + horizlong div 2) - (AutoPlotFrm.Image1.Canvas.TextWidth(labelstring) div 2);
Y := 1;
AutoPlotFrm.Image1.Canvas.TextOut(X,Y,labelstring);
// draw middle (zero correlation) axis
Y := middle;
AutoPlotFrm.Image1.Canvas.MoveTo(leftmarg,Y);
X := rightmarg;
AutoPlotFrm.Image1.Canvas.LineTo(X,Y);
// draw right axis
X := leftmarg;
Y := botmarg;
AutoPlotFrm.Image1.Canvas.MoveTo(X,Y);
Y := topmarg;
AutoPlotFrm.Image1.Canvas.LineTo(X,Y);
// correlation scale to left of vertical axis
corstep := 1.0;
for i := 0 to 20 do
begin
Y := topmarg + (i * yincrement);
labelstr := format('%4.2f -',[corstep]);
labelstring := labelstr;
X := leftmarg - AutoPlotFrm.Image1.Canvas.TextWidth(labelstring);
AutoPlotFrm.Image1.Canvas.TextOut(X,Y,labelstring);
corstep := corstep - 0.1;
end;
// Make legend axis on bottom
X := leftmarg;
Y := botmarg;
AutoPlotFrm.Image1.Canvas.MoveTo(X,Y);
X := rightmarg;
AutoPlotFrm.Image1.Canvas.LineTo(X,Y);
for i := 0 to npoints do
begin
X := leftmarg + (xincrement * i);
labelstring := '|';
AutoPlotFrm.Image1.Canvas.TextOut(X,Y,labelstring);
labelstring := IntToStr(i);
Y := Y + 5;
if (i mod 2) = 1 then AutoPlotFrm.Image1.Canvas.TextOut(X,Y,labelstring);
Y := botmarg;
end;
labelstring := 'LAG VALUE';
X := (leftmarg + horizlong div 2) - (AutoPlotFrm.Image1.Canvas.TextWidth(labelstring) div 2);
Y := botmarg + AutoPlotFrm.Image1.Canvas.TextHeight(labelstring);
AutoPlotFrm.Image1.Canvas.TextOut(X,Y,labelstring);
// Plot lines from correlation to correlation
AutoPlotFrm.Image1.Canvas.Pen.Color := clRed;
for i := 0 to npoints - 1 do
begin
yprop := (1.0 - correlations[i]) / 2.0;
scaley := yprop * verthi;
X := leftmarg + round(xincrement * i);
Y := topmarg + round(scaley);
if (i = 0)then AutoPlotFrm.Image1.Canvas.MoveTo(X,Y)
else AutoPlotFrm.Canvas.LineTo(X,Y);
AutoPlotFrm.Image1.Canvas.Ellipse(X-3,Y-3,X+3,Y+3);
end;
// Plot partial correlations
if PlotPartCors then
begin
AutoPlotFrm.Image1.Canvas.Pen.Color := clBlue;
for i := 0 to npoints - 1 do
begin
yprop := (1.0 - partcors[i]) / 2.0;
scaley := yprop * verthi;
X := leftmarg + round(xincrement * i);
Y := topmarg + round(scaley);
if (i = 0) then AutoPlotFrm.Image1.Canvas.MoveTo(X,Y)
else AutoPlotFrm.Image1.Canvas.LineTo(X,Y);
AutoPlotFrm.Image1.Canvas.Ellipse(X-3,Y-3,X+3,Y+3);
end;
end;
// Plot lines for upper and lower 95% confidence levels
if PlotLimits then
begin
AutoPlotFrm.Image1.Canvas.Pen.Color := clGreen;
yprop := (1.0 - uplimit) / 2.0;
scaley := yprop * verthi;
Y := topmarg + round(scaley);
AutoPlotFrm.Image1.Canvas.MoveTo(leftmarg,Y);
X := rightmarg;
AutoPlotFrm.Image1.Canvas.LineTo(X,Y);
yprop := (1.0 - lowlimit) / 2.0;
scaley := yprop * verthi;
Y := topmarg + round(scaley);
AutoPlotFrm.Image1.Canvas.MoveTo(leftmarg,Y);
X := rightmarg;
AutoPlotFrm.Image1.Canvas.LineTo(X,Y);
end;
// Show legend at right
X := rightmarg;
labelstring := 'Correlations';
labelheight := AutoPlotFrm.Image1.Canvas.TextHeight(labelstring);
Y := 5 * labelheight;
AutoPlotFrm.Image1.Canvas.Font.Color := clRed;
AutoPlotFrm.Image1.Canvas.TextOut(X,Y,labelstring);
if PlotPartCors then
begin
labelstring := 'Partials';
Y := 6 * labelheight;
AutoPlotFrm.Image1.Canvas.Font.Color := clBlue;
AutoPlotFrm.Image1.Canvas.TextOut(X,Y,labelstring);
end;
if PlotLimits then
begin
Y := 7 * labelheight;
labelstring := '95% C.I.';
AutoPlotFrm.Image1.Canvas.Font.Color := clGreen;
AutoPlotFrm.Image1.Canvas.TextOut(X,Y,labelstring);
end;
end;
initialization
{$I autoplotunit.lrs}
end.

View File

@ -1,46 +0,0 @@
object AutoPlotFrm: TAutoPlotFrm
Left = 82
Height = 517
Top = 99
Width = 743
Caption = 'Autocorrelation and partial autocorrelation'
ClientHeight = 517
ClientWidth = 743
OnShow = FormShow
LCLVersion = '0.9.30'
object Image1: TImage
Left = 0
Height = 468
Top = 0
Width = 743
Align = alClient
end
object Panel1: TPanel
Left = 0
Height = 49
Top = 468
Width = 743
Align = alBottom
ClientHeight = 49
ClientWidth = 743
TabOrder = 0
object PrintBtn: TButton
Left = 408
Height = 27
Top = 9
Width = 83
Caption = 'Print'
OnClick = PrintBtnClick
TabOrder = 0
end
object ReturnBtn: TButton
Left = 522
Height = 27
Top = 9
Width = 79
Caption = 'Return'
ModalResult = 1
TabOrder = 1
end
end
end

View File

@ -1,15 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TAutoPlotFrm','FORMDATA',[
'TPF0'#12'TAutoPlotFrm'#11'AutoPlotFrm'#4'Left'#2'R'#6'Height'#3#5#2#3'Top'#2
+'c'#5'Width'#3#231#2#7'Caption'#6'+Autocorrelation and partial autocorrelati'
+'on'#12'ClientHeight'#3#5#2#11'ClientWidth'#3#231#2#6'OnShow'#7#8'FormShow'
+#10'LCLVersion'#6#6'0.9.30'#0#6'TImage'#6'Image1'#4'Left'#2#0#6'Height'#3#212
+#1#3'Top'#2#0#5'Width'#3#231#2#5'Align'#7#8'alClient'#0#0#6'TPanel'#6'Panel1'
+#4'Left'#2#0#6'Height'#2'1'#3'Top'#3#212#1#5'Width'#3#231#2#5'Align'#7#8'alB'
+'ottom'#12'ClientHeight'#2'1'#11'ClientWidth'#3#231#2#8'TabOrder'#2#0#0#7'TB'
+'utton'#8'PrintBtn'#4'Left'#3#152#1#6'Height'#2#27#3'Top'#2#9#5'Width'#2'S'#7
+'Caption'#6#5'Print'#7'OnClick'#7#13'PrintBtnClick'#8'TabOrder'#2#0#0#0#7'TB'
+'utton'#9'ReturnBtn'#4'Left'#3#10#2#6'Height'#2#27#3'Top'#2#9#5'Width'#2'O'#7
+'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#1#0#0#0#0
]);

View File

@ -1,902 +0,0 @@
unit AxSAnovaUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, MainUnit, OutPutUnit, FunctionsLib, GraphLib, Globals,
DataProcs, contexthelpunit;
type
{ TAxSAnovaFrm }
TAxSAnovaFrm = class(TForm)
PosthocChk: TCheckBox;
DepInBtn: TBitBtn;
DepOutBtn: TBitBtn;
HelpBtn: TButton;
RepInBtn: TBitBtn;
RepOutBtn: TBitBtn;
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
PlotChk: TCheckBox;
GrpVar: TEdit;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
RepList: TListBox;
VarList: TListBox;
procedure ComputeBtnClick(Sender: TObject);
procedure DepInBtnClick(Sender: TObject);
procedure DepOutBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure HelpBtnClick(Sender: TObject);
procedure RepInBtnClick(Sender: TObject);
procedure RepOutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
procedure PostHocTests(NoSelected : integer; MSerr : double; dferr : integer;
count : integer; ColMeans : DblDyneVec; Sender: TObject);
procedure TUKEY(error_ms : double; { mean squared for residual }
error_df : double; { deg. freedom for residual }
value : double; { size of smallest group }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { no. of cases in a group }
min_grp : integer; { minimum group code }
max_grp : integer); { maximum group code }
procedure SCHEFFETEST(error_ms : double; { mean squared residual }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { count of cases in a group }
min_grp : integer; { code of first group }
max_grp : integer; { code of last group }
total_n : double); { total number of cases }
procedure Newman_Keuls(error_ms : double; { residual mean squared }
error_df : double; { deg. freedom for error }
value : double; { number in smallest group }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { count of cases in a group }
min_grp : integer; { lowest group code }
max_grp : integer); { largest group code }
procedure TUKEY_KRAMER(error_ms : double; { residual mean squared }
error_df : double; { deg. freedom for error }
value : double; { number in smallest group }
group_total : DblDyneVec; { sum of scores in group }
group_count : DblDyneVec; { number of caes in group }
min_grp : integer; { code of lowest group }
max_grp : integer); { code of highst group }
procedure TUKEYBTEST(ErrorMS : double; // within groups error
ErrorDF : double; // degrees of freedom within
group_total : DblDyneVec; // vector of group sums
group_count : DblDyneVec; // vector of group n's
min_grp : integer; // smallest group code
max_grp : integer; // largest group code
groupsize : double); // size of groups (all equal)
private
{ private declarations }
public
{ public declarations }
end;
var
AxSAnovaFrm: TAxSAnovaFrm;
implementation
{ TAxSAnovaFrm }
procedure TAxSAnovaFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
VarList.Items.Clear;
RepList.Items.Clear;
GrpVar.Text := '';
DepInBtn.Visible := true;
DepOutBtn.Visible := false;
RepInBtn.Visible := true;
RepOutBtn.Visible := false;
for i := 1 to NoVariables do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
PlotChk.Checked := false;
end;
procedure TAxSAnovaFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TAxSAnovaFrm.HelpBtnClick(Sender: TObject);
begin
ContextHelpForm.HelpMessage((Sender as TButton).tag);
end;
procedure TAxSAnovaFrm.RepInBtnClick(Sender: TObject);
VAR i, index : integer;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
RepList.Items.Add(VarList.Items.Strings[i]);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
RepOutBtn.Visible := true;
end;
procedure TAxSAnovaFrm.RepOutBtnClick(Sender: TObject);
VAR index : integer;
begin
index := RepList.ItemIndex;
if index < 0 then
begin
RepOutBtn.Visible := false;
exit;
end;
VarList.Items.Add(RepList.Items.Strings[index]);
RepList.Items.Delete(index);
end;
procedure TAxSAnovaFrm.DepInBtnClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
GrpVar.Text := VarList.Items.Strings[index];
DepInBtn.Visible := false;
DepOutBtn.Visible := true;
end;
procedure TAxSAnovaFrm.ComputeBtnClick(Sender: TObject);
var
a1, a2, agrp, i, j, k, v1, totaln, NoSelected, range : integer;
group, col : integer;
p, X, f1, f2, f3, probf1, probf2, probf3, fd1, fd2, TotMean : double;
TotStdDev, den, maxmean, alpha : double;
C, StdDev : DblDyneMat;
squaredsumx, sumxsquared, coltot, sumsum : DblDyneVec;
degfree : array[1..8] of integer;
ColNoSelected : IntDyneVec;
ss :array[1..8] of double;
ms : array[1..8] of double;
coeff : array[1..6] of double;
N : IntDyneVec;
value, outline : string;
// parray : array[1..10] of pvector;
begin
SetLength(ColNoSelected,NoVariables+1);
if GrpVar.Text = '' then
Begin
ShowMessage('ERROR! Select a variable for between groups treatment groups');
exit;
end;
NoSelected := 1;
// Get between subjects group variable
for j := 1 to NoVariables do
if GrpVar.Text = OS3MainFrm.DataGrid.Cells[j,0] then ColNoSelected[0] := j;
v1 := ColNoSelected[0]; //A treatment (group) variable
//get minimum and maximum group codes for Treatment A
a1 := 1000; //atoi(MainForm.Grid.Cells[v1][1].c_str());
a2 := 0; //a1;
for i := 1 to NoCases do
Begin
if not GoodRecord(i,NoSelected,ColNoSelected) then continue;
group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[v1,i])));
if group < a1 then a1 := group;
if group > a2 then a2 := group;
end;
range := a2 - a1 + 1;
NoSelected := RepList.Items.Count + 1;
k := NoSelected - 1; //Number of B (within subject) treatment levels
// allocate heap
SetLength(C,range+1,NoSelected+1);
SetLength(N,range+1);
SetLength(squaredsumx,range+1);
SetLength(coltot,NoSelected+1);
SetLength(sumxsquared,range+1);
SetLength(sumsum,range+1);
SetLength(StdDev,range+1,NoSelected+1);
// initialize arrays
for i := 0 to range-1 do
Begin
N[i] := 0;
squaredsumx[i] := 0.0;
sumxsquared[i] := 0.0;
sumsum[i] := 0.0;
for j := 0 to k-1 do C[i,j] := 0.0;
end;
for j := 0 to k-1 do coltot[j] := 0.0;
for i := 0 to range do
for j := 0 to k do
StdDev[i,j] := 0.0;
for i := 1 to 6 do coeff[i] := 0.0;
for i := 1 to 8 do degfree[i] := 0;
TotStdDev := 0.0;
TotMean := 0.0;
totaln := 0;
// Get items selected for repeated measures (B treatments)
for i := 0 to RepList.Items.Count - 1 do
Begin
for j := 1 to NoVariables do
Begin
if RepList.Items.Strings[i] = OS3MainFrm.DataGrid.Cells[j,0] then
ColNoSelected[i+1] := j;
end;
end;
//Read data values and get sums and sums of squared values
for i := 1 to NoCases do
Begin
if not GoodRecord(i,NoSelected,ColNoSelected) then continue;
agrp := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[v1,i])));
agrp := agrp - a1 + 1; // offset to one
p := 0.0;
//Now read the B treatment scores
for j := 1 to k do
Begin
col := ColNoSelected[j];
if not GoodRecord(i,NoSelected,ColNoSelected) then continue;
X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,i]));
C[agrp-1,j-1] := C[agrp-1,j-1] + X;
StdDev[agrp-1,j-1] := StdDev[agrp-1,j-1] + (X * X);
coeff[1]:= coeff[1] + X;
p := p + X;
sumxsquared[agrp-1] := sumxsquared[agrp-1] + (X * X);
TotMean := TotMean + X;
TotStdDev := TotStdDev + (X * X);
end;
N[agrp-1] := N[agrp-1] + 1;
squaredsumx[agrp-1] := squaredsumx[agrp-1] + (p * p);
sumsum[agrp-1] := sumsum[agrp-1] + p;
end; // next case
// Obtain sums of squares for std. dev.s of B treatments
for i := 1 to k do // column (B treatments)
for j := 1 to range do // group of A treatments
StdDev[range,i-1] := StdDev[range,i-1] + StdDev[j-1,i-1];
// Obtain sums of squares for std. dev.s of A treatments
for i := 1 to range do
for j := 1 to k do
StdDev[i-1,k] := StdDev[i-1,k] + StdDev[i-1,j-1];
// Obtain cell standard deviations
for i := 1 to range do // rows
Begin
for j := 1 to k do // columns
Begin
StdDev[i-1,j-1] := StdDev[i-1,j-1] - ((C[i-1,j-1] * C[i-1,j-1]) / (N[i-1]));
StdDev[i-1,j-1] := StdDev[i-1,j-1] / (N[i-1]-1);
StdDev[i-1,j-1] := sqrt(StdDev[i-1,j-1]);
end;
end;
// Obtain A treatment group standard deviations
for i := 1 to range do
Begin
StdDev[i-1,k] := StdDev[i-1,k] - ((sumsum[i-1] * sumsum[i-1]) / (k * N[i-1]));
StdDev[i-1,k] := StdDev[i-1,k] / (k * N[i-1] - 1);
StdDev[i-1,k] := sqrt(StdDev[i-1,k]);
end;
// Obtain coefficients for the sums of squares
for i := 1 to range do
Begin
coeff[2] := coeff[2] + sumxsquared[i-1];
coeff[3] := coeff[3] + ((sumsum[i-1] * (sumsum[i-1]) / ((N[i-1] * k))));
coeff[6] := coeff[6] + squaredsumx[i-1];
totaln := totaln + N[i-1];
end;
coeff[1] := (coeff[1] * coeff[1]) / (totaln * k);
den := k;
coeff[6] := coeff[6] / den;
for j := 1 to k do
Begin
coltot[j-1] := 0.0;
for i := 1 to range do
Begin
coltot[j-1] := coltot[j-1] + C[i-1,j-1];
coeff[5] := coeff[5] + ((C[i-1,j-1] * C[i-1,j-1]) / N[i-1]);
end;
coeff[4] := coeff[4] + (coltot[j-1] * coltot[j-1]);
end;
den := totaln;
coeff[4] := coeff[4] / den;
// Obtain B treatment group standard deviations
for j := 1 to k do
Begin
StdDev[range,j-1] := StdDev[range,j-1] - ((coltot[j-1] * coltot[j-1]) / totaln);
StdDev[range,j-1] := StdDev[range,j-1] / (totaln-1);
StdDev[range,j-1] := sqrt(StdDev[range,j-1]);
end;
// Calculate degrees of freedom for the mean squares
degfree[1] := totaln - 1; // Between subjects degrees freedom
degfree[2] := a2 - a1; // between groups degrees of freedom
degfree[3] := totaln - (a2 - a1 + 1);// subjects within groups deg. frd.
degfree[4] := totaln * (k - 1); // within subjects degrees of freedom
degfree[5] := k - 1; // B treatments degrees of freedom
degfree[6] := degfree[2] * degfree[5]; // A x B interaction degrees of frd.
degfree[7] := degfree[3] * degfree[5]; // B x Subjects within groups d.f.
degfree[8] := k * totaln - 1; // total degrees of freedom
// Calculate the sums of squares
ss[1] := coeff[6] - coeff[1];
ss[2] := coeff[3] - coeff[1];
ss[3] := coeff[6] - coeff[3];
ss[4] := coeff[2] - coeff[6];
ss[5] := coeff[4] - coeff[1];
ss[6] := coeff[5] - coeff[3] - coeff[4] + coeff[1];
ss[7] := coeff[2] - coeff[5] - coeff[6] + coeff[3];
ss[8] := coeff[2] - coeff[1];
// Calculate the mean squares
for i := 1 to 8 do
Begin
den := degfree[i];
ms[i] := ss[i] / den;
end;
// Calculate the f-tests for effects A, B and interaction
if (ms[3] > 0.0) then f1 := ms[2] / ms[3] else f1 := 1000.0;
if (ms[7] > 0.0) then
Begin
f2 := ms[5] / ms[7];
f3 := ms[6] / ms[7];
end
else
Begin
f2 := 1000.0;
f3 := 1000.0;
end;
//Now, report results
OutPutFrm.RichEdit.Clear;
OutPutFrm.RichEdit.Lines.Add('ANOVA With One Between Subjects and One Within Subjects Treatments');
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('------------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add('Source df SS MS F Prob.');
OutPutFrm.RichEdit.Lines.Add('------------------------------------------------------------------');
fd1 := degfree[2];
fd2 := degfree[3];
probf1 := probf(f1, fd1, fd2);
fd1 := degfree[5];
fd2 := degfree[7];
probf2 := probf(f2, fd1, fd2);
fd1 := degfree[6];
fd2 := degfree[7];
probf3 := probf(f3, fd1, fd2);
outline := format('Between %5d %10.3f',[degfree[1],ss[1]]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' Groups (A) %5d %10.3f %10.3f %10.3f %6.4f',
[degfree[2], ss[2], ms[2], f1, probf1]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' Subjects w.g.%5d %10.3f %10.3f',
[degfree[3],ss[3],ms[3]]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
outline := format('Within Subjects %5d %10.3f',[degfree[4], ss[4]]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' B Treatments %5d %10.3f %10.3f %10.3f %6.4f',
[degfree[5], ss[5], ms[5], f2, probf2]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' A X B inter. %5d %10.3f %10.3f %10.3f %6.4f',
[degfree[6], ss[6], ms[6], f3, probf3]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' B X S w.g. %5d %10.3f %10.3f',
[degfree[7], ss[7], ms[7]]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
outline := format('TOTAL %5d %10.3f',[degfree[8], ss[8]]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('------------------------------------------------------------------');
//Calculate and print means
OutPutFrm.RichEdit.Lines.Add('Means');
outline := 'TRT. ';
for i := 1 to k do
Begin
value := format('B%3d ',[i]);
outline := outline + value;
end;
outline := outline + 'TOTAL';
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add(' A ');
for i := 1 to range do
Begin
for j := 1 to k do
C[i-1,j-1] := C[i-1,j-1] / N[i-1]; //mean of each B treatment within A treatment
sumsum[i-1] := sumsum[i-1] / (N[i-1] * k); //means in A treatment accross B treatments
end;
for j := 1 to k do coltot[j-1] := coltot[j-1] / totaln;
TotStdDev := TotStdDev - ((TotMean * TotMean) / (k * totaln));
TotStdDev := TotStdDev / (k * totaln - 1);
TotStdDev := sqrt(TotStdDev);
TotMean := TotMean / (k * totaln);
for i := 1 to range do
Begin
outline := format('%3d ',[i+a1-1]);
for j := 1 to k do
Begin
value := format('%7.3f',[C[i-1,j-1]]);
outline := outline + value;
end;
value := format('%7.3f',[sumsum[i-1]]);
outline := outline + value;
OutPutFrm.RichEdit.Lines.Add(outline);
end;
outline := 'TOTAL';
for j := 1 to k do
Begin
value := format('%7.3f',[coltot[j-1]]);
outline := outline + value;
end;
value := format('%7.3f',[TotMean]);
outline := outline + value;
OutPutFrm.RichEdit.Lines.Add(outline);
// Print standard deviations
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Standard Deviations');
outline := 'TRT. ';
for i := 1 to k do
Begin
value := format('B%3d ',[i]);
outline := outline + value;
end;
outline := outline + 'TOTAL';
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add(' A ');
for i := 1 to range do
Begin
outline := format('%3d ',[i+a1-1]);
for j := 1 to k do
Begin
value := format('%7.3f',[StdDev[i-1,j-1]]);
outline := outline + value;
end;
value := format('%7.3f',[StdDev[i-1,k]]);
outline := outline + value;
OutPutFrm.RichEdit.Lines.Add(outline);
end;
outline := 'TOTAL';
for j := 1 to k do
Begin
value := format('%7.3f',[StdDev[range,j-1]]);
outline := outline + value;
end;
value := format('%7.3f',[TotStdDev]);
outline := outline + value;
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.ShowModal;
if PlotChk.Checked = true then // PlotMeans(C,range,k,this)
begin
maxmean := 0.0;
SetLength(GraphFrm.Ypoints,range,k);
SetLength(GraphFrm.Xpoints,1,k);
for i := 1 to range do
begin
outline := 'A ' + IntToStr(i);
GraphFrm.SetLabels[i] := outline;
for j := 1 to k do
begin
GraphFrm.Ypoints[i-1,j-1] := C[i-1,j-1];
if C[i-1,j-1] > maxmean then maxmean := C[i-1,j-1];
end;
end;
for j := 1 to k do
begin
coltot[j-1] := j;
GraphFrm.Xpoints[0,j-1] := j;
end;
GraphFrm.nosets := range;
GraphFrm.nbars := k;
GraphFrm.Heading := 'TREATMENTS X SUBJECT REPLICATIONS ANOVA';
GraphFrm.XTitle := 'WITHIN (B) TREATMENT GROUP';
GraphFrm.YTitle := 'Mean';
GraphFrm.barwideprop := 0.5;
GraphFrm.AutoScale := false;
GraphFrm.GraphType := 2; // 3d Vertical Bar Chart
GraphFrm.miny := 0.0;
GraphFrm.maxy := maxmean;
GraphFrm.BackColor := clYellow;
GraphFrm.WallColor := clBlack;
GraphFrm.FloorColor := clLtGray;
GraphFrm.ShowBackWall := true;
GraphFrm.ShowModal;
end;
if PosthocChk.Checked = true then
begin
OutPutFrm.RichEdit.Clear;
// Do tests for the A (between groups)
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Comparisons for the Between Group Means');
PostHocTests(range, MS[1], degfree[1], range, sumsum, self);
OutPutFrm.ShowModal;
// Do tests for the B (repeated measures)
OutPutFrm.RichEdit.Clear;
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Comparisons for the Repeated Measures Means');
PostHocTests(k, ms[4], degfree[4], NoCases, coltot, self);
end;
OutPutFrm.ShowModal;
// cleanup the heap
GraphFrm.Xpoints := nil;
GraphFrm.Ypoints := nil;
StdDev := nil;
sumsum := nil;
sumxsquared := nil;
coltot := nil;
squaredsumx := nil;
N := nil;
C := nil;
ColNoSelected := nil;
end;
procedure TAxSAnovaFrm.DepOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(GrpVar.Text);
GrpVar.Text := '';
DepInBtn.Visible := true;
DepOutBtn.Visible := false;
end;
procedure TAxSAnovaFrm.PostHocTests(NoSelected : integer; MSerr : double; dferr : integer;
count : integer; ColMeans : DblDyneVec; Sender: TObject);
VAR
group_total : DblDyneVec;
group_count : DblDyneVec;
i, mingrp : integer;
begin
SetLength(group_total,NoSelected);
SetLength(group_count,NoSelected);
for i := 0 to NoSelected - 1 do
begin
group_count[i] := double(count);
group_total[i] := double(count) * ColMeans[i];
end;
mingrp := 1;
TUKEY(MSerr, dferr, count, group_total, group_count, mingrp, NoSelected);
TUKEY_KRAMER(MSerr, dferr, count, group_total, group_count, mingrp, NoSelected);
TUKEYBTEST(MSerr, dferr, group_total, group_count, mingrp,NoSelected, count);
SCHEFFETEST(MSerr, group_total, group_count, mingrp, NoSelected, count*NoSelected);
Newman_Keuls(MSerr, dferr, count, group_total, group_count, mingrp, NoSelected);
end;
procedure TAxSAnovaFrm.TUKEY(error_ms : double; { mean squared for residual }
error_df : double; { deg. freedom for residual }
value : double; { size of smallest group }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { no. of cases in a group }
min_grp : integer; { minimum group code }
max_grp : integer); { maximum group code }
var
sig : boolean;
divisor : double;
df1 : integer;
alpha : double;
contrast, mean1, mean2 : double;
q_stat : double;
i,j : integer;
outline : string;
begin
// alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
alpha := 0.05;
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' Tukey HSD Test for Differences Between Means');
outline := format(' alpha selected = %4.2f',[alpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('Groups Difference Statistic Probability Significant?');
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
divisor := sqrt(error_ms / value );
for i := min_grp to max_grp - 1 do
for j := i + 1 to max_grp do
begin
outline := format('%2d - %2d ',[i,j]);
mean1 := group_total[i-1] / group_count[i-1];
mean2 := group_total[j-1] / group_count[j-1];
contrast := mean1 - mean2;
outline := outline + format('%7.3f q = ',[contrast]);
contrast := abs(contrast / divisor) ;
outline := outline + format('%6.3f ',[contrast]);
df1 := max_grp - min_grp + 1;
q_stat := STUDENT(contrast,error_df,df1);
outline := outline + format(' %6.4f',[q_stat]);
if alpha >= q_stat then sig := TRUE else sig := FALSE;
if sig = TRUE then outline := outline + ' YES '
else outline := outline + ' NO';
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
end;
procedure TAxSAnovaFrm.SCHEFFETEST(error_ms : double; { mean squared residual }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { count of cases in a group }
min_grp : integer; { code of first group }
max_grp : integer; { code of last group }
total_n : double); { total number of cases }
var
statistic, stat_var, stat_sd : double;
mean1, mean2, alpha, difference, prob_scheffe, f_prob, df1, df2 : double;
outline : string;
i, j : integer;
begin
// alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
alpha := 0.05;
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' Scheffe contrasts among pairs of means.');
outline := format(' alpha selected = %4.2f',[alpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('Group vs Group Difference Scheffe Critical Significant?');
OutPutFrm.RichEdit.Lines.Add(' Statistic Value');
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------');
alpha := 1.0 - alpha ;
for i:= min_grp to max_grp - 1 do
for j := i + 1 to max_grp do
begin
outline := format('%2d %2d ',[i,j]);
mean1 := group_total[i-1] / group_count[i-1];
mean2 := group_total[j-1] / group_count[j-1];
difference := mean1 - mean2;
outline := outline + format('%8.2f ',[difference]);
stat_var := error_ms *
( 1.0 / group_count[i-1] + 1.0 / group_count[j-1]);
stat_sd := sqrt(stat_var);
statistic := abs(difference / stat_sd);
outline := outline + format('%8.2f ',[statistic]);
df1 := max_grp - min_grp;
df2 := total_n - df1 + 1;
f_prob := fpercentpoint(alpha,round(df1),round(df2) );
prob_scheffe := sqrt(df1 * f_prob);
outline := outline + format('%8.3f ',[prob_scheffe]);
if statistic > prob_scheffe then outline := outline + 'YES'
else outline := outline + 'NO';
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------');
end;
procedure TAxSAnovaFrm.Newman_Keuls(error_ms : double; { residual mean squared }
error_df : double; { deg. freedom for error }
value : double; { number in smallest group }
group_total : DblDyneVec; { sum of scores in a group }
group_count : DblDyneVec; { count of cases in a group }
min_grp : integer; { lowest group code }
max_grp : integer); { largest group code }
var
i, j : integer;
temp1, temp2 : double;
groupno : IntDyneVec;
alpha : double;
contrast, mean1, mean2 : double;
q_stat : double;
divisor : double;
tempno : integer;
df1 : integer;
sig : boolean;
outline : string;
begin
SetLength(groupno,max_grp-min_grp+1);
for i := min_grp to max_grp do groupno[i-1] := i;
for i := min_grp to max_grp - 1 do
begin
for j := i + 1 to max_grp do
begin
if group_total[i-1] / group_count[i-1] >
group_total[j-1] / group_count[j-1] then
begin
temp1 := group_total[i-1];
temp2 := group_count[i-1];
tempno := groupno[i-1];
group_total[i-1] := group_total[j-1];
group_count[i-1] := group_count[j-1];
groupno[i-1] := groupno[j-1];
group_total[j-1] := temp1;
group_count[j-1] := temp2;
groupno[j-1] := tempno;
end;
end;
end;
// alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
alpha := 0.05;
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' Neuman-Keuls Test for Contrasts on Ordered Means');
outline := format(' alpha selected = %4.2f',[alpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Group Mean');
for i := 1 to max_grp do
begin
outline := format('%3d %10.3f',[groupno[i-1],group_total[i-1] / group_count[i-1]]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Groups Difference Statistic d.f. Probability Significant?');
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------');
divisor := sqrt(error_ms / value);
for i := min_grp to max_grp - 1 do
begin
for j := i + 1 to max_grp do
begin
outline := format('%2d - %2d ',[groupno[i-1],groupno[j-1]]);
mean1 := group_total[i-1] / group_count[i-1];
mean2 := group_total[j-1] / group_count[j-1];
contrast := mean1 - mean2;
outline := outline + format('%7.3f q = ',[contrast]);
contrast := abs(contrast / divisor );
df1 := j - i + 1;
outline := outline + format('%6.3f %2d %3.0f ',[contrast,df1,error_df]);
q_stat := STUDENT(contrast,error_df,df1);
outline := outline + format(' %6.4f',[q_stat]);
if alpha > q_stat then sig := TRUE else sig := FALSE;
if sig = TRUE then outline := outline + ' YES'
else outline := outline + ' NO';
OutPutFrm.RichEdit.Lines.Add(outline);
end;
end;
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------');
groupno := nil;
end;
procedure TAxSAnovaFrm.TUKEY_KRAMER(error_ms : double; { residual mean squared }
error_df : double; { deg. freedom for error }
value : double; { number in smallest group }
group_total : DblDyneVec; { sum of scores in group }
group_count : DblDyneVec; { number of caes in group }
min_grp : integer; { code of lowest group }
max_grp : integer); { code of highst group }
var
sig : boolean;
divisor : double;
df1 : integer;
alpha : double;
contrast, mean1, mean2 : double;
q_stat : double;
outline : string;
i, j : integer;
begin
// alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
alpha := 0.05;
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' Tukey-Kramer Test for Differences Between Means');
outline := format(' alpha selected = %4.2f',[alpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('Groups Difference Statistic Probability Significant?');
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
for i := min_grp to max_grp - 1 do
for j := i + 1 to max_grp do
begin
outline := format('%2d - %2d ',[i,j]);
mean1 := group_total[i-1] / group_count[i-1];
mean2 := group_total[j-1] / group_count[j-1];
contrast := mean1 - mean2;
outline := outline + format('%7.3f q = ',[contrast]);
divisor := sqrt(error_ms *
( ( 1.0/group_count[i-1] + 1.0/group_count[j-1] ) / 2 ) );
contrast := abs(contrast / divisor) ;
outline := outline + format('%6.3f ',[contrast]);
df1 := max_grp - min_grp + 1;
q_stat := STUDENT(contrast,error_df,df1);
outline := outline + format(' %6.4f',[q_stat]);
if alpha >= q_stat then sig := TRUE else sig := FALSE;
if sig = TRUE then outline := outline + ' YES '
else outline := outline + ' NO';
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
end;
procedure TAxSAnovaFrm.TUKEYBTEST(ErrorMS : double; // within groups error
ErrorDF : double; // degrees of freedom within
group_total : DblDyneVec; // vector of group sums
group_count : DblDyneVec; // vector of group n's
min_grp : integer; // smallest group code
max_grp : integer; // largest group code
groupsize : double); // size of groups (all equal)
var
alpha : double;
outline : string;
i, j : integer;
df1 : double;
qstat : double;
tstat : double;
groupno : IntDyneVec;
temp1, temp2 : double;
tempno : integer;
NoGrps : integer;
contrast : double;
mean1, mean2 : double;
sig : string[6];
groups : double;
response : string[5];
divisor : double;
begin
SetLength(groupno,max_grp-min_grp+1);
// alpha := StrToFloat(BlksAnovaFrm.PostAlpha.Text);
alpha := 0.05;
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add(' Tukey B Test for Contrasts on Ordered Means');
outline := format(' alpha selected = %4.2f',[alpha]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Groups Difference Statistic d.f. Prob.>value Significant?');
divisor := sqrt(ErrorMS / groupsize);
NoGrps := max_grp - min_grp + 1;
for i := min_grp to max_grp do groupno[i-1] := i;
for i := 1 to NoGrps - 1 do
begin
for j := i + 1 to NoGrps do
begin
if group_total[i-1] / group_count[i-1] >
group_total[j-1] / group_count[j-1] then
begin
temp1 := group_total[i-1];
temp2 := group_count[i-1];
tempno := groupno[i-1];
group_total[i-1] := group_total[j-1];
group_count[i-1] := group_count[j-1];
groupno[i-1] := groupno[j-1];
group_total[j-1] := temp1;
group_count[j-1] := temp2;
groupno[j-1] := tempno;
end;
end;
end;
for i := 1 to NoGrps-1 do
begin
for j := i+1 to NoGrps do
begin
mean1 := group_total[i-1] / group_count[i-1];
mean2 := group_total[j-1] / group_count[j-1];
contrast := abs((mean1 - mean2) / divisor);
df1 := j - i + 1.0;
qstat := STUDENT(contrast,ErrorDF,df1);
groups := NoGrps;
tstat := STUDENT(contrast,ErrorDF,groups);
qstat := (qstat + tstat) / 2.0;
if alpha >= qstat then sig := 'YES' else sig := 'NO';
outline := format('%3d - %3d %10.3f %10.3f %4.0f,%4.0f %5.3f %s',
[groupno[i-1],groupno[j-1],
mean1-mean2,contrast,df1,ErrorDF,qstat,sig]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
end;
groupno := nil;
end;
initialization
{$I axsanovaunit.lrs}
end.

View File

@ -1,312 +0,0 @@
object AxSAnovaFrm: TAxSAnovaFrm
Left = 240
Height = 305
Top = 121
Width = 558
Caption = 'Treatments by Subjects ANOVA (AxS)'
ClientHeight = 305
ClientWidth = 558
OnShow = FormShow
LCLVersion = '0.9.30.4'
object Label1: TLabel
Left = 9
Height = 16
Top = 8
Width = 102
Caption = 'Available Variables:'
ParentColor = False
end
object Label2: TLabel
Left = 232
Height = 16
Top = 25
Width = 79
Caption = 'Group Variable'
ParentColor = False
end
object Label3: TLabel
Left = 232
Height = 16
Top = 104
Width = 103
Caption = 'Repeated Measures'
ParentColor = False
end
object VarList: TListBox
Left = 9
Height = 257
Top = 25
Width = 172
ItemHeight = 0
MultiSelect = True
TabOrder = 0
end
object DepInBtn: TBitBtn
Left = 192
Height = 26
Top = 25
Width = 31
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
}
NumGlyphs = 0
OnClick = DepInBtnClick
TabOrder = 1
end
object DepOutBtn: TBitBtn
Left = 192
Height = 26
Top = 64
Width = 31
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
}
NumGlyphs = 0
OnClick = DepOutBtnClick
TabOrder = 2
end
object RepInBtn: TBitBtn
Left = 192
Height = 26
Top = 104
Width = 31
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
}
NumGlyphs = 0
OnClick = RepInBtnClick
TabOrder = 3
end
object RepOutBtn: TBitBtn
Left = 192
Height = 26
Top = 144
Width = 31
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
}
NumGlyphs = 0
OnClick = RepOutBtnClick
TabOrder = 4
end
object GrpVar: TEdit
Left = 232
Height = 23
Top = 40
Width = 143
TabOrder = 5
Text = 'GrpVar'
end
object RepList: TListBox
Left = 231
Height = 153
Top = 128
Width = 144
ItemHeight = 0
TabOrder = 6
end
object GroupBox1: TGroupBox
Left = 384
Height = 64
Top = 8
Width = 156
Caption = 'Option'
ClientHeight = 46
ClientWidth = 152
TabOrder = 7
object PlotChk: TCheckBox
Left = 9
Height = 19
Top = 4
Width = 102
Caption = 'Plot Cell Means'
TabOrder = 0
end
object PosthocChk: TCheckBox
Left = 9
Height = 19
Top = 24
Width = 136
Caption = 'Posthoc Comparisons'
TabOrder = 1
end
end
object ResetBtn: TButton
Left = 432
Height = 30
Top = 160
Width = 80
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 8
end
object CancelBtn: TButton
Left = 432
Height = 30
Top = 120
Width = 80
Caption = 'Cancel'
ModalResult = 2
TabOrder = 9
end
object ComputeBtn: TButton
Left = 432
Height = 30
Top = 240
Width = 80
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 10
end
object ReturnBtn: TButton
Left = 432
Height = 30
Top = 200
Width = 80
Caption = 'Return'
ModalResult = 1
TabOrder = 11
end
object HelpBtn: TButton
Tag = 106
Left = 432
Height = 32
Top = 80
Width = 78
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 12
end
end

View File

@ -1,241 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TAxSAnovaFrm','FORMDATA',[
'TPF0'#12'TAxSAnovaFrm'#11'AxSAnovaFrm'#4'Left'#3#240#0#6'Height'#3'1'#1#3'To'
+'p'#2'y'#5'Width'#3'.'#2#7'Caption'#6'"Treatments by Subjects ANOVA (AxS)'#12
+'ClientHeight'#3'1'#1#11'ClientWidth'#3'.'#2#6'OnShow'#7#8'FormShow'#10'LCLV'
+'ersion'#6#8'0.9.30.4'#0#6'TLabel'#6'Label1'#4'Left'#2#9#6'Height'#2#16#3'To'
+'p'#2#8#5'Width'#2'f'#7'Caption'#6#20'Available Variables:'#11'ParentColor'#8
+#0#0#6'TLabel'#6'Label2'#4'Left'#3#232#0#6'Height'#2#16#3'Top'#2#25#5'Width'
+#2'O'#7'Caption'#6#14'Group Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Labe'
+'l3'#4'Left'#3#232#0#6'Height'#2#16#3'Top'#2'h'#5'Width'#2'g'#7'Caption'#6#17
+'Repeated Measures'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#9
+#6'Height'#3#1#1#3'Top'#2#25#5'Width'#3#172#0#10'ItemHeight'#2#0#11'MultiSel'
+'ect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#8'DepInBtn'#4'Left'#3#192#0#6'Height'
+#2#26#3'Top'#2#25#5'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0
+#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0
+#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161
+'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255
+'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255
+#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255#148#208#157
+#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195
+#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0
+#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158#214#167#255
+#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144
+#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201
+#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190
+'m'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255
+'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#9'NumGlyphs'#2#0#7'OnClick'#7#13'DepInBtnClick'#8'TabOrder'#2#1#0#0#7'TBitB'
+'tn'#9'DepOutBtn'#4'Left'#3#192#0#6'Height'#2#26#3'Top'#2'@'#5'Width'#2#31#10
+'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0
,#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'
+#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'
+#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134
+#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203
+#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190
+'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201#127
+#204#138#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255
+#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135
+#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255
+#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177
+'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#14
+'DepOutBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#8'RepInBtn'#4'Left'#3#192#0#6
+'Height'#2#26#3'Top'#2'h'#5'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0
+'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4
+#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'
+#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'
+#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0
+#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255
+#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137
+#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255
+#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158
+#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255
+#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255
+'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'
+#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'
+#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#13'RepInBtnClick'#8'TabOrder'#2
+#3#0#0#7'TBitBtn'#9'RepOutBtn'#4'Left'#3#192#0#6'Height'#2#26#3'Top'#3#144#0
+#5'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0
+#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0
+#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'
+#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'
+#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255
+'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'
+#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195
+'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255
,#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255
+#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#14'RepOutBtnClick'#8'TabOrder'#2#4#0#0#5'TEdit'#6'GrpV'
+'ar'#4'Left'#3#232#0#6'Height'#2#23#3'Top'#2'('#5'Width'#3#143#0#8'TabOrder'
+#2#5#4'Text'#6#6'GrpVar'#0#0#8'TListBox'#7'RepList'#4'Left'#3#231#0#6'Height'
+#3#153#0#3'Top'#3#128#0#5'Width'#3#144#0#10'ItemHeight'#2#0#8'TabOrder'#2#6#0
+#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3#128#1#6'Height'#2'@'#3'Top'#2#8#5'Wid'
+'th'#3#156#0#7'Caption'#6#6'Option'#12'ClientHeight'#2'.'#11'ClientWidth'#3
+#152#0#8'TabOrder'#2#7#0#9'TCheckBox'#7'PlotChk'#4'Left'#2#9#6'Height'#2#19#3
+'Top'#2#4#5'Width'#2'f'#7'Caption'#6#15'Plot Cell Means'#8'TabOrder'#2#0#0#0
+#9'TCheckBox'#10'PosthocChk'#4'Left'#2#9#6'Height'#2#19#3'Top'#2#24#5'Width'
+#3#136#0#7'Caption'#6#19'Posthoc Comparisons'#8'TabOrder'#2#1#0#0#0#7'TButto'
+'n'#8'ResetBtn'#4'Left'#3#176#1#6'Height'#2#30#3'Top'#3#160#0#5'Width'#2'P'#7
+'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#8#0#0#7'TB'
+'utton'#9'CancelBtn'#4'Left'#3#176#1#6'Height'#2#30#3'Top'#2'x'#5'Width'#2'P'
+#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#9#0#0#7'TButton'#10
+'ComputeBtn'#4'Left'#3#176#1#6'Height'#2#30#3'Top'#3#240#0#5'Width'#2'P'#7'C'
+'aption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#10#0#0#7
+'TButton'#9'ReturnBtn'#4'Left'#3#176#1#6'Height'#2#30#3'Top'#3#200#0#5'Width'
+#2'P'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#11#0#0#7'TBut'
+'ton'#7'HelpBtn'#3'Tag'#2'j'#4'Left'#3#176#1#6'Height'#2' '#3'Top'#2'P'#5'Wi'
+'dth'#2'N'#7'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2
+#12#0#0#0
]);

View File

@ -1,84 +0,0 @@
object AboutBox: TAboutBox
Left = 202
Height = 206
Top = 145
Width = 298
BorderStyle = bsDialog
Caption = 'About LazStats'
ClientHeight = 206
ClientWidth = 298
Color = clBtnFace
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Position = poScreenCenter
LCLVersion = '0.9.30.4'
object OKButton: TButton
Left = 111
Height = 25
Top = 160
Width = 75
Caption = 'OK'
Default = True
ModalResult = 1
OnClick = OKButtonClick
TabOrder = 0
end
object Panel1: TPanel
Left = 16
Height = 136
Top = 16
Width = 276
ClientHeight = 136
ClientWidth = 276
TabOrder = 1
object Label1: TLabel
Left = 80
Height = 30
Top = 0
Width = 100
Caption = 'LazStats'
Font.CharSet = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -24
Font.Name = 'MS Sans Serif'
Font.Pitch = fpVariable
Font.Quality = fqDraft
Font.Style = [fsBold]
ParentColor = False
ParentFont = False
end
object Label2: TLabel
Left = 64
Height = 21
Top = 40
Width = 129
Caption = 'William G. Miller'
Font.CharSet = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Pitch = fpVariable
Font.Quality = fqDraft
Font.Style = [fsBold]
ParentColor = False
ParentFont = False
end
object Label3: TLabel
Left = 64
Height = 21
Top = 75
Width = 123
Caption = 'Copyright 2013'
Font.CharSet = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'MS Sans Serif'
Font.Pitch = fpVariable
Font.Quality = fqDraft
Font.Style = [fsBold]
ParentColor = False
ParentFont = False
end
end
end

View File

@ -1,28 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TAboutBox','FORMDATA',[
'TPF0'#9'TAboutBox'#8'AboutBox'#4'Left'#3#202#0#6'Height'#3#206#0#3'Top'#3#145
+#0#5'Width'#3'*'#1#11'BorderStyle'#7#8'bsDialog'#7'Caption'#6#14'About LazSt'
+'ats'#12'ClientHeight'#3#206#0#11'ClientWidth'#3'*'#1#5'Color'#7#9'clBtnFace'
+#10'Font.Color'#7#12'clWindowText'#11'Font.Height'#2#245#9'Font.Name'#6#13'M'
+'S Sans Serif'#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#8'0.9.30.4'
+#0#7'TButton'#8'OKButton'#4'Left'#2'o'#6'Height'#2#25#3'Top'#3#160#0#5'Width'
+#2'K'#7'Caption'#6#2'OK'#7'Default'#9#11'ModalResult'#2#1#7'OnClick'#7#13'OK'
+'ButtonClick'#8'TabOrder'#2#0#0#0#6'TPanel'#6'Panel1'#4'Left'#2#16#6'Height'
+#3#136#0#3'Top'#2#16#5'Width'#3#20#1#12'ClientHeight'#3#136#0#11'ClientWidth'
+#3#20#1#8'TabOrder'#2#1#0#6'TLabel'#6'Label1'#4'Left'#2'P'#6'Height'#2#30#3
+'Top'#2#0#5'Width'#2'd'#7'Caption'#6#8'LazStats'#12'Font.CharSet'#7#12'ANSI_'
+'CHARSET'#10'Font.Color'#7#12'clWindowText'#11'Font.Height'#2#232#9'Font.Nam'
+'e'#6#13'MS Sans Serif'#10'Font.Pitch'#7#10'fpVariable'#12'Font.Quality'#7#7
+'fqDraft'#10'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0
+#0#6'TLabel'#6'Label2'#4'Left'#2'@'#6'Height'#2#21#3'Top'#2'('#5'Width'#3#129
+#0#7'Caption'#6#17'William G. Miller'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10
+'Font.Color'#7#12'clWindowText'#11'Font.Height'#2#240#9'Font.Name'#6#13'MS S'
+'ans Serif'#10'Font.Pitch'#7#10'fpVariable'#12'Font.Quality'#7#7'fqDraft'#10
+'Font.Style'#11#6'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'
+#6'Label3'#4'Left'#2'@'#6'Height'#2#21#3'Top'#2'K'#5'Width'#2'{'#7'Caption'#6
+#14'Copyright 2013'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#12
+'clWindowText'#11'Font.Height'#2#240#9'Font.Name'#6#13'MS Sans Serif'#10'Fon'
+'t.Pitch'#7#10'fpVariable'#12'Font.Quality'#7#7'fqDraft'#10'Font.Style'#11#6
+'fsBold'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#0#0
]);

View File

@ -1,43 +0,0 @@
unit AboutUnit;
{$mode objfpc}{$H+}
interface
uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, ExtCtrls;
type
{ TAboutBox }
TAboutBox = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
OKButton: TButton;
Panel1: TPanel;
procedure OKButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
AboutBox: TAboutBox;
implementation
procedure TAboutBox.OKButtonClick(Sender: TObject);
begin
AboutBox.Hide;
end;
initialization
{$I AboutUnit.lrs}
end.

View File

@ -1,409 +0,0 @@
unit BackRegUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, Globals, MainUnit, MatrixLib, OutPutUnit,
FunctionsLib, DataProcs;
type
{ TBackRegFrm }
TBackRegFrm = class(TForm)
OpenDialog1: TOpenDialog;
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
InBtn: TBitBtn;
OutBtn: TBitBtn;
AllBtn: TBitBtn;
DepInBtn: TBitBtn;
DepOutBtn: TBitBtn;
MatInChkBox: TCheckBox;
MatSaveChkBox: TCheckBox;
CPChkBox: TCheckBox;
CovChkBox: TCheckBox;
CorrsChkBox: TCheckBox;
MeansChkBox: TCheckBox;
SaveDialog1: TSaveDialog;
VarChkBox: TCheckBox;
SDChkBox: TCheckBox;
PartialsChkBox: TCheckBox;
DepVar: TEdit;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ListBox1: TListBox;
VarList: TListBox;
procedure AllBtnClick(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure ComputeBtnClick(Sender: TObject);
procedure DepInBtnClick(Sender: TObject);
procedure DepOutBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
procedure ReturnBtnClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
BackRegFrm: TBackRegFrm;
implementation
{ TBackRegFrm }
procedure TBackRegFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
VarList.Clear;
ListBox1.Clear;
for i := 1 to NoVariables do
begin
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
end;
InBtn.Enabled := true;
OutBtn.Enabled := false;
CPChkBox.Checked := false;
CovChkBox.Checked := false;
CorrsChkBox.Checked := true;
MeansChkBox.Checked := true;
VarChkBox.Checked := false;
SDChkBox.Checked := true;
MatInChkBox.Checked := false;
MatSaveChkBox.Checked := false;
PartialsChkBox.Checked := false;
DepVar.Text := '';
DepInBtn.Enabled := true;
DepOutBtn.Enabled := false;
end;
procedure TBackRegFrm.ReturnBtnClick(Sender: TObject);
begin
BackRegFrm.Hide;
end;
procedure TBackRegFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TBackRegFrm.AllBtnClick(Sender: TObject);
VAR count, index : integer;
begin
count := VarList.Items.Count;
for index := 0 to count-1 do
begin
ListBox1.Items.Add(VarList.Items.Strings[index]);
end;
VarList.Clear;
end;
procedure TBackRegFrm.CancelBtnClick(Sender: TObject);
begin
BackRegFrm.Hide;
end;
procedure TBackRegFrm.ComputeBtnClick(Sender: TObject);
Label CleanUp;
VAR
NoVars, NoIndepVars, i, j, NCases, mattype, StepNo : integer;
Index, IndexX, IndexY : integer;
R2, StdErr, df1, df2, x, determinant, stderrest, POut, LowestPartial : double;
errorcode : integer;
errcode : boolean;
filename : string;
cellstring, outline, valstring : string;
Corrs : DblDyneMat;
Means : DblDyneVec;
Variances : DblDyneVec;
StdDevs : DblDyneVec;
ColNoSelected : IntDyneVec;
title : string;
RowLabels : StrDyneVec;
ColLabels : StrDyneVec;
InverseMat : DblDyneMat;
ProdMat : DblDyneMat;
CorrMat : DblDyneMat;
BetaWeights : DblDyneVec;
IndepIndex : IntDyneVec;
constant : double;
begin
if NoVariables = 0 then NoVariables := 200;
SetLength(Corrs,NoVariables+1,NoVariables+1);
SetLength(Means,NoVariables);
SetLength(Variances,NoVariables);
SetLength(StdDevs,NoVariables);
SetLength(RowLabels,NoVariables);
SetLength(ColLabels,NoVariables);
SetLength(InverseMat,NoVariables+1,NoVariables+1);
SetLength(ProdMat,NoVariables+1,NoVariables+1);
SetLength(CorrMat,NoVariables+1,NoVariables+1);
SetLength(BetaWeights,NoVariables);
SetLength(IndepIndex,NoVariables);
SetLength(ColNoSelected,NoVariables);
OutPutFrm.RichEdit.Clear;
// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify;
OutPutFrm.RichEdit.Lines.Add('Step Backward Multiple Regression by Bill Miller');
errcode := false;
errorcode := 0;
if MatInChkBox.Checked = true then
begin
OpenDialog1.Filter := 'FreeStat matrix files (*.MAT)|*.MAT|All files (*.*)|*.*';
OpenDialog1.FilterIndex := 1;
if OpenDialog1.Execute then
begin
filename := OpenDialog1.FileName;
MATREAD(Corrs,NoVars,NoVars,Means,StdDevs,NCases,RowLabels,ColLabels,filename);
for i := 0 to NoVars-1 do
begin
Variances[i] := sqr(StdDevs[i]);
ColNoSelected[i] := i+1;
end;
DepVar.Text := RowLabels[NoVars-1];
for i := 0 to NoVars-2 do ListBox1.Items.Add(RowLabels[i]);
CPChkBox.Checked := false;
CovChkBox.Checked := false;
MatSaveChkBox.Checked := false;
ShowMessage('NOTICE! Last variable in matrix is the dependent variable');
end;
end;
if MatInChkBox.Checked = false then
begin
{ get variable columns }
NoVars := ListBox1.Items.Count;
if NoVars < 1 then
begin
ShowMessage('ERROR! No variables selected.');
goto CleanUp;
end;
for i := 1 to NoVars do
begin
cellstring := ListBox1.Items.Strings[i-1];
for j := 1 to NoVariables do
begin
if cellstring = OS3MainFrm.DataGrid.Cells[j,0] then
begin
ColNoSelected[i-1] := j;
RowLabels[i-1] := cellstring;
ColLabels[i-1] := cellstring;
end;
end;
end;
{ get dependendent variable column }
if DepVar.Text = '' then
begin
ShowMessage('ERROR! No Dependent variable selected.');
goto CleanUp;
end;
NoVars := NoVars + 1;
for j := 1 to NoVariables do
begin
if DepVar.Text = OS3MainFrm.DataGrid.Cells[j,0] then
begin
ColNoSelected[NoVars-1] := j;
RowLabels[NoVars-1] := DepVar.Text;
ColLabels[NoVars-1] := DepVar.Text;
end;
end;
end;
POut := 1.0;
StepNo := 1;
while NoVars > 1 do
begin
OutPutFrm.RichEdit.Lines.Add('');
outline := format('----------------- STEP %3d ------------------',[StepNo]);
OutPutFrm.RichEdit.Lines.Add(outline);
if CPChkBox.Checked = true then
begin
title := 'Cross-Products Matrix';
GridXProd(NoVars,ColNoSelected,Corrs,errcode,NCases);
MAT_PRINT(Corrs,NoVars,NoVars,title,RowLabels,ColLabels,NCases);
end;
if CovChkBox.Checked = true then
begin
title := 'Variance-Covariance Matrix';
GridCovar(NoVars,ColNoSelected,Corrs,Means,Variances,
StdDevs,errcode,NCases);
MAT_PRINT(Corrs,NoVars,NoVars,title,RowLabels,ColLabels,NCases);
end;
if MatInChkBox.Checked = false then
Correlations(NoVars,ColNoSelected,Corrs,Means,Variances,
StdDevs,errcode,NCases);
if CorrsChkBox.Checked = true then
begin
title := 'Product-Moment Correlations Matrix';
MAT_PRINT(Corrs,NoVars,NoVars,title,RowLabels,ColLabels,NCases);
end;
if MatSaveChkBox.Checked = true then
begin
SaveDialog1.Filter := 'FreeStat matrix files (*.MAT)|*.MAT|All files (*.*)|*.*';
SaveDialog1.FilterIndex := 1;
if SaveDialog1.Execute then
begin
filename := SaveDialog1.FileName;
MATSAVE(Corrs,NoVars,NoVars,Means,StdDevs,NCases,RowLabels,ColLabels,filename);
end;
MatSaveChkBox.Checked := false; // only save first one
end;
title := 'Means';
if MeansChkBox.Checked = true then
DynVectorPrint(Means,NoVars,title,ColLabels,NCases);
title := 'Variances';
if VarChkBox.Checked = true then
DynVectorPrint(Variances,NoVars,title,ColLabels,NCases);
title := 'Standard Deviations';
if SDChkBox.Checked = true then
DynVectorPrint(StdDevs,NoVars,title,ColLabels,NCases);
if errorcode > 0 then
begin
ShowMessage('ERROR! A selected variable has no variability-run aborted.');
goto CleanUp;
end;
{ get determinant of the correlation matrix }
determinant := 0.0;
for i := 1 to NoVars do
for j := 1 to NoVars do
CorrMat[i-1,j-1] := Corrs[i-1,j-1];
Determ(CorrMat,NoVars,NoVars,determinant,errcode);
if (determinant < 0.000001) then
begin
ShowMessage('ERROR! Matrix is singular!');
// goto cleanup;
end;
outline := format('Determinant of correlation matrix = %8.4f',[determinant]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
NoIndepVars := NoVars-1;
for i := 1 to NoIndepVars do IndepIndex[i-1] := i;
MReg2(NCases,NoVars,NoIndepVars,IndepIndex,corrs,InverseMat,
RowLabels,R2,BetaWeights,
Means,Variances,errorcode,StdErrEst,constant,POut,true, false,false);
// Get partial correlation matrix
for i := 1 to NoVars do
for j := 1 to NoVars do
InverseMat[i-1,j-1] := Corrs[i-1,j-1];
SVDinverse(InverseMat,NoVars);
for i := 1 to NoVars do
begin
for j := 1 to NoVars do
begin
ProdMat[i-1,j-1] := -(1.0 / sqrt(InverseMat[i-1,i-1])) *
InverseMat[i-1,j-1] * (1.0 / sqrt(InverseMat[j-1,j-1]));
end;
end;
LowestPartial := 1.0;
Index := NoIndepVars;
for i := 1 to NoIndepVars do
begin
BetaWeights[i-1] := ProdMat[i-1,NoVars-1];
if abs(BetaWeights[i-1]) < LowestPartial then
begin
LowestPartial := abs(BetaWeights[i-1]);
Index := i;
end;
end;
if PartialsChkBox.Checked = true then
begin
title := 'Partial Correlations';
DynVectorPrint(BetaWeights,NoIndepVars,title,ColLabels,NCases);
end;
OutPutFrm.ShowModal;
{ eliminate variable with lowest partial }
if NoVars > 2 then
begin
outline := format('Variable %d (%s) eliminated',[Index,ColLabels[Index-1]]);
OutPutFrm.RichEdit.Lines.Add(outline);
for i := Index to NoVars-1 do
begin
ColNoSelected[i-1] := ColNoSelected[i];
ColLabels[i-1] := ColLabels[i];
RowLabels[i-1] := RowLabels[i];
end;
NoVars := NoVars - 1;
StepNo := StepNo + 1;
end
else NoVars := 0;
end;
OutPutFrm.ShowModal;
CleanUp:
ColNoSelected := nil;
IndepIndex := nil;
BetaWeights := nil;
CorrMat := nil;
ProdMat := nil;
InverseMat := nil;
ColLabels := nil;
RowLabels := nil;
StdDevs := nil;
Variances := nil;
Means := nil;
Corrs := nil;
BackRegFrm.Hide;
end;
procedure TBackRegFrm.DepInBtnClick(Sender: TObject);
VAR index : integer;
begin
index := ListBox1.ItemIndex;
DepVar.Text := ListBox1.Items.Strings[index];
ListBox1.Items.Delete(index);
DepOutBtn.Enabled := true;
DepInBtn.Enabled := false;
end;
procedure TBackRegFrm.DepOutBtnClick(Sender: TObject);
begin
ListBox1.Items.Add(DepVar.Text);
DepVar.Text := '';
DepInBtn.Enabled := true;
end;
procedure TBackRegFrm.InBtnClick(Sender: TObject);
VAR i, index : integer;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
ListBox1.Items.Add(VarList.Items.Strings[i]);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
OutBtn.Enabled := true;
end;
procedure TBackRegFrm.OutBtnClick(Sender: TObject);
VAR index : integer;
begin
index := ListBox1.ItemIndex;
VarList.Items.Add(ListBox1.Items.Strings[index]);
ListBox1.Items.Delete(index);
InBtn.Enabled := true;
end;
initialization
{$I backregunit.lrs}
end.

View File

@ -1,376 +0,0 @@
object BackRegFrm: TBackRegFrm
Left = 161
Height = 341
Top = 97
Width = 642
Caption = 'Stepwise Backward Multiple Regression'
ClientHeight = 341
ClientWidth = 642
OnShow = FormShow
LCLVersion = '0.9.26.2'
object Label1: TLabel
Left = 6
Height = 14
Top = 7
Width = 90
Caption = 'Available Variables'
ParentColor = False
end
object Label2: TLabel
Left = 228
Height = 14
Top = 8
Width = 119
Caption = 'Variables to be Analyzed'
ParentColor = False
end
object Label3: TLabel
Left = 454
Height = 14
Top = 11
Width = 95
Caption = 'Dependent Variable'
ParentColor = False
end
object VarList: TListBox
Left = 6
Height = 306
Top = 22
Width = 169
MultiSelect = True
TabOrder = 0
end
object InBtn: TBitBtn
Left = 185
Height = 30
Top = 26
Width = 34
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
}
NumGlyphs = 0
OnClick = InBtnClick
TabOrder = 1
end
object OutBtn: TBitBtn
Left = 185
Height = 30
Top = 56
Width = 34
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
}
NumGlyphs = 0
OnClick = OutBtnClick
TabOrder = 2
end
object AllBtn: TBitBtn
Left = 185
Height = 30
Top = 120
Width = 34
Caption = 'ALL'
NumGlyphs = 0
OnClick = AllBtnClick
TabOrder = 3
end
object ListBox1: TListBox
Left = 229
Height = 303
Top = 25
Width = 172
TabOrder = 4
end
object DepInBtn: TBitBtn
Left = 416
Height = 30
Top = 26
Width = 34
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
}
NumGlyphs = 0
OnClick = DepInBtnClick
TabOrder = 5
end
object DepOutBtn: TBitBtn
Left = 416
Height = 30
Top = 56
Width = 34
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
}
NumGlyphs = 0
OnClick = DepOutBtnClick
TabOrder = 6
end
object DepVar: TEdit
Left = 455
Height = 22
Top = 37
Width = 147
TabOrder = 7
Text = 'DepVar'
end
object GroupBox1: TGroupBox
Left = 416
Height = 168
Top = 96
Width = 219
Caption = 'Options'
ClientHeight = 150
ClientWidth = 215
TabOrder = 8
object MatInChkBox: TCheckBox
Left = 8
Height = 17
Top = 2
Width = 196
Caption = 'Get Data from a matrix file (max.=200)'
TabOrder = 0
end
object MatSaveChkBox: TCheckBox
Left = 8
Height = 17
Top = 16
Width = 145
Caption = 'Save the correlation matrix'
TabOrder = 1
end
object CPChkBox: TCheckBox
Left = 8
Height = 17
Top = 32
Width = 152
Caption = 'Show Cross-Products Matrix'
TabOrder = 2
end
object CovChkBox: TCheckBox
Left = 8
Height = 17
Top = 48
Width = 180
Caption = 'Show Variance-Covariance Matrix'
TabOrder = 3
end
object CorrsChkBox: TCheckBox
Left = 8
Height = 17
Top = 64
Width = 151
Caption = 'Show Intercorrelation Matrix'
TabOrder = 4
end
object MeansChkBox: TCheckBox
Left = 8
Height = 17
Top = 80
Width = 82
Caption = 'Show Means'
TabOrder = 5
end
object VarChkBox: TCheckBox
Left = 8
Height = 17
Top = 96
Width = 97
Caption = 'Show Variances'
TabOrder = 6
end
object SDChkBox: TCheckBox
Left = 8
Height = 17
Top = 112
Width = 146
Caption = 'Show Standard Deviations'
TabOrder = 7
end
object PartialsChkBox: TCheckBox
Left = 8
Height = 17
Top = 128
Width = 137
Caption = 'Show Partial Correlations'
TabOrder = 8
end
end
object ResetBtn: TButton
Left = 416
Height = 26
Top = 270
Width = 72
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 9
end
object CancelBtn: TButton
Left = 552
Height = 26
Top = 270
Width = 72
Caption = 'Cancel'
ModalResult = 2
OnClick = CancelBtnClick
TabOrder = 10
end
object ComputeBtn: TButton
Left = 416
Height = 26
Top = 304
Width = 72
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 11
end
object ReturnBtn: TButton
Left = 552
Height = 26
Top = 304
Width = 72
Caption = 'Return'
ModalResult = 1
OnClick = ReturnBtnClick
TabOrder = 12
end
object OpenDialog1: TOpenDialog
left = 183
top = 168
end
object SaveDialog1: TSaveDialog
left = 184
top = 208
end
end

View File

@ -1,256 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TBackRegFrm','FORMDATA',[
'TPF0'#11'TBackRegFrm'#10'BackRegFrm'#4'Left'#3#161#0#6'Height'#3'U'#1#3'Top'
+#2'a'#5'Width'#3#130#2#7'Caption'#6'%Stepwise Backward Multiple Regression'
+#12'ClientHeight'#3'U'#1#11'ClientWidth'#3#130#2#6'OnShow'#7#8'FormShow'#10
+'LCLVersion'#6#8'0.9.26.2'#0#6'TLabel'#6'Label1'#4'Left'#2#6#6'Height'#2#14#3
+'Top'#2#7#5'Width'#2'Z'#7'Caption'#6#19'Available Variables'#11'ParentColor'
+#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#228#0#6'Height'#2#14#3'Top'#2#8#5'Width'
+#2'w'#7'Caption'#6#24'Variables to be Analyzed'#11'ParentColor'#8#0#0#6'TLab'
+'el'#6'Label3'#4'Left'#3#198#1#6'Height'#2#14#3'Top'#2#11#5'Width'#2'_'#7'Ca'
+'ption'#6#18'Dependent Variable'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'
+#4'Left'#2#6#6'Height'#3'2'#1#3'Top'#2#22#5'Width'#3#169#0#11'MultiSelect'#9
+#8'TabOrder'#2#0#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#185#0#6'Height'#2#30#3'To'
+'p'#2#26#5'Width'#2'"'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0
+'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0
+#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'
+#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'
+#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195
+'q'#255#160#215#169#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255
+#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255
+#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255
+']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145
+'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#10'InBtnClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#6'OutBtn'
+#4'Left'#3#185#0#6'Height'#2#30#3'Top'#2'8'#5'Width'#2'"'#10'Glyph.Data'#10
+':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0
,' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255
+#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134#255#156#213
+#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135
+#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'r'
+#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201''#204#138#255
+#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154
+#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194
+#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255#255#255#0'h'
+#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'#169
+'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255
+'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'
+#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199
+'t'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'OutBtnClick'#8'Tab'
+'Order'#2#2#0#0#7'TBitBtn'#6'AllBtn'#4'Left'#3#185#0#6'Height'#2#30#3'Top'#2
+'x'#5'Width'#2'"'#7'Caption'#6#3'ALL'#9'NumGlyphs'#2#0#7'OnClick'#7#11'AllBt'
+'nClick'#8'TabOrder'#2#3#0#0#8'TListBox'#8'ListBox1'#4'Left'#3#229#0#6'Heigh'
+'t'#3'/'#1#3'Top'#2#25#5'Width'#3#172#0#8'TabOrder'#2#4#0#0#7'TBitBtn'#8'Dep'
+'InBtn'#4'Left'#3#160#1#6'Height'#2#30#3'Top'#2#26#5'Width'#2'"'#10'Glyph.Da'
+'ta'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0
+#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
,#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184
+#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177
+'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255
+#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255
+#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142
+#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'
+#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162
+#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255
+#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130
+#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199
+'t'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255
+'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'
+#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#13'DepInBtnClick'
+#8'TabOrder'#2#5#0#0#7'TBitBtn'#9'DepOutBtn'#4'Left'#3#160#1#6'Height'#2#30#3
+'Top'#2'8'#5'Width'#2'"'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0
+#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0
+#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'
+#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161
+'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131
+#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/'
+'x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'
,#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255
+#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132
+#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255
+#255#255#0'h'#199't'#201''#204#138#255#162#216#171#255#158#214#167#255#154
+#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255
+#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201
+#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'
+#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'Num'
+'Glyphs'#2#0#7'OnClick'#7#14'DepOutBtnClick'#8'TabOrder'#2#6#0#0#5'TEdit'#6
+'DepVar'#4'Left'#3#199#1#6'Height'#2#22#3'Top'#2'%'#5'Width'#3#147#0#8'TabOr'
+'der'#2#7#4'Text'#6#6'DepVar'#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3#160#1#6
+'Height'#3#168#0#3'Top'#2'`'#5'Width'#3#219#0#7'Caption'#6#7'Options'#12'Cli'
+'entHeight'#3#150#0#11'ClientWidth'#3#215#0#8'TabOrder'#2#8#0#9'TCheckBox'#11
+'MatInChkBox'#4'Left'#2#8#6'Height'#2#17#3'Top'#2#2#5'Width'#3#196#0#7'Capti'
+'on'#6'&Get Data from a matrix file (max.=200)'#8'TabOrder'#2#0#0#0#9'TCheck'
+'Box'#13'MatSaveChkBox'#4'Left'#2#8#6'Height'#2#17#3'Top'#2#16#5'Width'#3#145
+#0#7'Caption'#6#27'Save the correlation matrix'#8'TabOrder'#2#1#0#0#9'TCheck'
+'Box'#8'CPChkBox'#4'Left'#2#8#6'Height'#2#17#3'Top'#2' '#5'Width'#3#152#0#7
+'Caption'#6#26'Show Cross-Products Matrix'#8'TabOrder'#2#2#0#0#9'TCheckBox'#9
+'CovChkBox'#4'Left'#2#8#6'Height'#2#17#3'Top'#2'0'#5'Width'#3#180#0#7'Captio'
+'n'#6#31'Show Variance-Covariance Matrix'#8'TabOrder'#2#3#0#0#9'TCheckBox'#11
+'CorrsChkBox'#4'Left'#2#8#6'Height'#2#17#3'Top'#2'@'#5'Width'#3#151#0#7'Capt'
+'ion'#6#28'Show Intercorrelation Matrix'#8'TabOrder'#2#4#0#0#9'TCheckBox'#11
+'MeansChkBox'#4'Left'#2#8#6'Height'#2#17#3'Top'#2'P'#5'Width'#2'R'#7'Caption'
+#6#10'Show Means'#8'TabOrder'#2#5#0#0#9'TCheckBox'#9'VarChkBox'#4'Left'#2#8#6
+'Height'#2#17#3'Top'#2'`'#5'Width'#2'a'#7'Caption'#6#14'Show Variances'#8'Ta'
+'bOrder'#2#6#0#0#9'TCheckBox'#8'SDChkBox'#4'Left'#2#8#6'Height'#2#17#3'Top'#2
+'p'#5'Width'#3#146#0#7'Caption'#6#24'Show Standard Deviations'#8'TabOrder'#2
+#7#0#0#9'TCheckBox'#14'PartialsChkBox'#4'Left'#2#8#6'Height'#2#17#3'Top'#3
+#128#0#5'Width'#3#137#0#7'Caption'#6#25'Show Partial Correlations'#8'TabOrde'
+'r'#2#8#0#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#160#1#6'Height'#2#26#3'Top'#3
+#14#1#5'Width'#2'H'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'T'
+'abOrder'#2#9#0#0#7'TButton'#9'CancelBtn'#4'Left'#3'('#2#6'Height'#2#26#3'To'
+'p'#3#14#1#5'Width'#2'H'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#7'OnClic'
+'k'#7#14'CancelBtnClick'#8'TabOrder'#2#10#0#0#7'TButton'#10'ComputeBtn'#4'Le'
+'ft'#3#160#1#6'Height'#2#26#3'Top'#3'0'#1#5'Width'#2'H'#7'Caption'#6#7'Compu'
+'te'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#11#0#0#7'TButton'#9'Retu'
+'rnBtn'#4'Left'#3'('#2#6'Height'#2#26#3'Top'#3'0'#1#5'Width'#2'H'#7'Caption'
+#6#6'Return'#11'ModalResult'#2#1#7'OnClick'#7#14'ReturnBtnClick'#8'TabOrder'
+#2#12#0#0#11'TOpenDialog'#11'OpenDialog1'#4'left'#3#183#0#3'top'#3#168#0#0#0
+#11'TSaveDialog'#11'SaveDialog1'#4'left'#3#184#0#3'top'#3#208#0#0#0#0
]);

View File

@ -1,710 +0,0 @@
unit BestRegUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, Globals, MainUnit, MatrixLib, OutPutUnit,
FunctionsLib, DataProcs;
type
{ TBestRegFrm }
TBestRegFrm = class(TForm)
CPChkBox: TCheckBox;
ComboShowChkBox: TCheckBox;
CovChkBox: TCheckBox;
CorrsChkBox: TCheckBox;
MeansChkBox: TCheckBox;
VarChkBox: TCheckBox;
SDChkBox: TCheckBox;
MatSaveChkBox: TCheckBox;
PredictChkBox: TCheckBox;
MatInChkBox: TCheckBox;
InBtn: TBitBtn;
OutBtn: TBitBtn;
AllBtn: TBitBtn;
DepInBtn: TBitBtn;
DepOutBtn: TBitBtn;
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
DepVar: TEdit;
InProb: TEdit;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
BlockList: TListBox;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
VarList: TListBox;
procedure ComputeBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
procedure INIT(Sender: TObject);
procedure REGRESS(Sender: TObject);
procedure BEST_SET_STATS(Sender: TObject);
procedure bump_one(Sender: TObject);
procedure start_set(Sender: TObject);
procedure re_set(Sender: TObject);
procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject);
procedure AllBtnClick(Sender: TObject);
procedure DepInBtnClick(Sender: TObject);
procedure DepOutBtnClick(Sender: TObject);
private
{ private declarations }
pred_labels : StrDyneVec;
y_ptr, v : integer;
ii : integer;
jj : integer;
pointer : integer;
sets : integer;
selected : IntDyneVec;
max_set : IntDyneVec;
cross_prod : DblDyneMat;
ind_mat : DblDyneMat;
end_of_set : boolean;
all_done : boolean;
more_to_do : boolean;
no_predictors: integer;
last_set : integer;
first_pt : integer;
testval : integer;
sumx : DblDyneVec;
mean : DblDyneVec;
stddev : DblDyneVec;
variance : DblDyneVec;
xycross : DblDyneVec;
raw_b : DblDyneVec;
count : double;
b_zero : double;
stop_prob : double;
mult_R2 : double;
biggest_R2 : double;
last_R2 : double;
f_test : double;
t, beta : double;
ss_res : double;
ms_res : double;
ss_reg : double;
ms_reg : double;
df_reg : integer;
df_res : integer;
df1 : integer;
df_tot : integer;
prob_f : double;
ss_total : double;
seb : double;
R2_diff : double;
prout : double;
errorcode : integer;
errcode : boolean;
DepVarCol : integer;
RowLabels : StrDyneVec;
ColLabels : StrDyneVec;
ColNoSelected : IntDyneVec;
NCases : integer;
NoVars : integer;
public
{ public declarations }
end;
var
BestRegFrm: TBestRegFrm;
implementation
{ TBestRegFrm }
procedure TBestRegFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
BlockList.Clear;
VarList.Clear;
for i := 1 to NoVariables do
begin
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
end;
InBtn.Enabled := true;
OutBtn.Enabled := false;
DepInBtn.Enabled := true;
DepOutBtn.Enabled := false;
CPChkBox.Checked := false;
CovChkBox.Checked := false;
CorrsChkBox.Checked := true;
MeansChkBox.Checked := true;
VarChkBox.Checked := false;
SDChkBox.Checked := true;
MatSaveChkBox.Checked := false;
PredictChkBox.Checked := false;
DepVar.Text := '';
InProb.Text := '';
end;
procedure TBestRegFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TBestRegFrm.ComputeBtnClick(Sender: TObject);
Label CleanUp;
var
i, j : integer;
title : string;
cellstring : string;
filename : string;
R2 : double;
StdErrEst : double;
IndepIndex : IntDyneVec;
constant : double;
begin
if MatInChkBox.Checked = true then NoVariables := 200;
SetLength(cross_prod,NoVariables+1,NoVariables+1);
SetLength(ind_mat,NoVariables+1,NoVariables+1);
SetLength(sumx,NoVariables);
SetLength(mean,NoVariables);
SetLength(stddev,NoVariables);
SetLength(variance,NoVariables);
SetLength(xycross,NoVariables);
SetLength(raw_b,NoVariables);
SetLength(RowLabels,NoVariables);
SetLength(ColLabels,NoVariables);
SetLength(IndepIndex,NoVariables);
SetLength(ColNoSelected,NoVariables);
SetLength(Selected,NoVariables);
SetLength(Max_Set,NoVariables);
SetLength(pred_labels,NoVariables);
stop_prob := StrToFloat(InProb.Text); // probability to include a block
prout := 1.0;
OutPutFrm.RichEdit.Clear;
// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify;
OutPutFrm.RichEdit.Lines.Add('Best Combination Multiple Regression by Bill Miller');
errorcode := 0;
last_R2 := 0.0;
last_set := 0 ;
more_to_do := TRUE;
{ get data }
if MatInChkBox.Checked = true then
begin
PredictChkBox.Checked := false;
MatSaveChkBox.Checked := false;
CPChkBox.Checked := false;
OpenDialog1.Filter := 'FreeStat matrix files (*.MAT)|*.MAT|All files (*.*)|*.*';
OpenDialog1.FilterIndex := 1;
if OpenDialog1.Execute then
begin
filename := OpenDialog1.FileName;
MATREAD(cross_prod,NoVars,NoVars,Mean,stddev,NCases,RowLabels,ColLabels,filename);
for i := 1 to NoVars do variance[i-1] := sqr(stddev[i-1]);
ShowMessage('NOTICE! Last variable in matrix is the dependent variable');
end;
if CorrsChkBox.Checked = true then
begin
title := 'Product-Moment Correlations Matrix';
MAT_PRINT(cross_prod,NoVars,NoVars,title,RowLabels,ColLabels,NCases);
end;
title := 'Means';
if MeansChkBox.Checked = true then
DynVectorPrint(mean,NoVars,title,ColLabels,NCases);
title := 'Variances';
if VarChkBox.Checked = true then
DynVectorPrint(variance,NoVars,title,ColLabels,NCases);
title := 'Standard Deviations';
if SDChkBox.Checked = true then
DynVectorPrint(stddev,NoVars,title,ColLabels,NCases);
DepVarCol := NoVars;
y_ptr := NoVars;
DepVar.Text := RowLabels[NoVars];
{ convert correlations to deviation cross-products }
for i := 1 to NoVars do
for j := 1 to NoVars do
cross_prod[i-1,j-1] := cross_prod[i-1,j-1] * stddev[i-1] * stddev[j-1]
* (NCases - 1);
end;
if MatInChkBox.Checked = false then
begin
{ get independent item columns }
NoVars := BlockList.Items.Count;
if NoVars < 1 then
begin
ShowMessage('ERROR! No independent variables selected.');
goto CleanUp;
end;
for i := 1 to NoVars do
begin
cellstring := BlockList.Items.Strings[i-1];
for j := 1 to NoVariables do
begin
if cellstring = OS3MainFrm.DataGrid.Cells[j,0] then
begin
ColNoSelected[i-1] := j;
RowLabels[i-1] := cellstring;
ColLabels[i-1] := cellstring;
end;
end;
end;
{ get dependendent variable column }
if DepVar.Text = '' then
begin
ShowMessage('ERROR! No Dependent variable selected.');
goto CleanUp;
end;
DepVarCol := 0;
NoVars := NoVars + 1;
y_ptr := NoVars;
for j := 1 to NoVariables do
begin
if DepVar.Text = OS3MainFrm.DataGrid.Cells[j,0] then
begin
DepVarCol := j;
ColNoSelected[NoVars-1] := j;
RowLabels[NoVars-1] := OS3MainFrm.DataGrid.Cells[j,0];
ColLabels[NoVars-1] := RowLabels[NoVars-1];
end;
end;
INIT(self);
title := 'Cross-Products Matrix';
GridXProd(NoVars,ColNoSelected,cross_prod,true,NCases);
for i := 1 to NoVars do
begin
sumx[i-1] := cross_prod[i-1,NoVars];
mean[i-1] := sumx[i-1] / NCases;
variance[i-1] := cross_prod[i-1,i-1] - (sumx[i-1] * sumx[i-1] / NCases);
variance[i-1] := variance[i-1] / (NCases-1);
if variance[i-1] > 0 then stddev[i-1] := sqrt(variance[i-1])
else begin
ShowMessage('ERROR! No variance for a variable!');
goto cleanup;
end;
end;
if CPChkBox.Checked = true then
begin
MAT_PRINT(cross_prod,NoVars,NoVars,title,RowLabels,ColLabels,NCases);
end;
{get deviation cross-products matrix}
for i := 1 to NoVars do
for j := 1 to NoVars do
cross_prod[i-1,j-1] := cross_prod[i-1,j-1] - (mean[i-1] * mean[j-1] * NCases);
end;
title := 'Deviation Cross-Products Matrix';
if CovChkBox.Checked = true then
MAT_PRINT(cross_prod,NoVars,NoVars,title,RowLabels,ColLabels,NCases);
v := NoVars;
no_predictors := v - 1;
ss_total := cross_prod[y_ptr-1,y_ptr-1];
biggest_R2 := 0.0;
{ Find best single predictor }
sets := 1;
for j := 1 to no_predictors do
begin
selected[0] := j;
regress(self);
end;
BEST_SET_STATS(self);
{ Find best combinations of 2 to no_predictors - 1 }
sets := 2;
while sets < no_predictors do
begin
end_of_set := FALSE;
start_set(self);
while NOT end_of_set do
begin
regress(self);
bump_one(self);
end;
regress(self);
BEST_SET_STATS(self);
sets := sets + 1;
end;
sets := sets - 1; // no. of predictors
{ Find regression with all of the predictors }
if more_to_do then
begin
sets := no_predictors;
for i := 1 to sets do selected[i-1] := i;
REGRESS(self);
BEST_SET_STATS(self);
end
else begin
OutputFrm.RichEdit.Lines.Add('');
OutputFrm.RichEdit.Lines.Add('Last variable added failed entry test. Job ended.');
end;
if MatInChkBox.Checked = false then
begin
{ get correlation matrix and save if elected }
Correlations(NoVars,ColNoSelected,cross_prod,mean,variance,
stddev,errcode,NCases);
if (CorrsChkBox.Checked = true) then
begin
title := 'Product-Moment Correlations Matrix';
MAT_PRINT(cross_prod,NoVars,NoVars,title,RowLabels,ColLabels,NCases);
end;
title := 'Means';
if (MeansChkBox.Checked = true) then
DynVectorPrint(mean,NoVars,title,ColLabels,NCases);
title := 'Variances';
if (VarChkBox.Checked = true) then
DynVectorPrint(variance,NoVars,title,ColLabels,NCases);
title := 'Standard Deviations';
if (SDChkBox.Checked = true) then
DynVectorPrint(stddev,NoVars,title,ColLabels,NCases);
if MatSaveChkBox.Checked = true then
begin
SaveDialog1.Filter := 'FreeStat matrix files (*.MAT)|*.MAT|All files (*.*)|*.*';
SaveDialog1.FilterIndex := 1;
if SaveDialog1.Execute then
begin
filename := SaveDialog1.FileName;
MATSAVE(cross_prod,NoVars,NoVars,mean,stddev,NCases,RowLabels,ColLabels,filename);
end;
end;
{ add [predicted scores, residual scores, etc. to grid if options elected }
if PredictChkBox.Checked = true then
begin
for i := 1 to sets do
begin
ii := selected[i-1];
IndepIndex[i-1] := ii; //ColNoSelected[ii];
end;
prout := 1.0;
MReg2(NCases,NoVars, sets, IndepIndex, cross_prod, ind_mat,
RowLabels, R2, raw_b, mean, variance,
errorcode, StdErrEst, constant,prout, true, false,false);
Predict(ColNoSelected, NoVars, ind_mat, mean, stddev,
raw_b, StdErrEst, IndepIndex, sets);
end;
end;
OutPutFrm.ShowModal;
cleanup:
pred_labels := nil;
Max_Set := nil;
Selected := nil;
ColNoSelected := nil;
IndepIndex := nil;
ColLabels := nil;
RowLabels := nil;
raw_b := nil;
xycross := nil;
variance := nil;
stddev := nil;
mean := nil;
sumx := nil;
ind_mat := nil;
cross_prod := nil;
end;
procedure TBestRegFrm.INIT(Sender: TObject);
var
i,j : integer;
begin
count := 0.0;
for i := 1 to NoVariables do
begin
sumx[i-1] := 0.0;
mean[i-1] := 0.0;
variance[i-1] := 0.0;
stddev[i-1] := 0.0;
for j := 1 to v do cross_prod[i-1,j-1] := 0.0;
end;
end;
procedure TBestRegFrm.REGRESS(Sender: TObject);
var
i, j : integer;
outline : string;
begin
b_zero := 0.0 ;
ss_reg := 0.0 ;
for i := 1 to sets do
raw_b[i-1] := 0.0 ;
{ Set up matrices of deviation cross_products to use }
for i := 1 to sets do
begin
ii := selected[i-1];
xycross[i-1] := cross_prod[y_ptr-1,ii-1];
for j := 1 to sets do
begin
jj := selected[j-1];
ind_mat[i-1,j-1] := cross_prod[ii-1,jj-1];
end;
end;
SVDinverse(ind_mat,sets);
for i := 1 to sets do
begin
ii := selected[i-1];
for j := 1 to sets do
raw_b[i-1] := raw_b[i-1] + (ind_mat[i-1,j-1] * xycross[j-1]) ;
b_zero := b_zero + raw_b[i-1] * mean[ii-1];
end;
b_zero := mean[y_ptr-1] - b_zero;
{ Get sum of squares for regression and multiple R }
for i := 1 to sets do
ss_reg := ss_reg + raw_b[i-1] * xycross[i-1];
mult_R2 := ss_reg / ss_total;
{ Now, check to see if this R2 is largest. If so, save set }
if mult_R2 > biggest_R2 then
begin
biggest_R2 := mult_R2;
for i := 1 to sets do
max_set[i-1] := selected[i-1];
end;
{ print out this combination for testing purposes }
if ComboShowChkBox.Checked = true then
begin
outline := format(' Set %2d includes variables:',[sets]);
OutPutFrm.RichEdit.Lines.Add(outline);
for i := 1 to sets do
begin
outline := format('variable %d (%s)',[selected[i-1],ColLabels[selected[i-1]-1]]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('');
outline := format('Squared R = %6.4f',[mult_R2]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
end;
end;
procedure TBestRegFrm.BEST_SET_STATS(Sender: TObject);
var
i, j : integer;
outline : string;
begin
OutPutFrm.RichEdit.Lines.Add('');
outline := format('Variables entered in step %2d',[sets]);
OutPutFrm.RichEdit.Lines.Add(outline);
for i := 1 to sets do
begin
ii := max_set[i-1];
selected[i-1] := max_set[i-1];
outline := format('%2d %s',[max_set[i-1],ColLabels[ii-1]]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('');
REGRESS(self);
outline := format('Squared Multiple Correlation = %5.4f',[mult_r2]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format('Dependent variable = %s',[ColLabels[y_ptr-1]]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('ANOVA for Regression Effects : ');
OutPutFrm.RichEdit.Lines.Add('SOURCE df SS MS F Prob');
df_reg := sets;
df_res := round(NCases) - sets - 1;
df_tot := round(NCases) - 1;
ms_reg := ss_reg / df_reg;
ss_res := ( 1.0 - mult_R2) * ss_total ;
ms_res := ss_res / df_res ;
f_test := ms_reg / ms_res ;
prob_f := probf(f_test, df_reg,df_res);
{ Get variance of b coefficients }
outline := format('Regression %3d %14.4f %14.4f %14.4f %14.4f',
[df_reg,ss_reg,ms_reg,f_test,prob_f]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format('Residual %3d %14.4f %14.4f',[df_res,ss_res,ms_res]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format('Total %3d %14.4f',[df_tot,ss_total]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Variables in the equation');
OutPutFrm.RichEdit.Lines.Add('VARIABLE b s.e. b Beta t prob. t');
for i := 1 to sets do
for j := 1 to sets do
ind_mat[i-1,j-1] := ind_mat[i-1,j-1] * ms_res ;
for i := 1 to sets do
begin
ii := selected[i-1];
pred_labels[i-1] := ColLabels[ii-1];
outline := format('%16s %10.5f ',[ColLabels[ii-1],raw_b[i-1]]);
seb := sqrt(ind_mat[i-1,i-1]);
t := raw_b[i-1] / seb ;
f_test := t * t ;
prob_f := probf(f_test,1,df_res);
beta := raw_b[i-1] * stddev[ii-1] / stddev[y_ptr-1] ;
outline := outline + format('%8.4f %8.4f %6.3f %6.4f',
[seb,beta,t,prob_f]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
outline := format('(Intercept) %10.5f',[b_zero]);
OutPutFrm.RichEdit.Lines.Add(outline);
{ MAT_PRINT(sets,ind_mat,pred_labels,'Variance-covariance matrix of b s');}
{ Now see if the gain was significant over last step }
df1 := sets - last_set ;
f_test := ((mult_R2 - last_R2 ) / df1 ) / ( (1.0 - mult_R2) / df_res) ;
prob_f := probf(f_test, df1,df_res);
if prob_f > stop_prob then more_to_do := FALSE ;
R2_diff := mult_R2 - last_R2 ;
OutPutFrm.RichEdit.Lines.Add('');
outline := format('Increase in squared R for this step = %8.6f',[R2_diff]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format('F = %8.4f with D.F. %d and %d with Probability = %6.4f',
[f_test,df1,df_res,prob_f]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------');
OutPutFrm.RichEdit.Lines.Add('');
last_set := sets;
last_R2 := mult_R2;
end;
procedure TBestRegFrm.bump_one(Sender: TObject);
begin
if selected[first_pt-1] < no_predictors then
selected[first_pt-1] := selected[first_pt-1] + 1
else
begin
all_done := FALSE;
while NOT all_done do
begin
first_pt := first_pt -1;
if first_pt < 1 then all_done := TRUE else
begin
selected[first_pt-1] := selected[first_pt-1] + 1;
if selected[first_pt-1] < selected[first_pt] then
begin
re_set(self);
first_pt := pointer;
all_done := TRUE;
end
else selected[first_pt-1] := selected[first_pt-1] - 1;
end;
end;
end;
end;
procedure TBestRegFrm.start_set(Sender: TObject);
var
i : integer;
begin
end_of_set := FALSE;
for i := 1 to sets do
selected[i-1] := i;
first_pt := sets;
pointer := sets;
end;
procedure TBestRegFrm.re_set(Sender: TObject);
var
i : integer;
begin
testval := no_predictors - sets + 1 ;
if (first_pt = 1) AND (selected[first_pt-1] = testval) then
end_of_set := TRUE else
begin
for i := first_pt + 1 to sets do
selected[i-1] := selected[i-2] + 1;
end;
end;
procedure TBestRegFrm.InBtnClick(Sender: TObject);
VAR i, index : integer;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
BlockList.Items.Add(VarList.Items.Strings[i]);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
OutBtn.Enabled := true;
end;
procedure TBestRegFrm.OutBtnClick(Sender: TObject);
VAR index : integer;
begin
index := BlockList.ItemIndex;
VarList.Items.Add(BlockList.Items.Strings[index]);
BlockList.Items.Delete(index);
InBtn.Enabled := true;
if BlockList.Items.Count = 0 then OutBtn.Enabled := false;
end;
procedure TBestRegFrm.AllBtnClick(Sender: TObject);
VAR counts, index : integer;
begin
counts := VarList.Items.Count;
for index := 0 to counts-1 do
begin
BlockList.Items.Add(VarList.Items.Strings[index]);
end;
VarList.Clear;
end;
procedure TBestRegFrm.DepInBtnClick(Sender: TObject);
VAR index : integer;
begin
index := BlockList.ItemIndex;
DepVar.Text := BlockList.Items.Strings[index];
BlockList.Items.Delete(index);
DepOutBtn.Enabled := true;
DepInBtn.Enabled := false;
end;
procedure TBestRegFrm.DepOutBtnClick(Sender: TObject);
begin
BlockList.Items.Add(DepVar.Text);
DepVar.Text := '';
DepInBtn.Enabled := true;
end;
initialization
{$I bestregunit.lrs}
end.

View File

@ -1,398 +0,0 @@
object BestRegFrm: TBestRegFrm
Left = 159
Height = 394
Top = 94
Width = 673
Caption = 'Best Combination Multiple Regression'
ClientHeight = 394
ClientWidth = 673
OnShow = FormShow
LCLVersion = '0.9.26.2'
object Label1: TLabel
Left = 8
Height = 14
Top = 7
Width = 90
Caption = 'Available Variables'
ParentColor = False
end
object Label2: TLabel
Left = 224
Height = 14
Top = 8
Width = 88
Caption = 'Selected Variables'
ParentColor = False
end
object Label3: TLabel
Left = 441
Height = 14
Top = 15
Width = 95
Caption = 'Dependent Variable'
ParentColor = False
end
object Label4: TLabel
Left = 8
Height = 14
Top = 313
Width = 160
Caption = 'Minimum Probability for Inclusion:'
ParentColor = False
end
object VarList: TListBox
Left = 9
Height = 274
Top = 23
Width = 168
MultiSelect = True
TabOrder = 0
end
object InBtn: TBitBtn
Left = 184
Height = 29
Top = 24
Width = 32
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
}
NumGlyphs = 0
OnClick = InBtnClick
TabOrder = 1
end
object OutBtn: TBitBtn
Left = 184
Height = 29
Top = 56
Width = 32
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
}
NumGlyphs = 0
OnClick = OutBtnClick
TabOrder = 2
end
object AllBtn: TBitBtn
Left = 184
Height = 29
Top = 104
Width = 32
Caption = 'ALL'
NumGlyphs = 0
OnClick = AllBtnClick
TabOrder = 3
end
object BlockList: TListBox
Left = 223
Height = 274
Top = 28
Width = 166
TabOrder = 4
end
object DepInBtn: TBitBtn
Left = 400
Height = 29
Top = 32
Width = 32
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
}
NumGlyphs = 0
OnClick = DepInBtnClick
TabOrder = 5
end
object DepOutBtn: TBitBtn
Left = 400
Height = 29
Top = 64
Width = 32
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
}
NumGlyphs = 0
OnClick = DepOutBtnClick
TabOrder = 6
end
object DepVar: TEdit
Left = 440
Height = 19
Top = 41
Width = 148
TabOrder = 7
Text = 'DepVar'
end
object GroupBox1: TGroupBox
Left = 400
Height = 278
Top = 104
Width = 265
Caption = 'Options'
ClientHeight = 260
ClientWidth = 261
TabOrder = 8
object CPChkBox: TCheckBox
Left = 9
Height = 17
Top = 1
Width = 152
Caption = 'Show Cross-Products Matrix'
TabOrder = 0
end
object CovChkBox: TCheckBox
Left = 9
Height = 17
Top = 23
Width = 200
Caption = 'Show Deviation Cross-Products Matrix'
TabOrder = 1
end
object CorrsChkBox: TCheckBox
Left = 9
Height = 17
Top = 46
Width = 156
Caption = 'Show Intercorrelations Matrix'
TabOrder = 2
end
object MeansChkBox: TCheckBox
Left = 9
Height = 17
Top = 70
Width = 82
Caption = 'Show Means'
TabOrder = 3
end
object VarChkBox: TCheckBox
Left = 9
Height = 17
Top = 95
Width = 97
Caption = 'Show Variances'
TabOrder = 4
end
object SDChkBox: TCheckBox
Left = 9
Height = 17
Top = 120
Width = 146
Caption = 'Show Standard Deviations'
TabOrder = 5
end
object MatSaveChkBox: TCheckBox
Left = 9
Height = 17
Top = 144
Width = 129
Caption = 'Save Correlation Matrix'
TabOrder = 6
end
object PredictChkBox: TCheckBox
Left = 9
Height = 17
Top = 168
Width = 171
Caption = 'Predictions,residuals,C.I''s to grid'
TabOrder = 7
end
object MatInChkBox: TCheckBox
Left = 9
Height = 17
Top = 192
Width = 134
Caption = 'Enter Data from a Matrix'
TabOrder = 8
end
object ComboShowChkBox: TCheckBox
Left = 9
Height = 17
Top = 216
Width = 188
Caption = 'Show Results for each Combination'
TabOrder = 9
end
end
object InProb: TEdit
Left = 176
Height = 19
Top = 306
Width = 40
TabOrder = 9
Text = 'InProb'
end
object ResetBtn: TButton
Left = 7
Height = 32
Top = 350
Width = 74
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 10
end
object CancelBtn: TButton
Left = 103
Height = 32
Top = 350
Width = 74
Caption = 'Cancel'
ModalResult = 2
TabOrder = 11
end
object ComputeBtn: TButton
Left = 224
Height = 32
Top = 350
Width = 74
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 12
end
object ReturnBtn: TButton
Left = 320
Height = 32
Top = 350
Width = 74
Caption = 'Return'
ModalResult = 1
TabOrder = 13
end
object OpenDialog1: TOpenDialog
left = 236
top = 317
end
object SaveDialog1: TSaveDialog
left = 290
top = 315
end
end

View File

@ -1,261 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TBestRegFrm','FORMDATA',[
'TPF0'#11'TBestRegFrm'#10'BestRegFrm'#4'Left'#3#159#0#6'Height'#3#138#1#3'Top'
+#2'^'#5'Width'#3#161#2#7'Caption'#6'$Best Combination Multiple Regression'#12
+'ClientHeight'#3#138#1#11'ClientWidth'#3#161#2#6'OnShow'#7#8'FormShow'#10'LC'
+'LVersion'#6#8'0.9.26.2'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'#2#14#3
+'Top'#2#7#5'Width'#2'Z'#7'Caption'#6#19'Available Variables'#11'ParentColor'
+#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#224#0#6'Height'#2#14#3'Top'#2#8#5'Width'
+#2'X'#7'Caption'#6#18'Selected Variables'#11'ParentColor'#8#0#0#6'TLabel'#6
+'Label3'#4'Left'#3#185#1#6'Height'#2#14#3'Top'#2#15#5'Width'#2'_'#7'Caption'
+#6#18'Dependent Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#2
+#8#6'Height'#2#14#3'Top'#3'9'#1#5'Width'#3#160#0#7'Caption'#6'"Minimum Proba'
+'bility for Inclusion:'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'
+#2#9#6'Height'#3#18#1#3'Top'#2#23#5'Width'#3#168#0#11'MultiSelect'#9#8'TabOr'
+'der'#2#0#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#184#0#6'Height'#2#29#3'Top'#2#24
+#5'Width'#2' '#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0
+#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0
+#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'
+#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'a'#190
+'m'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255
+'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139
+'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160
+#215#169#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255
+#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128
+#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199
+'t'#255#165#218#174#255#162#216#171#255#158#214#167#255#154#212#163#255#150
+#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255
+#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255
+#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255
+'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163
+'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247
+';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187
+'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnCl'
+'ick'#7#10'InBtnClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#184
,#0#6'Height'#2#29#3'Top'#2'8'#5'Width'#2' '#10'Glyph.Data'#10':'#4#0#0'6'#4#0
+#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0
+#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207
+'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'
+#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255
+#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134#255#156#213#165#255#152#211
+#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130
+#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'
+#255#255#255#255#0#255#255#255#0'h'#199't'#201''#204#138#255#162#216#171#255
+#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149
+#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'
+#255'%i)'#255#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205
+#139#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'
+#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'
+#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'
+#195'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199
+'t'#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'OutBtnClick'#8'TabOrder'#2#2#0#0
+#7'TBitBtn'#6'AllBtn'#4'Left'#3#184#0#6'Height'#2#29#3'Top'#2'h'#5'Width'#2
+' '#7'Caption'#6#3'ALL'#9'NumGlyphs'#2#0#7'OnClick'#7#11'AllBtnClick'#8'TabO'
+'rder'#2#3#0#0#8'TListBox'#9'BlockList'#4'Left'#3#223#0#6'Height'#3#18#1#3'T'
+'op'#2#28#5'Width'#3#166#0#8'TabOrder'#2#4#0#0#7'TBitBtn'#8'DepInBtn'#4'Left'
+#3#144#1#6'Height'#2#29#3'Top'#2' '#5'Width'#2' '#10'Glyph.Data'#10':'#4#0#0
+'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0
+#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'
+#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'
+#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255
+#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211
+#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130
+#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'
+#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171
+#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204
+#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'
+#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255
+'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161
+'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#13'DepInBtnClick'#8'TabOr'
+'der'#2#5#0#0#7'TBitBtn'#9'DepOutBtn'#4'Left'#3#144#1#6'Height'#2#29#3'Top'#2
+'@'#5'Width'#2' '#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0
+#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0
+#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153
+'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'
+#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255
,'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'
+#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195
+'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255
+#255#0'h'#199't'#201''#204#138#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255
+#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#14'DepOutBtnClick'#8'TabOrder'#2#6#0#0#5'TEdit'#6'DepV'
+'ar'#4'Left'#3#184#1#6'Height'#2#19#3'Top'#2')'#5'Width'#3#148#0#8'TabOrder'
+#2#7#4'Text'#6#6'DepVar'#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3#144#1#6'Hei'
+'ght'#3#22#1#3'Top'#2'h'#5'Width'#3#9#1#7'Caption'#6#7'Options'#12'ClientHei'
+'ght'#3#4#1#11'ClientWidth'#3#5#1#8'TabOrder'#2#8#0#9'TCheckBox'#8'CPChkBox'
+#4'Left'#2#9#6'Height'#2#17#3'Top'#2#1#5'Width'#3#152#0#7'Caption'#6#26'Show'
+' Cross-Products Matrix'#8'TabOrder'#2#0#0#0#9'TCheckBox'#9'CovChkBox'#4'Lef'
+'t'#2#9#6'Height'#2#17#3'Top'#2#23#5'Width'#3#200#0#7'Caption'#6'$Show Devia'
+'tion Cross-Products Matrix'#8'TabOrder'#2#1#0#0#9'TCheckBox'#11'CorrsChkBox'
+#4'Left'#2#9#6'Height'#2#17#3'Top'#2'.'#5'Width'#3#156#0#7'Caption'#6#29'Sho'
+'w Intercorrelations Matrix'#8'TabOrder'#2#2#0#0#9'TCheckBox'#11'MeansChkBox'
+#4'Left'#2#9#6'Height'#2#17#3'Top'#2'F'#5'Width'#2'R'#7'Caption'#6#10'Show M'
+'eans'#8'TabOrder'#2#3#0#0#9'TCheckBox'#9'VarChkBox'#4'Left'#2#9#6'Height'#2
+#17#3'Top'#2'_'#5'Width'#2'a'#7'Caption'#6#14'Show Variances'#8'TabOrder'#2#4
+#0#0#9'TCheckBox'#8'SDChkBox'#4'Left'#2#9#6'Height'#2#17#3'Top'#2'x'#5'Width'
+#3#146#0#7'Caption'#6#24'Show Standard Deviations'#8'TabOrder'#2#5#0#0#9'TCh'
+'eckBox'#13'MatSaveChkBox'#4'Left'#2#9#6'Height'#2#17#3'Top'#3#144#0#5'Width'
+#3#129#0#7'Caption'#6#23'Save Correlation Matrix'#8'TabOrder'#2#6#0#0#9'TChe'
+'ckBox'#13'PredictChkBox'#4'Left'#2#9#6'Height'#2#17#3'Top'#3#168#0#5'Width'
+#3#171#0#7'Caption'#6'#Predictions,residuals,C.I''s to grid'#8'TabOrder'#2#7
+#0#0#9'TCheckBox'#11'MatInChkBox'#4'Left'#2#9#6'Height'#2#17#3'Top'#3#192#0#5
+'Width'#3#134#0#7'Caption'#6#24'Enter Data from a Matrix'#8'TabOrder'#2#8#0#0
+#9'TCheckBox'#15'ComboShowChkBox'#4'Left'#2#9#6'Height'#2#17#3'Top'#3#216#0#5
+'Width'#3#188#0#7'Caption'#6'!Show Results for each Combination'#8'TabOrder'
+#2#9#0#0#0#5'TEdit'#6'InProb'#4'Left'#3#176#0#6'Height'#2#19#3'Top'#3'2'#1#5
+'Width'#2'('#8'TabOrder'#2#9#4'Text'#6#6'InProb'#0#0#7'TButton'#8'ResetBtn'#4
+'Left'#2#7#6'Height'#2' '#3'Top'#3'^'#1#5'Width'#2'J'#7'Caption'#6#5'Reset'#7
+'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#10#0#0#7'TButton'#9'CancelBtn'#4
+'Left'#2'g'#6'Height'#2' '#3'Top'#3'^'#1#5'Width'#2'J'#7'Caption'#6#6'Cancel'
+#11'ModalResult'#2#2#8'TabOrder'#2#11#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3
+#224#0#6'Height'#2' '#3'Top'#3'^'#1#5'Width'#2'J'#7'Caption'#6#7'Compute'#7
+'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#12#0#0#7'TButton'#9'ReturnBtn'
+#4'Left'#3'@'#1#6'Height'#2' '#3'Top'#3'^'#1#5'Width'#2'J'#7'Caption'#6#6'Re'
+'turn'#11'ModalResult'#2#1#8'TabOrder'#2#13#0#0#11'TOpenDialog'#11'OpenDialo'
+'g1'#4'left'#3#236#0#3'top'#3'='#1#0#0#11'TSaveDialog'#11'SaveDialog1'#4'lef'
,'t'#3'"'#1#3'top'#3';'#1#0#0#0
]);

View File

@ -1,166 +0,0 @@
unit BinomialUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, OutPutUnit, Math, FunctionsLib, GraphLib;
type
{ TBinomialFrm }
TBinomialFrm = class(TForm)
PlotChk: TCheckBox;
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
FreqAEdit: TEdit;
FreqBEdit: TEdit;
PropAEdit: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure ComputeBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FreqAEditKeyPress(Sender: TObject; var Key: char);
procedure FreqBEditKeyPress(Sender: TObject; var Key: char);
procedure PropAEditKeyPress(Sender: TObject; var Key: char);
procedure ResetBtnClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
BinomialFrm: TBinomialFrm;
implementation
{ TBinomialFrm }
procedure TBinomialFrm.ResetBtnClick(Sender: TObject);
begin
FreqAEdit.Text := '';
FreqBEdit.Text := '';
PropAEdit.Text := '';
FreqAEdit.SetFocus;
end;
procedure TBinomialFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TBinomialFrm.ComputeBtnClick(Sender: TObject);
var
p, Q, Probability, z, CorrectedA, SumProb : double;
A, b, N, X, i, j : integer;
outline : string;
begin
SumProb := 0.0;
A := round(StrToFloat(FreqAEdit.Text));
b := round(StrToFloat(FreqBEdit.Text));
p := StrToFloat(PropAEdit.Text);
N := A + b;
Q := 1.0 - p;
OutPutFrm.RichEdit.Clear;
OutPutFrm.RichEdit.Lines.Add('Binomial Probability Test');
OutPutFrm.RichEdit.Lines.Add('');
outline := format('Frequency of %d out of %d observed',[A, N]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format('The theoretical proportion expected in category A is %5.3f',
[p]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := 'The test is for the probability of a value in category A as small or smaller';
OutPutFrm.RichEdit.Lines.Add(outline);
outline := 'than that observed given the expected proportion.';
OutPutFrm.RichEdit.Lines.Add(outline);
if (N > 35) then //Use normal distribution approximation
begin
CorrectedA := A;
if A < (N * p) then CorrectedA := A + 0.5;
if A > (N * p) then CorrectedA := A - 0.5;
z := (CorrectedA - N * p) / sqrt(N * p * Q);
outline := format('Z value for Normal Distribution approximation := %5.3f',
[z]);
OutPutFrm.RichEdit.Lines.Add(outline);
Probability := probz(z);
outline := format('Probability := %6.4f',[Probability]);
OutPutFrm.RichEdit.Lines.Add(outline);
end
else //Use binomial fomula
begin
for X := 0 to A do
begin
Probability := combos(X, N) * Power(p,X) * Power(Q,(N - X));
outline := format('Probability of %d = %6.4f',[X,Probability]);
OutPutFrm.RichEdit.Lines.Add(outline);
SumProb := SumProb + Probability;
end;
outline := format('Binomial Probability of %d or less out of %d = %6.4f',
[A,N,SumProb]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
if PlotChk.Checked then
begin
if N <= 35 then
begin
SetLength(GraphFrm.Xpoints,1,N+1);
SetLength(GraphFrm.Ypoints,1,N+1);
for i := 0 to N do GraphFrm.Xpoints[0,i] := i;
for i := 0 to N do
begin
Probability := combos(i,N) * power(p,i) * power(Q,(N-i));
GraphFrm.Ypoints[0,i] := Probability;
end;
GraphFrm.GraphType := 2;
GraphFrm.nosets := 1;
GraphFrm.nbars := N;
GraphFrm.BackColor := clYellow;
GraphFrm.WallColor := clBlue;
GraphFrm.FloorColor := clGray;
GraphFrm.Heading := 'Binomial Distribution';
GraphFrm.XTitle := 'Values';
GraphFrm.YTitle := 'Probability';
GraphFrm.barwideprop := 0.5;
GraphFrm.AutoScale := true;
GraphFrm.ShowLeftWall := true;
GraphFrm.ShowRightWall := true;
GraphFrm.ShowBottomWall := true;
GraphFrm.ShowModal;
end
else ShowMessage('Cannot plot for N > 35');
end;
GraphFrm.Xpoints := nil;
GraphFrm.Ypoints := nil;
end;
procedure TBinomialFrm.FreqAEditKeyPress(Sender: TObject; var Key: char);
begin
if Ord(Key) = 13 then FreqBEdit.SetFocus;
end;
procedure TBinomialFrm.FreqBEditKeyPress(Sender: TObject; var Key: char);
begin
if Ord(Key) = 13 then PropAEdit.SetFocus;
end;
procedure TBinomialFrm.PropAEditKeyPress(Sender: TObject; var Key: char);
begin
if Ord(Key) = 13 then ComputeBtn.SetFocus;
end;
initialization
{$I binomialunit.lrs}
end.

View File

@ -1,106 +0,0 @@
object BinomialFrm: TBinomialFrm
Left = 154
Height = 181
Top = 103
Width = 355
Caption = 'Binomial Probability Calculator'
ClientHeight = 181
ClientWidth = 355
OnShow = FormShow
LCLVersion = '0.9.30'
object Label1: TLabel
Left = 9
Height = 16
Top = 17
Width = 240
Caption = 'Frequency of events observed in category ''A'':'
ParentColor = False
end
object Label2: TLabel
Left = 8
Height = 16
Top = 49
Width = 239
Caption = 'Frequency of events observed in category ''B'':'
ParentColor = False
end
object Label3: TLabel
Left = 8
Height = 16
Top = 80
Width = 241
Caption = 'Proportion of events expected in category ''A'':'
ParentColor = False
end
object ResetBtn: TButton
Left = 8
Height = 26
Top = 136
Width = 58
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 0
end
object CancelBtn: TButton
Left = 80
Height = 26
Top = 136
Width = 58
Caption = 'Cancel'
ModalResult = 2
TabOrder = 1
end
object ComputeBtn: TButton
Left = 176
Height = 26
Top = 136
Width = 58
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 2
end
object ReturnBtn: TButton
Left = 256
Height = 26
Top = 136
Width = 58
Caption = 'Return'
ModalResult = 1
TabOrder = 3
end
object FreqAEdit: TEdit
Left = 272
Height = 23
Top = 8
Width = 43
OnKeyPress = FreqAEditKeyPress
TabOrder = 4
Text = 'FreqAEdit'
end
object FreqBEdit: TEdit
Left = 272
Height = 23
Top = 40
Width = 43
OnKeyPress = FreqBEditKeyPress
TabOrder = 5
Text = 'Edit1'
end
object PropAEdit: TEdit
Left = 272
Height = 23
Top = 72
Width = 43
OnKeyPress = PropAEditKeyPress
TabOrder = 6
Text = 'Edit1'
end
object PlotChk: TCheckBox
Left = 8
Height = 19
Top = 107
Width = 125
Caption = 'Plot the distribution'
TabOrder = 7
end
end

View File

@ -1,30 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TBinomialFrm','FORMDATA',[
'TPF0'#12'TBinomialFrm'#11'BinomialFrm'#4'Left'#3#154#0#6'Height'#3#181#0#3'T'
+'op'#2'g'#5'Width'#3'c'#1#7'Caption'#6#31'Binomial Probability Calculator'#12
+'ClientHeight'#3#181#0#11'ClientWidth'#3'c'#1#6'OnShow'#7#8'FormShow'#10'LCL'
+'Version'#6#6'0.9.30'#0#6'TLabel'#6'Label1'#4'Left'#2#9#6'Height'#2#16#3'Top'
+#2#17#5'Width'#3#240#0#7'Caption'#6'-Frequency of events observed in categor'
+'y ''A'':'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2
+#16#3'Top'#2'1'#5'Width'#3#239#0#7'Caption'#6'-Frequency of events observed '
+'in category ''B'':'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#2#8#6
+'Height'#2#16#3'Top'#2'P'#5'Width'#3#241#0#7'Caption'#6'.Proportion of event'
+'s expected in category ''A'':'#11'ParentColor'#8#0#0#7'TButton'#8'ResetBtn'
+#4'Left'#2#8#6'Height'#2#26#3'Top'#3#136#0#5'Width'#2':'#7'Caption'#6#5'Rese'
+'t'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#0#0#0#7'TButton'#9'CancelBt'
+'n'#4'Left'#2'P'#6'Height'#2#26#3'Top'#3#136#0#5'Width'#2':'#7'Caption'#6#6
+'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#1#0#0#7'TButton'#10'ComputeBtn'#4
+'Left'#3#176#0#6'Height'#2#26#3'Top'#3#136#0#5'Width'#2':'#7'Caption'#6#7'Co'
+'mpute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#2#0#0#7'TButton'#9'Re'
+'turnBtn'#4'Left'#3#0#1#6'Height'#2#26#3'Top'#3#136#0#5'Width'#2':'#7'Captio'
+'n'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#3#0#0#5'TEdit'#9'FreqAEdit'
+#4'Left'#3#16#1#6'Height'#2#23#3'Top'#2#8#5'Width'#2'+'#10'OnKeyPress'#7#17
+'FreqAEditKeyPress'#8'TabOrder'#2#4#4'Text'#6#9'FreqAEdit'#0#0#5'TEdit'#9'Fr'
+'eqBEdit'#4'Left'#3#16#1#6'Height'#2#23#3'Top'#2'('#5'Width'#2'+'#10'OnKeyPr'
+'ess'#7#17'FreqBEditKeyPress'#8'TabOrder'#2#5#4'Text'#6#5'Edit1'#0#0#5'TEdit'
+#9'PropAEdit'#4'Left'#3#16#1#6'Height'#2#23#3'Top'#2'H'#5'Width'#2'+'#10'OnK'
+'eyPress'#7#17'PropAEditKeyPress'#8'TabOrder'#2#6#4'Text'#6#5'Edit1'#0#0#9'T'
+'CheckBox'#7'PlotChk'#4'Left'#2#8#6'Height'#2#19#3'Top'#2'k'#5'Width'#2'}'#7
+'Caption'#6#21'Plot the distribution'#8'TabOrder'#2#7#0#0#0
]);

File diff suppressed because it is too large Load Diff

View File

@ -1,730 +0,0 @@
object BlksAnovaFrm: TBlksAnovaFrm
Left = 143
Height = 490
Top = 110
Width = 731
Caption = 'One, Two or Three Way Analysis of Variance'
ClientHeight = 490
ClientWidth = 731
OnShow = FormShow
LCLVersion = '0.9.30.4'
object Label1: TLabel
Left = 8
Height = 16
Top = 11
Width = 51
Caption = 'Variables:'
ParentColor = False
end
object Label2: TLabel
Left = 408
Height = 16
Top = 104
Width = 72
Caption = 'Variable Type'
ParentColor = False
end
object Label3: TLabel
Left = 7
Height = 16
Top = 415
Width = 150
Caption = 'Alpha Level for Overall Tests'
ParentColor = False
end
object Label4: TLabel
Left = 223
Height = 16
Top = 415
Width = 166
Caption = 'Alpha Level for Post-Hoc Tests:'
ParentColor = False
end
object VarList: TListBox
Left = 8
Height = 368
Top = 29
Width = 185
ItemHeight = 0
TabOrder = 0
end
object DepIn: TBitBtn
Left = 208
Height = 29
Top = 25
Width = 32
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
}
NumGlyphs = 0
OnClick = DepInClick
TabOrder = 1
end
object DepOut: TBitBtn
Left = 208
Height = 29
Top = 64
Width = 32
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
}
NumGlyphs = 0
OnClick = DepOutClick
TabOrder = 2
end
object Fact1In: TBitBtn
Left = 208
Height = 29
Top = 120
Width = 32
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
}
NumGlyphs = 0
OnClick = Fact1InClick
TabOrder = 3
end
object Fact1Out: TBitBtn
Left = 208
Height = 29
Top = 160
Width = 32
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
}
NumGlyphs = 0
OnClick = Fact1OutClick
TabOrder = 4
end
object Fact2In: TBitBtn
Left = 208
Height = 29
Top = 216
Width = 32
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
}
NumGlyphs = 0
OnClick = Fact2InClick
TabOrder = 5
end
object Fact2Out: TBitBtn
Left = 208
Height = 29
Top = 256
Width = 32
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
}
NumGlyphs = 0
OnClick = Fact2OutClick
TabOrder = 6
end
object Fact3In: TBitBtn
Left = 208
Height = 29
Top = 312
Width = 32
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
}
NumGlyphs = 0
OnClick = Fact3InClick
TabOrder = 7
end
object Fact3Out: TBitBtn
Left = 208
Height = 29
Top = 352
Width = 32
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
}
NumGlyphs = 0
OnClick = Fact3OutClick
TabOrder = 8
end
object StaticText1: TStaticText
Left = 256
Height = 15
Top = 21
Width = 73
Caption = 'Dependent Variable'
TabOrder = 9
end
object StaticText2: TStaticText
Left = 256
Height = 17
Top = 112
Width = 83
Caption = 'Factor 1 Variable'
TabOrder = 10
end
object StaticText3: TStaticText
Left = 256
Height = 13
Top = 216
Width = 95
Caption = 'Factor 2 Variable'
TabOrder = 11
end
object StaticText4: TStaticText
Left = 256
Height = 12
Top = 312
Width = 88
Caption = 'Factor 3 Clark'
TabOrder = 12
end
object DepVar: TEdit
Left = 257
Height = 23
Top = 41
Width = 135
TabOrder = 13
Text = 'DepVar'
end
object Factor1: TEdit
Left = 256
Height = 23
Top = 136
Width = 135
TabOrder = 14
Text = 'Edit1'
end
object Factor2: TEdit
Left = 256
Height = 23
Top = 240
Width = 135
TabOrder = 15
Text = 'Edit1'
end
object Factor3: TEdit
Left = 256
Height = 23
Top = 336
Width = 135
TabOrder = 16
Text = 'Edit1'
end
object Fact1Grp: TRadioGroup
Left = 408
Height = 64
Top = 128
Width = 122
AutoFill = True
Caption = 'Factor 1'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 46
ClientWidth = 118
Items.Strings = (
'Fixed Levels'
'Random Levels'
)
TabOrder = 17
end
object Fact2Grp: TRadioGroup
Left = 408
Height = 64
Top = 232
Width = 124
AutoFill = True
Caption = 'Factor 2'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 46
ClientWidth = 120
Items.Strings = (
'Fixed Levels'
'Random Levels'
)
TabOrder = 18
end
object Fact3Grp: TRadioGroup
Left = 408
Height = 61
Top = 319
Width = 124
AutoFill = True
Caption = 'Factor 3'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 43
ClientWidth = 120
Items.Strings = (
'Fixed Levels'
'Random Levels'
)
TabOrder = 19
end
object GroupBox1: TGroupBox
Left = 542
Height = 201
Top = 21
Width = 171
Caption = 'Post-Hoc Comparisons:'
ClientHeight = 183
ClientWidth = 167
TabOrder = 20
object Scheffe: TCheckBox
Left = 8
Height = 19
Top = 8
Width = 59
Caption = 'Scheffe'
TabOrder = 0
end
end
object TukeyHSD: TCheckBox
Left = 552
Height = 19
Top = 64
Width = 115
Caption = 'Tukey HSD (= n''s)'
TabOrder = 21
end
object TukeyB: TCheckBox
Left = 552
Height = 19
Top = 88
Width = 99
Caption = 'Tukey B (= n''s)'
TabOrder = 22
end
object TukeyKramer: TCheckBox
Left = 552
Height = 19
Top = 112
Width = 95
Caption = 'Tukey-Kramer'
TabOrder = 23
end
object NewmanKeuls: TCheckBox
Left = 552
Height = 19
Top = 136
Width = 138
Caption = 'Newman-Keuls (= n''s)'
TabOrder = 24
end
object Bonferoni: TCheckBox
Left = 552
Height = 19
Top = 160
Width = 76
Caption = 'Bonferroni'
TabOrder = 25
end
object OrthoContrasts: TCheckBox
Left = 552
Height = 19
Top = 184
Width = 134
Caption = 'Orthogonal Contrasts'
TabOrder = 26
end
object GroupBox2: TGroupBox
Left = 544
Height = 168
Top = 240
Width = 169
Caption = 'Options'
ClientHeight = 150
ClientWidth = 165
TabOrder = 27
object PlotMeans: TCheckBox
Left = 8
Height = 19
Top = 6
Width = 154
Caption = 'Plot Means Using 3D bars'
TabOrder = 0
end
object Plot2DLines: TCheckBox
Left = 6
Height = 19
Top = 29
Width = 159
Caption = 'Plot Means Using 2D Lines'
TabOrder = 1
end
object Plot3DLines: TCheckBox
Left = 7
Height = 19
Top = 53
Width = 159
Caption = 'Plot Means Using 3D Lines'
TabOrder = 2
end
object BrownForsythe: TCheckBox
Left = 8
Height = 19
Top = 104
Width = 157
Caption = 'Brown-Forsythe for 1-way'
TabOrder = 3
end
object Welch: TCheckBox
Left = 7
Height = 19
Top = 128
Width = 106
Caption = 'Welch for 1-way'
TabOrder = 4
end
object Label5: TLabel
Left = 8
Height = 16
Top = 80
Width = 149
Caption = 'Corrections for unequal Var.'
ParentColor = False
end
end
object OverallAlpha: TEdit
Left = 158
Height = 23
Top = 408
Width = 45
TabOrder = 28
Text = 'OverallAlpha'
end
object PostAlpha: TEdit
Left = 384
Height = 23
Top = 408
Width = 51
TabOrder = 29
Text = 'PostAlpha'
end
object ResetBtn: TButton
Left = 207
Height = 32
Top = 448
Width = 77
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 30
end
object CancelBtn: TButton
Left = 320
Height = 32
Top = 448
Width = 77
Caption = 'Cancel'
ModalResult = 2
TabOrder = 31
end
object ComputeBtn: TButton
Left = 432
Height = 31
Top = 448
Width = 77
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 32
end
object ReturnBtn: TButton
Left = 544
Height = 31
Top = 448
Width = 77
Caption = 'Return'
ModalResult = 1
TabOrder = 33
end
object HelpBtn: TButton
Tag = 107
Left = 96
Height = 32
Top = 447
Width = 78
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 34
end
end

View File

@ -1,512 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TBlksAnovaFrm','FORMDATA',[
'TPF0'#13'TBlksAnovaFrm'#12'BlksAnovaFrm'#4'Left'#3#143#0#6'Height'#3#234#1#3
+'Top'#2'n'#5'Width'#3#219#2#7'Caption'#6'*One, Two or Three Way Analysis of '
+'Variance'#12'ClientHeight'#3#234#1#11'ClientWidth'#3#219#2#6'OnShow'#7#8'Fo'
+'rmShow'#10'LCLVersion'#6#8'0.9.30.4'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'He'
+'ight'#2#16#3'Top'#2#11#5'Width'#2'3'#7'Caption'#6#10'Variables:'#11'ParentC'
+'olor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#152#1#6'Height'#2#16#3'Top'#2'h'#5
+'Width'#2'H'#7'Caption'#6#13'Variable Type'#11'ParentColor'#8#0#0#6'TLabel'#6
+'Label3'#4'Left'#2#7#6'Height'#2#16#3'Top'#3#159#1#5'Width'#3#150#0#7'Captio'
+'n'#6#29'Alpha Level for Overall Tests'#11'ParentColor'#8#0#0#6'TLabel'#6'La'
+'bel4'#4'Left'#3#223#0#6'Height'#2#16#3'Top'#3#159#1#5'Width'#3#166#0#7'Capt'
+'ion'#6#31'Alpha Level for Post-Hoc Tests:'#11'ParentColor'#8#0#0#8'TListBox'
+#7'VarList'#4'Left'#2#8#6'Height'#3'p'#1#3'Top'#2#29#5'Width'#3#185#0#10'Ite'
+'mHeight'#2#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#5'DepIn'#4'Left'#3#208#0#6'Heig'
+'ht'#2#29#3'Top'#2#25#5'Width'#2' '#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'
+#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0
+'d'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'
+#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'
+#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255
+#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255#148#208
+#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'
+#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255
+#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158#214#167
+#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202
+#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'
+#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'
+#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'
+#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#9'NumGlyphs'#2#0#7'OnClick'#7#10'DepInClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'
,#6'DepOut'#4'Left'#3#208#0#6'Height'#2#29#3'Top'#2'@'#5'Width'#2' '#10'Glyph'
+'.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16
+#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255
+'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'
+#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134#255#156
+#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255
+#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255
+'r'#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201#127#204#138
+#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207
+#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'
+#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'
+#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'
+#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'DepOutClick'#8
+'TabOrder'#2#2#0#0#7'TBitBtn'#7'Fact1In'#4'Left'#3#208#0#6'Height'#2#29#3'To'
+'p'#2'x'#5'Width'#2' '#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0
+'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0
+#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'
+#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'
+#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195
+'q'#255#160#215#169#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255
+#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255
+#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255
+']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145
+'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#12'Fact1InClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#8'Fact'
+'1Out'#4'Left'#3#208#0#6'Height'#2#29#3'Top'#3#160#0#5'Width'#2' '#10'Glyph.'
+'Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16
+#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255
+'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'
+#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134#255#156
+#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255
,#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255
+'r'#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201#127#204#138
+#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207
+#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'
+#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'
+#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'
+#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#13'Fact1OutClick'
+#8'TabOrder'#2#4#0#0#7'TBitBtn'#7'Fact2In'#4'Left'#3#208#0#6'Height'#2#29#3
+'Top'#3#216#0#5'Width'#2' '#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0
+#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0
+'d'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'
+#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'
+#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255#0
+'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255#148#208#157
+#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195
+#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0
+#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158#214#167#255
+#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144
+#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201
+#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190
+'m'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255
+'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
,#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#9'NumGlyphs'#2#0#7'OnClick'#7#12'Fact2InClick'#8'TabOrder'#2#5#0#0#7'TBitBt'
+'n'#8'Fact2Out'#4'Left'#3#208#0#6'Height'#2#29#3'Top'#3#0#1#5'Width'#2' '#10
+'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0
+#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'
+#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'
+#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134
+#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203
+#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190
+'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201#127
+#204#138#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255
+#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135
+#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255
+#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177
+'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#13
+'Fact2OutClick'#8'TabOrder'#2#6#0#0#7'TBitBtn'#7'Fact3In'#4'Left'#3#208#0#6
+'Height'#2#29#3'Top'#3'8'#1#5'Width'#2' '#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0
+'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4
+#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'
+#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'
+#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0
+#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255
+#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137
+#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255
+#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158
+#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255
+#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255
+'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'
+#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'
+#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#12'Fact3InClick'#8'TabOrder'#2#7
+#0#0#7'TBitBtn'#8'Fact3Out'#4'Left'#3#208#0#6'Height'#2#29#3'Top'#3'`'#1#5'W'
+'idth'#2' '#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0
+'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0
+#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'
+#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'
+#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255
+'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'
+#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195
+'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255
+#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255
+#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#13'Fact3OutClick'#8'TabOrder'#2#8#0#0#11'TStaticText'
+#11'StaticText1'#4'Left'#3#0#1#6'Height'#2#15#3'Top'#2#21#5'Width'#2'I'#7'Ca'
+'ption'#6#18'Dependent Variable'#8'TabOrder'#2#9#0#0#11'TStaticText'#11'Stat'
+'icText2'#4'Left'#3#0#1#6'Height'#2#17#3'Top'#2'p'#5'Width'#2'S'#7'Caption'#6
+#17'Factor 1 Variable'#8'TabOrder'#2#10#0#0#11'TStaticText'#11'StaticText3'#4
+'Left'#3#0#1#6'Height'#2#13#3'Top'#3#216#0#5'Width'#2'_'#7'Caption'#6#17'Fac'
+'tor 2 Variable'#8'TabOrder'#2#11#0#0#11'TStaticText'#11'StaticText4'#4'Left'
+#3#0#1#6'Height'#2#12#3'Top'#3'8'#1#5'Width'#2'X'#7'Caption'#6#14'Factor 3 C'
+'lark'#8'TabOrder'#2#12#0#0#5'TEdit'#6'DepVar'#4'Left'#3#1#1#6'Height'#2#23#3
+'Top'#2')'#5'Width'#3#135#0#8'TabOrder'#2#13#4'Text'#6#6'DepVar'#0#0#5'TEdit'
+#7'Factor1'#4'Left'#3#0#1#6'Height'#2#23#3'Top'#3#136#0#5'Width'#3#135#0#8'T'
+'abOrder'#2#14#4'Text'#6#5'Edit1'#0#0#5'TEdit'#7'Factor2'#4'Left'#3#0#1#6'He'
+'ight'#2#23#3'Top'#3#240#0#5'Width'#3#135#0#8'TabOrder'#2#15#4'Text'#6#5'Edi'
+'t1'#0#0#5'TEdit'#7'Factor3'#4'Left'#3#0#1#6'Height'#2#23#3'Top'#3'P'#1#5'Wi'
+'dth'#3#135#0#8'TabOrder'#2#16#4'Text'#6#5'Edit1'#0#0#11'TRadioGroup'#8'Fact'
+'1Grp'#4'Left'#3#152#1#6'Height'#2'@'#3'Top'#3#128#0#5'Width'#2'z'#8'AutoFil'
+'l'#9#7'Caption'#6#8'Factor 1'#28'ChildSizing.LeftRightSpacing'#2#6#28'Child'
+'Sizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomo'
+'genousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildR'
+'esize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing'
+'.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftTo'
+'RightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2
+'.'#11'ClientWidth'#2'v'#13'Items.Strings'#1#6#12'Fixed Levels'#6#13'Random '
+'Levels'#0#8'TabOrder'#2#17#0#0#11'TRadioGroup'#8'Fact2Grp'#4'Left'#3#152#1#6
,'Height'#2'@'#3'Top'#3#232#0#5'Width'#2'|'#8'AutoFill'#9#7'Caption'#6#8'Fact'
+'or 2'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'
+#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'Chi'
+'ldSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.Shr'
+'inkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crs'
+'ScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27
+'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'.'#11'ClientWidth'#2'x'
+#13'Items.Strings'#1#6#12'Fixed Levels'#6#13'Random Levels'#0#8'TabOrder'#2
+#18#0#0#11'TRadioGroup'#8'Fact3Grp'#4'Left'#3#152#1#6'Height'#2'='#3'Top'#3
+'?'#1#5'Width'#2'|'#8'AutoFill'#9#7'Caption'#6#8'Factor 3'#28'ChildSizing.Le'
+'ftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.Enl'
+'argeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertic'
+'al'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'cr'
+'sScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildS'
+'izing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPe'
+'rLine'#2#1#12'ClientHeight'#2'+'#11'ClientWidth'#2'x'#13'Items.Strings'#1#6
+#12'Fixed Levels'#6#13'Random Levels'#0#8'TabOrder'#2#19#0#0#9'TGroupBox'#9
+'GroupBox1'#4'Left'#3#30#2#6'Height'#3#201#0#3'Top'#2#21#5'Width'#3#171#0#7
+'Caption'#6#21'Post-Hoc Comparisons:'#12'ClientHeight'#3#183#0#11'ClientWidt'
+'h'#3#167#0#8'TabOrder'#2#20#0#9'TCheckBox'#7'Scheffe'#4'Left'#2#8#6'Height'
+#2#19#3'Top'#2#8#5'Width'#2';'#7'Caption'#6#7'Scheffe'#8'TabOrder'#2#0#0#0#0
+#9'TCheckBox'#8'TukeyHSD'#4'Left'#3'('#2#6'Height'#2#19#3'Top'#2'@'#5'Width'
+#2's'#7'Caption'#6#17'Tukey HSD (= n''s)'#8'TabOrder'#2#21#0#0#9'TCheckBox'#6
+'TukeyB'#4'Left'#3'('#2#6'Height'#2#19#3'Top'#2'X'#5'Width'#2'c'#7'Caption'#6
+#15'Tukey B (= n''s)'#8'TabOrder'#2#22#0#0#9'TCheckBox'#11'TukeyKramer'#4'Le'
+'ft'#3'('#2#6'Height'#2#19#3'Top'#2'p'#5'Width'#2'_'#7'Caption'#6#12'Tukey-K'
+'ramer'#8'TabOrder'#2#23#0#0#9'TCheckBox'#11'NewmanKeuls'#4'Left'#3'('#2#6'H'
+'eight'#2#19#3'Top'#3#136#0#5'Width'#3#138#0#7'Caption'#6#20'Newman-Keuls (='
+' n''s)'#8'TabOrder'#2#24#0#0#9'TCheckBox'#9'Bonferoni'#4'Left'#3'('#2#6'Hei'
+'ght'#2#19#3'Top'#3#160#0#5'Width'#2'L'#7'Caption'#6#10'Bonferroni'#8'TabOrd'
+'er'#2#25#0#0#9'TCheckBox'#14'OrthoContrasts'#4'Left'#3'('#2#6'Height'#2#19#3
+'Top'#3#184#0#5'Width'#3#134#0#7'Caption'#6#20'Orthogonal Contrasts'#8'TabOr'
+'der'#2#26#0#0#9'TGroupBox'#9'GroupBox2'#4'Left'#3' '#2#6'Height'#3#168#0#3
+'Top'#3#240#0#5'Width'#3#169#0#7'Caption'#6#7'Options'#12'ClientHeight'#3#150
+#0#11'ClientWidth'#3#165#0#8'TabOrder'#2#27#0#9'TCheckBox'#9'PlotMeans'#4'Le'
+'ft'#2#8#6'Height'#2#19#3'Top'#2#6#5'Width'#3#154#0#7'Caption'#6#24'Plot Mea'
+'ns Using 3D bars'#8'TabOrder'#2#0#0#0#9'TCheckBox'#11'Plot2DLines'#4'Left'#2
+#6#6'Height'#2#19#3'Top'#2#29#5'Width'#3#159#0#7'Caption'#6#25'Plot Means Us'
+'ing 2D Lines'#8'TabOrder'#2#1#0#0#9'TCheckBox'#11'Plot3DLines'#4'Left'#2#7#6
+'Height'#2#19#3'Top'#2'5'#5'Width'#3#159#0#7'Caption'#6#25'Plot Means Using '
+'3D Lines'#8'TabOrder'#2#2#0#0#9'TCheckBox'#13'BrownForsythe'#4'Left'#2#8#6
+'Height'#2#19#3'Top'#2'h'#5'Width'#3#157#0#7'Caption'#6#24'Brown-Forsythe fo'
+'r 1-way'#8'TabOrder'#2#3#0#0#9'TCheckBox'#5'Welch'#4'Left'#2#7#6'Height'#2
+#19#3'Top'#3#128#0#5'Width'#2'j'#7'Caption'#6#15'Welch for 1-way'#8'TabOrder'
+#2#4#0#0#6'TLabel'#6'Label5'#4'Left'#2#8#6'Height'#2#16#3'Top'#2'P'#5'Width'
+#3#149#0#7'Caption'#6#28'Corrections for unequal Var.'#11'ParentColor'#8#0#0
+#0#5'TEdit'#12'OverallAlpha'#4'Left'#3#158#0#6'Height'#2#23#3'Top'#3#152#1#5
+'Width'#2'-'#8'TabOrder'#2#28#4'Text'#6#12'OverallAlpha'#0#0#5'TEdit'#9'Post'
+'Alpha'#4'Left'#3#128#1#6'Height'#2#23#3'Top'#3#152#1#5'Width'#2'3'#8'TabOrd'
+'er'#2#29#4'Text'#6#9'PostAlpha'#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#207#0#6
+'Height'#2' '#3'Top'#3#192#1#5'Width'#2'M'#7'Caption'#6#5'Reset'#7'OnClick'#7
+#13'ResetBtnClick'#8'TabOrder'#2#30#0#0#7'TButton'#9'CancelBtn'#4'Left'#3'@'
+#1#6'Height'#2' '#3'Top'#3#192#1#5'Width'#2'M'#7'Caption'#6#6'Cancel'#11'Mod'
+'alResult'#2#2#8'TabOrder'#2#31#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#176#1
+#6'Height'#2#31#3'Top'#3#192#1#5'Width'#2'M'#7'Caption'#6#7'Compute'#7'OnCli'
+'ck'#7#15'ComputeBtnClick'#8'TabOrder'#2' '#0#0#7'TButton'#9'ReturnBtn'#4'Le'
+'ft'#3' '#2#6'Height'#2#31#3'Top'#3#192#1#5'Width'#2'M'#7'Caption'#6#6'Retur'
+'n'#11'ModalResult'#2#1#8'TabOrder'#2'!'#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2
+'k'#4'Left'#2'`'#6'Height'#2' '#3'Top'#3#191#1#5'Width'#2'N'#7'Caption'#6#4
+'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2'"'#0#0#0
]);

View File

@ -1,478 +0,0 @@
unit BlkMRegUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, Globals, MainUnit, MatrixLib, OutPutUnit,
FunctionsLib, DataProcs, DictionaryUnit;
type
{ TBlkMregFrm }
TBlkMregFrm = class(TForm)
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
CPChkBox: TCheckBox;
CovChkBox: TCheckBox;
CorrsChkBox: TCheckBox;
MeansChkBox: TCheckBox;
SaveDialog1: TSaveDialog;
VarChkBox: TCheckBox;
SDChkBox: TCheckBox;
MatSaveChkBox: TCheckBox;
PredictChkBox: TCheckBox;
GroupBox1: TGroupBox;
InProb: TEdit;
Label5: TLabel;
NextBlkBtn: TButton;
DepInBtn: TBitBtn;
DepOutBtn: TBitBtn;
BlockNoEdit: TEdit;
InBtn: TBitBtn;
Label4: TLabel;
OutBtn: TBitBtn;
AllBtn: TBitBtn;
DepVar: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
BlockList: TListBox;
VarList: TListBox;
procedure AllBtnClick(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure ComputeBtnClick(Sender: TObject);
procedure DepInBtnClick(Sender: TObject);
procedure DepOutBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure InBtnClick(Sender: TObject);
procedure NextBlkBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
private
{ private declarations }
BlkVarCols : IntDyneMat;
NoBlocks : integer;
VarsInBlk : IntDyneVec;
NoVars : integer;
public
{ public declarations }
end;
var
BlkMregFrm: TBlkMregFrm;
implementation
{ TBlkMregFrm }
procedure TBlkMregFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
BlockList.Items.Clear;
VarList.Items.Clear;
BlockNoEdit.Text := '1';
NoBlocks := 1;
for i := 1 to NoVariables do
begin
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
end;
InBtn.Enabled := true;
OutBtn.Enabled := false;
DepInBtn.Enabled := true;
DepOutBtn.Enabled := false;
CPChkBox.Checked := false;
CovChkBox.Checked := false;
CorrsChkBox.Checked := true;
MeansChkBox.Checked := true;
VarChkBox.Checked := false;
SDChkBox.Checked := true;
MatSaveChkBox.Checked := false;
PredictChkBox.Checked := false;
// HeteroChk.Checked := false;
NoVars := 0;
DepVar.Text := '';
InProb.Text := '0.05';
SetLength(BlkVarCols,NoVariables,NoVariables);
SetLength(VarsInBlk,NoVariables);
end;
procedure TBlkMregFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TBlkMregFrm.AllBtnClick(Sender: TObject);
VAR count, index : integer;
begin
count := VarList.Items.Count;
for index := 0 to count-1 do
begin
BlockList.Items.Add(VarList.Items.Strings[index]);
end;
VarList.Clear;
end;
procedure TBlkMregFrm.CancelBtnClick(Sender: TObject);
begin
if VarsInBlk <> nil then VarsInBlk := nil;
if BlkVarCols <> nil then BlkVarCols := nil;
BlkMRegFrm.Hide;
end;
procedure TBlkMregFrm.ComputeBtnClick(Sender: TObject);
Label CleanUp;
var
i, j, k, col, mattype, errorcode, NCases : integer;
NoIndepVars, DepVarCol, NEntered, StepNo : integer;
R2, df1, df2, Y, z, BPG, chiprob : double;
StdErrEst, F, FProbF, OldR2 : double;
pdf1, pdf2, probin, prout : double;
BetaWeights : DblDyneVec;
cellstring, outline : string;
corrs : DblDyneMat;
Means : DblDyneVec;
Variances : DblDyneVec;
StdDevs : DblDyneVec;
title : string;
IndRowLabels : StrDyneVec;
IndColLabels : StrDyneVec;
IndepInverse : DblDyneMat;
IndepIndex : IntDyneVec;
XYCorrs : DblDyneVec;
Partial : DblDyneVec;
Candidate : IntDyneVec;
filename : string;
ColEntered : IntDyneVec;
constant : double;
errcode : boolean;
begin
SetLength(corrs,NoVariables+1,NoVariables+1);
SetLength(IndepInverse,NoVariables,NoVariables);
SetLength(Means,NoVariables);
SetLength(Variances,NoVariables);
SetLength(StdDevs,NoVariables);
SetLength(IndepIndex,NoVariables);
SetLength(IndColLabels,NoVariables);
SetLength(IndRowLabels,NoVariables);
SetLength(BetaWeights,NoVariables);
SetLength(Candidate,NoVariables);
SetLength(ColEntered,NoVariables);
NextBlkBtnClick(self);
probin := StrToFloat(InProb.Text); // probability to include a block
prout := 1.0;
OutPutFrm.RichEdit.Clear;
// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify;
OutPutFrm.RichEdit.Lines.Add('Block Entry Multiple Regression by Bill Miller');
errorcode := 0;
{ get dependendent variable column }
if DepVar.Text = '' then
begin
ShowMessage('ERROR! No Dependent variable selected.');
goto CleanUp;
end;
DepVarCol := 0;
NoVars := NoVars + 1;
for j := 1 to NoVariables do
if DepVar.Text = OS3MainFrm.DataGrid.Cells[j,0] then DepVarCol := j;
R2 := 0.0;
OldR2 := 0.0;
pdf1 := 0.0;
pdf2 := 0.0;
for i := 1 to NoBlocks-1 do Candidate[i-1] := i;
{ Now, complete Mult. Regs by adding blocks in each step }
for StepNo := 1 to NoBlocks-1 do
begin
NEntered := 0;
for i := 1 to StepNo do
begin
if (Candidate[StepNo-1] <> 0) then
begin
for j := 1 to VarsInBlk[i-1] do
begin
NEntered := NEntered + 1;
ColEntered[NEntered-1] := BlkVarCols[i-1,j-1];
k := BlkVarCols[i-1,j-1];
IndRowLabels[NEntered-1] := OS3MainFrm.DataGrid.Cells[k,0];
IndColLabels[NEntered-1] := OS3MainFrm.DataGrid.Cells[k,0];
end;
end;
end;
NEntered := NEntered + 1; // dependent variable last
ColEntered[NEntered-1] := DepVarCol;
IndRowLabels[NEntered-1] := OS3MainFrm.DataGrid.Cells[DepVarCol,0];
IndColLabels[NEntered-1] := OS3MainFrm.DataGrid.Cells[DepVarCol,0];
OutPutFrm.RichEdit.Lines.Add('');
outline := format('----------------- Trial Block %d Variables Added ------------------',[StepNo]);
OutPutFrm.RichEdit.Lines.Add(outline);
if CPChkBox.Checked = true then
begin
title := 'Cross-Products Matrix';
GridXProd(NEntered,ColEntered,Corrs,errcode,NCases);
MAT_PRINT(Corrs,NEntered,NEntered,title,IndRowLabels,IndColLabels,NCases);
end;
if CovChkBox.Checked = true then
begin
title := 'Variance-Covariance Matrix';
GridCovar(NEntered,ColEntered,Corrs,Means,Variances,
StdDevs,errcode,NCases);
MAT_PRINT(Corrs,NEntered,NEntered,title,IndRowLabels,IndColLabels,NCases);
end;
Correlations(NEntered,ColEntered,Corrs,Means,Variances,
StdDevs,errcode,NCases);
if CorrsChkBox.Checked = true then
begin
title := 'Product-Moment Correlations Matrix';
MAT_PRINT(Corrs,NEntered,NEntered,title,IndRowLabels,IndColLabels,NCases);
end;
title := 'Means';
if MeansChkBox.Checked = true then
DynVectorPrint(Means,NEntered,title,IndColLabels,NCases);
title := 'Variances';
if VarChkBox.Checked = true then
DynVectorPrint(Variances,NEntered,title,IndColLabels,NCases);
title := 'Standard Deviations';
if SDChkBox.Checked = true then
DynVectorPrint(StdDevs,NEntered,title,IndColLabels,NCases);
if errorcode > 0 then
begin
ShowMessage('ERROR! A selected variable has no variability-run aborted.');
goto CleanUp;
end;
NoIndepVars := NEntered - 1;
for i := 1 to NoIndepVars do IndepIndex[i-1] := i;
MReg2(NCases,NEntered,NoIndepVars,IndepIndex,corrs,IndepInverse,
IndRowLabels,R2,BetaWeights,
Means,Variances,errorcode,StdErrEst,constant,prout,true, false,false);
outline := format('Increase in R Squared = %6.3f',[R2-OldR2]);
OutPutFrm.RichEdit.Lines.Add(outline);
df1 := NoIndepVars - pdf1;
df2 := NCases - NoIndepVars - 1;
F := ((R2 - OldR2) / (1.0 - R2)) * df2 / df1;
FProbF := probf(F,df1,df2);
outline := format('F = %6.3f with probability = %6.3f',[F,FProbF]);
OutPutFrm.RichEdit.Lines.Add(outline);
if FProbF < probin then
begin
outline := format('Block %d met entry requirements',[StepNo]);
OutPutFrm.RichEdit.Lines.Add(outline);
end
else
begin
Candidate[StepNo-1] := 0;
NoIndepVars := NoIndepVars - VarsInBlk[StepNo-1];
outline := format('Block %d did not meet entry requirements',[StepNo]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OldR2 := R2;
pdf1 := NoIndepVars;
end;
{ add [predicted scores, residual scores, etc. to grid if options elected }
if PredictChkBox.Checked = true then
begin
prout := 1.0;
Correlations(NEntered,ColEntered,Corrs,Means,Variances,
StdDevs,errcode,NCases);
MReg2(NCases,NEntered,NoIndepVars,IndepIndex,corrs,IndepInverse,
IndRowLabels,R2,BetaWeights,
Means,Variances,errorcode,StdErrEst,constant,prout,true, false,false);
Predict(ColEntered, NEntered, IndepInverse, Means, StdDevs,
BetaWeights, StdErrEst, IndepIndex, NoIndepVars);
end;
{ if HeteroChk.Checked = true then // do BPG test
begin
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('=====================================================');
OutPutFrm.RichEdit.Lines.Add('Breusch-Pagan-Godfrey Test of Heteroscedasticity');
OutPutFrm.RichEdit.Lines.Add('=====================================================');
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Auxiliary Regression');
OutPutFrm.RichEdit.Lines.Add('');
BPG := 0.0;
col := NoVariables + 1;
DictionaryFrm.NewVar(col);
DictionaryFrm.DictGrid.Cells[1,col] := 'BPGResid.';
OS3MainFrm.DataGrid.Cells[col,0] := 'BPGResid.';
NoVariables := NoVariables + 1;
// get predicted raw score
for i := 1 to NCases do
begin
Y := 0.0;
for j := 1 to NoIndepVars do
begin
col := IndepIndex[j-1];
k := ColEntered[col-1];
z := (StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,i])) -
Means[col-1]) / StdDevs[col-1];
Y := Y + (z * BetaWeights[j-1]); // predicted z score
end;
Y := Y * StdDevs[NEntered-1] + Means[NEntered-1]; // predicte raw
k := ColEntered[NEntered-1];
Y := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,i])) - Y; // residual
BPG := BPG + (Y * Y); // sum of squared residuals
// save squared value for each case
OS3MainFrm.DataGrid.Cells[NoVariables,i] := FloatToStr(Y * Y);
// OS3MainFrm.DataGrid.Cells[NoVariables,i] := Format('%8.3f',[Y * Y]);
end;
BPG := BPG / NCases;
for i := 1 to NCases do
begin
Y := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[NoVariables,i])) / BPG;
OS3MainFrm.DataGrid.Cells[NoVariables,i] := Format('%8.3f',[Y]);
end;
// Now, regress Hetero values on the independent variables
DepVarCol := NoVariables;
ColEntered[NEntered-1] := NoVariables;
IndRowLabels[NEntered-1] := OS3MainFrm.DataGrid.Cells[DepVarCol,0];
IndColLabels[NEntered-1] := OS3MainFrm.DataGrid.Cells[DepVarCol,0];
Correlations(NEntered,ColEntered,Corrs,Means,Variances,
StdDevs,errcode,NCases);
if CorrsChkBox.Checked = true then
begin
title := 'Product-Moment Correlations Matrix';
MAT_PRINT(Corrs,NEntered,NEntered,title,IndRowLabels,IndColLabels,NCases);
end;
title := 'Means';
if MeansChkBox.Checked = true then
DynVectorPrint(Means,NEntered,title,IndColLabels,NCases);
title := 'Variances';
if VarChkBox.Checked = true then
DynVectorPrint(Variances,NEntered,title,IndColLabels,NCases);
title := 'Standard Deviations';
if SDChkBox.Checked = true then
DynVectorPrint(StdDevs,NEntered,title,IndColLabels,NCases);
MReg2(NCases,NEntered,NoIndepVars,IndepIndex,corrs,IndepInverse,
IndRowLabels,R2,BetaWeights,
Means,Variances,errorcode,StdErrEst,constant,prout,true, false,false);
BPG := ( R2 * Variances[NEntered-1] * (Ncases-1) ) / 2;
chiprob := 1.0 - chisquaredprob(BPG,NEntered-1);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Breusch-Pagan-Godfrey Test of Heteroscedasticity');
outline := format('Chi-Square = %8.3f with probability greater value = %8.3f',[BPG,chiprob]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
end;
}
if MatSaveChkBox.Checked = true then
begin
SaveDialog1.Filter := 'FreeStat matrix files (*.MAT)|*.MAT|All files (*.*)|*.*';
SaveDialog1.FilterIndex := 1;
if SaveDialog1.Execute then
begin
filename := SaveDialog1.FileName;
MATSAVE(Corrs,NoVars,NoVars,Means,StdDevs,NCases,IndRowLabels,IndColLabels,filename);
end;
end;
OutPutFrm.ShowModal;
CleanUp:
ColEntered := nil;
Candidate := nil;
BetaWeights := nil;
IndColLabels := nil;
IndRowLabels := nil;
IndepIndex := nil;
StdDevs := nil;
Variances := nil;
Means := nil;
IndepInverse := nil;
corrs := nil;
VarsInBlk := nil;
BlkVarCols := nil;
end;
procedure TBlkMregFrm.DepInBtnClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
DepVar.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
DepOutBtn.Enabled := true;
DepInBtn.Enabled := false;
end;
procedure TBlkMregFrm.DepOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(DepVar.Text);
DepVar.Text := '';
DepInBtn.Enabled := true;
end;
procedure TBlkMregFrm.InBtnClick(Sender: TObject);
VAR i, index : integer;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
BlockList.Items.Add(VarList.Items.Strings[i]);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
OutBtn.Enabled := true;
end;
procedure TBlkMregFrm.NextBlkBtnClick(Sender: TObject);
var
blkno, i, j, count : integer;
cellstring : string;
begin
{save columns of variables in the current block }
count := BlockList.Items.Count;
if count = 0 then
begin
VarsInBlk[NoBlocks-1] := 0;
exit;
end;
VarsInBlk[NoBlocks-1] := count;
for i := 0 to count-1 do
begin
for j := 1 to NoVariables do
begin
cellstring := OS3MainFrm.DataGrid.Cells[j,0];
if cellstring = BlockList.Items.Strings[i] then
begin
BlkVarCols[NoBlocks-1,i] := j;
NoVars := NoVars + 1;
end;
end;
end;
blkno := StrToInt(BlockNoEdit.Text);
blkno := blkno + 1;
BlockNoEdit.Text := IntToStr(blkno);
NoBlocks := blkno;
BlockList.Clear;
end;
procedure TBlkMregFrm.OutBtnClick(Sender: TObject);
VAR index : integer;
begin
index := BlockList.ItemIndex;
VarList.Items.Add(BlockList.Items.Strings[index]);
BlockList.Items.Delete(index);
InBtn.Enabled := true;
if BlockList.Items.Count = 0 then OutBtn.Enabled := false;
end;
initialization
{$I blkmregunit.lrs}
end.

View File

@ -1,406 +0,0 @@
object BlkMregFrm: TBlkMregFrm
Left = 131
Height = 331
Top = 97
Width = 613
Caption = 'Block Entry Multiple Regression'
ClientHeight = 331
ClientWidth = 613
OnShow = FormShow
LCLVersion = '1.0.2.0'
object Label1: TLabel
Left = 6
Height = 16
Top = 8
Width = 99
Caption = 'Available Variables'
ParentColor = False
end
object Label2: TLabel
Left = 217
Height = 16
Top = 40
Width = 104
Caption = 'Dependent Variable'
ParentColor = False
end
object Label3: TLabel
Left = 214
Height = 16
Top = 112
Width = 168
Caption = 'Independent Var.s for this block'
ParentColor = False
end
object Label4: TLabel
Left = 181
Height = 16
Top = 12
Width = 55
Caption = 'Block No. '
ParentColor = False
end
object Label5: TLabel
Left = 383
Height = 16
Top = 11
Width = 164
Caption = 'Minimum Prob. to enter block:'
ParentColor = False
end
object VarList: TListBox
Left = 6
Height = 297
Top = 23
Width = 161
ItemHeight = 0
MultiSelect = True
TabOrder = 0
end
object DepInBtn: TBitBtn
Left = 176
Height = 29
Top = 40
Width = 32
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
}
NumGlyphs = 0
OnClick = DepInBtnClick
TabOrder = 1
end
object DepOutBtn: TBitBtn
Left = 176
Height = 29
Top = 72
Width = 32
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
}
NumGlyphs = 0
OnClick = DepOutBtnClick
TabOrder = 2
end
object InBtn: TBitBtn
Left = 176
Height = 29
Top = 144
Width = 32
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
}
NumGlyphs = 0
OnClick = InBtnClick
TabOrder = 3
end
object OutBtn: TBitBtn
Left = 176
Height = 29
Top = 176
Width = 32
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
}
NumGlyphs = 0
OnClick = OutBtnClick
TabOrder = 4
end
object AllBtn: TBitBtn
Left = 176
Height = 29
Top = 216
Width = 32
Caption = 'ALL'
NumGlyphs = 0
OnClick = AllBtnClick
TabOrder = 5
end
object DepVar: TEdit
Left = 216
Height = 23
Top = 56
Width = 146
TabOrder = 6
Text = 'DepVar'
end
object BlockList: TListBox
Left = 214
Height = 192
Top = 128
Width = 150
ItemHeight = 0
TabOrder = 7
end
object BlockNoEdit: TEdit
Left = 239
Height = 23
Top = 5
Width = 37
TabOrder = 8
Text = 'BlockNoEdit'
end
object NextBlkBtn: TButton
Left = 288
Height = 25
Top = 1
Width = 72
Caption = 'Next Block'
OnClick = NextBlkBtnClick
TabOrder = 9
end
object InProb: TEdit
Left = 552
Height = 23
Top = 5
Width = 44
TabOrder = 10
Text = 'InProb'
end
object GroupBox1: TGroupBox
Left = 382
Height = 209
Top = 40
Width = 216
Caption = 'Options'
ClientHeight = 191
ClientWidth = 212
TabOrder = 11
object CPChkBox: TCheckBox
Left = 6
Height = 19
Top = 1
Width = 169
Caption = 'Show Cross-Products Matrix'
TabOrder = 0
end
object CovChkBox: TCheckBox
Left = 6
Height = 19
Top = 22
Width = 197
Caption = 'Show Variance-Covariance Matrix'
TabOrder = 1
end
object CorrsChkBox: TCheckBox
Left = 6
Height = 19
Top = 43
Width = 169
Caption = 'Show Intercorrelation Matrix'
TabOrder = 2
end
object MeansChkBox: TCheckBox
Left = 7
Height = 19
Top = 64
Width = 87
Caption = 'Show Means'
TabOrder = 3
end
object VarChkBox: TCheckBox
Left = 7
Height = 19
Top = 85
Width = 102
Caption = 'Show Variances'
TabOrder = 4
end
object SDChkBox: TCheckBox
Left = 6
Height = 19
Top = 109
Width = 157
Caption = 'Show Standard Deviations'
TabOrder = 5
end
object MatSaveChkBox: TCheckBox
Left = 6
Height = 19
Top = 132
Width = 142
Caption = 'Save Correlation Matrix'
TabOrder = 6
end
object PredictChkBox: TCheckBox
Left = 7
Height = 19
Top = 154
Width = 195
Caption = 'Predictions,residuals,C.I.''s to Grid'
TabOrder = 7
end
end
object ResetBtn: TButton
Left = 382
Height = 26
Top = 264
Width = 66
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 12
end
object CancelBtn: TButton
Left = 504
Height = 26
Top = 264
Width = 66
Caption = 'Cancel'
ModalResult = 2
OnClick = CancelBtnClick
TabOrder = 13
end
object ComputeBtn: TButton
Left = 382
Height = 26
Top = 296
Width = 66
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 14
end
object ReturnBtn: TButton
Left = 504
Height = 26
Top = 296
Width = 66
Caption = 'Return'
ModalResult = 1
TabOrder = 15
end
object SaveDialog1: TSaveDialog
left = 178
top = 264
end
end

View File

@ -1,263 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TBlkMregFrm','FORMDATA',[
'TPF0'#11'TBlkMregFrm'#10'BlkMregFrm'#4'Left'#3#131#0#6'Height'#3'K'#1#3'Top'
+#2'a'#5'Width'#3'e'#2#7'Caption'#6#31'Block Entry Multiple Regression'#12'Cl'
+'ientHeight'#3'K'#1#11'ClientWidth'#3'e'#2#6'OnShow'#7#8'FormShow'#10'LCLVer'
+'sion'#6#7'1.0.2.0'#0#6'TLabel'#6'Label1'#4'Left'#2#6#6'Height'#2#16#3'Top'#2
+#8#5'Width'#2'c'#7'Caption'#6#19'Available Variables'#11'ParentColor'#8#0#0#6
+'TLabel'#6'Label2'#4'Left'#3#217#0#6'Height'#2#16#3'Top'#2'('#5'Width'#2'h'#7
+'Caption'#6#18'Dependent Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'
+#4'Left'#3#214#0#6'Height'#2#16#3'Top'#2'p'#5'Width'#3#168#0#7'Caption'#6' I'
+'ndependent Var.s for this block'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4
+'Left'#3#181#0#6'Height'#2#16#3'Top'#2#12#5'Width'#2'7'#7'Caption'#6#10'Bloc'
+'k No. '#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#3#127#1#6'Height'
+#2#16#3'Top'#2#11#5'Width'#3#164#0#7'Caption'#6#29'Minimum Prob. to enter bl'
+'ock:'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#6#6'Height'#3
+')'#1#3'Top'#2#23#5'Width'#3#161#0#10'ItemHeight'#2#0#11'MultiSelect'#9#8'Ta'
+'bOrder'#2#0#0#0#7'TBitBtn'#8'DepInBtn'#4'Left'#3#176#0#6'Height'#2#29#3'Top'
+#2'('#5'Width'#2' '#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'
+#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0
+#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'*p/8%'
+'i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'a'
+#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'
+#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'
+#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195'q'#255
+#160#215#169#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152
+#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193
+#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255#255#0'h'
+#199't'#255#165#218#174#255#162#216#171#255#158#214#167#255#154#212#163#255
+#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139
+#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255#255#0#255
+#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'
+#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'
+#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'
+#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'
+#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7
+'OnClick'#7#13'DepInBtnClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#9'DepOutBtn'#4
+'Left'#3#176#0#6'Height'#2#29#3'Top'#2'H'#5'Width'#2' '#10'Glyph.Data'#10':'
+#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '
+#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255
+#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134#255#156#213
+#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135
+#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'r'
+#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201#127#204#138
+#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207
+#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'
+#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'
+#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'
+#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#14'DepOutBtnClick'
+#8'TabOrder'#2#2#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#176#0#6'Height'#2#29#3'To'
+'p'#3#144#0#5'Width'#2' '#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0
+#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'
+#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'
+#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'
+#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195
+'q'#255#160#215#169#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255
+#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255
+#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255
+']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145
+'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#10'InBtnClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#6'OutBtn'
+#4'Left'#3#176#0#6'Height'#2#29#3'Top'#3#176#0#5'Width'#2' '#10'Glyph.Data'
+#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0
+#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255
,#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134#255#156#213
+#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135
+#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'r'
+#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201#127#204#138
+#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207
+#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'
+#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'
+#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'
+#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'OutBtnClick'#8
+'TabOrder'#2#4#0#0#7'TBitBtn'#6'AllBtn'#4'Left'#3#176#0#6'Height'#2#29#3'Top'
+#3#216#0#5'Width'#2' '#7'Caption'#6#3'ALL'#9'NumGlyphs'#2#0#7'OnClick'#7#11
+'AllBtnClick'#8'TabOrder'#2#5#0#0#5'TEdit'#6'DepVar'#4'Left'#3#216#0#6'Heigh'
+'t'#2#23#3'Top'#2'8'#5'Width'#3#146#0#8'TabOrder'#2#6#4'Text'#6#6'DepVar'#0#0
+#8'TListBox'#9'BlockList'#4'Left'#3#214#0#6'Height'#3#192#0#3'Top'#3#128#0#5
+'Width'#3#150#0#10'ItemHeight'#2#0#8'TabOrder'#2#7#0#0#5'TEdit'#11'BlockNoEd'
+'it'#4'Left'#3#239#0#6'Height'#2#23#3'Top'#2#5#5'Width'#2'%'#8'TabOrder'#2#8
+#4'Text'#6#11'BlockNoEdit'#0#0#7'TButton'#10'NextBlkBtn'#4'Left'#3' '#1#6'He'
+'ight'#2#25#3'Top'#2#1#5'Width'#2'H'#7'Caption'#6#10'Next Block'#7'OnClick'#7
+#15'NextBlkBtnClick'#8'TabOrder'#2#9#0#0#5'TEdit'#6'InProb'#4'Left'#3'('#2#6
+'Height'#2#23#3'Top'#2#5#5'Width'#2','#8'TabOrder'#2#10#4'Text'#6#6'InProb'#0
+#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3'~'#1#6'Height'#3#209#0#3'Top'#2'('#5
+'Width'#3#216#0#7'Caption'#6#7'Options'#12'ClientHeight'#3#191#0#11'ClientWi'
+'dth'#3#212#0#8'TabOrder'#2#11#0#9'TCheckBox'#8'CPChkBox'#4'Left'#2#6#6'Heig'
+'ht'#2#19#3'Top'#2#1#5'Width'#3#169#0#7'Caption'#6#26'Show Cross-Products Ma'
+'trix'#8'TabOrder'#2#0#0#0#9'TCheckBox'#9'CovChkBox'#4'Left'#2#6#6'Height'#2
+#19#3'Top'#2#22#5'Width'#3#197#0#7'Caption'#6#31'Show Variance-Covariance Ma'
+'trix'#8'TabOrder'#2#1#0#0#9'TCheckBox'#11'CorrsChkBox'#4'Left'#2#6#6'Height'
+#2#19#3'Top'#2'+'#5'Width'#3#169#0#7'Caption'#6#28'Show Intercorrelation Mat'
+'rix'#8'TabOrder'#2#2#0#0#9'TCheckBox'#11'MeansChkBox'#4'Left'#2#7#6'Height'
+#2#19#3'Top'#2'@'#5'Width'#2'W'#7'Caption'#6#10'Show Means'#8'TabOrder'#2#3#0
+#0#9'TCheckBox'#9'VarChkBox'#4'Left'#2#7#6'Height'#2#19#3'Top'#2'U'#5'Width'
+#2'f'#7'Caption'#6#14'Show Variances'#8'TabOrder'#2#4#0#0#9'TCheckBox'#8'SDC'
+'hkBox'#4'Left'#2#6#6'Height'#2#19#3'Top'#2'm'#5'Width'#3#157#0#7'Caption'#6
+#24'Show Standard Deviations'#8'TabOrder'#2#5#0#0#9'TCheckBox'#13'MatSaveChk'
+'Box'#4'Left'#2#6#6'Height'#2#19#3'Top'#3#132#0#5'Width'#3#142#0#7'Caption'#6
+#23'Save Correlation Matrix'#8'TabOrder'#2#6#0#0#9'TCheckBox'#13'PredictChkB'
+'ox'#4'Left'#2#7#6'Height'#2#19#3'Top'#3#154#0#5'Width'#3#195#0#7'Caption'#6
+'$Predictions,residuals,C.I.''s to Grid'#8'TabOrder'#2#7#0#0#0#7'TButton'#8
+'ResetBtn'#4'Left'#3'~'#1#6'Height'#2#26#3'Top'#3#8#1#5'Width'#2'B'#7'Captio'
+'n'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#12#0#0#7'TButton'
+#9'CancelBtn'#4'Left'#3#248#1#6'Height'#2#26#3'Top'#3#8#1#5'Width'#2'B'#7'Ca'
+'ption'#6#6'Cancel'#11'ModalResult'#2#2#7'OnClick'#7#14'CancelBtnClick'#8'Ta'
+'bOrder'#2#13#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3'~'#1#6'Height'#2#26#3
+'Top'#3'('#1#5'Width'#2'B'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBt'
+'nClick'#8'TabOrder'#2#14#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#248#1#6'Heig'
,'ht'#2#26#3'Top'#3'('#1#5'Width'#2'B'#7'Caption'#6#6'Return'#11'ModalResult'
+#2#1#8'TabOrder'#2#15#0#0#11'TSaveDialog'#11'SaveDialog1'#4'left'#3#178#0#3
+'top'#3#8#1#0#0#0
]);

View File

@ -1,56 +0,0 @@
object BlankFrm: TBlankFrm
Left = 37
Top = 21
BorderStyle = bsDialog
Caption = 'Test Item Administration'
ClientHeight = 514
ClientWidth = 623
Color = clBtnFace
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Times New Roman'
Font.Style = []
OnShow = FormShow
PixelsPerInch = 96
object Label1: TLabel
Left = 8
Top = 488
Width = 37
Height = 14
Caption = 'Answer:'
end
object Image1: TImage
Left = 0
Top = 0
Width = 623
Height = 449
Align = alTop
end
object ContinueBtn: TButton
Left = 544
Top = 480
Width = 73
Height = 25
Caption = 'Continue'
ModalResult = 1
TabOrder = 0
OnClick = ContinueBtnClick
end
object AnswerEdit: TEdit
Left = 48
Top = 480
Width = 33
Height = 22
TabOrder = 1
end
object AnswerMemo: TMemo
Left = 48
Top = 456
Width = 481
Height = 49
ScrollBars = ssVertical
TabOrder = 2
Visible = False
end
end

View File

@ -1,388 +0,0 @@
unit BlankUnit;
{$MODE Delphi}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ItemBankGlobals, FunctionsUnit;
type
TBlankFrm = class(TForm)
ContinueBtn: TButton;
Label1: TLabel;
AnswerEdit: TEdit;
Image1: TImage;
AnswerMemo: TMemo;
procedure ContinueBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
FontHi, FontWide, Indent, LineWidth, LineHi, PageHi, PageWide : integer;
ImageHi, ImageWide, linecnt : integer;
Grect : TRect;
Bitmap : TBitmap;
R1 : MatchItemsRcd;
R2 : BlankItemRcd;
R3 : MCItemRcd;
R4 : EssayItemRcd;
R5 : TFItemRcd;
public
{ Public declarations }
Response : string;
CorrectAnswer : string;
Cont : boolean;
itemtype, itemno, item : integer;
procedure ShowMCItem(Sender : TObject; itemno,item : integer);
procedure ShowTFItem(Sender : TObject; itemno,item : integer);
procedure ShowMAItem(Sender : TObject; itemno,item : integer);
procedure ShowCOItem(Sender : TObject; itemno,item : integer);
procedure ShowESItem(Sender : TObject; itemno,item : integer);
end;
var
BlankFrm: TBlankFrm;
implementation
uses CompTestUnit;
{$R *.lfm}
procedure TBlankFrm.ContinueBtnClick(Sender: TObject);
var
i : integer;
begin
Response := '';
case itemtype of
1,2 : Response := AnswerEdit.Text; // MC, TF items
3,4,5 : begin // MA, CO items
for i := 0 to AnswerMemo.Lines.Count-1 do
Response := Response + AnswerMemo.Lines[i];
end;
end;
Cont := true;
BlankFrm.Hide;
end;
//-------------------------------------------------------------------
procedure TBlankFrm.ShowMCItem(Sender : TObject; itemno,item : integer);
var
i, j : integer;
S : string;
X, Y : integer;
begin
ReadMCItem(item, R3);
CorrectAnswer := '';
for i := 1 to 5 do
begin
if R3.CorWeights[i] > 0.0 then
begin
CorrectAnswer := CorrectAnswer + R3.CorChoices[i] + '*' + FloatToStr(R3.CorWeights[i]);
if i < 5 then CorrectAnswer := CorrectAnswer + ' ';
end;
end;
linecnt := 1;
Y := linecnt * LineHi;
X := indent;
S := format('Item %d (Multiple Choice)',[itemno]);
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
if length(R3.Picture) > 0 then
begin
Grect.Top := linecnt * LineHi;
Grect.Left := indent;
Grect.Right := (3 * ClientWidth div 4) - indent;
Grect.Bottom := Grect.Top + ClientHeight div 3;
BitMap := TBitMap.Create;
if FileExists(R3.Picture) { *Converted from FileExists* } then
begin
Bitmap.LoadFromFile(R3.Picture);
Image1.Canvas.stretchdraw(Grect,Bitmap);
end
else ShowMessage('Image ' + R3.Picture + ' missing.');
Bitmap.Free;
linecnt := linecnt + (ClientHeight div 3) div LineHi;
linecnt := linecnt + 2;
end;
for j := 1 to 10 do
begin
if length(R3.ItemStem[j]) > 0 then
begin
S := trim(R3.ItemStem[j]);
X := indent;
Y := linecnt * LineHi;
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
end;
end;
for j := 1 to 5 do
begin
if length(R3.Choices[j]) > 0 then
begin
S := chr(j-1 + ord('A')) + ': ';
S := S + R3.Choices[j];
X := indent + 50;
Y := linecnt * LineHi;
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
end;
end;
end;
//-------------------------------------------------------------------
procedure TBlankFrm.ShowTFItem(Sender : TObject; itemno,item : integer);
var
j : integer;
S : string;
X, Y : integer;
begin
ReadTFItem(item,R5);
CorrectAnswer := '';
CorrectAnswer := CorrectAnswer + R5.CorChoice;
linecnt := 1;
Y := linecnt * LineHi;
X := indent;
S := format('Item %d (True-False)',[itemno]);
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
if length(R5.Picture) > 0 then
begin
Grect.Top := linecnt * LineHi;
Grect.Left := indent;
Grect.Right := (3 * ClientWidth div 4) - indent;
Grect.Bottom := Grect.Top + ClientHeight div 3;
BitMap := TBitMap.Create;
if FileExists(R5.Picture) { *Converted from FileExists* } then
begin
Bitmap.LoadFromFile(R5.Picture);
Image1.Canvas.stretchdraw(Grect,Bitmap);
end
else ShowMessage('Image ' + R5.Picture + ' missing.');
Bitmap.Free;
linecnt := linecnt + (ClientHeight div 3) div LineHi;
linecnt := linecnt + 2;
end;
for j := 1 to 10 do
begin
if length(R5.ItemStem[j]) > 0 then
begin
S := trim(R5.ItemStem[j]);
X := indent;
Y := linecnt * LineHi;
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
end;
end;
S := chr(ord('A')) + ': ';
S := S + 'TRUE';
X := indent + 50;
Y := linecnt * LineHi;
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
S := chr(1 + ord('A')) + ': ';
S := S + 'FALSE';
X := indent + 50;
Y := linecnt * LineHi;
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
end;
//-------------------------------------------------------------------
procedure TBlankFrm.ShowMAItem(Sender : TObject; itemno,item : integer);
var
i,j : integer;
S : string;
X, Y : integer;
anscol, itemstartY : integer;
begin
linecnt := 1;
anscol := indent + Image1.Width div 2;
ReadMAItem(item, R1);
CorrectAnswer := '';
for i := 1 to R1.NoItems do
begin
CorrectAnswer := CorrectAnswer + R1.CorChoices[i];
if i < R1.NoItems then CorrectAnswer := CorrectAnswer + ', ';
end;
X := 1;
Y := linecnt * LineHi;
S := 'Directions: Enter a sequence of letter choices separated by commas';
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
Y := linecnt * LineHi;
S := ' in the answer area below the items.';
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 2;
Y := linecnt * LineHi;
X := 1;
S := format('Matching Item Set %d',[R1.SetNo]);
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
if length(R1.Picture) > 0 then
begin
Grect.Top := linecnt * LineHi;
Grect.Left := indent;
Grect.Right := (3 * ClientWidth div 4) - indent;
Grect.Bottom := Grect.Top + ClientHeight div 3;
BitMap := TBitMap.Create;
if FileExists(R1.Picture) { *Converted from FileExists* } then
begin
Bitmap.LoadFromFile(R1.Picture);
Image1.Canvas.stretchdraw(Grect,Bitmap);
end
else ShowMessage('Image ' + R1.Picture + ' missing.');
Bitmap.Free;
linecnt := linecnt + (ClientHeight div 3) div LineHi;
linecnt := linecnt + 2;
end;
itemstartY := linecnt;
for j := 1 to R1.NoItems do
begin
X := 1;
Y := linecnt * LineHi;
S := format('Item %d (Matching Item)',[itemno]);
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
S := trim(R1.ItemStems[j]);
X := 10;
Y := linecnt * LineHi;
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
itemno := itemno + 1;
end;
linecnt := itemstartY;
for j := 1 to R1.NoChoices do
begin
S := chr(j-1 + ord('A')) + ': ';
S := S + trim(R1.ItemChoices[j]);
X := anscol;
Y := linecnt * LineHi;
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 2;
end;
CompTestFrm.itemno := itemno - 1;
end;
//-------------------------------------------------------------------
procedure TBlankFrm.ShowCOItem(Sender : TObject; itemno,item : integer);
var
j : integer;
S : string;
X, Y : integer;
begin
linecnt := 1;
ReadCOItem(item,R2);
CorrectAnswer := '';
CorrectAnswer := CorrectAnswer + R2.BestAns;
Y := linecnt * LineHi;
X := indent;
S := format('Item %d (Completion)',[itemno]);
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
if length(R2.Picture) > 0 then
begin
Grect.Top := linecnt * LineHi;
Grect.Left := indent;
Grect.Right := (3 * ClientWidth div 4) - indent;
Grect.Bottom := Grect.Top + ClientHeight div 3;
BitMap := TBitMap.Create;
if FileExists(R2.Picture) { *Converted from FileExists* } then
begin
Bitmap.LoadFromFile(R2.Picture);
Image1.Canvas.stretchdraw(Grect,Bitmap);
end
else ShowMessage('Image ' + R2.Picture + ' missing.');
Bitmap.Free;
linecnt := linecnt + (ClientHeight div 3) div LineHi;
linecnt := linecnt + 2;
end;
for j := 1 to 10 do
begin
if length(R2.ItemStem[j]) > 0 then
begin
S := trim(R2.ItemStem[j]);
X := indent;
Y := linecnt * LineHi;
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
end;
end;
end;
//-------------------------------------------------------------------
procedure TBlankFrm.ShowESItem(Sender : TObject; itemno,item : integer);
var
j : integer;
S : string;
X, Y : integer;
begin
linecnt := 1;
ReadESItem(item, R4);
CorrectAnswer := 'None Given';
Y := linecnt * LineHi;
X := indent;
S := format('Item %d (Essay Item)',[itemno]);
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
if length(R4.Picture) > 0 then
begin
Grect.Top := linecnt * LineHi;
Grect.Left := indent;
Grect.Right := (3 * ClientWidth div 4) - indent;
Grect.Bottom := Grect.Top + ClientHeight div 3;
BitMap := TBitMap.Create;
if FileExists(R4.Picture) { *Converted from FileExists* } then
begin
Bitmap.LoadFromFile(R4.Picture);
Image1.Canvas.stretchdraw(Grect,Bitmap);
end
else ShowMessage('Image ' + R4.Picture + ' missing.');
Bitmap.Free;
linecnt := linecnt + (ClientHeight div 3) div LineHi;
linecnt := linecnt + 2;
end;
for j := 1 to 20 do
begin
if length(R4.ItemStem[j]) > 0 then
begin
S := trim(R4.ItemStem[j]);
X := indent;
Y := linecnt * LineHi;
Image1.Canvas.TextOut(X,Y,S);
linecnt := linecnt + 1;
end;
end;
end;
//-------------------------------------------------------------------
procedure TBlankFrm.FormShow(Sender: TObject);
begin
// setup parameters
FontHi := Image1.Canvas.TextHeight('M');
FontWide := Image1.Canvas.TextWidth('M');
Indent := 10 * FontWide;
LineWidth := 60 * FontWide;
LineHi := FontHi + 5;
PageHi := Image1.ClientHeight;
ImageHi := PageHi;
PageWide := Image1.ClientWidth;
ImageWide := PageWide;
Image1.Canvas.Brush.Color := clWhite;
Image1.Canvas.Rectangle(0,0,ImageWide,ImageHi);
case itemtype of
1: ShowMCItem(Self,itemno,item);
2: ShowTFItem(Self,itemno,item);
3: ShowMAItem(Self,itemno,item);
4: ShowCOItem(Self,itemno,item);
5: ShowESItem(Self,itemno,item);
end;
end;
end.

View File

@ -1,584 +0,0 @@
unit CanonUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
MainUnit, OutPutUnit, FunctionsLib, GraphLib, Globals, DataProcs,
MatrixLib, StdCtrls, Buttons, contexthelpunit;
type
{ TCannonFrm }
TCannonFrm = class(TForm)
HelpBtn: TButton;
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
CorsChk: TCheckBox;
InvChk: TCheckBox;
EigenChk: TCheckBox;
RedundChk: TCheckBox;
GroupBox1: TGroupBox;
LeftIn: TBitBtn;
LeftOut: TBitBtn;
RightIn: TBitBtn;
RightOut: TBitBtn;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
LeftList: TListBox;
RightList: TListBox;
VarList: TListBox;
procedure ComputeBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure HelpBtnClick(Sender: TObject);
procedure LeftInClick(Sender: TObject);
procedure LeftOutClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
procedure RightInClick(Sender: TObject);
procedure RightOutClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
CannonFrm: TCannonFrm;
implementation
{ TCannonFrm }
procedure TCannonFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
VarList.Clear;
LeftList.Clear;
RightList.Clear;
LeftOut.Visible := false;
LeftIn.Visible := true;
RightOut.Visible := false;
RightIn.Visible := true;
for i := 1 to NoVariables do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
end;
procedure TCannonFrm.RightInClick(Sender: TObject);
VAR i, index : integer;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
RightList.Items.Add(VarList.Items.Strings[i]);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
RightOut.Visible := true;
end;
procedure TCannonFrm.RightOutClick(Sender: TObject);
VAR index : integer;
begin
index := RightList.ItemIndex;
if index < 0 then
begin
RightOut.Visible := false;
exit;
end;
VarList.Items.Add(RightList.Items.Strings[index]);
RightList.Items.Delete(index);
end;
procedure TCannonFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TCannonFrm.HelpBtnClick(Sender: TObject);
begin
ContextHelpForm.HelpMessage((Sender as TButton).tag);
end;
procedure TCannonFrm.ComputeBtnClick(Sender: TObject);
label cleanup;
var
i, j, k, count, a_size, b_size, no_factors, novars, prtopts, IER: integer;
outline, cellstring, gridstring, SNo : string;
s, m, n, df1, df2, q, w, pcnt_extracted, trace : double;
minroot, critical_prob, Lambda, Pillia : double;
chisqr, HLTrace, chiprob, ftestprob, Roys, f, Hroot : double;
raa, rbb, rab, rba, bigmat, prod, first_prod, second_prod : DblDyneMat;
char_equation, raainv, rbbinv, eigenvectors, norm_a, norm_b : DblDyneMat;
raw_a, raw_b, a_cors, b_cors, eigentrans, theta, tempmat : DblDyneMat;
mean, variance, stddev, roots, root_chi, chi_prob, pv_a, pv_b : DblDyneVec;
rd_a, rd_b, pcnt_trace : DblDyneVec;
root_df, a_vars, b_vars : IntDyneVec;
selected : IntDyneVec;
RowLabels, ColLabels : StrDyneVec;
CanLabels : StrDyneVec;
NCases : integer;
title : string;
errorcode : boolean;
begin
k := 0;
no_factors := 0;
pcnt_extracted := 0.0;
trace := 0.0;
minroot := 0.0;
critical_prob := 0.0;
Pillia := 0.0;
chisqr := 0.0;
HLTrace := 0.0;
chiprob := 0.0;
// Get size of the Left and Right matrices (predictors and dependents)
a_size := LeftList.Items.Count;
b_size := RightList.Items.Count;
novars := a_size + b_size;
// allocate memory for matrices and vectors
SetLength(raa,a_size,a_size);
SetLength(rbb,b_size,b_size);
SetLength(rab,a_size,b_size);
SetLength(rba,b_size,a_size);
SetLength(bigmat,novars+1,novars+1);
SetLength(prod,novars,novars);
SetLength(first_prod,novars,novars);
SetLength(second_prod,novars,novars);
SetLength(char_equation,novars,novars);
SetLength(raainv,a_size,a_size);
SetLength(rbbinv,b_size,b_size);
SetLength(eigenvectors,novars,novars);
SetLength(norm_a,novars,novars);
SetLength(norm_b,novars,novars);
SetLength(raw_a,novars,novars);
SetLength(raw_b,novars,novars);
SetLength(a_cors,novars,novars);
SetLength(b_cors,novars,novars);
SetLength(eigentrans,novars,novars);
SetLength(theta,novars,novars);
SetLength(tempmat,novars,novars);
SetLength(mean,novars);
SetLength(variance,novars);
SetLength(stddev,novars);
SetLength(roots,novars);
SetLength(root_chi,novars);
SetLength(chi_prob,novars);
SetLength(pv_a,novars);
SetLength(pv_b,novars);
SetLength(rd_a,novars);
SetLength(rd_b,novars);
SetLength(pcnt_trace,novars);
SetLength(root_df,novars);
SetLength(a_vars,a_size);
SetLength(b_vars,b_size);
SetLength(CanLabels,novars);
SetLength(RowLabels,novars);
SetLength(ColLabels,novars);
SetLength(Selected,novars);
//------------ WORK STARTS HERE! -------------------------------------
// Build labels for canonical functions 1 to novars
for i := 1 to b_size do
CanLabels[i-1]:='Var. ' + IntToStr(i);
// identify variables selected for left and right variables
for i := 0 to a_size - 1 do // identify left variables
begin
cellstring := LeftList.Items.Strings[i];
for j := 1 to NoVariables do
begin
gridstring := OS3MainFrm.DataGrid.Cells[j,0];
if (cellstring = gridstring) then
begin
a_vars[i] := j;
RowLabels[i] := gridstring;
end;
end;
end;
for i := 0 to b_size - 1 do // identify left variables
begin
cellstring := RightList.Items.Strings[i];
for j := 1 to NoVariables do
begin
gridstring := OS3MainFrm.DataGrid.Cells[j,0];
if (cellstring = gridstring) then
begin
b_vars[i] := j;
ColLabels[i] := gridstring;
end;
end;
end;
// build list of all variables selected
for i := 1 to a_size do selected[i-1] := a_vars[i-1];
for i := 1 to b_size do selected[i-1 + a_size] := b_vars[i-1];
OutPutFrm.RichEdit.Clear;
OutPutFrm.RichEdit.Lines.Add('CANONICAL CORRELATION ANALYSIS');
OutPutFrm.RichEdit.Lines.Add('');
// Get means, standard deviations, etc. for total matrix
Correlations(novars,selected,bigmat,mean,variance,stddev,errorcode,Ncases);
count := Ncases;
if (IER = 1)then
begin
ShowMessage('Zero variance found for a variable-terminating');
goto cleanup;
end;
//partition matrix into quadrants
for i := 1 to a_size do
for j := 1 to a_size do raa[i-1,j-1]:= bigmat[i-1,j-1];
for i := a_size + 1 to novars do
for j := a_size + 1 to novars do
rbb[i-1-a_size,j-1-a_size] := bigmat[i-1,j-1];
for i := 1 to a_size do
for j := a_size + 1 to novars do
rab[i-1,j-1-a_size] := bigmat[i-1,j-1];
for i := a_size + 1 to novars do
for j := 1 to a_size do
rba[i-1-a_size,j-1] := bigmat[i-1,j-1];
if CorsChk.Checked then
begin
title := 'Left Correlation Matrix';
MAT_PRINT(raa,a_size,a_size,title,RowLabels,RowLabels,NCases);
title := 'Right Correlation Matrix';
MAT_PRINT(rbb,b_size,b_size,title,ColLabels,ColLabels,NCases);
title := 'Left-Right Correlation Matrix';
MAT_PRINT(rab,a_size,b_size,title,RowLabels,ColLabels,NCases);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
end;
// get inverses of left and right hand matrices raa and rbb
for i := 1 to a_size do
for j := 1 to a_size do
raainv[i-1,j-1] := raa[i-1,j-1];
SVDinverse(raainv,a_size);
if InvChk.Checked then
begin
title := 'Inverse of Left Matrix';
MAT_PRINT(raainv,a_size,a_size,title,RowLabels,RowLabels,NCases);
end;
for i := 1 to b_size do
for j := 1 to b_size do
rbbinv[i-1,j-1] := rbb[i-1,j-1];
SVDinverse(rbbinv,b_size);
if InvChk.Checked then
begin
title := 'Inverse of Right Matrix';
MAT_PRINT(rbbinv,b_size,b_size,title,ColLabels,ColLabels,NCases);
end;
// get products of raainv x rab and the rbbinv x rba matrix
MatAxB(first_prod,rbbinv,rba,b_size,b_size,b_size,a_size,errorcode);
MatAxB(second_prod,raainv,rab,a_size,a_size,a_size,b_size,errorcode);
title := 'Right Inverse x Right-Left Matrix';
MAT_PRINT(first_prod,b_size,a_size,title,ColLabels,RowLabels,NCases);
title := 'Left Inverse x Left-Right Matrix';
MAT_PRINT(second_prod,a_size,b_size,title,RowLabels,ColLabels,NCases);
//get characteristic equations matrix (product of last two product matrices
//The product should yeild rows and cols representing the smaller of the two sets
MatAxB(char_equation,first_prod,second_prod,b_size,a_size, a_size,b_size,errorcode);
title := 'Canonical Function';
MAT_PRINT(char_equation,b_size,b_size,title,CanLabels,CanLabels,NCases);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
// now get roots and vectors of the characteristic equation using
// NonSymRoots routine
minroot := 0.0;
for i := 1 to b_size do
begin
roots[i-1] := 0.0;
pcnt_trace[i-1] := 0.0;
for j := 1 to b_size do eigenvectors[i-1,j-1] := 0.0;
end;
trace := 0.0;
no_factors := b_size;
nonsymroots(char_equation, b_size, no_factors, minroot, eigenvectors, roots,
pcnt_trace, trace, pcnt_extracted);
outline := format('Trace of the matrix:=%10.4f',[trace]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format('Percent of trace extracted: %10.4f',[pcnt_extracted]);
OutPutFrm.RichEdit.Lines.Add(outline);
// Normalize smaller set weights and coumpute larger set weights
MATTRN(eigentrans,eigenvectors,b_size,b_size);
MatAxB(tempmat,eigentrans,rbb,b_size,b_size,b_size,b_size,errorcode);
MatAxB(theta,tempmat,eigenvectors,b_size,b_size,b_size,b_size,errorcode);
for j := 1 to b_size do
begin
q := 1.0 / sqrt(theta[j-1,j-1]);
for i := 1 to b_size do
begin
norm_b[i-1,j-1] := eigenvectors[i-1,j-1] * q;
raw_b[i-1,j-1] := norm_b[i-1,j-1] / stddev[a_size+i-1];
end;
end;
MatAxB(norm_a,second_prod,norm_b,a_size,b_size,b_size,b_size,errorcode);
for j := 1 to b_size do
begin
for i := 1 to a_size do
begin
norm_a[i-1,j-1] := norm_a[i-1,j-1] * (1.0 / sqrt(roots[j-1]));
raw_a[i-1,j-1] := norm_a[i-1,j-1] / stddev[i-1];
end;
end;
// Compute the correlations between variables and canonical variables
MatAxB(a_cors,raa,norm_a,a_size,a_size,a_size,b_size,errorcode);
for j := 1 to b_size do
begin
q := 0.0;
for i := 1 to a_size do q := q + norm_a[i-1,j-1] * a_cors[i-1,j-1];
q := 1.0 / sqrt(q);
for i := 1 to a_size do a_cors[i-1,j-1] := a_cors[i-1,j-1] * q;
end;
MatAxB(b_cors,rbb,norm_b,b_size,b_size,b_size,b_size,errorcode);
for j := 1 to b_size do
begin
q := 0.0;
for i := 1 to b_size do q := q + norm_b[i-1,j-1] * b_cors[i-1,j-1];
q := 1.0 / sqrt(q);
for i := 1 to b_size do b_cors[i-1,j-1] := b_cors[i-1,j-1] * q;
end;
// Compute the Proportions of Variance (PVs) and Redundancy Coefficients
for j := 1 to b_size do
begin
pv_a[j-1] := 0.0;
for i := 1 to a_size do pv_a[j-1] := pv_a[j-1] + (a_cors[i-1,j-1] * a_cors[i-1,j-1]);
pv_a[j-1] := pv_a[j-1] / a_size;
rd_a[j-1] := pv_a[j-1] * roots[j-1];
end;
for j := 1 to b_size do
begin
pv_b[j-1] := 0.0;
for i := 1 to b_size do pv_b[j-1] := pv_b[j-1] + (b_cors[i-1,j-1] * b_cors[i-1,j-1]);
pv_b[j-1] := pv_b[j-1] / b_size;
rd_b[j-1] := pv_b[j-1] * roots[j-1];
end;
// Compute tests of the roots
q := a_size + b_size + 1;
q := -(count - 1.0 - (q / 2.0));
k := 0;
for i := 1 to b_size do
begin
w := 1.0;
for j := i to b_size do w := w * (1.0 - roots[j-1]);
root_chi[i-1] := q * ln(w);
root_df[i-1] := (a_size - i + 1) * (b_size - i + 1);
chi_prob[i-1] := 1.0 - chisquaredprob(root_chi[i-1],root_df[i-1]);
if (chi_prob[i-1] < critical_prob) then k := k + 1;
end;
Roys := roots[0] / (1.0 - roots[0]);
Lambda := 1.0;
for i := 1 to b_size do
begin
Hroot := roots[i-1] / (1.0 - roots[i-1]);
Lambda := Lambda * (1.0 / (1.0 + Hroot));
Pillia := Pillia + (Hroot / (1.0 + Hroot));
HLTrace := HLTrace + Hroot;
end;
// Print remaining results
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('');
outline := ' Canonical R Root % Trace Chi-Sqr D.F. Prob.';
OutPutFrm.RichEdit.Lines.Add(outline);
for i := 1 to b_size do
begin
outline := format('%2d %10.6f %8.3f %7.3f %8.3f %2d %8.3f',
[i, sqrt(roots[i-1]), roots[i-1], pcnt_trace[i-1], root_chi[i-1], root_df[i-1], chi_prob[i-1]]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
chisqr := -ln(Lambda) * (count - 1.0 - 0.5 * (a_size + b_size - 1.0));
chiprob := 1.0 - chisquaredprob(chisqr,a_size * b_size);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Overall Tests of Significance:');
OutPutFrm.RichEdit.Lines.Add(' Statistic Approx. Stat. Value D.F. Prob.>Value');
outline := format('Wilk''s Lambda Chi-Squared %10.4f %3d %6.4f',
[chisqr,a_size * b_size,chiprob]);
OutPutFrm.RichEdit.Lines.Add(outline);
s := b_size;
m := 0.5 * (a_size - b_size - 1);
n := 0.5 * (count - b_size - a_size - 2);
f := (HLTrace * 2.0 * (s * n + 1)) / (s * s * (2.0 * m + s + 1.0));
df1 := s * (2.0 * m + s + 1.0);
df2 := 2.0 * ( s * n + 1.0);
ftestprob := probf(f,df1,df2);
outline := format('Hotelling-Lawley Trace F-Test %10.4f %2.0f %2.0f %6.4f',
[f, df1,df2, ftestprob]);
OutPutFrm.RichEdit.Lines.Add(outline);
df2 := s * (2.0 * n + s + 1.0);
f := (Pillia / (s - Pillia)) * ( (2.0 * n + s +1.0) / (2.0 * m + s + 1.0) );
ftestprob := probf(f,df1,df2);
outline := format('Pillai Trace F-Test %10.4f %2.0f %2.0f %6.4f',
[f, df1,df2, ftestprob]);
OutPutFrm.RichEdit.Lines.Add(outline);
Roys := Roys * (count - 1 - a_size + b_size)/ a_size ;
df1 := a_size;
df2 := count - 1 - a_size + b_size;
ftestprob := probf(Roys,df1,df2);
outline := format('Roys Largest Root F-Test %10.4f %2.0f %2.0f %6.4f',
[Roys, df1, df2, ftestprob]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
if EigenChk.Checked then
begin
title := 'Eigenvectors';
MAT_PRINT(eigenvectors,b_size,b_size,title,CanLabels,CanLabels,NCases);
OutPutFrm.ShowModal();
OutPutFrm.RichEdit.Clear;
end;
title := 'Standardized Right Side Weights';
MAT_PRINT(norm_a,a_size,b_size,title,RowLabels,CanLabels,NCases);
title := 'Standardized Left Side Weights';
MAT_PRINT(norm_b,b_size,b_size,title,ColLabels,CanLabels,NCases);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
title := 'Raw Right Side Weights';
MAT_PRINT(raw_a,a_size,b_size,title,RowLabels,CanLabels,NCases);
title := 'Raw Left Side Weights';
MAT_PRINT(raw_b,b_size,b_size,title,ColLabels,CanLabels,NCases);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
title := 'Right Side Correlations with Function';
MAT_PRINT(a_cors,a_size,b_size,title,RowLabels,CanLabels,NCases);
title := 'Left Side Correlations with Function';
MAT_PRINT(b_cors,b_size,b_size,title,ColLabels,CanLabels,NCases);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
if RedundChk.Checked then
begin
outline := 'Redundancy Analysis for Right Side Variables';
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
outline := ' Variance Prop. Redundancy';
OutPutFrm.RichEdit.Lines.Add(outline);
for i := 1 to b_size do
begin
outline := format('%10d %10.5f %10.5f',[i,pv_a[i-1],rd_a[i-1]]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('');
outline := 'Redundancy Analysis for Left Side Variables';
OutPutFrm.RichEdit.Lines.Add(outline);
outline := ' Variance Prop. Redundancy';
OutPutFrm.RichEdit.Lines.Add(outline);
for i := 1 to b_size do
begin
outline := format('%10d %10.5f %10.5f',[i,pv_b[i-1],rd_b[i-1]]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
end;
//------------- Now, clean up memory mess ----------------------------
cleanup:
Selected := nil;
ColLabels := nil;
RowLabels := nil;
CanLabels := nil;
b_vars := nil;
a_vars := nil;
root_df := nil;
pcnt_trace := nil;
rd_b := nil;
rd_a := nil;
pv_b := nil;
pv_a := nil;
chi_prob := nil;
root_chi := nil;
roots := nil;
stddev := nil;
variance := nil;
mean := nil;
tempmat := nil;
theta := nil;
eigentrans := nil;
b_cors := nil;
a_cors := nil;
raw_b := nil;
raw_a := nil;
norm_b := nil;
norm_a := nil;
eigenvectors := nil;
rbbinv := nil;
raainv := nil;
char_equation := nil;
second_prod := nil;
first_prod := nil;
prod := nil;
rba := nil;
rab := nil;
rbb := nil;
raa := nil;
end;
procedure TCannonFrm.LeftInClick(Sender: TObject);
VAR i, index : integer;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
LeftList.Items.Add(VarList.Items.Strings[i]);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
LeftOut.Visible := true;
end;
procedure TCannonFrm.LeftOutClick(Sender: TObject);
VAR index : integer;
begin
index := LeftList.ItemIndex;
if index < 0 then
begin
LeftOut.Visible := false;
exit;
end;
VarList.Items.Add(LeftList.Items.Strings[index]);
LeftList.Items.Delete(index);
end;
initialization
{$I canonunit.lrs}
end.

View File

@ -1,328 +0,0 @@
object CannonFrm: TCannonFrm
Left = 261
Height = 318
Top = 157
Width = 513
Caption = 'Cannical Correlation Analysis'
ClientHeight = 318
ClientWidth = 513
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 6
Height = 14
Top = 7
Width = 94
Caption = 'Available Variables:'
ParentColor = False
end
object Label2: TLabel
Left = 222
Height = 14
Top = 9
Width = 95
Caption = 'Left-Hand Variables'
ParentColor = False
end
object Label3: TLabel
Left = 223
Height = 14
Top = 152
Width = 101
Caption = 'Right-Hand Variables'
ParentColor = False
end
object VarList: TListBox
Left = 6
Height = 263
Top = 24
Width = 155
ItemHeight = 0
MultiSelect = True
TabOrder = 0
end
object LeftIn: TBitBtn
Left = 176
Height = 29
Top = 24
Width = 35
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
}
NumGlyphs = 0
OnClick = LeftInClick
TabOrder = 1
end
object LeftOut: TBitBtn
Left = 176
Height = 29
Top = 56
Width = 35
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
}
NumGlyphs = 0
OnClick = LeftOutClick
TabOrder = 2
end
object RightIn: TBitBtn
Left = 176
Height = 29
Top = 160
Width = 35
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
}
NumGlyphs = 0
OnClick = RightInClick
TabOrder = 3
end
object RightOut: TBitBtn
Left = 176
Height = 29
Top = 192
Width = 35
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
}
NumGlyphs = 0
OnClick = RightOutClick
TabOrder = 4
end
object LeftList: TListBox
Left = 219
Height = 113
Top = 25
Width = 135
ItemHeight = 0
TabOrder = 5
end
object RightList: TListBox
Left = 222
Height = 118
Top = 168
Width = 133
ItemHeight = 0
TabOrder = 6
end
object GroupBox1: TGroupBox
Left = 368
Height = 94
Top = 9
Width = 138
Caption = 'Options'
ClientHeight = 76
ClientWidth = 134
TabOrder = 7
object CorsChk: TCheckBox
Left = 7
Height = 17
Top = 1
Width = 78
Caption = 'Correlations'
TabOrder = 0
end
object InvChk: TCheckBox
Left = 7
Height = 17
Top = 17
Width = 90
Caption = 'Matrix Inverse'
TabOrder = 1
end
object EigenChk: TCheckBox
Left = 7
Height = 17
Top = 33
Width = 82
Caption = 'Eigenvectors'
TabOrder = 2
end
object RedundChk: TCheckBox
Left = 7
Height = 17
Top = 49
Width = 87
Caption = 'Redundancies'
TabOrder = 3
end
end
object ResetBtn: TButton
Left = 392
Height = 32
Top = 152
Width = 78
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 8
end
object CancelBtn: TButton
Left = 392
Height = 32
Top = 192
Width = 78
Caption = 'Cancel'
ModalResult = 2
TabOrder = 9
end
object ComputeBtn: TButton
Left = 392
Height = 32
Top = 232
Width = 78
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 10
end
object ReturnBtn: TButton
Left = 392
Height = 32
Top = 272
Width = 78
Caption = 'Return'
ModalResult = 1
TabOrder = 11
end
object HelpBtn: TButton
Tag = 111
Left = 392
Height = 32
Top = 112
Width = 80
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 12
end
end

View File

@ -1,244 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TCannonFrm','FORMDATA',[
'TPF0'#10'TCannonFrm'#9'CannonFrm'#4'Left'#3#5#1#6'Height'#3'>'#1#3'Top'#3#157
+#0#5'Width'#3#1#2#7'Caption'#6#29'Cannical Correlation Analysis'#12'ClientHe'
+'ight'#3'>'#1#11'ClientWidth'#3#1#2#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6
+#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#7#5'W'
+'idth'#2'^'#7'Caption'#6#20'Available Variables:'#11'ParentColor'#8#0#0#6'TL'
+'abel'#6'Label2'#4'Left'#3#222#0#6'Height'#2#14#3'Top'#2#9#5'Width'#2'_'#7'C'
+'aption'#6#19'Left-Hand Variables'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'
+#4'Left'#3#223#0#6'Height'#2#14#3'Top'#3#152#0#5'Width'#2'e'#7'Caption'#6#20
+'Right-Hand Variables'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2
+#6#6'Height'#3#7#1#3'Top'#2#24#5'Width'#3#155#0#10'ItemHeight'#2#0#11'MultiS'
+'elect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#6'LeftIn'#4'Left'#3#176#0#6'Height'
+#2#29#3'Top'#2#24#5'Width'#2'#'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0
+#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0
+#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161
+'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255
+'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255
+#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255#148#208#157
+#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195
+#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0
+#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158#214#167#255
+#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144
+#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201
+#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190
+'m'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255
+'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#9'NumGlyphs'#2#0#7'OnClick'#7#11'LeftInClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'
+#7'LeftOut'#4'Left'#3#176#0#6'Height'#2#29#3'Top'#2'8'#5'Width'#2'#'#10'Glyp'
+'h.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0
,#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'
+#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'
+#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134
+#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203
+#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190
+'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201#127
+#204#138#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255
+#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135
+#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255
+#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177
+'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#12
+'LeftOutClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#7'RightIn'#4'Left'#3#176#0#6'H'
+'eight'#2#29#3'Top'#3#160#0#5'Width'#2'#'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0
+'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4
+#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'
+#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'
+#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0
+#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255
+#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137
+#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255
+#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158
+#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255
+#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255
+'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'
+#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'
+#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#12'RightInClick'#8'TabOrder'#2#3
+#0#0#7'TBitBtn'#8'RightOut'#4'Left'#3#176#0#6'Height'#2#29#3'Top'#3#192#0#5
+'Width'#2'#'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0
+'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0
+#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'
+#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'
+#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255
+'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'
+#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195
+'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255
,#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255
+#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#13'RightOutClick'#8'TabOrder'#2#4#0#0#8'TListBox'#8'Le'
+'ftList'#4'Left'#3#219#0#6'Height'#2'q'#3'Top'#2#25#5'Width'#3#135#0#10'Item'
+'Height'#2#0#8'TabOrder'#2#5#0#0#8'TListBox'#9'RightList'#4'Left'#3#222#0#6
+'Height'#2'v'#3'Top'#3#168#0#5'Width'#3#133#0#10'ItemHeight'#2#0#8'TabOrder'
+#2#6#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3'p'#1#6'Height'#2'^'#3'Top'#2#9#5
+'Width'#3#138#0#7'Caption'#6#7'Options'#12'ClientHeight'#2'L'#11'ClientWidth'
+#3#134#0#8'TabOrder'#2#7#0#9'TCheckBox'#7'CorsChk'#4'Left'#2#7#6'Height'#2#17
+#3'Top'#2#1#5'Width'#2'N'#7'Caption'#6#12'Correlations'#8'TabOrder'#2#0#0#0#9
+'TCheckBox'#6'InvChk'#4'Left'#2#7#6'Height'#2#17#3'Top'#2#17#5'Width'#2'Z'#7
+'Caption'#6#14'Matrix Inverse'#8'TabOrder'#2#1#0#0#9'TCheckBox'#8'EigenChk'#4
+'Left'#2#7#6'Height'#2#17#3'Top'#2'!'#5'Width'#2'R'#7'Caption'#6#12'Eigenvec'
+'tors'#8'TabOrder'#2#2#0#0#9'TCheckBox'#9'RedundChk'#4'Left'#2#7#6'Height'#2
+#17#3'Top'#2'1'#5'Width'#2'W'#7'Caption'#6#12'Redundancies'#8'TabOrder'#2#3#0
+#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#136#1#6'Height'#2' '#3'Top'#3#152#0#5
+'Width'#2'N'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'
+#2#8#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#136#1#6'Height'#2' '#3'Top'#3#192
+#0#5'Width'#2'N'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#9#0
+#0#7'TButton'#10'ComputeBtn'#4'Left'#3#136#1#6'Height'#2' '#3'Top'#3#232#0#5
+'Width'#2'N'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabO'
+'rder'#2#10#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#136#1#6'Height'#2' '#3'Top'
+#3#16#1#5'Width'#2'N'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'
+#2#11#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2'o'#4'Left'#3#136#1#6'Height'#2' '#3
+'Top'#2'p'#5'Width'#2'P'#7'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8
+'TabOrder'#2#12#0#0#0
]);

View File

@ -1,123 +0,0 @@
object cChartFrm: TcChartFrm
Left = 156
Height = 308
Top = 111
Width = 386
Caption = 'Defects C Chart'
ClientHeight = 308
ClientWidth = 386
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 9
Height = 14
Top = 8
Width = 90
Caption = 'Selection Variables'
ParentColor = False
end
object Label2: TLabel
Left = 171
Height = 14
Top = 24
Width = 111
Caption = 'Measurement Variable:'
ParentColor = False
end
object VarList: TListBox
Left = 7
Height = 224
Top = 24
Width = 151
ItemHeight = 0
OnClick = VarListClick
TabOrder = 0
end
object MeasEdit: TEdit
Left = 171
Height = 21
Top = 40
Width = 142
TabOrder = 1
Text = 'MeasEdit'
end
object SigmaOpts: TRadioGroup
Left = 171
Height = 104
Top = 72
Width = 204
AutoFill = True
Caption = 'No. of Sigma Units for UCL and LCL'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 86
ClientWidth = 200
Items.Strings = (
'3 Sigma (Default)'
'2 Sigma'
'1 Sigma'
'X Sigmas where X = '
)
TabOrder = 2
end
object XSigmaEdit: TEdit
Left = 312
Height = 21
Top = 144
Width = 45
TabOrder = 3
Text = 'XSigmaEdit'
end
object ResetBtn: TButton
Left = 272
Height = 32
Top = 184
Width = 82
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 4
end
object CancelBtn: TButton
Left = 171
Height = 28
Top = 224
Width = 80
Caption = 'Cancel'
ModalResult = 2
TabOrder = 5
end
object ComputeBtn: TButton
Left = 272
Height = 28
Top = 224
Width = 80
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 6
end
object ReturnBtn: TButton
Left = 224
Height = 32
Top = 264
Width = 77
Caption = 'Return'
ModalResult = 1
TabOrder = 7
end
object HelpBtn: TButton
Tag = 112
Left = 171
Height = 32
Top = 184
Width = 80
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 8
end
end

View File

@ -1,36 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TcChartFrm','FORMDATA',[
'TPF0'#10'TcChartFrm'#9'cChartFrm'#4'Left'#3#156#0#6'Height'#3'4'#1#3'Top'#2
+'o'#5'Width'#3#130#1#7'Caption'#6#15'Defects C Chart'#12'ClientHeight'#3'4'#1
+#11'ClientWidth'#3#130#1#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#8'0.9.28.2'
+#0#6'TLabel'#6'Label1'#4'Left'#2#9#6'Height'#2#14#3'Top'#2#8#5'Width'#2'Z'#7
+'Caption'#6#19'Selection Variables'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'
+#4'Left'#3#171#0#6'Height'#2#14#3'Top'#2#24#5'Width'#2'o'#7'Caption'#6#21'Me'
+'asurement Variable:'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2
+#7#6'Height'#3#224#0#3'Top'#2#24#5'Width'#3#151#0#10'ItemHeight'#2#0#7'OnCli'
+'ck'#7#12'VarListClick'#8'TabOrder'#2#0#0#0#5'TEdit'#8'MeasEdit'#4'Left'#3
+#171#0#6'Height'#2#21#3'Top'#2'('#5'Width'#3#142#0#8'TabOrder'#2#1#4'Text'#6
+#8'MeasEdit'#0#0#11'TRadioGroup'#9'SigmaOpts'#4'Left'#3#171#0#6'Height'#2'h'
+#3'Top'#2'H'#5'Width'#3#204#0#8'AutoFill'#9#7'Caption'#6'"No. of Sigma Units'
+' for UCL and LCL'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBo'
+'ttomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildR'
+'esize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'Ch'
+'ildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVerti'
+'cal'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTop'
+'ToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'V'#11'Clie'
+'ntWidth'#3#200#0#13'Items.Strings'#1#6#17'3 Sigma (Default)'#6#7'2 Sigma'#6
+#7'1 Sigma'#6#19'X Sigmas where X = '#0#8'TabOrder'#2#2#0#0#5'TEdit'#10'XSig'
+'maEdit'#4'Left'#3'8'#1#6'Height'#2#21#3'Top'#3#144#0#5'Width'#2'-'#8'TabOrd'
+'er'#2#3#4'Text'#6#10'XSigmaEdit'#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#16#1#6
+'Height'#2' '#3'Top'#3#184#0#5'Width'#2'R'#7'Caption'#6#5'Reset'#7'OnClick'#7
+#13'ResetBtnClick'#8'TabOrder'#2#4#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#171
+#0#6'Height'#2#28#3'Top'#3#224#0#5'Width'#2'P'#7'Caption'#6#6'Cancel'#11'Mod'
+'alResult'#2#2#8'TabOrder'#2#5#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#16#1#6
+'Height'#2#28#3'Top'#3#224#0#5'Width'#2'P'#7'Caption'#6#7'Compute'#7'OnClick'
+#7#15'ComputeBtnClick'#8'TabOrder'#2#6#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3
+#224#0#6'Height'#2' '#3'Top'#3#8#1#5'Width'#2'M'#7'Caption'#6#6'Return'#11'M'
+'odalResult'#2#1#8'TabOrder'#2#7#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2'p'#4'Lef'
+'t'#3#171#0#6'Height'#2' '#3'Top'#3#184#0#5'Width'#2'P'#7'Caption'#6#4'Help'
+#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#8#0#0#0
]);

View File

@ -1,555 +0,0 @@
unit ChiSqrUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls, StdCtrls, Buttons, MainUnit, OutPutUnit, FunctionsLib,
GraphLib, Globals, MatrixLib, DataProcs, Math, DictionaryUnit;
type
{ TChiSqrFrm }
TChiSqrFrm = class(TForm)
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
ObsChk: TCheckBox;
ExpChk: TCheckBox;
PropsChk: TCheckBox;
CellChiChk: TCheckBox;
SaveFChk: TCheckBox;
GroupBox1: TGroupBox;
YatesChk: TCheckBox;
RowIn: TBitBtn;
RowOut: TBitBtn;
ColIn: TBitBtn;
ColOut: TBitBtn;
DepIn: TBitBtn;
DepOut: TBitBtn;
NCasesEdit: TEdit;
NCasesLabel: TLabel;
RowEdit: TEdit;
ColEdit: TEdit;
DepEdit: TEdit;
InputGrp: TRadioGroup;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
AnalyzeLabel: TLabel;
VarList: TListBox;
procedure ColInClick(Sender: TObject);
procedure ColOutClick(Sender: TObject);
procedure ComputeBtnClick(Sender: TObject);
procedure DepInClick(Sender: TObject);
procedure DepOutClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure InputGrpClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
procedure ReturnBtnClick(Sender: TObject);
procedure RowInClick(Sender: TObject);
procedure RowOutClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
ChiSqrFrm: TChiSqrFrm;
implementation
{ TChiSqrFrm }
procedure TChiSqrFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
VarList.Clear;
RowEdit.Text := '';
ColEdit.Text := '';
DepEdit.Text := '';
DepEdit.Visible := false;
RowIn.Visible := true;
RowOut.Visible := false;
ColIn.Visible := true;
ColOut.Visible := false;
DepIn.Visible := false;
DepOut.Visible := false;
NCasesLabel.Visible := false;
AnalyzeLabel.Visible := false;
NCasesEdit.Text := '';
NCasesEdit.Visible := false;
InputGrp.ItemIndex := 0;
ObsChk.Checked := false;
ExpChk.Checked := false;
PropsChk.Checked := false;
CellChiChk.Checked := false;
SaveFChk.Checked := false;
for i := 1 to NoVariables do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
end;
procedure TChiSqrFrm.ReturnBtnClick(Sender: TObject);
begin
ChiSqrFrm.Hide;
end;
procedure TChiSqrFrm.RowInClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
RowEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
RowIn.Visible := false;
RowOut.Visible := true;
end;
procedure TChiSqrFrm.RowOutClick(Sender: TObject);
begin
VarList.Items.Add(RowEdit.Text);
RowEdit.Text := '';
RowIn.Visible := true;
RowOut.Visible := false;
end;
procedure TChiSqrFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TChiSqrFrm.ColInClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
ColEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
ColIn.Visible := false;
ColOut.Visible := true;
end;
procedure TChiSqrFrm.ColOutClick(Sender: TObject);
begin
VarList.Items.Add(ColEdit.Text);
ColEdit.Text := '';
ColIn.Visible := true;
ColOut.Visible := false;
end;
procedure TChiSqrFrm.ComputeBtnClick(Sender: TObject);
var
i, j, RowNo, ColNo, DepNo, MinRow, MaxRow, MinCol, MaxCol : integer;
Row, Col, NoSelected, Ncases, Nrows, Ncols, FObs, df : integer;
RowLabels, ColLabels : StrDyneVec;
ColNoSelected : IntDyneVec;
cellstring, outline : string;
Freq : IntDyneMat;
Prop, Expected, CellChi : DblDyneMat;
PObs, ChiSquare, ProbChi, phi, SumX, SumY, VarX, VarY, liklihood : double;
yates : boolean;
title : string;
filename : string;
Adjchisqr, probliklihood, G, pearsonr, MantelHaenszel, MHprob : double;
Adjprobchi, CoefCont, CramerV : double;
begin
SetLength(ColNoSelected,NoVariables);
yates := false;
RowNo := 0;
ColNo := 0;
DepNo := 0;
for i := 1 to NoVariables do
begin
cellstring := OS3MainFrm.DataGrid.Cells[i,0];
if cellstring = RowEdit.Text then RowNo := i;
if cellstring = ColEdit.Text then ColNo := i;
if cellstring = DepEdit.Text then DepNo := i;
end;
ColNoSelected[0] := RowNo;
ColNoSelected[1] := ColNo;
NoSelected := 2;
if InputGrp.ItemIndex > 0 then // for reading proportions or frequencies
begin
NoSelected := 3;
ColNoSelected[2] := DepNo;
end;
// get min and max of row and col numbers
MinRow := 1000;
MaxRow := 0;
MinCol := 1000;
MaxCol := 0;
for i := 1 to NoCases do
begin
if NOT GoodRecord(i,NoSelected,ColNoSelected) then continue;
Row := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[RowNo,i])));
Col := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ColNo,i])));
if Row > MaxRow then MaxRow := Row;
if Row < MinRow then MinRow := Row;
if Col > MaxCol then MaxCol := Col;
if Col < MinCol then MinCol := Col;
end;
Nrows := MaxRow - MinRow + 1;
Ncols := MaxCol - MinCol + 1;
// allocate and initialize
SetLength(Freq,Nrows+1,Ncols+1);
SetLength(Prop,Nrows+1,Ncols+1);
SetLength(Expected,Nrows,Ncols);
SetLength(CellChi,Nrows,Ncols);
SetLength(RowLabels,Nrows+1);
SetLength(ColLabels,Ncols+1);
for i := 1 to Nrows + 1 do
for j := 1 to Ncols + 1 do Freq[i-1,j-1] := 0;
// get cell data
NCases := 0;
case InputGrp.ItemIndex of
0 : begin // count number of cases in each row and column combination
for i := 1 to NoCases do
begin
if not GoodRecord(i,NoSelected,ColNoSelected) then continue;
NCases := NCases + 1;
Row := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[RowNo,i])));
Col := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ColNo,i])));
Row := Row - MinRow + 1;
Col := Col - MinCol + 1;
Freq[Row-1,Col-1] := Freq[Row-1,Col-1] + 1;
end;
end;
1 : begin // read frequencies data from grid
for i := 1 to NoCases do
begin
if not GoodRecord(i,NoSelected,ColNoSelected) then continue;
Row := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[RowNo,i])));
Col := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ColNo,i])));
Row := Row - MinRow + 1;
Col := Col - MinCol + 1;
FObs := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[DepNo,i])));
Freq[Row-1,Col-1] := Freq[Row-1,Col-1] + FObs;
NCases := NCases + FObs;
end;
end;
2 : begin // get no. of cases and proportions for each cell
NCases := StrToInt(NCasesEdit.Text);
for i := 1 to NoCases do
begin
if not GoodRecord(i,NoSelected,ColNoSelected) then continue;
Row := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[RowNo,i])));
Col := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ColNo,i])));
Row := Row - MinRow + 1;
Col := Col - MinCol + 1;
PObs := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[DepNo,i]));
Freq[Row-1,Col-1] := Freq[Row-1,Col-1] + round(PObs * NCases);
end;
end;
end; // end case
Freq[Nrows,Ncols] := NCases;
// Now, calculate expected values
// Get row totals first
for i := 1 to Nrows do
for j := 1 to Ncols do
Freq[i-1,Ncols] := Freq[i-1,Ncols] + Freq[i-1,j-1];
// Get col totals next
for j := 1 to Ncols do
for i := 1 to Nrows do
Freq[Nrows,j-1] := Freq[Nrows,j-1] + Freq[i-1,j-1];
// Then get expected values and cell chi-squares
ChiSquare := 0.0;
AdjChisqr := 0.0;
if (YatesChk.Checked) and (Nrows = 2) and (Ncols = 2) then yates := true;
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
Expected[i-1,j-1] := Freq[Nrows,j-1] * Freq[i-1,Ncols] / NCases;
if Expected[i-1,j-1] > 0.0 then
CellChi[i-1,j-1] := sqr(Freq[i-1,j-1] - Expected[i-1,j-1])
/ Expected[i-1,j-1]
else begin
ShowMessage('ERROR! Zero expected value found.');
CellChi[i-1,j-1] := 0.0;
end;
ChiSquare := ChiSquare + CellChi[i-1,j-1];
end;
end;
df := (Nrows - 1) * (Ncols - 1);
if yates = true then // 2 x 2 corrected chi-square
begin
Adjchisqr := abs((Freq[0,0] * Freq[1,1]) - (Freq[0,1] * Freq[1,0]));
Adjchisqr := sqr(Adjchisqr - NCases / 2.0) * NCases; // numerator
Adjchisqr := Adjchisqr / (Freq[0,2] * Freq[1,2] * Freq[2,0] * Freq[2,1]);
Adjprobchi := 1.0 - chisquaredprob(Adjchisqr,df);
end;
ProbChi := 1.0 - chisquaredprob(ChiSquare,df); // prob. larger chi
//Print results to output form
OutPutFrm.RichEdit.Clear;
OutPutFrm.RichEdit.Lines.Add('Chi-square Analysis Results');
OutPutFrm.RichEdit.Lines.Add('');
// print tables requested by use
for i := 1 to Nrows do RowLabels[i-1] := format('Row %d',[i]);
RowLabels[Nrows] := 'Total';
for j := 1 to Ncols do ColLabels[j-1] := format('COL.%d',[j]);
ColLabels[Ncols] := 'Total';
if ObsChk.Checked then
begin
IntArrayPrint(Freq, Nrows+1, Ncols+1,'Rows',
RowLabels, ColLabels,'OBSERVED FREQUENCIES');
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
end;
if ExpChk.Checked then
begin
title := 'EXPECTED FREQUENCIES';
MAT_Print(Expected,Nrows,Ncols,title,RowLabels,ColLabels,NCases);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
end;
if PropsChk.Checked then
begin
title := 'ROW PROPORTIONS';
for i := 1 to Nrows + 1 do
begin
for j := 1 to Ncols do
begin
if Freq[i-1,Ncols] > 0.0 then
Prop[i-1,j-1] := Freq[i-1,j-1] / Freq[i-1,Ncols]
else Prop[i-1,j-1] := 0.0;
end;
if Freq[i-1,Ncols] > 0.0 then Prop[i-1,Ncols] := 1.0
else Prop[i-1,Ncols] := 0.0;
end;
MAT_PRINT(Prop,Nrows+1,Ncols+1,title,RowLabels,ColLabels,NCases);
title := 'COLUMN PROPORTIONS';
for j := 1 to Ncols + 1 do
begin
for i := 1 to Nrows do
begin
if Freq[Nrows,j-1] > 0.0 then
Prop[i-1,j-1] := Freq[i-1,j-1] / Freq[Nrows,j-1]
else Prop[i-1,j-1] := 0.0;
end;
if Freq[Nrows,j-1] > 0.0 then Prop[NRows,j-1] := 1.0
else Prop[NRows,j-1] := 0.0;
end;
MAT_PRINT(Prop,Nrows+1,Ncols+1,title,RowLabels,ColLabels,NCases);
Title := 'PROPORTIONS OF TOTAL N';
for i := 1 to Nrows + 1 do
for j := 1 to Ncols + 1 do Prop[i-1,j-1] := Freq[i-1,j-1] / NCases;
Prop[Nrows,Ncols] := 1.0;
MAT_PRINT(Prop,Nrows+1,Ncols+1,title,RowLabels,ColLabels,NCases);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
end;
if CellChiChk.Checked then
begin
title := 'CHI-SQUARED VALUE FOR CELLS';
MAT_PRINT(CellChi,Nrows,Ncols,title,RowLabels,ColLabels,NCases);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
end;
outline := format('Chi-square = %8.3f with D.F. = %d. Prob. > value = %8.3f',
[ChiSquare,df,ProbChi]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
if yates = true then
begin
outline := format('Chi-square using Yates correction = %8.3f and Prob > value = %8.3f',
[Adjchisqr,Adjprobchi]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
liklihood := 0.0;
for i := 0 to Nrows-1 do
for j := 0 to Ncols-1 do
if (Freq[i,j] > 0.0) then
liklihood := Liklihood + (Freq[i,j] * (ln(Expected[i,j] / Freq[i,j])));
liklihood := -2.0 * liklihood;
probliklihood := 1.0 - chisquaredprob(liklihood,df);
outline := format('Liklihood Ratio = %8.3f with prob. > value = %6.4f',
[liklihood,probliklihood]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
G := 0.0;
for i := 0 to Nrows-1 do
for j := 0 to Ncols-1 do
if (Expected[i,j] > 0) then
G := G + Freq[i,j] * (ln(Freq[i,j] / Expected[i,j]));
G := 2.0 * G;
probliklihood := 1.0 - chisquaredprob(G,df);
outline := format('G statistic = %8.3f with prob. > value = %6.4f',[G,probliklihood]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
if ((Nrows > 1) and (Ncols > 1)) then
begin
phi := sqrt(ChiSquare / Ncases);
outline := format('phi correlation = %6.4f',[phi]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
pearsonr := 0.0;
SumX := 0.0;
SumY := 0.0;
VarX := 0.0;
VarY := 0.0;
for i := 0 to Nrows-1 do SumX := SumX + ( (i+1) * Freq[i,Ncols] );
for j := 0 to Ncols-1 do SumY := SumY + ( (j+1) * Freq[Nrows,j] );
for i := 0 to Nrows-1 do VarX := VarX + ( ((i+1)*(i+1)) * Freq[i,Ncols] );
for j := 0 to Ncols-1 do VarY := VarY + ( ((j+1)*(j+1)) * Freq[Nrows,j] );
VarX := VarX - ((SumX * SumX) / Ncases);
VarY := VarY - ((SumY * SumY) / Ncases);
for i := 0 to Nrows-1 do
for j := 0 to Ncols-1 do
pearsonr := pearsonr + ((i+1)*(j+1) * Freq[i,j]);
pearsonr := pearsonr - (SumX * SumY / Ncases);
pearsonr := pearsonr / sqrt(VarX * VarY);
outline := format('Pearson Correlation r = %6.4f',[pearsonr]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
MantelHaenszel := (Ncases-1) * (pearsonr * pearsonr);
MHprob := 1.0 - chisquaredprob(MantelHaenszel,1);
outline := format('Mantel-Haenszel Test of Linear Association = %8.3f with probability > value = %6.4f',
[MantelHaenszel, MHprob]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
CoefCont := sqrt(ChiSquare / (ChiSquare + Ncases));
outline := format('The coefficient of contingency = %8.3f',[CoefCont]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
if (Nrows < Ncols) then
CramerV := sqrt(ChiSquare / (Ncases * ((Nrows-1))))
else CramerV := sqrt(ChiSquare / (Ncases * ((Ncols-1))));
outline := format('Cramers V = %8.3f',[CramerV]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
end;
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
// save frequency data file if elected
if SaveFChk.Checked then
begin
OS3MainFrm.CloseFileBtnClick(self);
OS3MainFrm.FileNameEdit.Text := '';
for i := 1 to DictionaryFrm.DictGrid.RowCount - 1 do
for j := 0 to 7 do DictionaryFrm.DictGrid.Cells[j,i] := '';
DictionaryFrm.DictGrid.RowCount := 1;
// DictionaryFrm.FileNameEdit.Text := '';
// get labels for new file
ColLabels[0] := 'ROW';
ColLabels[1] := 'COL';
ColLabels[2] := 'FREQ';
// create new variables
Row := 0;
OS3MainFrm.DataGrid.ColCount := 4;
DictionaryFrm.DictGrid.ColCount := 8;
NoVariables := 0;
for i := 1 to 3 do
begin
col := NoVariables + 1;
DictionaryFrm.NewVar(col);
DictionaryFrm.DictGrid.Cells[1,col] := ColLabels[i-1];
OS3MainFrm.DataGrid.Cells[col,0] := ColLabels[i-1];
NoVariables := NoVariables + 1;
end;
OS3MainFrm.DataGrid.RowCount := (Nrows * NCols) + 1;
for i := 1 to Nrows do
begin
for j := 1 to Ncols do
begin
Row := Row + 1;
OS3MainFrm.DataGrid.Cells[0,Row] := format('Case:%d',[Row]);
OS3MainFrm.DataGrid.Cells[1,Row] := IntToStr(i);
OS3MainFrm.DataGrid.Cells[2,Row] := IntToStr(j);
OS3MainFrm.DataGrid.Cells[3,Row] := IntToStr(Freq[i-1,j-1]);
end;
end;
NoCases := Row;
OS3MainFrm.FileNameEdit.Text := 'ChiSqrFreq.LAZ';
OS3MainFrm.NoCasesEdit.Text := IntToStr(NoCases);
OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables);
// OS3MainFrm.SaveFileBtnClick(self);
end;
//clean up
ColLabels := nil;
RowLabels := nil;
CellChi := nil;
Expected := nil;
Prop := nil;
Freq := nil;
ColNoSelected := nil;
ResetBtnClick(self);
end;
procedure TChiSqrFrm.DepInClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
DepEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
DepIn.Visible := false;
DepOut.Visible := true;
end;
procedure TChiSqrFrm.DepOutClick(Sender: TObject);
begin
VarList.Items.Add(DepEdit.Text);
DepEdit.Text := '';
DepIn.Visible := true;
DepOut.Visible := false;
end;
procedure TChiSqrFrm.InputGrpClick(Sender: TObject);
VAR index : integer;
begin
index := InputGrp.ItemIndex;
if index = 2 then // only proportions available - get N size
begin
NCasesLabel.Visible := true;
AnalyzeLabel.Visible := true;
NCasesEdit.Visible := true;
NCasesEdit.SetFocus;
DepIn.Visible := true;
DepOut.Visible := false;
DepEdit.Visible := true;
end;
if index = 1 then // frequencies available for each row and column combo
begin
NCasesLabel.Visible := false;
NCasesEdit.Visible := false;
DepIn.Visible := true;
DepEdit.Visible := true;
AnalyzeLabel.Visible := true;
end;
if index = 0 then // have to count cases in each row and col. combination
begin
NCasesLabel.Visible := false;
NCasesEdit.Visible := false;
DepIn.Visible := false;
DepOut.Visible := false;
DepEdit.Visible := false;
end;
end;
initialization
{$I chisqrunit.lrs}
end.

View File

@ -1,481 +0,0 @@
object ChiSqrFrm: TChiSqrFrm
Left = 173
Height = 486
Top = 99
Width = 425
Caption = 'Contingency Chi Squared'
ClientHeight = 486
ClientWidth = 425
OnShow = FormShow
LCLVersion = '0.9.30'
object Label1: TLabel
Left = 7
Height = 16
Top = 111
Width = 99
Caption = 'Available Variables'
ParentColor = False
end
object Label2: TLabel
Left = 206
Height = 16
Top = 136
Width = 69
Caption = 'Row Variable'
ParentColor = False
end
object Label3: TLabel
Left = 205
Height = 16
Top = 203
Width = 89
Caption = 'Column Variable'
ParentColor = False
end
object AnalyzeLabel: TLabel
Left = 205
Height = 16
Top = 288
Width = 101
Caption = 'Variable to Analyze'
ParentColor = False
end
object NCasesLabel: TLabel
Left = 7
Height = 16
Top = 384
Width = 100
Caption = 'Total No. of Cases:'
ParentColor = False
end
object InputGrp: TRadioGroup
Left = 7
Height = 87
Top = 1
Width = 409
AutoFill = True
Caption = 'Input Options'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 69
ClientWidth = 405
Items.Strings = (
'Count vases classified by row and column vectors in the data grid'
'Use frequencies recorded in the data grid for row and column variables'
'Use proportions recorded in the data grid for row and column variables'
)
OnClick = InputGrpClick
TabOrder = 0
end
object VarList: TListBox
Left = 7
Height = 222
Top = 136
Width = 153
ItemHeight = 0
TabOrder = 1
end
object RowIn: TBitBtn
Left = 168
Height = 26
Top = 136
Width = 30
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
}
NumGlyphs = 0
OnClick = RowInClick
TabOrder = 2
end
object RowOut: TBitBtn
Left = 168
Height = 26
Top = 168
Width = 30
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
}
NumGlyphs = 0
OnClick = RowOutClick
TabOrder = 3
end
object ColIn: TBitBtn
Left = 168
Height = 26
Top = 208
Width = 30
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
}
NumGlyphs = 0
OnClick = ColInClick
TabOrder = 4
end
object ColOut: TBitBtn
Left = 168
Height = 26
Top = 241
Width = 30
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
}
NumGlyphs = 0
OnClick = ColOutClick
TabOrder = 5
end
object DepIn: TBitBtn
Left = 168
Height = 26
Top = 288
Width = 30
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
}
NumGlyphs = 0
OnClick = DepInClick
TabOrder = 6
end
object DepOut: TBitBtn
Left = 168
Height = 26
Top = 320
Width = 30
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
}
NumGlyphs = 0
OnClick = DepOutClick
TabOrder = 7
end
object RowEdit: TEdit
Left = 206
Height = 23
Top = 152
Width = 100
TabOrder = 8
Text = 'RowEdit'
end
object ColEdit: TEdit
Left = 205
Height = 23
Top = 224
Width = 100
TabOrder = 9
Text = 'Edit1'
end
object DepEdit: TEdit
Left = 206
Height = 23
Top = 312
Width = 100
TabOrder = 10
Text = 'Edit1'
end
object NCasesEdit: TEdit
Left = 112
Height = 23
Top = 376
Width = 41
TabOrder = 11
Text = 'NCasesEdit'
end
object YatesChk: TCheckBox
Left = 7
Height = 19
Top = 416
Width = 129
Caption = 'Use Yates Correction'
TabOrder = 12
end
object GroupBox1: TGroupBox
Left = 188
Height = 119
Top = 352
Width = 210
Caption = 'Output Options:'
ClientHeight = 101
ClientWidth = 206
TabOrder = 13
object ObsChk: TCheckBox
Left = 8
Height = 19
Top = 0
Width = 168
Caption = 'Show Observed Frequencies'
TabOrder = 0
end
object ExpChk: TCheckBox
Left = 8
Height = 19
Top = 19
Width = 165
Caption = 'Show Expected Frequencies'
TabOrder = 1
end
object PropsChk: TCheckBox
Left = 8
Height = 19
Top = 39
Width = 209
Caption = 'Show Row and Column Proportions'
TabOrder = 2
end
object CellChiChk: TCheckBox
Left = 8
Height = 19
Top = 59
Width = 178
Caption = 'Show Cell Chi-Squared Values'
TabOrder = 3
end
object SaveFChk: TCheckBox
Left = 8
Height = 19
Top = 79
Width = 173
Caption = 'Save a File of Frequency Data'
TabOrder = 4
end
end
object ResetBtn: TButton
Left = 328
Height = 27
Top = 144
Width = 70
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 14
end
object CancelBtn: TButton
Left = 328
Height = 27
Top = 192
Width = 70
Caption = 'Cancel'
ModalResult = 2
TabOrder = 15
end
object ComputeBtn: TButton
Left = 328
Height = 27
Top = 240
Width = 70
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 16
end
object ReturnBtn: TButton
Left = 328
Height = 27
Top = 288
Width = 70
Caption = 'Return'
ModalResult = 1
OnClick = ReturnBtnClick
TabOrder = 17
end
end

View File

@ -1,368 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TChiSqrFrm','FORMDATA',[
'TPF0'#10'TChiSqrFrm'#9'ChiSqrFrm'#4'Left'#3#173#0#6'Height'#3#230#1#3'Top'#2
+'c'#5'Width'#3#169#1#7'Caption'#6#23'Contingency Chi Squared'#12'ClientHeigh'
+'t'#3#230#1#11'ClientWidth'#3#169#1#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6
+#6'0.9.30'#0#6'TLabel'#6'Label1'#4'Left'#2#7#6'Height'#2#16#3'Top'#2'o'#5'Wi'
+'dth'#2'c'#7'Caption'#6#19'Available Variables'#11'ParentColor'#8#0#0#6'TLab'
+'el'#6'Label2'#4'Left'#3#206#0#6'Height'#2#16#3'Top'#3#136#0#5'Width'#2'E'#7
+'Caption'#6#12'Row Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Lef'
+'t'#3#205#0#6'Height'#2#16#3'Top'#3#203#0#5'Width'#2'Y'#7'Caption'#6#15'Colu'
+'mn Variable'#11'ParentColor'#8#0#0#6'TLabel'#12'AnalyzeLabel'#4'Left'#3#205
+#0#6'Height'#2#16#3'Top'#3' '#1#5'Width'#2'e'#7'Caption'#6#19'Variable to An'
+'alyze'#11'ParentColor'#8#0#0#6'TLabel'#11'NCasesLabel'#4'Left'#2#7#6'Height'
+#2#16#3'Top'#3#128#1#5'Width'#2'd'#7'Caption'#6#19'Total No. of Cases:'#11'P'
+'arentColor'#8#0#0#11'TRadioGroup'#8'InputGrp'#4'Left'#2#7#6'Height'#2'W'#3
+'Top'#2#1#5'Width'#3#153#1#8'AutoFill'#9#7'Caption'#6#13'Input Options'#28'C'
+'hildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'Ch'
+'ildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.'
+'EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizo'
+'ntal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChil'
+'ds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizi'
+'ng.ControlsPerLine'#2#1#12'ClientHeight'#2'E'#11'ClientWidth'#3#149#1#13'It'
+'ems.Strings'#1#6'ACount vases classified by row and column vectors in the d'
+'ata grid'#6'FUse frequencies recorded in the data grid for row and column v'
+'ariables'#6'FUse proportions recorded in the data grid for row and column v'
+'ariables'#0#7'OnClick'#7#13'InputGrpClick'#8'TabOrder'#2#0#0#0#8'TListBox'#7
+'VarList'#4'Left'#2#7#6'Height'#3#222#0#3'Top'#3#136#0#5'Width'#3#153#0#10'I'
+'temHeight'#2#0#8'TabOrder'#2#1#0#0#7'TBitBtn'#5'RowIn'#4'Left'#3#168#0#6'He'
+'ight'#2#26#3'Top'#3#136#0#5'Width'#2#30#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0
+'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4
+#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'
+#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'
+#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0
+#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255
+#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137
+#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255
+#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158
+#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255
+#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255
+'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'
+#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'
+#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#10'RowInClick'#8'TabOrder'#2#2#0
+#0#7'TBitBtn'#6'RowOut'#4'Left'#3#168#0#6'Height'#2#26#3'Top'#3#168#0#5'Widt'
+'h'#2#30#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0
+#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0
+#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247
+'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['
+#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255
+'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'
+#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206
+#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'
+#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0
+'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154#212#163
+#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133#199
+#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0
+#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135#255']'
+#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'
+#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7
,'OnClick'#7#11'RowOutClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#5'ColIn'#4'Left'#3
+#168#0#6'Height'#2#26#3'Top'#3#208#0#5'Width'#2#30#10'Glyph.Data'#10':'#4#0#0
+'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0
+#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'
+#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'
+#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255
+#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211
+#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130
+#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'
+#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171
+#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204
+#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'
+#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255
+'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161
+'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#10'ColInClick'#8'TabOrder'
+#2#4#0#0#7'TBitBtn'#6'ColOut'#4'Left'#3#168#0#6'Height'#2#26#3'Top'#3#241#0#5
+'Width'#2#30#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0
+'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0
+#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'
+#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'
+#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255
+'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'
+#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195
+'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255
+#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255
+#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#11'ColOutClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'#5'DepIn'
+#4'Left'#3#168#0#6'Height'#2#26#3'Top'#3' '#1#5'Width'#2#30#10'Glyph.Data'#10
+':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0
+' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'
+#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'
+#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0
+#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255
,#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142
+#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'
+#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162
+#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255
+#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130
+#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199
+'t'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255
+'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'
+#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#10'DepInClick'#8
+'TabOrder'#2#6#0#0#7'TBitBtn'#6'DepOut'#4'Left'#3#168#0#6'Height'#2#26#3'Top'
+#3'@'#1#5'Width'#2#30#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0
+'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0
+#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'
+#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161
+'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131
+#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/'
+'x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'
+#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255
+#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132
+#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255
+#255#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154
+#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255
+#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201
+#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'
+#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255
,#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'Num'
+'Glyphs'#2#0#7'OnClick'#7#11'DepOutClick'#8'TabOrder'#2#7#0#0#5'TEdit'#7'Row'
+'Edit'#4'Left'#3#206#0#6'Height'#2#23#3'Top'#3#152#0#5'Width'#2'd'#8'TabOrde'
+'r'#2#8#4'Text'#6#7'RowEdit'#0#0#5'TEdit'#7'ColEdit'#4'Left'#3#205#0#6'Heigh'
+'t'#2#23#3'Top'#3#224#0#5'Width'#2'd'#8'TabOrder'#2#9#4'Text'#6#5'Edit1'#0#0
+#5'TEdit'#7'DepEdit'#4'Left'#3#206#0#6'Height'#2#23#3'Top'#3'8'#1#5'Width'#2
+'d'#8'TabOrder'#2#10#4'Text'#6#5'Edit1'#0#0#5'TEdit'#10'NCasesEdit'#4'Left'#2
+'p'#6'Height'#2#23#3'Top'#3'x'#1#5'Width'#2')'#8'TabOrder'#2#11#4'Text'#6#10
+'NCasesEdit'#0#0#9'TCheckBox'#8'YatesChk'#4'Left'#2#7#6'Height'#2#19#3'Top'#3
+#160#1#5'Width'#3#129#0#7'Caption'#6#20'Use Yates Correction'#8'TabOrder'#2
+#12#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3#188#0#6'Height'#2'w'#3'Top'#3'`'
+#1#5'Width'#3#210#0#7'Caption'#6#15'Output Options:'#12'ClientHeight'#2'e'#11
+'ClientWidth'#3#206#0#8'TabOrder'#2#13#0#9'TCheckBox'#6'ObsChk'#4'Left'#2#8#6
+'Height'#2#19#3'Top'#2#0#5'Width'#3#168#0#7'Caption'#6#25'Show Observed Freq'
+'uencies'#8'TabOrder'#2#0#0#0#9'TCheckBox'#6'ExpChk'#4'Left'#2#8#6'Height'#2
+#19#3'Top'#2#19#5'Width'#3#165#0#7'Caption'#6#25'Show Expected Frequencies'#8
+'TabOrder'#2#1#0#0#9'TCheckBox'#8'PropsChk'#4'Left'#2#8#6'Height'#2#19#3'Top'
+#2''''#5'Width'#3#209#0#7'Caption'#6#31'Show Row and Column Proportions'#8'T'
+'abOrder'#2#2#0#0#9'TCheckBox'#10'CellChiChk'#4'Left'#2#8#6'Height'#2#19#3'T'
+'op'#2';'#5'Width'#3#178#0#7'Caption'#6#28'Show Cell Chi-Squared Values'#8'T'
+'abOrder'#2#3#0#0#9'TCheckBox'#8'SaveFChk'#4'Left'#2#8#6'Height'#2#19#3'Top'
+#2'O'#5'Width'#3#173#0#7'Caption'#6#29'Save a File of Frequency Data'#8'TabO'
+'rder'#2#4#0#0#0#7'TButton'#8'ResetBtn'#4'Left'#3'H'#1#6'Height'#2#27#3'Top'
+#3#144#0#5'Width'#2'F'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8
+'TabOrder'#2#14#0#0#7'TButton'#9'CancelBtn'#4'Left'#3'H'#1#6'Height'#2#27#3
+'Top'#3#192#0#5'Width'#2'F'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'Tab'
+'Order'#2#15#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3'H'#1#6'Height'#2#27#3'T'
+'op'#3#240#0#5'Width'#2'F'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBt'
+'nClick'#8'TabOrder'#2#16#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3'H'#1#6'Heigh'
+'t'#2#27#3'Top'#3' '#1#5'Width'#2'F'#7'Caption'#6#6'Return'#11'ModalResult'#2
+#1#7'OnClick'#7#14'ReturnBtnClick'#8'TabOrder'#2#17#0#0#0
]);

View File

@ -1,197 +0,0 @@
unit CochranQUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, MainUnit, Globals, OutPutUnit, DataProcs, Math,
FunctionsLib, contexthelpunit;
type
{ TCochranQFrm }
TCochranQFrm = class(TForm)
HelpBtn: TButton;
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
InBtn: TBitBtn;
Label2: TLabel;
ListBox1: TListBox;
OutBtn: TBitBtn;
AllBtn: TBitBtn;
Label1: TLabel;
VarList: TListBox;
procedure AllBtnClick(Sender: TObject);
procedure ComputeBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure HelpBtnClick(Sender: TObject);
procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
CochranQFrm: TCochranQFrm;
implementation
{ TCochranQFrm }
procedure TCochranQFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
VarList.Clear;
ListBox1.Clear;
for i := 1 to NoVariables do
begin
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
end;
InBtn.Visible := true;
OutBtn.Visible := false;
end;
procedure TCochranQFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TCochranQFrm.HelpBtnClick(Sender: TObject);
begin
ContextHelpForm.HelpMessage((Sender as TButton).tag);
end;
procedure TCochranQFrm.AllBtnClick(Sender: TObject);
VAR count, index : integer;
begin
count := VarList.Items.Count;
if count = 0 then exit;
for index := 0 to count-1 do
begin
ListBox1.Items.Add(VarList.Items.Strings[index]);
end;
VarList.Clear;
InBtn.Visible := false;
OutBtn.Visible := true;
end;
procedure TCochranQFrm.ComputeBtnClick(Sender: TObject);
var
i, j, k, col : integer;
ColNoSelected : IntDyneVec;
R1, L1, L2, C1, g1, Q, g2, chiprob : double;
cellstring, outline : string;
begin
SetLength(ColNoSelected,NoVariables);
C1 := 0.0;
k := ListBox1.Items.Count;
// Get column numbers and labels of variables selected
for i := 1 to k do
begin
cellstring := ListBox1.Items.Strings[i-1];
for j := 1 to NoVariables do
begin
if (cellstring = OS3MainFrm.DataGrid.Cells[j,0]) then
ColNoSelected[i-1] := j;
end;
end;
// Calculate results
R1 := 0.0;
L1 := 0.0;
L2 := 0.0;
g1 := 0.0;
g2 := 0.0;
for i := 1 to NoCases do
begin
if (not GoodRecord(i,k,ColNoSelected)) then continue;
for j := 1 to k do
begin
col := ColNoSelected[j-1];
R1 := R1 + StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,i]));
end;
L1 := L1 + R1;
L2 := L2 + (R1 * R1);
R1 := 0.0;
end;
for j := 1 to k do
begin
for i := 1 to NoCases do
begin
if (not GoodRecord(i,k,ColNoSelected)) then continue;
col := ColNoSelected[j-1];
C1 := C1 + StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,i]));
end;
g1 := g1 + C1;
g2 := g2 + (C1 * C1);
C1 := 0.0;
end;
if ((k * L1) - L2) > 0.0 then
begin
Q := ((k - 1) * ((k * g2) - (g1 * g1))) / ((k * L1) - L2);
chiprob := 1.0 - chisquaredprob(Q, k - 1);
end
else begin
Q := 0.0;
chiprob := 1.0;
ShowMessage('Error in obtaining Q and the probability.');
end;
//present results
OutPutFrm.RichEdit.Clear;
OutPutFrm.RichEdit.Lines.Add('Cochran Q Test for Related Samples');
OutPutFrm.RichEdit.Lines.Add('See pages 161-166 in S. Siegel: Nonparametric Statistics for the Behavioral Sciences');
OutPutFrm.RichEdit.Lines.Add('McGraw-Hill Book Company, New York, 1956');
OutPutFrm.RichEdit.Lines.Add('');
outline := format('Cochran Q Statistic = %6.3f',[Q]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format('which is distributed as chi-square with %d D.F. and probability = %6.4f',
[k-1, chiprob]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.ShowModal;
OutPutFrm.RichEdit.Clear;
ColNoSelected := nil;
end;
procedure TCochranQFrm.InBtnClick(Sender: TObject);
VAR i, index : integer;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
ListBox1.Items.Add(VarList.Items.Strings[i]);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
OutBtn.Visible := true;
end;
procedure TCochranQFrm.OutBtnClick(Sender: TObject);
VAR index : integer;
begin
index := ListBox1.ItemIndex;
VarList.Items.Add(ListBox1.Items.Strings[index]);
ListBox1.Items.Delete(index);
InBtn.Visible := true;
end;
initialization
{$I cochranqunit.lrs}
end.

View File

@ -1,190 +0,0 @@
object CochranQFrm: TCochranQFrm
Left = 138
Height = 271
Top = 128
Width = 505
Caption = 'Cochran Q Test'
ClientHeight = 271
ClientWidth = 505
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 7
Height = 14
Top = 1
Width = 90
Caption = 'Available Variables'
ParentColor = False
end
object Label2: TLabel
Left = 217
Height = 14
Top = 2
Width = 88
Caption = 'Selected Variables'
ParentColor = False
end
object VarList: TListBox
Left = 7
Height = 232
Top = 16
Width = 149
ItemHeight = 0
MultiSelect = True
TabOrder = 0
end
object InBtn: TBitBtn
Left = 168
Height = 29
Top = 24
Width = 34
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
}
NumGlyphs = 0
OnClick = InBtnClick
TabOrder = 1
end
object OutBtn: TBitBtn
Left = 168
Height = 29
Top = 56
Width = 34
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
}
NumGlyphs = 0
OnClick = OutBtnClick
TabOrder = 2
end
object AllBtn: TBitBtn
Left = 168
Height = 29
Top = 104
Width = 34
Caption = 'ALL'
NumGlyphs = 0
OnClick = AllBtnClick
TabOrder = 3
end
object ListBox1: TListBox
Left = 210
Height = 226
Top = 22
Width = 158
ItemHeight = 0
TabOrder = 4
end
object ResetBtn: TButton
Left = 400
Height = 30
Top = 55
Width = 80
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 5
end
object CancelBtn: TButton
Left = 400
Height = 30
Top = 103
Width = 81
Caption = 'Cancel'
ModalResult = 2
TabOrder = 6
end
object ComputeBtn: TButton
Left = 400
Height = 30
Top = 152
Width = 81
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 7
end
object ReturnBtn: TButton
Left = 400
Height = 30
Top = 200
Width = 81
Caption = 'Return'
ModalResult = 1
TabOrder = 8
end
object HelpBtn: TButton
Tag = 113
Left = 400
Height = 32
Top = 8
Width = 80
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 9
end
end

View File

@ -1,130 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TCochranQFrm','FORMDATA',[
'TPF0'#12'TCochranQFrm'#11'CochranQFrm'#4'Left'#3#138#0#6'Height'#3#15#1#3'To'
+'p'#3#128#0#5'Width'#3#249#1#7'Caption'#6#14'Cochran Q Test'#12'ClientHeight'
+#3#15#1#11'ClientWidth'#3#249#1#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#8'0'
+'.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#7#6'Height'#2#14#3'Top'#2#1#5'Widt'
+'h'#2'Z'#7'Caption'#6#19'Available Variables'#11'ParentColor'#8#0#0#6'TLabel'
+#6'Label2'#4'Left'#3#217#0#6'Height'#2#14#3'Top'#2#2#5'Width'#2'X'#7'Caption'
+#6#18'Selected Variables'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Lef'
+'t'#2#7#6'Height'#3#232#0#3'Top'#2#16#5'Width'#3#149#0#10'ItemHeight'#2#0#11
+'MultiSelect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#168#0#6'He'
+'ight'#2#29#3'Top'#2#24#5'Width'#2'"'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM'
+'6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0
+#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'
+#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'
+#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255
+#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255#148#208
+#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'
+#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255
+#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158#214#167
+#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202
+#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'
+#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'
+#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'
+#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#9'NumGlyphs'#2#0#7'OnClick'#7#10'InBtnClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'
+#6'OutBtn'#4'Left'#3#168#0#6'Height'#2#29#3'Top'#2'8'#5'Width'#2'"'#10'Glyph'
+'.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16
+#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255
+'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'
+#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134#255#156
+#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255
+#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255
+'r'#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201#127#204#138
+#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207
+#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'
+#194#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'
+#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'
+#255'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0'h'#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'h'#199't'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'OutBtnClick'#8
+'TabOrder'#2#2#0#0#7'TBitBtn'#6'AllBtn'#4'Left'#3#168#0#6'Height'#2#29#3'Top'
+#2'h'#5'Width'#2'"'#7'Caption'#6#3'ALL'#9'NumGlyphs'#2#0#7'OnClick'#7#11'All'
+'BtnClick'#8'TabOrder'#2#3#0#0#8'TListBox'#8'ListBox1'#4'Left'#3#210#0#6'Hei'
+'ght'#3#226#0#3'Top'#2#22#5'Width'#3#158#0#10'ItemHeight'#2#0#8'TabOrder'#2#4
+#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#144#1#6'Height'#2#30#3'Top'#2'7'#5'Wid'
+'th'#2'P'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2
+#5#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#144#1#6'Height'#2#30#3'Top'#2'g'#5
+'Width'#2'Q'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#6#0#0#7
+'TButton'#10'ComputeBtn'#4'Left'#3#144#1#6'Height'#2#30#3'Top'#3#152#0#5'Wid'
+'th'#2'Q'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrde'
+'r'#2#7#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#144#1#6'Height'#2#30#3'Top'#3
+#200#0#5'Width'#2'Q'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2
+#8#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2'q'#4'Left'#3#144#1#6'Height'#2' '#3'To'
+'p'#2#8#5'Width'#2'P'#7'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'T'
+'abOrder'#2#9#0#0#0
]);

View File

@ -1,289 +0,0 @@
unit CompRelUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, MainUnit, OutPutUnit, FunctionsLib, Globals,
DataProcs, Math, MatrixLib, DictionaryUnit, contexthelpunit;
type
{ TCompRelFrm }
TCompRelFrm = class(TForm)
HelpBtn: TButton;
InBtn: TBitBtn;
OutBtn: TBitBtn;
AllBtn: TBitBtn;
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
RMatChk: TCheckBox;
GridScrChk: TCheckBox;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
ItemList: TListBox;
Label3: TLabel;
Label4: TLabel;
WeightList: TListBox;
RelList: TListBox;
VarList: TListBox;
procedure AllBtnClick(Sender: TObject);
procedure ComputeBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure HelpBtnClick(Sender: TObject);
procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject);
procedure RelListClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
procedure WeightListClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
CompRelFrm: TCompRelFrm;
implementation
{ TCompRelFrm }
procedure TCompRelFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
VarList.Clear;
ItemList.Clear;
RelList.Clear;
WeightList.Clear;
OutBtn.Visible := false;
InBtn.Visible := true;
for i := 1 to NoVariables do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
end;
procedure TCompRelFrm.WeightListClick(Sender: TObject);
var
response : string;
index : integer;
begin
response := InputBox('Test Weight','Test weight = ','1.0');
index := WeightList.ItemIndex;
WeightList.Items.Strings[index] := response;
end;
procedure TCompRelFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TCompRelFrm.HelpBtnClick(Sender: TObject);
begin
ContextHelpForm.HelpMessage((Sender as TButton).tag);
end;
procedure TCompRelFrm.AllBtnClick(Sender: TObject);
var
i, count : integer;
cellstring : string;
begin
count := VarList.Items.Count;
for i := 1 to count do
begin
ItemList.Items.Add(VarList.Items.Strings[i-1]);
cellstring := '1.0';
RelList.Items.Add(cellstring);
WeightList.Items.Add(cellstring);
end;
VarList.Clear;
InBtn.Visible := false;
OutBtn.Visible := true;
end;
procedure TCompRelFrm.ComputeBtnClick(Sender: TObject);
var
i, j, NoVars, count, col : integer;
Rmat, RelMat : DblDyneMat;
Weights, Reliabilities, VectProd, means, variances, stddevs : DblDyneVec;
CompRel, numerator, denominator, compscore : double;
colnoselected : IntDyneVec;
outline, cellstring : string;
title : string;
RowLabels : StrDyneVec;
errorcode : boolean;
begin
SetLength(colnoselected,NoVariables);
SetLength(Rmat,NoVariables+1,NoVariables+1);
SetLength(RelMat,NoVariables+1,NoVariables+1);
SetLength(Weights,NoVariables);
SetLength(Reliabilities,NoVariables);
SetLength(VectProd,NoVariables);
SetLength(means,NoVariables);
SetLength(variances,NoVariables);
SetLength(stddevs,NoVariables);
SetLength(RowLabels,NoVariables);
OutPutFrm.RichEdit.Clear;
// get variable col. no.s selected
NoVars := ItemList.Items.Count;
for i := 1 to NoVars do
begin
cellstring := ItemList.Items.Strings[i-1];
for j := 1 to NoVariables do
begin
if (cellstring = OS3MainFrm.DataGrid.Cells[j,0]) then
begin
colnoselected[i-1] := j;
RowLabels[i-1] := cellstring;
end;
end;
end;
count := NoCases;
OutPutFrm.RichEdit.Lines.Add('Composite Test Reliability');
OutPutFrm.RichEdit.Lines.Add('');
outline := 'File Analyzed: ' + OS3MainFrm.FileNameEdit.Text;
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
// get correlation matrix
Correlations(NoVars,colnoselected,Rmat,means,variances,stddevs,errorcode,count);
if (errorcode) then
ShowMessage('ERROR! Zero variance found for a variable.');
if RmatChk.Checked then
begin
title := 'Correlations Among Tests';
MAT_PRINT(Rmat,NoVars,NoVars,title,RowLabels,RowLabels,count);
title := 'Means';
DynVectorPrint(means,NoVars,title,RowLabels,count);
title := 'Variances';
DynVectorPrint(variances,NoVars,title,RowLabels,count);
title := 'Standard Deviations';
DynVectorPrint(stddevs,NoVars,title,RowLabels,count);
end;
for i := 1 to NoVars do
for j := 1 to NoVars do
RelMat[i-1,j-1] := Rmat[i-1,j-1];
for i := 1 to NoVars do
begin
Reliabilities[i-1] := StrToFloat(RelList.Items.Strings[i-1]);
RelMat[i-1,i-1] := Reliabilities[i-1];
Weights[i-1] := StrToFloat(WeightList.Items.Strings[i-1]);
end;
// get numerator and denominator of composite reliability
for i := 1 to NoVars do VectProd[i-1] := 0.0;
numerator := 0.0;
denominator := 0.0;
for i := 1 to NoVars do
for j := 1 to NoVars do
VectProd[i-1] := VectProd[i-1] + (Weights[i-1] * RelMat[j-1,i-1]);
for i := 1 to NoVars do numerator := numerator + (VectProd[i-1] * Weights[i-1]);
for i := 1 to NoVars do VectProd[i-1] := 0.0;
for i := 1 to NoVars do
for j := 1 to NoVars do
VectProd[i-1] := VectProd[i-1] + (Weights[i-1] * Rmat[j-1,i-1]);
for i := 1 to NoVars do denominator := denominator +
(VectProd[i-1] * Weights[i-1]);
CompRel := numerator / denominator;
OutPutFrm.RichEdit.Lines.Add('');
title := 'Test Weights';
DynVectorPrint(Weights,NoVars,title,RowLabels,count);
title := 'Test Reliabilities';
DynVectorPrint(Reliabilities,NoVars,title,RowLabels,count);
outline := format('Composite reliability = %6.3f',[CompRel]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.ShowModal;
if GridScrChk.Checked then
begin
cellstring := 'Composite';
col := NoVariables + 1;
DictionaryFrm.NewVar(col);
DictionaryFrm.DictGrid.Cells[1,col] := cellstring;
col := NoVariables;
OS3MainFrm.DataGrid.Cells[col,0] := cellstring;
col := NoVariables;
for i := 1 to NoCases do
begin
compscore := 0.0;
if not GoodRecord(i,NoVars,ColNoSelected) then continue;
for j := 1 to NoVars do
begin
compscore := compscore + (Weights[j-1] *
StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[colnoselected[j-1],i])));
end;
OS3MainFrm.DataGrid.Cells[col,i] := FloatToStr(compscore);
end;
end;
RowLabels := nil;
stddevs := nil;
variances := nil;
means := nil;
VectProd := nil;
Reliabilities := nil;
Weights := nil;
RelMat := nil;
Rmat := nil;
colnoselected := nil;
end;
procedure TCompRelFrm.InBtnClick(Sender: TObject);
var
index, i : integer;
cellstring : string;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
ItemList.Items.Add(VarList.Items.Strings[i]);
cellstring := '1.0';
RelList.Items.Add(cellstring);
WeightList.Items.Add(cellstring);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
OutBtn.Visible := true;
end;
procedure TCompRelFrm.OutBtnClick(Sender: TObject);
VAR index : integer;
begin
index := ItemList.ItemIndex;
if index < 0 then
begin
OutBtn.Visible := false;
exit;
end;
VarList.Items.Add(ItemList.Items.Strings[index]);
ItemList.Items.Delete(index);
RelList.Items.Delete(index);
WeightList.Items.Delete(index);
end;
procedure TCompRelFrm.RelListClick(Sender: TObject);
var
response : string;
index : integer;
begin
response := InputBox('Reliability','Reliability estimate = ','1.0');
index := RelList.ItemIndex;
RelList.Items.Strings[index] := response;
end;
initialization
{$I comprelunit.lrs}
end.

View File

@ -1,250 +0,0 @@
object CompRelFrm: TCompRelFrm
Left = 123
Height = 347
Top = 127
Width = 602
Caption = 'Composite Test Reliability'
ClientHeight = 347
ClientWidth = 602
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 6
Height = 14
Top = 8
Width = 90
Caption = 'Variables Available'
ParentColor = False
end
object Label2: TLabel
Left = 207
Height = 14
Top = 8
Width = 72
Caption = 'Selected Items'
ParentColor = False
end
object Label3: TLabel
Left = 377
Height = 14
Top = 8
Width = 70
Caption = 'Test Reliability'
ParentColor = False
end
object Label4: TLabel
Left = 488
Height = 14
Top = 8
Width = 64
Caption = 'Test Weights'
ParentColor = False
end
object VarList: TListBox
Left = 7
Height = 230
Top = 23
Width = 151
ItemHeight = 0
MultiSelect = True
TabOrder = 0
end
object InBtn: TBitBtn
Left = 168
Height = 29
Top = 24
Width = 30
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
}
NumGlyphs = 0
OnClick = InBtnClick
TabOrder = 1
end
object OutBtn: TBitBtn
Left = 168
Height = 29
Top = 56
Width = 30
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
}
NumGlyphs = 0
OnClick = OutBtnClick
TabOrder = 2
end
object AllBtn: TBitBtn
Left = 168
Height = 29
Top = 104
Width = 30
Caption = 'ALL'
NumGlyphs = 0
OnClick = AllBtnClick
TabOrder = 3
end
object ItemList: TListBox
Left = 204
Height = 228
Top = 25
Width = 164
ItemHeight = 0
TabOrder = 4
end
object RelList: TListBox
Left = 374
Height = 228
Top = 24
Width = 105
ItemHeight = 0
OnClick = RelListClick
TabOrder = 5
end
object WeightList: TListBox
Left = 487
Height = 229
Top = 25
Width = 103
ItemHeight = 0
OnClick = WeightListClick
TabOrder = 6
end
object GroupBox1: TGroupBox
Left = 376
Height = 58
Top = 262
Width = 215
Caption = 'Options'
ClientHeight = 40
ClientWidth = 211
TabOrder = 7
object RMatChk: TCheckBox
Left = 8
Height = 17
Top = 2
Width = 153
Caption = 'Print Intercorrelation Matrix'
TabOrder = 0
end
object GridScrChk: TCheckBox
Left = 8
Height = 17
Top = 22
Width = 152
Caption = 'Put Composite Score in Grid'
TabOrder = 1
end
end
object ResetBtn: TButton
Left = 104
Height = 32
Top = 264
Width = 78
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 8
end
object CancelBtn: TButton
Left = 200
Height = 32
Top = 264
Width = 78
Caption = 'Cancel'
ModalResult = 2
TabOrder = 9
end
object ComputeBtn: TButton
Left = 8
Height = 32
Top = 304
Width = 78
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 10
end
object ReturnBtn: TButton
Left = 104
Height = 32
Top = 304
Width = 78
Caption = 'Return'
ModalResult = 1
TabOrder = 11
end
object HelpBtn: TButton
Tag = 114
Left = 8
Height = 32
Top = 264
Width = 80
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 12
end
end

View File

@ -1,141 +0,0 @@
LazarusResources.Add('TCompRelFrm','FORMDATA',[
'TPF0'#11'TCompRelFrm'#10'CompRelFrm'#4'Left'#2'{'#6'Height'#3'['#1#3'Top'#2
+#127#5'Width'#3'Z'#2#7'Caption'#6#26'Composite Test Reliability'#12'ClientHe'
+'ight'#3'['#1#11'ClientWidth'#3'Z'#2#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6
+#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#8#5'W'
+'idth'#2'Z'#7'Caption'#6#19'Variables Available'#11'ParentColor'#8#0#0#6'TLa'
+'bel'#6'Label2'#4'Left'#3#207#0#6'Height'#2#14#3'Top'#2#8#5'Width'#2'H'#7'Ca'
+'ption'#6#14'Selected Items'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Lef'
+'t'#3'y'#1#6'Height'#2#14#3'Top'#2#8#5'Width'#2'F'#7'Caption'#6#16'Test Reli'
+'ability'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#3#232#1#6'Height'
+#2#14#3'Top'#2#8#5'Width'#2'@'#7'Caption'#6#12'Test Weights'#11'ParentColor'
+#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#7#6'Height'#3#230#0#3'Top'#2#23#5'Wi'
+'dth'#3#151#0#10'ItemHeight'#2#0#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#7'TBi'
+'tBtn'#5'InBtn'#4'Left'#3#168#0#6'Height'#2#29#3'Top'#2#24#5'Width'#2#30#10
+'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0
+#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184
+'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255
+';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'
+#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255
+#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147
+#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'
+#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218
+#174#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147
+#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255
+'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'
+#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'
+#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'
+#255'/x5'#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#10'InBtnCli'
+'ck'#8'TabOrder'#2#1#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#168#0#6'Height'#2#29
,#3'Top'#2'8'#5'Width'#2#30#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0
+#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'
+#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'
+#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161
+'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131
+#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/'
+'x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'
+#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255
+#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132
+#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255
+#255#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154
+#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255
+#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201
+#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'
+#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'Num'
+'Glyphs'#2#0#7'OnClick'#7#11'OutBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#6'A'
+'llBtn'#4'Left'#3#168#0#6'Height'#2#29#3'Top'#2'h'#5'Width'#2#30#7'Caption'#6
+#3'ALL'#9'NumGlyphs'#2#0#7'OnClick'#7#11'AllBtnClick'#8'TabOrder'#2#3#0#0#8
+'TListBox'#8'ItemList'#4'Left'#3#204#0#6'Height'#3#228#0#3'Top'#2#25#5'Width'
+#3#164#0#10'ItemHeight'#2#0#8'TabOrder'#2#4#0#0#8'TListBox'#7'RelList'#4'Lef'
+'t'#3'v'#1#6'Height'#3#228#0#3'Top'#2#24#5'Width'#2'i'#10'ItemHeight'#2#0#7
+'OnClick'#7#12'RelListClick'#8'TabOrder'#2#5#0#0#8'TListBox'#10'WeightList'#4
+'Left'#3#231#1#6'Height'#3#229#0#3'Top'#2#25#5'Width'#2'g'#10'ItemHeight'#2#0
+#7'OnClick'#7#15'WeightListClick'#8'TabOrder'#2#6#0#0#9'TGroupBox'#9'GroupBo'
+'x1'#4'Left'#3'x'#1#6'Height'#2':'#3'Top'#3#6#1#5'Width'#3#215#0#7'Caption'#6
+#7'Options'#12'ClientHeight'#2'('#11'ClientWidth'#3#211#0#8'TabOrder'#2#7#0#9
+'TCheckBox'#7'RMatChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#2#2#5'Width'#3#153#0
+#7'Caption'#6#29'Print Intercorrelation Matrix'#8'TabOrder'#2#0#0#0#9'TCheck'
+'Box'#10'GridScrChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#2#22#5'Width'#3#152#0
,#7'Caption'#6#27'Put Composite Score in Grid'#8'TabOrder'#2#1#0#0#0#7'TButto'
+'n'#8'ResetBtn'#4'Left'#2'h'#6'Height'#2' '#3'Top'#3#8#1#5'Width'#2'N'#7'Cap'
+'tion'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#8#0#0#7'TButt'
+'on'#9'CancelBtn'#4'Left'#3#200#0#6'Height'#2' '#3'Top'#3#8#1#5'Width'#2'N'#7
+'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#9#0#0#7'TButton'#10
+'ComputeBtn'#4'Left'#2#8#6'Height'#2' '#3'Top'#3'0'#1#5'Width'#2'N'#7'Captio'
+'n'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#10#0#0#7'TBu'
+'tton'#9'ReturnBtn'#4'Left'#2'h'#6'Height'#2' '#3'Top'#3'0'#1#5'Width'#2'N'#7
+'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#11#0#0#7'TButton'#7
+'HelpBtn'#3'Tag'#2'r'#4'Left'#2#8#6'Height'#2' '#3'Top'#3#8#1#5'Width'#2'P'#7
+'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#12#0#0#0
]);

View File

@ -1,368 +0,0 @@
unit Concordance;
{$MODE Delphi}
interface
uses
LCLIntf, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, OS3MainUnit, GLOBALS, OUTPUTUNIT, DATAPROCS, Math,
FUNCTIONSLIB, LResources;
type
TConcordFrm = class(TForm)
Label1: TLabel;
VarList: TListBox;
InBtn: TBitBtn;
OutBtn: TBitBtn;
AllBtn: TBitBtn;
Label2: TLabel;
ListBox1: TListBox;
ResetBtn: TButton;
CancelBtn: TButton;
OKBtn: TButton;
ComputeBtn: TButton;
Memo1: TMemo;
procedure ResetBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure OKBtnClick(Sender: TObject);
procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject);
procedure AllBtnClick(Sender: TObject);
procedure ComputeBtnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ConcordFrm: TConcordFrm;
implementation
procedure TConcordFrm.ResetBtnClick(Sender: TObject);
var
i: integer;
begin
VarList.Clear;
ListBox1.Clear;
for i := 1 to NoVariables do
begin
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
end;
InBtn.Enabled := true;
OutBtn.Enabled := false;
end;
//-------------------------------------------------------------------
procedure TConcordFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
//-------------------------------------------------------------------
procedure TConcordFrm.CancelBtnClick(Sender: TObject);
begin
ConcordFrm.Hide;
end;
//-------------------------------------------------------------------
procedure TConcordFrm.OKBtnClick(Sender: TObject);
begin
ConcordFrm.Hide;
end;
//-------------------------------------------------------------------
procedure TConcordFrm.InBtnClick(Sender: TObject);
var
index, i : integer;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
ListBox1.Items.Add(VarList.Items.Strings[i]);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
OutBtn.Enabled := true;
end;
//-------------------------------------------------------------------
procedure TConcordFrm.OutBtnClick(Sender: TObject);
var
index: integer;
begin
index := ListBox1.ItemIndex;
VarList.Items.Add(ListBox1.Items.Strings[index]);
ListBox1.Items.Delete(index);
InBtn.Enabled := true;
end;
//-------------------------------------------------------------------
procedure TConcordFrm.AllBtnClick(Sender: TObject);
var
count, index : integer;
begin
count := VarList.Items.Count;
if count = 0 then exit;
for index := 0 to count-1 do
begin
ListBox1.Items.Add(VarList.Items.Strings[index]);
end;
VarList.Clear;
InBtn.Visible := false;
OutBtn.Visible := true;
end;
//-------------------------------------------------------------------
procedure TConcordFrm.ComputeBtnClick(Sender: TObject);
var
i, j, k, index, No_Judges, No_Objects, col, ties, start, last : integer;
NoSelected : integer;
Temp, TotalCorrect, JudgeCorrect, ChiSquare, Probability : double;
TotalRankSums, Concordance, AvgRankCorr, AvgTotalRanks : double;
statistic : double;
scorearray : DblDyneMat;
temprank, ObjRankSums : DblDyneVec;
tempindex : IntDyneVec;
done : boolean;
value, cellstring, outline : string;
ColNoSelected : IntDyneVec;
ColLabels : StrDyneVec;
begin
No_Judges := 0;
No_Objects := ListBox1.Items.Count;
// Allocate space for selected variable column no.s
SetLength(scorearray,NoCases,No_Objects);
SetLength(tempindex,No_Objects);
SetLength(temprank,No_Objects);
SetLength(ObjRankSums,No_Objects);
SetLength(ColLabels,NoVariables);
SetLength(ColNoSelected,NoVariables);
// get columns of variables selected
for i := 0 to No_Objects - 1 do
begin
cellstring := ListBox1.Items.Strings[i];
for index := 1 to NoVariables do
begin
if (cellstring = OS3MainFrm.DataGrid.Cells[index,0]) then
begin
ColNoSelected[i] := index;
ColLabels[i] := cellstring;
end;
end;
end;
//Read data from grid
for i := 1 to NoCases do
begin
if (not GoodRecord(i,No_Objects,ColNoSelected)) then continue;
No_Judges := No_Judges + 1;
for j := 1 to No_Objects do
begin
col := ColNoSelected[j-1];
scorearray[i-1,j-1] := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,i]));
end;
end;
//Rank the scores in the rows for each judge (column)
TotalCorrect := 0.0;
for i := 0 to No_Judges-1 do
begin
JudgeCorrect := 0.0;
for j := 0 to No_Objects-1 do
begin
tempindex[j] := j;
temprank[j] := scorearray[i,j];
end;
//Sort the temp arrays
for j := 0 to No_Objects - 2 do
begin
for k := j + 1 to No_Objects - 1 do
begin
if (temprank[j] > temprank[k]) then
begin
Temp := temprank[j];
temprank[j] := temprank[k];
temprank[k] := Temp;
index := tempindex[j];
tempindex[j] := tempindex[k];
tempindex[k] := index;
end;
end;
end;
//Now convert temporary score array to ranks (correcting for ties)
j := 0;
while (j <= No_Objects-1) do
begin
ties := 0;
k := j;
done := false;
while (not done) do
begin
k := k + 1;
if (k <= No_Objects-1) then
begin
if (temprank[j] = temprank[k]) then ties := ties + 1;
end
else done := true;
end;
if (ties = 0.0) then
begin
temprank[j] := j+1;
j := j + 1;
end
else begin
for k := j to j + ties do
begin
temprank[k] := (j+1) + (ties / 2.0);
end;
j := j + ties + 1;
ties := ties + 1;
JudgeCorrect := JudgeCorrect + (Power(ties,3) - ties);
end;
end;
//Now, restore ranks in their position equivalent to original scores
for j := 0 to No_Objects-1 do
begin
k := tempindex[j];
scorearray[i,k] := temprank[j];
end;
TotalCorrect := TotalCorrect + (JudgeCorrect / 12.0);
end; // next judge i
//Calculate statistics
statistic := 0.0;
TotalRankSums := 0.0;
for j := 0 to No_Objects-1 do
begin
ObjRankSums[j] := 0.0;
for i := 0 to No_Judges-1 do ObjRankSums[j] := ObjRankSums[j] + scorearray[i,j];
TotalRankSums := TotalRankSums + ObjRankSums[j];
end;
AvgTotalRanks := TotalRankSums / No_Objects;
for j := 0 to No_Objects-1 do
statistic := statistic + Power((ObjRankSums[j] - AvgTotalRanks), 2);
Concordance := statistic / ( ((No_Judges * No_Judges) / 12.0) *
(Power(No_Objects,3) - No_Objects) - (No_Judges * TotalCorrect) );
AvgRankCorr := (No_Judges * Concordance - 1.0) / (No_Judges - 1);
ChiSquare := No_Judges * Concordance * (No_Objects - 1);
Probability := 1.0 - chisquaredprob(ChiSquare, No_Objects - 1);
//Report results
OutPutFrm.RichEdit.Clear;
OutPutFrm.RichEdit.Lines.Add('Kendall Coefficient of Concordance Analysis');
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Ranks Assigned to Judge Ratings of Objects');
OutPutFrm.RichEdit.Lines.Add('');
for i := 1 to No_Judges do
begin
done := false;
start := 1;
last := 10;
while (not done) do
begin
if (last > No_Objects)then last := No_Objects;
outline := format('Judge %3d',[i]);
outline := outline + ' Objects';
OutPutFrm.RichEdit.Lines.Add(outline);
outline := ' ';
for j := start to last do
begin
col := ColNoSelected[j-1];
outline := outline + format('%8s',[ColLabels[col-1]]);
end;
OutPutFrm.RichEdit.Lines.Add(outline);
outline := ' ';
for j := start to last do
begin
value := format('%8.4f',[scorearray[i-1,j-1]]);
outline := outline + value;
end;
OutPutFrm.RichEdit.Lines.Add(outline);
if (last = No_Objects) then done := true
else begin
start := last;
last := start + 10;
end;
outline := '';
end; // while end
OutPutFrm.RichEdit.Lines.Add('');
end; // next i
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Sum of Ranks for Each Object Judged');
done := false;
start := 1;
last := 10;
while (not done) do
begin
if (last > No_Objects) then last := No_Objects;
OutPutFrm.RichEdit.Lines.Add(' Objects');
outline := ' ';
for j := start to last do
begin
col := ColNoSelected[j-1];
value := format('%8s',[ColLabels[col-1]]);
outline := outline + value;
end;
OutPutFrm.RichEdit.Lines.Add(outline);
outline := ' ';
for j := start to last do
begin
value := format('%8.4f',[ObjRankSums[j-1]]);
outline := outline + value;
end;
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
if (last = No_Objects) then done := true
else begin
start := last;
last := start + 10;
end;
end;
outline := format('Coefficient of concordance := %10.3f',[Concordance]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format('Average Spearman Rank Correlation := %10.3f',[AvgRankCorr]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format('Chi-Square Statistic := %8.3f',[ChiSquare]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format('Probability of a larger Chi-Square := %6.4f',[Probability]);
OutPutFrm.RichEdit.Lines.Add(outline);
if (No_Objects < 7) then
OutPutFrm.RichEdit.Lines.Add('Warning - Above Chi-Square is very approximate with 7 or fewer variables!');
OutPutFrm.ShowModal;
// cleanup
ColNoSelected := nil;
ColLabels := nil;
ObjRankSums := nil;
temprank := nil;
tempindex := nil;
scorearray := nil;
end;
//-------------------------------------------------------------------
initialization
{$i CONCORDANCE.lrs}
{$i CONCORDANCE.lrs}
end.

View File

@ -1,164 +0,0 @@
object ConcordFrm: TConcordFrm
Left = 77
Top = 80
HelpContext = 1305
BorderStyle = bsDialog
Caption = 'Kendal''s Coefficient of Concordance'
ClientHeight = 243
ClientWidth = 536
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
HelpFile = 'OS2Help.hlp'
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 24
Top = 8
Width = 92
Height = 13
Caption = 'Available Variables:'
end
object Label2: TLabel
Left = 200
Top = 8
Width = 91
Height = 13
Caption = 'Selected Variables:'
end
object VarList: TListBox
Left = 8
Top = 24
Width = 129
Height = 201
ItemHeight = 13
MultiSelect = True
TabOrder = 0
end
object InBtn: TBitBtn
Left = 144
Top = 32
Width = 33
Height = 33
TabOrder = 1
OnClick = InBtnClick
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000120B0000120B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333FF3333333333333003333
3333333333773FF3333333333309003333333333337F773FF333333333099900
33333FFFFF7F33773FF30000000999990033777777733333773F099999999999
99007FFFFFFF33333F7700000009999900337777777F333F7733333333099900
33333333337F3F77333333333309003333333333337F77333333333333003333
3333333333773333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333333333333
}
NumGlyphs = 2
end
object OutBtn: TBitBtn
Left = 144
Top = 72
Width = 33
Height = 33
TabOrder = 2
OnClick = OutBtnClick
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000120B0000120B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333FF3333333333333003333333333333F77F33333333333009033
333333333F7737F333333333009990333333333F773337FFFFFF330099999000
00003F773333377777770099999999999990773FF33333FFFFF7330099999000
000033773FF33777777733330099903333333333773FF7F33333333333009033
33333333337737F3333333333333003333333333333377333333333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333333333333
}
NumGlyphs = 2
end
object AllBtn: TBitBtn
Left = 144
Top = 136
Width = 33
Height = 33
Caption = 'ALL'
TabOrder = 3
OnClick = AllBtnClick
end
object ListBox1: TListBox
Left = 184
Top = 24
Width = 137
Height = 201
ItemHeight = 13
TabOrder = 4
end
object ResetBtn: TButton
Left = 336
Top = 179
Width = 65
Height = 25
Caption = 'Reset'
TabOrder = 5
OnClick = ResetBtnClick
end
object CancelBtn: TButton
Left = 456
Top = 179
Width = 65
Height = 25
Caption = 'Cancel'
ModalResult = 2
TabOrder = 6
OnClick = CancelBtnClick
end
object OKBtn: TButton
Left = 456
Top = 211
Width = 65
Height = 25
Caption = 'Return'
ModalResult = 1
TabOrder = 7
OnClick = OKBtnClick
end
object ComputeBtn: TButton
Left = 336
Top = 211
Width = 65
Height = 25
Caption = 'Compute'
TabOrder = 8
OnClick = ComputeBtnClick
end
object Memo1: TMemo
Left = 336
Top = 0
Width = 185
Height = 169
Lines.Strings = (
'Directions: A Judge''s ratings or '
'observations are recorded'
'as Variables (columns) 1 through k. '
'Each line corresponds to a different '
'judge (person making the rating.) '
'Select the variables from the left list '
'to analyze and click on the right '
'arrow.'
'Click on the left arrow to remove any '
'variables NOT to be analyzed. Click '
'on the Compute button to obtain the'
'results. '
)
TabOrder = 9
end
end

View File

@ -1,56 +0,0 @@
LazarusResources.Add('TConcordFrm','FORMDATA',[
'TPF0'#11'TConcordFrm'#10'ConcordFrm'#4'Left'#2'M'#3'Top'#2'P'#11'HelpContext'
+#3#25#5#11'BorderStyle'#7#8'bsDialog'#7'Caption'#6'#Kendal''s Coefficient of'
+' Concordance'#12'ClientHeight'#3#243#0#11'ClientWidth'#3#24#2#5'Color'#7#9
+'clBtnFace'#12'Font.Charset'#7#15'DEFAULT_CHARSET'#10'Font.Color'#7#12'clWin'
+'dowText'#11'Font.Height'#2#245#9'Font.Name'#6#13'MS Sans Serif'#10'Font.Sty'
+'le'#11#0#8'HelpFile'#6#11'OS2Help.hlp'#6'OnShow'#7#8'FormShow'#13'PixelsPer'
+'Inch'#2'`'#10'TextHeight'#2#13#0#6'TLabel'#6'Label1'#4'Left'#2#24#3'Top'#2#8
+#5'Width'#2'\'#6'Height'#2#13#7'Caption'#6#20'Available Variables:'#0#0#6'TL'
+'abel'#6'Label2'#4'Left'#3#200#0#3'Top'#2#8#5'Width'#2'['#6'Height'#2#13#7'C'
+'aption'#6#19'Selected Variables:'#0#0#8'TListBox'#7'VarList'#4'Left'#2#8#3
+'Top'#2#24#5'Width'#3#129#0#6'Height'#3#201#0#10'ItemHeight'#2#13#11'MultiSe'
+'lect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#144#0#3'Top'#2' '
+#5'Width'#2'!'#6'Height'#2'!'#8'TabOrder'#2#1#7'OnClick'#7#10'InBtnClick'#10
+'Glyph.Data'#10'z'#1#0#0'v'#1#0#0'BMv'#1#0#0#0#0#0#0'v'#0#0#0'('#0#0#0' '#0#0
+#0#16#0#0#0#1#0#4#0#0#0#0#0#0#1#0#0#18#11#0#0#18#11#0#0#16#0#0#0#0#0#0#0#0#0
+#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0''#0
+#191#191#191#0#0#0#255#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255
+#0#0#255#255#255#0'333333333333333333333333333333333333333333333333333333333'
+'33?'#243'333333'#0'3333333w?'#243'33333'#9#0'333333w?'#243'3333'#9#153#0'3'
+'3?'#255#255'3w?'#243#0#0#0#9#153#153#0'3wwws33w?'#9#153#153#153#153#153#153
+#0''#255#255#255'33?w'#0#0#0#9#153#153#0'3www3?w3333'#9#153#0'33333?w3333'
+'3'#9#0'333333w333333'#0'3333333w333333333333333333333333333333333333333333'
+'3333333333'#9'NumGlyphs'#2#2#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#144#0#3'Top'
+#2'H'#5'Width'#2'!'#6'Height'#2'!'#8'TabOrder'#2#2#7'OnClick'#7#11'OutBtnCli'
+'ck'#10'Glyph.Data'#10'z'#1#0#0'v'#1#0#0'BMv'#1#0#0#0#0#0#0'v'#0#0#0'('#0#0#0
+' '#0#0#0#16#0#0#0#1#0#4#0#0#0#0#0#0#1#0#0#18#11#0#0#18#11#0#0#16#0#0#0#0#0#0
+#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0
+''#0#191#191#191#0#0#0#255#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0
+#255#255#0#0#255#255#255#0'33333333333333333333333333333333333333333333?'#243
+'333333'#0'333333?w'#243'33333'#0#144'33333?w7'#243'3333'#0#153#144'3333?w37'
+#255#255#255'3'#0#153#153#144#0#0#0'?w337www'#0#153#153#153#153#153#153#144
+'w?'#243'33'#255#255#247'3'#0#153#153#144#0#0#0'3w?'#243'7www33'#0#153#144'3'
+'3333w?'#247#243'33333'#0#144'333333w7'#243'333333'#0'3333333w33333333333333'
+'33333333333333333333333333333333333333333333333333333'#9'NumGlyphs'#2#2#0#0
+#7'TBitBtn'#6'AllBtn'#4'Left'#3#144#0#3'Top'#3#136#0#5'Width'#2'!'#6'Height'
+#2'!'#7'Caption'#6#3'ALL'#8'TabOrder'#2#3#7'OnClick'#7#11'AllBtnClick'#0#0#8
+'TListBox'#8'ListBox1'#4'Left'#3#184#0#3'Top'#2#24#5'Width'#3#137#0#6'Height'
+#3#201#0#10'ItemHeight'#2#13#8'TabOrder'#2#4#0#0#7'TButton'#8'ResetBtn'#4'Le'
+'ft'#3'P'#1#3'Top'#3#179#0#5'Width'#2'A'#6'Height'#2#25#7'Caption'#6#5'Reset'
+#8'TabOrder'#2#5#7'OnClick'#7#13'ResetBtnClick'#0#0#7'TButton'#9'CancelBtn'#4
+'Left'#3#200#1#3'Top'#3#179#0#5'Width'#2'A'#6'Height'#2#25#7'Caption'#6#6'Ca'
+'ncel'#11'ModalResult'#2#2#8'TabOrder'#2#6#7'OnClick'#7#14'CancelBtnClick'#0
+#0#7'TButton'#5'OKBtn'#4'Left'#3#200#1#3'Top'#3#211#0#5'Width'#2'A'#6'Height'
+#2#25#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#7#7'OnClick'#7
+#10'OKBtnClick'#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3'P'#1#3'Top'#3#211#0#5
+'Width'#2'A'#6'Height'#2#25#7'Caption'#6#7'Compute'#8'TabOrder'#2#8#7'OnClic'
+'k'#7#15'ComputeBtnClick'#0#0#5'TMemo'#5'Memo1'#4'Left'#3'P'#1#3'Top'#2#0#5
+'Width'#3#185#0#6'Height'#3#169#0#13'Lines.Strings'#1#6'#Directions: A Jud'
+'ge''s ratings or '#6#25'observations are recorded'#6'%as Variables (columns'
+') 1 through k. '#6'%Each line corresponds to a different '#6'#judge (perso'
+'n making the rating.) '#6'(Select the variables from the left list '#6'"to'
+' analyze and click on the right '#6#6'arrow.'#6'&Click on the left arrow to'
+' remove any '#6'%variables NOT to be analyzed. Click '#6'#on the Compute b'
+'utton to obtain the'#6#9'results. '#0#8'TabOrder'#2#9#0#0#0
]);

View File

@ -1,148 +0,0 @@
object CorSimFrm: TCorSimFrm
Left = 154
Height = 437
Top = 108
Width = 764
Caption = 'Correlation Simulation'
ClientHeight = 437
ClientWidth = 764
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Image1: TImage
Left = 0
Height = 388
Top = 0
Width = 764
Align = alClient
end
object Panel1: TPanel
Left = 0
Height = 49
Top = 388
Width = 764
Align = alBottom
ClientHeight = 49
ClientWidth = 764
TabOrder = 0
object Label1: TLabel
Left = 7
Height = 14
Top = 18
Width = 40
Caption = 'Mean X:'
ParentColor = False
end
object Label2: TLabel
Left = 104
Height = 14
Top = 18
Width = 40
Caption = 'Mean Y:'
ParentColor = False
end
object Label3: TLabel
Left = 208
Height = 14
Top = 18
Width = 50
Caption = 'Std.Dev.X'
ParentColor = False
end
object Label4: TLabel
Left = 320
Height = 14
Top = 18
Width = 50
Caption = 'Std.Dev.Y'
ParentColor = False
end
object Label5: TLabel
Left = 425
Height = 14
Top = 18
Width = 34
Caption = 'Cor.XY'
ParentColor = False
end
object Label6: TLabel
Left = 520
Height = 14
Top = 20
Width = 34
Caption = 'N Size:'
ParentColor = False
end
object MeanX: TEdit
Left = 50
Height = 21
Top = 13
Width = 43
OnKeyPress = MeanXKeyPress
TabOrder = 0
Text = 'MeanX'
end
object MeanY: TEdit
Left = 152
Height = 21
Top = 13
Width = 46
OnKeyPress = MeanYKeyPress
TabOrder = 1
Text = 'MeanY'
end
object SDX: TEdit
Left = 262
Height = 21
Top = 13
Width = 50
OnKeyPress = SDXKeyPress
TabOrder = 2
Text = 'SDX'
end
object SDY: TEdit
Left = 376
Height = 21
Top = 13
Width = 39
OnKeyPress = SDYKeyPress
TabOrder = 3
Text = 'SDY'
end
object Corr: TEdit
Left = 464
Height = 21
Top = 12
Width = 44
OnKeyPress = CorrKeyPress
TabOrder = 4
Text = 'Corr'
end
object ComputeBtn: TButton
Left = 616
Height = 26
Top = 13
Width = 65
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 5
end
object ReturnBtn: TButton
Left = 688
Height = 26
Top = 12
Width = 66
Caption = 'Return'
ModalResult = 1
TabOrder = 6
end
object Nobs: TEdit
Left = 560
Height = 21
Top = 13
Width = 40
OnKeyPress = NobsKeyPress
TabOrder = 7
Text = 'Nobs'
end
end
end

View File

@ -1,34 +0,0 @@
LazarusResources.Add('TCorSimFrm','FORMDATA',[
'TPF0'#10'TCorSimFrm'#9'CorSimFrm'#4'Left'#3#154#0#6'Height'#3#181#1#3'Top'#2
+'l'#5'Width'#3#252#2#7'Caption'#6#22'Correlation Simulation'#12'ClientHeight'
+#3#181#1#11'ClientWidth'#3#252#2#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#8
+'0.9.28.2'#0#6'TImage'#6'Image1'#4'Left'#2#0#6'Height'#3#132#1#3'Top'#2#0#5
+'Width'#3#252#2#5'Align'#7#8'alClient'#0#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6
+'Height'#2'1'#3'Top'#3#132#1#5'Width'#3#252#2#5'Align'#7#8'alBottom'#12'Clie'
+'ntHeight'#2'1'#11'ClientWidth'#3#252#2#8'TabOrder'#2#0#0#6'TLabel'#6'Label1'
+#4'Left'#2#7#6'Height'#2#14#3'Top'#2#18#5'Width'#2'('#7'Caption'#6#7'Mean X:'
+#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2'h'#6'Height'#2#14#3'Top'
+#2#18#5'Width'#2'('#7'Caption'#6#7'Mean Y:'#11'ParentColor'#8#0#0#6'TLabel'#6
+'Label3'#4'Left'#3#208#0#6'Height'#2#14#3'Top'#2#18#5'Width'#2'2'#7'Caption'
+#6#9'Std.Dev.X'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#3'@'#1#6'H'
+'eight'#2#14#3'Top'#2#18#5'Width'#2'2'#7'Caption'#6#9'Std.Dev.Y'#11'ParentCo'
+'lor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#3#169#1#6'Height'#2#14#3'Top'#2#18#5
+'Width'#2'"'#7'Caption'#6#6'Cor.XY'#11'ParentColor'#8#0#0#6'TLabel'#6'Label6'
+#4'Left'#3#8#2#6'Height'#2#14#3'Top'#2#20#5'Width'#2'"'#7'Caption'#6#7'N Siz'
+'e:'#11'ParentColor'#8#0#0#5'TEdit'#5'MeanX'#4'Left'#2'2'#6'Height'#2#21#3'T'
+'op'#2#13#5'Width'#2'+'#10'OnKeyPress'#7#13'MeanXKeyPress'#8'TabOrder'#2#0#4
+'Text'#6#5'MeanX'#0#0#5'TEdit'#5'MeanY'#4'Left'#3#152#0#6'Height'#2#21#3'Top'
+#2#13#5'Width'#2'.'#10'OnKeyPress'#7#13'MeanYKeyPress'#8'TabOrder'#2#1#4'Tex'
+'t'#6#5'MeanY'#0#0#5'TEdit'#3'SDX'#4'Left'#3#6#1#6'Height'#2#21#3'Top'#2#13#5
+'Width'#2'2'#10'OnKeyPress'#7#11'SDXKeyPress'#8'TabOrder'#2#2#4'Text'#6#3'SD'
+'X'#0#0#5'TEdit'#3'SDY'#4'Left'#3'x'#1#6'Height'#2#21#3'Top'#2#13#5'Width'#2
+''''#10'OnKeyPress'#7#11'SDYKeyPress'#8'TabOrder'#2#3#4'Text'#6#3'SDY'#0#0#5
+'TEdit'#4'Corr'#4'Left'#3#208#1#6'Height'#2#21#3'Top'#2#12#5'Width'#2','#10
+'OnKeyPress'#7#12'CorrKeyPress'#8'TabOrder'#2#4#4'Text'#6#4'Corr'#0#0#7'TBut'
+'ton'#10'ComputeBtn'#4'Left'#3'h'#2#6'Height'#2#26#3'Top'#2#13#5'Width'#2'A'
+#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#5#0#0
+#7'TButton'#9'ReturnBtn'#4'Left'#3#176#2#6'Height'#2#26#3'Top'#2#12#5'Width'
+#2'B'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#6#0#0#5'TEdit'
+#4'Nobs'#4'Left'#3'0'#2#6'Height'#2#21#3'Top'#2#13#5'Width'#2'('#10'OnKeyPre'
+'ss'#7#12'NobsKeyPress'#8'TabOrder'#2#7#4'Text'#6#4'Nobs'#0#0#0#0
]);

View File

@ -1,571 +0,0 @@
unit CoxRegUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, Buttons, Globals, MainUnit, MatrixLib, OutPutUnit,
FunctionsLib, Math;
type
{ TCoxRegFrm }
TCoxRegFrm = class(TForm)
InBtn: TBitBtn;
OutBtn: TBitBtn;
DepInBtn: TBitBtn;
DepOutBtn: TBitBtn;
StatusInBtn: TBitBtn;
StatusOutBtn: TBitBtn;
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
DescChk: TCheckBox;
MaxItsEdit: TEdit;
Label5: TLabel;
ProbsChk: TCheckBox;
ItersChk: TCheckBox;
DepVar: TEdit;
GroupBox1: TGroupBox;
StatusEdit: TEdit;
Label1: TLabel;
Label2: TLabel;
BlockList: TListBox;
Label3: TLabel;
Label4: TLabel;
VarList: TListBox;
procedure ComputeBtnClick(Sender: TObject);
procedure DepInBtnClick(Sender: TObject);
procedure DepOutBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject);
procedure ResetBtnClick(Sender: TObject);
procedure StatusInBtnClick(Sender: TObject);
procedure StatusOutBtnClick(Sender: TObject);
function ChiSq(x : double; n : integer) : double;
function Norm(z : double): double;
function ix(j, k, nCols : integer): integer;
private
{ private declarations }
public
{ public declarations }
end;
var
CoxRegFrm: TCoxRegFrm;
implementation
{ TCoxRegFrm }
procedure TCoxRegFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
BlockList.Clear;
VarList.Clear;
for i := 1 to NoVariables do
begin
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
end;
InBtn.Enabled := true;
OutBtn.Enabled := false;
DepInBtn.Enabled := true;
DepOutBtn.Enabled := false;
ProbsChk.Checked := true;
DescChk.Checked := true;
DepVar.Text := '';
StatusEdit.Text := '';
StatusInBtn.Enabled := true;
StatusOutBtn.Enabled := false;
MaxItsEdit.Text := '20';
end;
procedure TCoxRegFrm.StatusInBtnClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
StatusEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
StatusOutBtn.Enabled := true;
StatusInBtn.Enabled := false;
end;
procedure TCoxRegFrm.StatusOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(StatusEdit.Text);
StatusEdit.Text := '';
StatusInBtn.Enabled := true;
end;
procedure TCoxRegFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(Self);
end;
procedure TCoxRegFrm.DepInBtnClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
DepVar.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
DepOutBtn.Enabled := true;
DepInBtn.Enabled := false;
end;
procedure TCoxRegFrm.ComputeBtnClick(Sender: TObject);
Label CleanUp;
var
i, j, k, l : integer;
indx : integer;
title : string;
cellstring : string;
outline : string;
nR : integer; // no. independent variables
ColNoSelected : IntDyneVec;
nC : integer; // no. cases
nP : integer; // survival time variable
nS : integer; // survival status variable
zX : double;
v : double;
Eps : double;
iBig : integer;
LLp, LL : double;
LLn : double;
s0 : double;
StatI : double;
Sf : double;
RowLabels, ColLabels : StrDyneVec;
CSq : double; // chi square statistic
prob : double; // probability of chi square
SurvT : DblDyneVec;
Stat : DblDyneVec;
Dupl : DblDyneVec;
Alpha : DblDyneVec;
a : DblDyneVec;
b : DblDyneVec;
s1 : DblDyneVec;
s2 : DblDyneVec;
s : DblDyneVec;
Av : DblDyneVec;
SD : DblDyneVec;
SE : DblDyneVec;
x : DblDyneVec; // data matrix for independent variables
Lo95 : double;
Hi95 : double;
d : double;
iters : integer;
begin
OutPutFrm.RichEdit.Clear;
// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify;
OutPutFrm.RichEdit.Lines.Add('Cox Proportional Hazards Survival Regression Adapted from John C. Pezzullo');
OutPutFrm.RichEdit.Lines.Add('Java program at http://members.aol.com/johnp71/prophaz.html');
{ get independent item columns }
nR := BlockList.Items.Count;
nC := NoCases;
SetLength(ColNoSelected,nR + 2);
SetLength(RowLabels,nR + 2);
SetLength(ColLabels,nR + 2);
if nR < 1 then
begin
ShowMessage('ERROR! No independent variables selected.');
goto CleanUp;
end;
for i := 1 to nR do
begin
cellstring := BlockList.Items.Strings[i-1];
for j := 1 to NoVariables do
begin
if cellstring = OS3MainFrm.DataGrid.Cells[j,0] then
begin
ColNoSelected[i-1] := j;
RowLabels[i-1] := cellstring;
ColLabels[i-1] := cellstring;
end;
end;
end;
{ get survival time variable column and survival status var. column }
if DepVar.Text = '' then
begin
ShowMessage('Error! No Survival time variable selected.');
goto CleanUp;
end;
if StatusEdit.Text = '' then
begin
ShowMessage('Error! No Survival Status variable selected.');
goto Cleanup;
end;
nP := nR + 1;
nS := nP + 1;
for j := 1 to NoVariables do
begin
if DepVar.Text = OS3MainFrm.DataGrid.Cells[j,0] then
begin
ColNoSelected[nP-1] := j;
RowLabels[nP-1] := OS3MainFrm.DataGrid.Cells[j,0];
ColLabels[nP-1] := RowLabels[nP-1];
end;
if StatusEdit.Text = OS3MainFrm.DataGrid.Cells[j,0] then
begin
ColNoSelected[nS-1] := j;
RowLabels[nS-1] := OS3MainFrm.DataGrid.Cells[j,0];
ColLabels[nS-1] := RowLabels[nS-1];
end;
end;
SetLength(SurvT,nC + 1);
SetLength(Stat,nC + 1);
SetLength(Dupl,nC + 1);
SetLength(Alpha,nC + 1);
SetLength(x,(nC + 1) * (nR + 1));
SetLength(b,nC + 1);
SetLength(a,(nR + 1) * (nR + 1));
SetLength(s1,nR + 1);
SetLength(s2,(nR + 1) * (nR + 1));
SetLength(s,nR + 1);
SetLength(Av,nR + 1);
SetLength(SD,nR + 1);
SetLength(SE,nR + 1);
// get data
for i := 0 to nC - 1 do
begin
indx := ix(i,0,nR+1);
X[indx] := 1;
for j := 0 to nR-1 do
begin
indx := ColNoSelected[j];
zX := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[indx,i+1]));
indx := ix(i,j,nR);
x[indx] := zX;
Av[j] := Av[j] + zX;
SD[j] := SD[j] + (zX * zX);
end;
// get survival time
indx := ColNoSelected[nP-1];
zX := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[indx,i+1]));
SurvT[i] := zX;
// get survival status
indx := ColNoSelected[nS-1];
zX := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[indx,i+1]));
Stat[i] := zX;
end; // next case i
// print descriptive statistics
OutPutFrm.RichEdit.Lines.Add('');
if DescChk.Checked then
begin
OutPutFrm.RichEdit.Lines.Add('Descriptive Statistics');
OutPutFrm.RichEdit.Lines.Add('Variable Label Average Std.Dev.');
end;
for j := 0 to nR-1 do
begin
Av[j] := Av[j] / nC;
SD[j] := SD[j] / nC;
SD[j] := sqrt( abs(SD[j] - Av[j] * Av[j]));
if DescChk.Checked then
begin
outline := format(' %3d %15s %10.4f %10.4f',[j+1,RowLabels[j],Av[j],SD[j]]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
end;
OutPutFrm.RichEdit.Lines.Add('');
d := 0.0;
Eps := 1.0 / 1024.0;
for i := 0 to nC-2 do
begin
iBig := i;
for j := i+1 to nC-1 do
begin
if (SurvT[j] - Eps * Stat[j]) > (SurvT[iBig]-Eps * Stat[iBig]) then
iBig := j;
end;
if iBig <> i then
begin
v := SurvT[i];
SurvT[i] := SurvT[iBig];
SurvT[iBig] := v;
v := Stat[i];
Stat[i] := Stat[iBig];
Stat[iBig] := v;
for j := 0 to nR-1 do
begin
v := x[ix(i,j,nR)];
x[ix(i,j,nR)] := x[ix(iBig,j,nR)];
x[ix(iBig,j,nR)] := v;
end;
end;
end;
if Stat[0] > 0 then Stat[0] := Stat[0] + 2;
for i := 1 to nC-1 do
begin
if (Stat[i] > 0) and ((Stat[i-1] = 0) or (SurvT[i-1] <> SurvT[i])) then
Stat[i] := Stat[i] + 2;
end;
if Stat[nC-1] > 0 then Stat[nC-1] := Stat[nC-1] + 4;
for i := nC-2 downto 0 do
begin
if (Stat[i] > 0) and ((Stat[i+1] = 0) or (SurvT[i+1] <> Survt[i])) then
Stat[i] := Stat[i] + 4;
end;
for i := 0 to nC-1 do
begin
for j := 0 to nR-1 do
begin
x[ix(i,j,nR)] := (x[ix(i,j,nR)] - Av[j]) / SD[j];
end;
end;
if ItersChk.Checked then OutPutFrm.RichEdit.Lines.Add('Iteration History...');
for j := 0 to nR-1 do b[j] := 0;
LLp := 2.0e30;
LL := 1.0e30;
// start iterations
iters := 0;
while (Abs(LLp-LL) > 0.0001) do
begin
iters := iters + 1;
if iters > StrToInt(MaxItsEdit.Text) then break;
LLp := LL;
LL := 0.0;
s0 := 0.0;
for j := 0 to nR-1 do
begin
s1[j] := 0.0;
a[ix(j,nR,nR+1)] := 0.0;
for k := 0 to nR-1 do
begin
s2[ix(j,k,nR)] := 0.0;
a[ix(j,k,nR+1)] := 0.0;
end;
end;
for i := 0 to nC-1 do
begin
Alpha[i] := 1.0;
v := 0.0;
for j := 0 to nR-1 do v := v + b[j] * x[ix(i,j,nR)];
v := exp(v);
s0 := s0 + v;
for j := 0 to nR-1 do
begin
s1[j] := s1[j] + x[ix(i,j,nR)] * v;
for k := 0 to nR-1 do
s2[ix(j,k,nR)] := s2[ix(j,k,nR)] + x[ix(i,j,nR)] * x[ix(i,k,nR)] * v;
end;
StatI := Stat[i];
if (StatI = 2) or (StatI = 3) or (StatI = 6) or (StatI = 7) then
begin
d := 0.0;
for j := 0 to nR-1 do s[j] := 0.0;
end;
if (StatI = 1) or (StatI = 3) or (StatI = 5) or (StatI = 7) then
begin
d := d + 1;
for j := 0 to nR-1 do s[j] := s[j] + x[ix(i,j,nR)];
end;
if (StatI = 4) or (StatI = 5) or (StatI = 6) or (StatI = 7) then
begin
for j := 0 to nR-1 do
begin
LL := LL + s[j] * b[j];
a[ix(j,nR,nR+1)] := a[ix(j,nR,nR+1)] + s[j] - d * s1[j] / s0;
for k := 0 to nR-1 do
begin
a[ix(j,k,nR+1)] := a[ix(j,k,nR+1)] + d * (s2[ix(j,k,nR)] / s0 -
s1[j] * s1[k] / (s0 * s0));
end;
end;
LL := LL - d * Ln(s0);
if d = 1 then Alpha[i] := Power((1.0 - v / s0),(1.0 / v))
else Alpha[i] := exp(-d / s0);
end;
end;
LL := -2.0 * LL;
outline := format('-2 Log Likelihood = %10.4f',[LL]);
if iters = 1 then
begin
LLn := LL;
if ItersChk.Checked then
outline := outline + ' (Null Model)';
end;
if ItersChk.Checked then
OutPutFrm.RichEdit.Lines.Add(outline);
for i := 0 to nR-1 do
begin
v := a[ix(i,i,nR+1)];
a[ix(i,i,nR+1)] := 1.0;
for k := 0 to nR do
a[ix(i,k,nR+1)] := a[ix(i,k,nR+1)] / v;
for j := 0 to nR-1 do
begin
if i <> j then
begin
v := a[ix(j,i,nR+1)];
a[ix(j,i,nR+1)] := 0.0;
for k := 0 to nR do
a[ix(j,k,nR+1)] := a[ix(j,k,nR+1)] - v * a[ix(i,k,nR+1)];
end;
end;
end;
for j := 0 to nR-1 do b[j] := b[j] + a[ix(j,nR,nR+1)];
end;
OutPutFrm.RichEdit.Lines.Add('Converged');
Csq := LLn - LL;
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Overall Model Fit...');
if Csq > 0.0 then prob := ChiSq(Csq,nR) else prob := 1.0;
outline := format('Chi Square = %8.4f with d.f. %d and probability = %8.4f',[Csq,nR,prob]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Coefficients, Std Errs, Signif, and Confidence Intervals');
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Var Coeff. StdErr p Lo95% Hi95%');
for j := 0 to nR-1 do
begin
b[j] := b[j] / SD[j];
SE[j] := sqrt(a[ix(j,j,nR+1)]) / SD[j];
prob := Norm(Abs(b[j] / SE[j]));
Lo95 := b[j] - 1.96 * SE[j];
Hi95 := b[j] + 1.96 * SE[j];
outline := format('%10s %10.4f %10.4f %8.4f %8.4f %8.4f',
[RowLabels[j],b[j],SE[j],prob,Lo95,Hi95]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Risk Ratios and Confidence Intervals');
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Variable Risk Ratio Lo95% Hi95%');
for j := 0 to nR-1 do
begin
outline := format('%10s %10.4f %10.4f %10.4f',
[RowLabels[j],exp(b[j]),exp(b[j]-1.96*SE[j]),exp(b[j]+1.96*SE[j])]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('');
if ProbsChk.Checked then
OutPutFrm.RichEdit.Lines.Add('Baseline Survivor Function (at predictor means)...');
SF := 1.0;
for i := nC-1 downto 0 do
begin
Sf := Sf * Alpha[i];
if Alpha[i] < 1.0 then
begin
if ProbsChk.Checked then
begin
outline := format('%10.4f %10.4f',[SurvT[i],Sf]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
end;
end;
OutPutFrm.ShowModal;
cleanup:
SurvT := nil;
Stat := nil;
Dupl := nil;
Alpha := nil;
x := nil;
b := nil;
a := nil;
s1 := nil;
s2 := nil;
s := nil;
Av := nil;
SD := nil;
SE := nil;
RowLabels := nil;
ColLabels := nil;
ColNoSelected := nil;
end;
procedure TCoxRegFrm.DepOutBtnClick(Sender: TObject);
begin
VarList.Items.Add(DepVar.Text);
DepVar.Text := '';
DepInBtn.Enabled := true;
end;
procedure TCoxRegFrm.InBtnClick(Sender: TObject);
VAR i, index : integer;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
BlockList.Items.Add(VarList.Items.Strings[i]);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
OutBtn.Enabled := true;
end;
procedure TCoxRegFrm.OutBtnClick(Sender: TObject);
VAR index : integer;
begin
index := BlockList.ItemIndex;
VarList.Items.Add(BlockList.Items.Strings[index]);
BlockList.Items.Delete(index);
InBtn.Enabled := true;
if BlockList.Items.Count = 0 then OutBtn.Enabled := false;
end;
function TCoxRegFrm.ChiSq(x : double; n : integer) : double;
var
p, t, a : double;
k : integer;
begin
p := exp(-0.5 * x);
if n mod 2 = 1 then p := p * sqrt(2 * x / Pi);
k := n;
while K >= 2 do
begin
p := p * x / k;
k := k - 2;
end;
t := p;
a := n;
while t > 0.000001 * p do
begin
a := a + 2;
t := t * x / a;
p := p + t;
end;
ChiSq := (1 - p);
end;
//-------------------------------------------------------------------
function TCoxRegFrm.Norm(z : double): double;
begin
Norm := ChiSq(z * z, 1);
end;
//-------------------------------------------------------------------
function TCoxRegFrm.ix(j, k, nCols : integer): integer;
begin
ix := j * nCols + k;
end;
initialization
{$I coxregunit.lrs}
end.

View File

@ -1,430 +0,0 @@
object CoxRegFrm: TCoxRegFrm
Left = 134
Height = 349
Top = 98
Width = 607
Caption = 'Cox Proportional Hazards Survival Regression'
ClientHeight = 349
ClientWidth = 607
OnShow = FormShow
LCLVersion = '0.9.26.2'
object Label1: TLabel
Left = 7
Height = 14
Top = 2
Width = 83
Caption = 'Avaialbe Variable'
ParentColor = False
end
object Label2: TLabel
Left = 233
Height = 14
Top = 5
Width = 109
Caption = 'Independent Variables'
ParentColor = False
end
object Label3: TLabel
Left = 232
Height = 14
Top = 168
Width = 105
Caption = 'Survival Time Variable'
ParentColor = False
end
object Label4: TLabel
Left = 230
Height = 14
Top = 270
Width = 114
Caption = 'Survival Status Variable'
ParentColor = False
end
object Label5: TLabel
Left = 408
Height = 14
Top = 113
Width = 105
Caption = 'Maximum Interations:'
ParentColor = False
end
object VarList: TListBox
Left = 5
Height = 319
Top = 17
Width = 180
MultiSelect = True
TabOrder = 0
end
object InBtn: TBitBtn
Left = 193
Height = 29
Top = 16
Width = 31
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
}
NumGlyphs = 0
OnClick = InBtnClick
TabOrder = 1
end
object OutBtn: TBitBtn
Left = 193
Height = 29
Top = 48
Width = 31
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
}
NumGlyphs = 0
OnClick = OutBtnClick
TabOrder = 2
end
object DepInBtn: TBitBtn
Left = 193
Height = 29
Top = 168
Width = 31
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
}
NumGlyphs = 0
OnClick = DepInBtnClick
TabOrder = 3
end
object DepOutBtn: TBitBtn
Left = 193
Height = 29
Top = 200
Width = 31
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
}
NumGlyphs = 0
OnClick = DepOutBtnClick
TabOrder = 4
end
object StatusInBtn: TBitBtn
Left = 193
Height = 29
Top = 272
Width = 31
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
}
NumGlyphs = 0
OnClick = StatusInBtnClick
TabOrder = 5
end
object StatusOutBtn: TBitBtn
Left = 193
Height = 29
Top = 304
Width = 31
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
}
NumGlyphs = 0
OnClick = StatusOutBtnClick
TabOrder = 6
end
object BlockList: TListBox
Left = 231
Height = 129
Top = 21
Width = 168
TabOrder = 7
end
object DepVar: TEdit
Left = 232
Height = 23
Top = 183
Width = 167
TabOrder = 8
Text = 'DepVar'
end
object StatusEdit: TEdit
Left = 230
Height = 22
Top = 287
Width = 168
TabOrder = 9
Text = 'StatusEdit'
end
object GroupBox1: TGroupBox
Left = 410
Height = 95
Top = 6
Width = 186
Caption = 'Options'
ClientHeight = 77
ClientWidth = 182
TabOrder = 10
object DescChk: TCheckBox
Left = 7
Height = 17
Top = 1
Width = 118
Caption = 'Descriptive Statistics'
TabOrder = 0
end
object ProbsChk: TCheckBox
Left = 7
Height = 17
Top = 24
Width = 134
Caption = 'Base Survival Functions'
TabOrder = 1
end
object ItersChk: TCheckBox
Left = 7
Height = 17
Top = 47
Width = 93
Caption = 'Show Iterations'
TabOrder = 2
end
end
object MaxItsEdit: TEdit
Left = 552
Height = 19
Top = 105
Width = 42
TabOrder = 11
Text = 'MaxItsEdit'
end
object ResetBtn: TButton
Left = 464
Height = 29
Top = 143
Width = 76
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 12
end
object CancelBtn: TButton
Left = 464
Height = 29
Top = 192
Width = 76
Caption = 'Cancel'
ModalResult = 2
TabOrder = 13
end
object ComputeBtn: TButton
Left = 464
Height = 29
Top = 256
Width = 76
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 14
end
object ReturnBtn: TButton
Left = 464
Height = 29
Top = 304
Width = 76
Caption = 'Return'
ModalResult = 1
TabOrder = 15
end
end

View File

@ -1,350 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TCoxRegFrm','FORMDATA',[
'TPF0'#10'TCoxRegFrm'#9'CoxRegFrm'#4'Left'#3#134#0#6'Height'#3']'#1#3'Top'#2
+'b'#5'Width'#3'_'#2#7'Caption'#6',Cox Proportional Hazards Survival Regressi'
+'on'#12'ClientHeight'#3']'#1#11'ClientWidth'#3'_'#2#6'OnShow'#7#8'FormShow'
+#10'LCLVersion'#6#8'0.9.26.2'#0#6'TLabel'#6'Label1'#4'Left'#2#7#6'Height'#2
+#14#3'Top'#2#2#5'Width'#2'S'#7'Caption'#6#17'Avaialbe Variable'#11'ParentCol'
+'or'#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#233#0#6'Height'#2#14#3'Top'#2#5#5'W'
+'idth'#2'm'#7'Caption'#6#21'Independent Variables'#11'ParentColor'#8#0#0#6'T'
+'Label'#6'Label3'#4'Left'#3#232#0#6'Height'#2#14#3'Top'#3#168#0#5'Width'#2'i'
+#7'Caption'#6#22'Survival Time Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'L'
+'abel4'#4'Left'#3#230#0#6'Height'#2#14#3'Top'#3#14#1#5'Width'#2'r'#7'Caption'
+#6#24'Survival Status Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4
+'Left'#3#152#1#6'Height'#2#14#3'Top'#2'q'#5'Width'#2'i'#7'Caption'#6#20'Maxi'
+'mum Interations:'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#5#6
+'Height'#3'?'#1#3'Top'#2#17#5'Width'#3#180#0#11'MultiSelect'#9#8'TabOrder'#2
+#0#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#193#0#6'Height'#2#29#3'Top'#2#16#5'Widt'
+'h'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0
+#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0
+#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247
+'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'
+#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215
+#169#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139
+#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'
+#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255
+#165#218#174#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159
+#255#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197
+#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'
+#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'
+#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'
+#157'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'
+#219#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'
+#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#10
+'InBtnClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#193#0#6'Heig'
+'ht'#2#29#3'Top'#2'0'#5'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'
+#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0
+'d'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169
+'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'
+#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0
+#255#255#255#0'e'#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255
+#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137
+#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255
+#255#255#0#255#255#255#0'h'#199't'#201''#204#138#255#162#216#171#255#158#214
+#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137
+#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i'
+')'#255#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139
+#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255
+'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195
+'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'
+#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'OutBtnClick'#8'TabOrder'#2#2#0#0
+#7'TBitBtn'#8'DepInBtn'#4'Left'#3#193#0#6'Height'#2#29#3'Top'#3#168#0#5'Widt'
+'h'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0
+#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0
+#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247
+'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'
+#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215
+#169#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139
+#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'
+#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255
+#165#218#174#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159
+#255#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197
+#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'
+#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'
+#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'
+#157'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'
+#219#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'
+#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#13
+'DepInBtnClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#9'DepOutBtn'#4'Left'#3#193#0#6
+'Height'#2#29#3'Top'#3#200#0#5'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0
+#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0
+#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207
+'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'
+#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255
,#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134#255#156#213#165#255#152#211
+#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130
+#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'
+#255#255#255#255#0#255#255#255#0'h'#199't'#201''#204#138#255#162#216#171#255
+#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149
+#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'
+#255'%i)'#255#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205
+#139#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'
+#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'
+#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'
+#195'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199
+'t'#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#14'DepOutBtnClick'#8'TabOrder'#2#4#0
+#0#7'TBitBtn'#11'StatusInBtn'#4'Left'#3#193#0#6'Height'#2#29#3'Top'#3#16#1#5
+'Width'#2#31#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0
+'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0
+#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'
+#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'a'#190
+'m'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255
+'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139
+'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160
+#215#169#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255
+#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128
+#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199
+'t'#255#165#218#174#255#162#216#171#255#158#214#167#255#154#212#163#255#150
+#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255
+#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255
+#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255
+'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163
+'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247
+';'#136'B'#219#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187
+'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnCl'
+'ick'#7#16'StatusInBtnClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'#12'StatusOutBtn'
+#4'Left'#3#193#0#6'Height'#2#29#3'Top'#3'0'#1#5'Width'#2#31#10'Glyph.Data'#10
+':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0
+' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+']'#184'h'#207'q'#190'{'#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255
+#29'^ '#255#255#255#255#0#255#255#255#0'e'#195'q'#196'{'#200#134#255#156#213
+#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135
+#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'r'
+#189'x'#255'!c$'#255#255#255#255#0#255#255#255#0'h'#199't'#201''#204#138#255
+#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154
+#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194
+#130#255'x'#192'~'#255'%i)'#255#255#255#255#0#255#255#255#0#255#255#255#0'h'
+#199't'#209#128#205#139#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'#169
+'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255
+'/x5'#255'*p/'#255#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'
+#199't'#219'e'#195'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199
+'t'#6'h'#199't'#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
,#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#17'StatusOutBtnClick'
+#8'TabOrder'#2#6#0#0#8'TListBox'#9'BlockList'#4'Left'#3#231#0#6'Height'#3#129
+#0#3'Top'#2#21#5'Width'#3#168#0#8'TabOrder'#2#7#0#0#5'TEdit'#6'DepVar'#4'Lef'
+'t'#3#232#0#6'Height'#2#23#3'Top'#3#183#0#5'Width'#3#167#0#8'TabOrder'#2#8#4
+'Text'#6#6'DepVar'#0#0#5'TEdit'#10'StatusEdit'#4'Left'#3#230#0#6'Height'#2#22
+#3'Top'#3#31#1#5'Width'#3#168#0#8'TabOrder'#2#9#4'Text'#6#10'StatusEdit'#0#0
+#9'TGroupBox'#9'GroupBox1'#4'Left'#3#154#1#6'Height'#2'_'#3'Top'#2#6#5'Width'
+#3#186#0#7'Caption'#6#7'Options'#12'ClientHeight'#2'M'#11'ClientWidth'#3#182
+#0#8'TabOrder'#2#10#0#9'TCheckBox'#7'DescChk'#4'Left'#2#7#6'Height'#2#17#3'T'
+'op'#2#1#5'Width'#2'v'#7'Caption'#6#22'Descriptive Statistics'#8'TabOrder'#2
+#0#0#0#9'TCheckBox'#8'ProbsChk'#4'Left'#2#7#6'Height'#2#17#3'Top'#2#24#5'Wid'
+'th'#3#134#0#7'Caption'#6#23'Base Survival Functions'#8'TabOrder'#2#1#0#0#9
+'TCheckBox'#8'ItersChk'#4'Left'#2#7#6'Height'#2#17#3'Top'#2'/'#5'Width'#2']'
+#7'Caption'#6#15'Show Iterations'#8'TabOrder'#2#2#0#0#0#5'TEdit'#10'MaxItsEd'
+'it'#4'Left'#3'('#2#6'Height'#2#19#3'Top'#2'i'#5'Width'#2'*'#8'TabOrder'#2#11
+#4'Text'#6#10'MaxItsEdit'#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#208#1#6'Heigh'
+'t'#2#29#3'Top'#3#143#0#5'Width'#2'L'#7'Caption'#6#5'Reset'#7'OnClick'#7#13
+'ResetBtnClick'#8'TabOrder'#2#12#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#208#1
+#6'Height'#2#29#3'Top'#3#192#0#5'Width'#2'L'#7'Caption'#6#6'Cancel'#11'Modal'
+'Result'#2#2#8'TabOrder'#2#13#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#208#1#6
+'Height'#2#29#3'Top'#3#0#1#5'Width'#2'L'#7'Caption'#6#7'Compute'#7'OnClick'#7
+#15'ComputeBtnClick'#8'TabOrder'#2#14#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3
+#208#1#6'Height'#2#29#3'Top'#3'0'#1#5'Width'#2'L'#7'Caption'#6#6'Return'#11
+'ModalResult'#2#1#8'TabOrder'#2#15#0#0#0
]);

View File

@ -1,378 +0,0 @@
unit CrossTab;
{$MODE Delphi}
interface
uses
LCLIntf, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, GLOBALS, OUTPUTUNIT, OS3MainUnit, DATAPROCS, FUNCTIONSLIB,
MATRIXLIB, LResources;
type
TCrossTabFrm = class(TForm)
Label1: TLabel;
VarList: TListBox;
InBtn: TBitBtn;
OutBtn: TBitBtn;
Label2: TLabel;
ListBox1: TListBox;
ResetBtn: TButton;
CancelBtn: TButton;
OKBtn: TButton;
Memo1: TMemo;
procedure ResetBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure OKBtnClick(Sender: TObject);
procedure InBtnClick(Sender: TObject);
procedure OutBtnClick(Sender: TObject);
private
{ Private declarations }
grandsum, sum, index : integer;
no_in_list, length_array, ptr1, ptr2 : integer ;
var_list, min_value, max_value, levels, displace, subscript : IntDyneVec;
freq : IntDyneVec;
outgrid : DblDyneMat;
rowlabels : StrDyneVec;
colLabels : StrDyneVec;
ColNoSelected : IntDyneVec;
NoSelected : integer;
NV, NC : integer;
procedure INITIALIZE(Sender: TObject);
procedure GET_Levels(Sender: TObject);
function INDEX_POSITION( x : IntDyneVec; Sender: TObject ) : integer;
Procedure TABULATE(Sender : TObject);
procedure BREAKDOWN(Sender : TObject);
public
{ Public declarations }
end;
var
CrossTabFrm: TCrossTabFrm;
implementation
procedure TCrossTabFrm.ResetBtnClick(Sender: TObject);
var
i : integer;
begin
VarList.Clear;
ListBox1.Clear;
OutBtn.Enabled := false;
InBtn.Enabled := true;
NV := NoVariables;
NC := NoCases;
for i := 1 to NV do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
end;
//----------------------------------------------------------------------
procedure TCrossTabFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
//----------------------------------------------------------------------
procedure TCrossTabFrm.CancelBtnClick(Sender: TObject);
begin
CrossTabFrm.Hide;
end;
//----------------------------------------------------------------------
procedure TCrossTabFrm.OKBtnClick(Sender: TObject);
label CleanUp;
var
cellvalue : string;
i, j : integer;
outline : string;
begin
SetLength(var_list,NV);
SetLength(min_value,NV);
SetLength(max_value,NV);
SetLength(levels,NC);
SetLength(displace,NC);
SetLength(subscript,NC);
SetLength(ColNoSelected,NV);
OutPutFrm.RichEdit.Clear;
// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify;
OutPutFrm.RichEdit.Lines.Add('CROSSTAB RESULTS');
OutPutFrm.RichEdit.Lines.Add('');
outline := ' Analyzed data is from file : ';
outline := outline + OS3MainFrm.FileNameEdit.Text;
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
INITIALIZE(self);
if ListBox1.Items.Count = 0 then
begin
ShowMessage('ERROR! No variables selected for analysis.');
goto CleanUp;
end;
NoSelected := 0;
for i := 0 to ListBox1.Items.Count-1 do
begin
for j := 1 to NV do
begin
cellvalue := OS3MainFrm.DataGrid.Cells[j,0];
if cellvalue = ListBox1.Items.Strings[i] then
begin
var_list[i] := j;
ColNoSelected[i] := j;
NoSelected := NoSelected + 1;
break;
end;
end;
end;
no_in_list := ListBox1.Items.Count;
GET_LEVELS(self);
TABULATE(self);
BREAKDOWN(self);
OutPutFrm.RichEdit.Lines.Add('');
cellvalue := format('Grand sum accross all categories = %3d',[grandsum]);
OutPutFrm.RichEdit.Lines.Add(cellvalue);
OutPutFrm.ShowModal;
CleanUp:
ColNoSelected := nil;
freq := nil;
collabels := nil;
rowlabels := nil;
outgrid := nil;
subscript := nil;
displace := nil;
levels := nil;
max_value := nil;
min_value := nil;
var_list := nil;
CrossTabFrm.Hide;
end;
//---------------------------------------------------------------------
procedure TCrossTabFrm.InBtnClick(Sender: TObject);
var
index, i : integer;
begin
index := VarList.Items.Count;
i := 0;
while i < index do
begin
if (VarList.Selected[i]) then
begin
ListBox1.Items.Add(VarList.Items.Strings[i]);
VarList.Items.Delete(i);
index := index - 1;
i := 0;
end
else i := i + 1;
end;
OutBtn.Enabled := true;
end;
//-----------------------------------------------------------------------
procedure TCrossTabFrm.OutBtnClick(Sender: TObject);
var
index: integer;
begin
index := ListBox1.ItemIndex;
VarList.Items.Add(ListBox1.Items.Strings[index]);
ListBox1.Items.Delete(index);
InBtn.Enabled := true;
if ListBox1.Items.Count = 0 then OutBtn.Enabled := false;
end;
//-----------------------------------------------------------------------
procedure TCrossTabFrm.INITIALIZE(Sender: TObject);
var
i : integer;
begin
no_in_list := 0;
for i := 1 to NV do
begin
var_list[i-1] := 0;
min_value[i-1] := 0;
max_value[i-1] := 0;
levels[i-1] := 0;
displace[i-1] := 0;
subscript[i-1] := 0;
end;
index := 0;
length_array := 0;
grandsum := 0;
end; { initialize procedure }
//-----------------------------------------------------------------------
procedure TCrossTabFrm.GET_Levels(Sender: TObject);
var
i, j, k : integer;
value : double;
outline : string;
begin
for i := 1 to no_in_list do
begin
j := var_list[i-1];
if Not GoodRecord(1,NoSelected,ColNoSelected) then continue;
value := StrToFloat(OS3MainFrm.DataGrid.Cells[j,1]);
min_value[i-1] := round(value);
max_value[i-1] := round(value);
for k := 2 to NC do
begin
if Not GoodRecord(k,NoSelected,ColNoSelected) then continue;
value := StrToFloat(OS3MainFrm.DataGrid.Cells[j,k]);
if value < min_value[i-1] then min_value[i-1] :=
round(value);
if value > max_value[i-1] then max_value[i-1] :=
round(value);
end;
end;
for i := 1 to no_in_list do
begin
j := var_list[i-1];
levels[i-1] := max_value[i-1] - min_value[i-1] + 1;
outline := format('%s min.=%3d, max.=%3d, no. levels = %3d',
[OS3MainFrm.DataGrid.Cells[j,0],min_value[i-1],max_value[i-1],levels[i-1]]);
OutPutFrm.RichEdit.Lines.Add(outline);
end;
OutPutFrm.RichEdit.Lines.Add('');
displace[no_in_list-1] := 1;
if no_in_list > 1 then
begin
for i := (no_in_list - 1) downto 1 do
displace[i-1] := levels[i] * displace[i];
end;
end;
//-----------------------------------------------------------------------
function TCrossTabFrm.INDEX_POSITION( x : IntDyneVec; Sender: TObject ) : integer;
var index : integer;
i : integer;
begin
index := x[no_in_list-1];
if no_in_list > 1 then
begin
for i := 1 to no_in_list - 1 do
index := index + (x[i-1] -1) * displace[i-1];
end;
index_position := index;
end; { function INDEX_POSITION }
//------------------------------------------------------------------------
Procedure TCrossTabFrm.TABULATE(Sender : TObject);
var
i, j, k : integer;
value : double;
x : integer;
begin
length_array := 1;
for i := 1 to no_in_list do length_array := length_array * levels[i-1];
SetLength(freq,length_array+1);
for i := 0 to length_array do freq[i] := 0;
for i := 1 to NC do
begin
if IsFiltered(i) then continue;
for j := 1 to no_in_list do
begin
if Not GoodRecord(i,NoSelected,ColNoSelected) then continue;
k := var_list[j-1];
value := StrToFloat(OS3MainFrm.DataGrid.Cells[k,i]);
x := round(value);
x := x - min_value[j-1] + 1;
subscript[j-1] := x;
end;
j := index_position(subscript,self);
if (j < 1) or (j > length_array) then
begin
ShowMessage('ERROR! subscript out of range.');
continue;
end
else freq[j] := freq[j] + 1;
end;
end; { procedure TABULATE }
//---------------------------------------------------------------------
procedure TCrossTabFrm.BREAKDOWN(Sender : TObject);
label 1,2,3,4, printgrid;
var
i, j, row, col, bigmax : integer;
outline : string;
value : string;
title : String;
begin
bigmax := -1;
for i := 0 to no_in_list-1 do
if Levels[i] > bigmax then bigmax := Levels[i];
SetLength(colLabels,bigmax);
SetLength(outgrid,length_array,bigmax);
SetLength(rowlabels,length_array);
outline := OS3MainFrm.DataGrid.Cells[var_list[no_in_list-1],0];
for col := 1 to Levels[no_in_list-1] do
collabels[col-1] := outline + format(':%3d',[min_value[no_in_list-1] + col - 1]);
for row := 1 to length_array do rowlabels[row-1] := '';
ptr1 := no_in_list - 1;
ptr2 := no_in_list;
for i := 1 to no_in_list do subscript[i-1] := 1;
OutPutFrm.RichEdit.Lines.Add('FREQUENCIES BY LEVEL:');
sum := 0;
col := 1;
row := 1;
1: index := index_position(subscript,self);
outline := 'For cell levels: ';
for i := 1 to no_in_list do
begin
j := var_list[i-1];
value := format('%s:%3d ',[OS3MainFrm.DataGrid.Cells[j,0],
min_value[i-1] + subscript[i-1] - 1]);
outline := outline + value;
end;
sum := sum + freq[index];
outgrid[row-1,col-1] := freq[index];
outline := outline + format(' Frequency = %3d',[freq[index]]);
OutPutFrm.RichEdit.Lines.Add(outline);
subscript[ptr2-1] := subscript[ptr2-1] + 1;
col := col + 1;
IF subscript[ptr2-1] <= levels[ptr2-1] then goto 1;
outline := format('Sum accross levels = %3d',[sum]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('');
grandsum := grandsum + sum;
sum := 0;
row := row + 1;
2: if ptr1 < 1 then goto printgrid;
subscript[ptr1-1] := subscript[ptr1-1] + 1;
if subscript[ptr1-1] <= levels[ptr1-1] then goto 4;
3: ptr1 := ptr1 - 1;
if ptr1 < 1 then goto printgrid;
if subscript[ptr1-1] >= levels[ptr1-1] then goto 3;
subscript[ptr1-1] := subscript[ptr1-1] + 1;
4: for i := ptr1 + 1 to no_in_list do subscript[i-1] := 1;
ptr1 := no_in_list - 1;
col := 1;
goto 1;
printgrid:
title := 'Cell Frequencies by Levels';
for i := 1 to row - 1 do
begin
value := format('Block %d',[i]);
rowlabels[i-1] := value;
end;
MAT_PRINT(outgrid,row-1,Levels[no_in_list-1],title,rowlabels,collabels,NC);
end; { Procedure BREAKDOWN }
//---------------------------------------------------------------------
initialization
{$i CROSSTAB.lrs}
{$i CROSSTAB.lrs}
end.

View File

@ -1,145 +0,0 @@
object CrossTabFrm: TCrossTabFrm
Left = 320
Height = 214
Top = 689
Width = 521
HelpContext = 603
HorzScrollBar.Page = 520
VertScrollBar.Page = 213
ActiveControl = VarList
BorderStyle = bsDialog
Caption = 'Cross Tabulation Procedure'
Font.Height = -11
Font.Name = 'MS Sans Serif'
HelpFile = 'OS2Help.hlp'
OnShow = FormShow
object Label1: TLabel
Left = 16
Height = 14
Top = 8
Width = 94
Caption = 'Available Variables:'
Color = clNone
ParentColor = False
end
object Label2: TLabel
Left = 184
Height = 14
Top = 8
Width = 102
Caption = 'Variables to Analyze:'
Color = clNone
ParentColor = False
end
object VarList: TListBox
Left = 8
Height = 177
Top = 24
Width = 129
ItemHeight = 13
MultiSelect = True
TabOrder = 0
end
object InBtn: TBitBtn
Left = 144
Height = 33
Top = 32
Width = 33
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000120B0000120B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333FF3333333333333003333
3333333333773FF3333333333309003333333333337F773FF333333333099900
33333FFFFF7F33773FF30000000999990033777777733333773F099999999999
99007FFFFFFF33333F7700000009999900337777777F333F7733333333099900
33333333337F3F77333333333309003333333333337F77333333333333003333
3333333333773333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333333333333
}
NumGlyphs = 2
OnClick = InBtnClick
TabOrder = 1
end
object OutBtn: TBitBtn
Left = 144
Height = 33
Top = 72
Width = 33
Enabled = False
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000120B0000120B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333FF3333333333333003333333333333F77F33333333333009033
333333333F7737F333333333009990333333333F773337FFFFFF330099999000
00003F773333377777770099999999999990773FF33333FFFFF7330099999000
000033773FF33777777733330099903333333333773FF7F33333333333009033
33333333337737F3333333333333003333333333333377333333333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333333333333
}
NumGlyphs = 2
OnClick = OutBtnClick
TabOrder = 2
end
object ListBox1: TListBox
Left = 184
Height = 177
Top = 24
Width = 137
ItemHeight = 13
TabOrder = 3
end
object ResetBtn: TButton
Left = 448
Height = 25
Top = 104
Width = 65
BorderSpacing.InnerBorder = 4
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 4
end
object CancelBtn: TButton
Left = 448
Height = 25
Top = 144
Width = 65
BorderSpacing.InnerBorder = 4
Caption = 'Cancel'
ModalResult = 2
OnClick = CancelBtnClick
TabOrder = 5
end
object OKBtn: TButton
Left = 447
Height = 25
Top = 184
Width = 65
BorderSpacing.InnerBorder = 4
Caption = 'OK'
ModalResult = 1
OnClick = OKBtnClick
TabOrder = 6
end
object Memo1: TMemo
Left = 336
Height = 89
Top = 8
Width = 177
Lines.Strings = (
'Directions: Select each categorical'
'variable from the variables available '
'in the leftmost box in the order that '
'you wish to have the breakdown'
'proceed. Click the OK button to '
'start the analysis.'
)
TabOrder = 7
end
end

View File

@ -1,53 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TCrossTabFrm','FORMDATA',[
'TPF0'#12'TCrossTabFrm'#11'CrossTabFrm'#4'Left'#3'@'#1#6'Height'#3#214#0#3'To'
+'p'#3#177#2#5'Width'#3#9#2#11'HelpContext'#3'['#2#18'HorzScrollBar.Page'#3#8
+#2#18'VertScrollBar.Page'#3#213#0#13'ActiveControl'#7#7'VarList'#11'BorderSt'
+'yle'#7#8'bsDialog'#7'Caption'#6#26'Cross Tabulation Procedure'#11'Font.Heig'
+'ht'#2#245#9'Font.Name'#6#13'MS Sans Serif'#8'HelpFile'#6#11'OS2Help.hlp'#6
+'OnShow'#7#8'FormShow'#0#6'TLabel'#6'Label1'#4'Left'#2#16#6'Height'#2#14#3'T'
+'op'#2#8#5'Width'#2'^'#7'Caption'#6#20'Available Variables:'#5'Color'#7#6'cl'
+'None'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#184#0#6'Height'#2
+#14#3'Top'#2#8#5'Width'#2'f'#7'Caption'#6#21'Variables to Analyze:'#5'Color'
+#7#6'clNone'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#8#6'Heig'
+'ht'#3#177#0#3'Top'#2#24#5'Width'#3#129#0#10'ItemHeight'#2#13#11'MultiSelect'
+#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#144#0#6'Height'#2'!'#3
+'Top'#2' '#5'Width'#2'!'#10'Glyph.Data'#10'z'#1#0#0'v'#1#0#0'BMv'#1#0#0#0#0#0
+#0'v'#0#0#0'('#0#0#0' '#0#0#0#16#0#0#0#1#0#4#0#0#0#0#0#0#1#0#0#18#11#0#0#18
+#11#0#0#16#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0
+#128#0#128#0#128#128#0#0''#0#191#191#191#0#0#0#255#0#0#255#0#0#0#255#255#0
+#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0'333333333333333333333333333'
+'33333333333333333333333333333333?'#243'333333'#0'3333333w?'#243'33333'#9#0
+'333333w?'#243'3333'#9#153#0'33?'#255#255'3w?'#243#0#0#0#9#153#153#0'3wwws'
+'33w?'#9#153#153#153#153#153#153#0''#255#255#255'33?w'#0#0#0#9#153#153#0'3w'
+'ww3?w3333'#9#153#0'33333?w33333'#9#0'333333w333333'#0'3333333w3333333333'
+'333333333333333333333333333333333333333333'#9'NumGlyphs'#2#2#7'OnClick'#7#10
+'InBtnClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#144#0#6'Heig'
+'ht'#2'!'#3'Top'#2'H'#5'Width'#2'!'#7'Enabled'#8#10'Glyph.Data'#10'z'#1#0#0
+'v'#1#0#0'BMv'#1#0#0#0#0#0#0'v'#0#0#0'('#0#0#0' '#0#0#0#16#0#0#0#1#0#4#0#0#0
+#0#0#0#1#0#0#18#11#0#0#18#11#0#0#16#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0
+#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0''#0#191#191#191#0#0#0#255#0
+#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0'33333'
+'333333333333333333333333333333333333333?'#243'333333'#0'333333?w'#243'33333'
+#0#144'33333?w7'#243'3333'#0#153#144'3333?w37'#255#255#255'3'#0#153#153#144#0
+#0#0'?w337www'#0#153#153#153#153#153#153#144'w?'#243'33'#255#255#247'3'#0#153
+#153#144#0#0#0'3w?'#243'7www33'#0#153#144'33333w?'#247#243'33333'#0#144'3333'
+'33w7'#243'333333'#0'3333333w33333333333333333333333333333333333333333333333'
+'33333333333333333333'#9'NumGlyphs'#2#2#7'OnClick'#7#11'OutBtnClick'#8'TabOr'
+'der'#2#2#0#0#8'TListBox'#8'ListBox1'#4'Left'#3#184#0#6'Height'#3#177#0#3'To'
+'p'#2#24#5'Width'#3#137#0#10'ItemHeight'#2#13#8'TabOrder'#2#3#0#0#7'TButton'
+#8'ResetBtn'#4'Left'#3#192#1#6'Height'#2#25#3'Top'#2'h'#5'Width'#2'A'#25'Bor'
+'derSpacing.InnerBorder'#2#4#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnC'
+'lick'#8'TabOrder'#2#4#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#192#1#6'Height'
+#2#25#3'Top'#3#144#0#5'Width'#2'A'#25'BorderSpacing.InnerBorder'#2#4#7'Capti'
+'on'#6#6'Cancel'#11'ModalResult'#2#2#7'OnClick'#7#14'CancelBtnClick'#8'TabOr'
+'der'#2#5#0#0#7'TButton'#5'OKBtn'#4'Left'#3#191#1#6'Height'#2#25#3'Top'#3#184
+#0#5'Width'#2'A'#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#2'OK'#11'Mod'
+'alResult'#2#1#7'OnClick'#7#10'OKBtnClick'#8'TabOrder'#2#6#0#0#5'TMemo'#5'Me'
+'mo1'#4'Left'#3'P'#1#6'Height'#2'Y'#3'Top'#2#8#5'Width'#3#177#0#13'Lines.Str'
+'ings'#1#6'$Directions: Select each categorical'#6'&variable from the varia'
+'bles available '#6'&in the leftmost box in the order that '#6#30'you wish t'
+'o have the breakdown'#6'!proceed. Click the OK button to '#6#19'start the '
+'analysis.'#0#8'TabOrder'#2#7#0#0#0
]);

View File

@ -1,191 +0,0 @@
object CUMSUMFrm: TCUMSUMFrm
Left = 160
Height = 336
Top = 121
Width = 440
ActiveControl = HelpBtn
Caption = 'CUMSUM Chart'
ClientHeight = 336
ClientWidth = 440
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 8
Height = 14
Top = 8
Width = 90
Caption = 'Selection Variables'
ParentColor = False
end
object Label2: TLabel
Left = 168
Height = 14
Top = 32
Width = 71
Caption = 'Group Variable'
ParentColor = False
end
object Label3: TLabel
Left = 173
Height = 14
Top = 88
Width = 107
Caption = 'Measurement Variable'
ParentColor = False
end
object VarList: TListBox
Left = 8
Height = 179
Top = 24
Width = 152
ItemHeight = 0
OnClick = VarListClick
TabOrder = 0
end
object GroupEdit: TEdit
Left = 168
Height = 21
Top = 48
Width = 129
TabOrder = 1
Text = 'GroupEdit'
end
object MeasEdit: TEdit
Left = 168
Height = 21
Top = 104
Width = 127
TabOrder = 2
Text = 'MeasEdit'
end
object ResetBtn: TButton
Left = 320
Height = 30
Top = 48
Width = 80
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 3
end
object CancelBtn: TButton
Left = 321
Height = 30
Top = 88
Width = 79
Caption = 'Cancel'
ModalResult = 2
TabOrder = 4
end
object ComputeBtn: TButton
Left = 321
Height = 30
Top = 128
Width = 79
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 5
end
object ReturnBtn: TButton
Left = 321
Height = 30
Top = 168
Width = 79
Caption = 'Return'
ModalResult = 1
TabOrder = 6
end
object GroupBox1: TGroupBox
Left = 8
Height = 104
Top = 216
Width = 200
Caption = 'CUMSUM V-Mask Specifications'
ClientHeight = 86
ClientWidth = 196
TabOrder = 7
object Label4: TLabel
Left = 8
Height = 14
Top = 10
Width = 92
Caption = 'Delta (Effect Size):'
ParentColor = False
end
object Label5: TLabel
Left = 7
Height = 14
Top = 33
Width = 85
Caption = 'Alpha Probability:'
ParentColor = False
end
object Label6: TLabel
Left = 8
Height = 14
Top = 57
Width = 80
Caption = 'Beta Probability:'
ParentColor = False
end
object DeltaEdit: TEdit
Left = 110
Height = 21
Top = 3
Width = 56
TabOrder = 0
Text = 'DeltaEdit'
end
object AlphaEdit: TEdit
Left = 112
Height = 21
Top = 29
Width = 56
TabOrder = 1
Text = 'AlphaEdit'
end
object BetaEdit: TEdit
Left = 110
Height = 21
Top = 55
Width = 56
TabOrder = 2
Text = 'BetaEdit'
end
end
object GroupBox2: TGroupBox
Left = 216
Height = 104
Top = 216
Width = 212
Caption = 'Option:'
ClientHeight = 86
ClientWidth = 208
TabOrder = 8
object TargetChk: TCheckBox
Left = 8
Height = 17
Top = 15
Width = 140
Caption = 'Use Target Specification:'
TabOrder = 0
end
object TargetEdit: TEdit
Left = 154
Height = 21
Top = 6
Width = 43
TabOrder = 1
Text = 'TargetEdit'
end
end
object HelpBtn: TButton
Tag = 117
Left = 321
Height = 32
Top = 8
Width = 82
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 9
end
end

View File

@ -1,47 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TCUMSUMFrm','FORMDATA',[
'TPF0'#10'TCUMSUMFrm'#9'CUMSUMFrm'#4'Left'#3#160#0#6'Height'#3'P'#1#3'Top'#2
+'y'#5'Width'#3#184#1#13'ActiveControl'#7#7'HelpBtn'#7'Caption'#6#12'CUMSUM C'
+'hart'#12'ClientHeight'#3'P'#1#11'ClientWidth'#3#184#1#6'OnShow'#7#8'FormSho'
+'w'#10'LCLVersion'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'
+#2#14#3'Top'#2#8#5'Width'#2'Z'#7'Caption'#6#19'Selection Variables'#11'Paren'
+'tColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#168#0#6'Height'#2#14#3'Top'#2' '
+#5'Width'#2'G'#7'Caption'#6#14'Group Variable'#11'ParentColor'#8#0#0#6'TLabe'
+'l'#6'Label3'#4'Left'#3#173#0#6'Height'#2#14#3'Top'#2'X'#5'Width'#2'k'#7'Cap'
+'tion'#6#20'Measurement Variable'#11'ParentColor'#8#0#0#8'TListBox'#7'VarLis'
+'t'#4'Left'#2#8#6'Height'#3#179#0#3'Top'#2#24#5'Width'#3#152#0#10'ItemHeight'
+#2#0#7'OnClick'#7#12'VarListClick'#8'TabOrder'#2#0#0#0#5'TEdit'#9'GroupEdit'
+#4'Left'#3#168#0#6'Height'#2#21#3'Top'#2'0'#5'Width'#3#129#0#8'TabOrder'#2#1
+#4'Text'#6#9'GroupEdit'#0#0#5'TEdit'#8'MeasEdit'#4'Left'#3#168#0#6'Height'#2
+#21#3'Top'#2'h'#5'Width'#2#127#8'TabOrder'#2#2#4'Text'#6#8'MeasEdit'#0#0#7'T'
+'Button'#8'ResetBtn'#4'Left'#3'@'#1#6'Height'#2#30#3'Top'#2'0'#5'Width'#2'P'
+#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#3#0#0#7
+'TButton'#9'CancelBtn'#4'Left'#3'A'#1#6'Height'#2#30#3'Top'#2'X'#5'Width'#2
+'O'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#4#0#0#7'TButton'
+#10'ComputeBtn'#4'Left'#3'A'#1#6'Height'#2#30#3'Top'#3#128#0#5'Width'#2'O'#7
+'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#5#0#0#7
+'TButton'#9'ReturnBtn'#4'Left'#3'A'#1#6'Height'#2#30#3'Top'#3#168#0#5'Width'
+#2'O'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#6#0#0#9'TGrou'
+'pBox'#9'GroupBox1'#4'Left'#2#8#6'Height'#2'h'#3'Top'#3#216#0#5'Width'#3#200
+#0#7'Caption'#6#28'CUMSUM V-Mask Specifications'#12'ClientHeight'#2'V'#11'Cl'
+'ientWidth'#3#196#0#8'TabOrder'#2#7#0#6'TLabel'#6'Label4'#4'Left'#2#8#6'Heig'
+'ht'#2#14#3'Top'#2#10#5'Width'#2'\'#7'Caption'#6#20'Delta (Effect Size):'#11
+'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2#7#6'Height'#2#14#3'Top'#2
+'!'#5'Width'#2'U'#7'Caption'#6#18'Alpha Probability:'#11'ParentColor'#8#0#0#6
+'TLabel'#6'Label6'#4'Left'#2#8#6'Height'#2#14#3'Top'#2'9'#5'Width'#2'P'#7'Ca'
+'ption'#6#17'Beta Probability:'#11'ParentColor'#8#0#0#5'TEdit'#9'DeltaEdit'#4
+'Left'#2'n'#6'Height'#2#21#3'Top'#2#3#5'Width'#2'8'#8'TabOrder'#2#0#4'Text'#6
+#9'DeltaEdit'#0#0#5'TEdit'#9'AlphaEdit'#4'Left'#2'p'#6'Height'#2#21#3'Top'#2
+#29#5'Width'#2'8'#8'TabOrder'#2#1#4'Text'#6#9'AlphaEdit'#0#0#5'TEdit'#8'Beta'
+'Edit'#4'Left'#2'n'#6'Height'#2#21#3'Top'#2'7'#5'Width'#2'8'#8'TabOrder'#2#2
+#4'Text'#6#8'BetaEdit'#0#0#0#9'TGroupBox'#9'GroupBox2'#4'Left'#3#216#0#6'Hei'
+'ght'#2'h'#3'Top'#3#216#0#5'Width'#3#212#0#7'Caption'#6#7'Option:'#12'Client'
+'Height'#2'V'#11'ClientWidth'#3#208#0#8'TabOrder'#2#8#0#9'TCheckBox'#9'Targe'
+'tChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#2#15#5'Width'#3#140#0#7'Caption'#6
+#25'Use Target Specification:'#8'TabOrder'#2#0#0#0#5'TEdit'#10'TargetEdit'#4
+'Left'#3#154#0#6'Height'#2#21#3'Top'#2#6#5'Width'#2'+'#8'TabOrder'#2#1#4'Tex'
+'t'#6#10'TargetEdit'#0#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2'u'#4'Left'#3'A'#1#6
+'Height'#2' '#3'Top'#2#8#5'Width'#2'R'#7'Caption'#6#4'Help'#7'OnClick'#7#12
+'HelpBtnClick'#8'TabOrder'#2#9#0#0#0
]);

View File

@ -1,124 +0,0 @@
object CompTestFrm: TCompTestFrm
Left = 32
Top = 62
Width = 389
Height = 235
Caption = 'Computer Administered Test'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OnShow = FormShow
PixelsPerInch = 96
object Label1: TLabel
Left = 8
Top = 48
Width = 110
Height = 13
Caption = 'Enter your LAST name:'
end
object Label2: TLabel
Left = 8
Top = 144
Width = 150
Height = 13
Caption = 'Save the results in a file named:'
end
object Label3: TLabel
Left = 8
Top = 80
Width = 114
Height = 13
Caption = 'Enter your FIRST name:'
end
object Label4: TLabel
Left = 8
Top = 112
Width = 154
Height = 13
Caption = 'Enter your Identification Number:'
end
object LastNameEdit: TEdit
Left = 192
Top = 40
Width = 177
Height = 21
TabOrder = 2
end
object TestNameEdit: TEdit
Left = 192
Top = 8
Width = 177
Height = 21
TabOrder = 1
end
object CancelBtn: TButton
Left = 8
Top = 176
Width = 73
Height = 25
Caption = 'Cancel'
ModalResult = 2
TabOrder = 7
OnClick = CancelBtnClick
end
object StartBtn: TButton
Left = 152
Top = 176
Width = 73
Height = 25
Caption = 'Start Test'
TabOrder = 6
OnClick = StartBtnClick
end
object ExitBtn: TButton
Left = 296
Top = 176
Width = 73
Height = 25
Caption = 'Exit'
ModalResult = 1
TabOrder = 8
OnClick = ExitBtnClick
end
object Button1: TButton
Left = 8
Top = 8
Width = 145
Height = 25
Caption = 'Click to find test files'
TabOrder = 0
OnClick = Button1Click
end
object SaveFileEdit: TEdit
Left = 192
Top = 136
Width = 177
Height = 21
TabOrder = 5
end
object FirstNameEdit: TEdit
Left = 192
Top = 72
Width = 177
Height = 21
TabOrder = 3
end
object IDnoEdit: TEdit
Left = 192
Top = 104
Width = 177
Height = 21
TabOrder = 4
end
object OpenDialog1: TOpenDialog
Left = 240
Top = 176
end
object SaveDialog1: TSaveDialog
Left = 104
Top = 176
end
end

View File

@ -1,288 +0,0 @@
object CompletionItemFrm: TCompletionItemFrm
Left = 100
Top = 108
HelpContext = 1850
BorderStyle = bsDialog
Caption = 'Blank Completion Item Specification'
ClientHeight = 384
ClientWidth = 591
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
HelpFile = 'ITEMBANKHELP.HLP'
OnShow = FormShow
PixelsPerInch = 96
object Label2: TLabel
Left = 16
Top = 8
Width = 63
Height = 13
Caption = 'Item Number:'
end
object Label1: TLabel
Left = 160
Top = 8
Width = 281
Height = 13
Caption = 'Click on the Item Classification Code listed in the box below.'
end
object Label14: TLabel
Left = 16
Top = 64
Width = 89
Height = 13
Caption = 'Bit Map File Name:'
end
object Label15: TLabel
Left = 16
Top = 88
Width = 72
Height = 13
Caption = 'Image (if used):'
end
object Label16: TLabel
Left = 120
Top = 80
Width = 97
Height = 13
Caption = '(Thumb Nail Sketch)'
end
object BMPImage: TImage
Left = 112
Top = 96
Width = 121
Height = 97
Center = True
Stretch = True
end
object Label18: TLabel
Left = 248
Top = 96
Width = 60
Height = 13
Caption = 'Item Weight:'
end
object Label3: TLabel
Left = 16
Top = 200
Width = 47
Height = 13
Caption = 'Item Stem'
end
object Label4: TLabel
Left = 16
Top = 312
Width = 89
Height = 13
Caption = 'Suggested Answer'
end
object ItemNoEdit: TEdit
Left = 104
Top = 0
Width = 41
Height = 21
TabOrder = 0
end
object ItemNoScroll: TScrollBar
Left = 16
Top = 28
Width = 129
Height = 16
Max = 1000
PageSize = 0
TabOrder = 1
OnScroll = ItemNoScrollScroll
end
object CodeCombo: TComboBox
Left = 160
Top = 24
Width = 417
Height = 21
ItemHeight = 13
TabOrder = 2
Text = 'Classification Code'
end
object BMPFileEdit: TEdit
Left = 112
Top = 56
Width = 465
Height = 21
TabOrder = 3
Text = 'BMPFileEdit'
end
object BrowseBtn: TButton
Left = 24
Top = 112
Width = 57
Height = 25
Caption = 'Browse'
TabOrder = 4
OnClick = BrowseBtnClick
end
object ClearBtn: TButton
Left = 24
Top = 144
Width = 57
Height = 25
Caption = 'Clear'
TabOrder = 5
OnClick = ClearBtnClick
end
object ItemWeightEdit: TEdit
Left = 312
Top = 96
Width = 33
Height = 21
TabOrder = 6
Text = 'ItemWeightEdit'
end
object Panel1: TPanel
Left = 408
Top = 80
Width = 169
Height = 137
TabOrder = 7
object Label9: TLabel
Left = 6
Top = 14
Width = 78
Height = 13
Caption = 'Percent Passed:'
end
object Label10: TLabel
Left = 6
Top = 38
Width = 97
Height = 13
Caption = 'Log Difficulty (IRT1):'
end
object Label11: TLabel
Left = 6
Top = 62
Width = 86
Height = 13
Caption = 'Item Slope (IRT2):'
end
object Label12: TLabel
Left = 6
Top = 86
Width = 96
Height = 13
Caption = 'Item Chance (IRT3):'
end
object Label13: TLabel
Left = 6
Top = 110
Width = 76
Height = 13
Caption = 'Times Selected:'
end
object PcntEdit: TEdit
Left = 110
Top = 6
Width = 41
Height = 21
TabOrder = 0
end
object IRT1Edit: TEdit
Left = 110
Top = 30
Width = 41
Height = 21
TabOrder = 1
end
object IRT2Edit: TEdit
Left = 110
Top = 54
Width = 41
Height = 21
TabOrder = 2
end
object IRT3Edit: TEdit
Left = 110
Top = 78
Width = 41
Height = 21
TabOrder = 3
end
object NoSelEdit: TEdit
Left = 110
Top = 102
Width = 41
Height = 21
TabOrder = 4
end
end
object StemMemo: TMemo
Left = 16
Top = 224
Width = 561
Height = 73
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'MS Sans Serif'
Font.Style = []
MaxLength = 1000
ParentFont = False
ScrollBars = ssVertical
TabOrder = 8
WantTabs = True
WordWrap = False
end
object NewBtn: TButton
Left = 16
Top = 355
Width = 73
Height = 25
Caption = 'New Item'
TabOrder = 9
OnClick = NewBtnClick
end
object SaveBtn: TButton
Left = 112
Top = 355
Width = 73
Height = 25
Caption = 'Save Item'
TabOrder = 10
OnClick = SaveBtnClick
end
object DeleteBtn: TButton
Left = 208
Top = 355
Width = 73
Height = 25
Caption = 'Delete'
TabOrder = 11
OnClick = DeleteBtnClick
end
object ReturnBtn: TButton
Left = 504
Top = 355
Width = 73
Height = 25
Caption = 'Return'
ModalResult = 1
TabOrder = 12
OnClick = ReturnBtnClick
end
object AnswerEdit: TEdit
Left = 16
Top = 328
Width = 561
Height = 21
TabOrder = 13
end
object OpenPictureDialog1: TOpenPictureDialog
Left = 328
Top = 352
end
object OpenDialog1: TOpenDialog
Left = 384
Top = 352
end
end

View File

@ -1,336 +0,0 @@
unit CompletionItemUnit;
{$MODE Delphi}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ItemBankGlobals, ExtDlgs, FunctionsUnit;
type
TCompletionItemFrm = class(TForm)
Label2: TLabel;
ItemNoEdit: TEdit;
ItemNoScroll: TScrollBar;
Label1: TLabel;
CodeCombo: TComboBox;
Label14: TLabel;
BMPFileEdit: TEdit;
Label15: TLabel;
BrowseBtn: TButton;
ClearBtn: TButton;
Label16: TLabel;
BMPImage: TImage;
Label18: TLabel;
ItemWeightEdit: TEdit;
Panel1: TPanel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
PcntEdit: TEdit;
IRT1Edit: TEdit;
IRT2Edit: TEdit;
IRT3Edit: TEdit;
NoSelEdit: TEdit;
Label3: TLabel;
StemMemo: TMemo;
NewBtn: TButton;
SaveBtn: TButton;
DeleteBtn: TButton;
ReturnBtn: TButton;
AnswerEdit: TEdit;
Label4: TLabel;
OpenPictureDialog1: TOpenPictureDialog;
OpenDialog1: TOpenDialog;
procedure FormShow(Sender: TObject);
procedure ShowBlankItem(Sender: TObject; itemno : integer);
procedure ReturnBtnClick(Sender: TObject);
procedure NewBtnClick(Sender: TObject);
procedure SaveBtnClick(Sender: TObject);
procedure LoadRecord(VAR NewRcd : BlankItemRcd; Sender : TObject);
procedure DeleteBtnClick(Sender: TObject);
procedure BrowseBtnClick(Sender: TObject);
procedure ItemNoScrollScroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
procedure ClearBtnClick(Sender: TObject);
private
{ Private declarations }
maxitems : integer;
ARcd : BlankItemRcd;
public
{ Public declarations }
end;
var
CompletionItemFrm: TCompletionItemFrm;
implementation
{$R *.lfm}
procedure TCompletionItemFrm.FormShow(Sender: TObject);
var
F : TextFile;
S : string;
TF : File of BlankItemRcd;
begin
StemMemo.Clear;
AnswerEdit.Text := '';
ItemNoScroll.Min := 1;
ItemNoScroll.Max := 1;
ItemNoEdit.Text := '1';
ItemNoScroll.Position := 1;
CodeCombo.Text := '';
BMPFileEdit.Text := '';
PcntEdit.Text := '0';
IRT1Edit.Text := '0';
IRT2Edit.Text := '0';
IRT3Edit.Text := '0';
NoSelEdit.Text := '0';
ItemWeightEdit.Text := '0';
maxitems := 0;
OpenDialog1.DefaultExt := '.COD';
OpenDialog1.Filter := 'Code files (*.cod)|*.COD|Text files (*.txt)|*.TXT|All files (*.*)|*.*';
OpenDialog1.FilterIndex := 1;
OpenDialog1.FileName := BankPath + ExtractFileName(BankName) + '.COD';
OpenDialog1.Title := 'Name of Item Code File:';
if OpenDialog1.Execute then
begin
AssignFile(F,OpenDialog1.filename);
ReSet(F);
while not EOF(F) do
begin
readln(F,S);
CodeCombo.Items.Add(S);
end;
end
else begin
ShowMessage('You must first open a file of item codes.');
exit;
end;
CloseFile(F);
S := BankPath + 'BlankFile' + ExtractFileName(BankName);
BlankFName := S;
if FileExists(S) { *Converted from FileExists* } then
begin
AssignFile(TF,S);
Reset(TF);
while not EOF(TF) do
begin
read(TF,ARcd);
maxitems := maxitems + 1;
end;
CloseFile(TF);
if maxitems > ItemNoScroll.Max then
ItemNoScroll.Max := maxitems;
ItemNoScroll.Min := 1;
end
else begin // create empty file
AssignFile(TF,S);
rewrite(TF);
CloseFile(TF);
end;
ARcd.BestAns := '';
if maxitems > 0 then
begin
ItemNoScroll.Position := 1;
ShowBlankItem(self,1);
end;
end;
//-------------------------------------------------------------------
procedure TCompletionItemFrm.ShowBlankItem(Sender: TObject; itemno : integer);
var
S : string;
F : File of BlankItemRcd;
where : longint;
Frecd : BlankItemRcd;
i : integer;
begin
ItemNoEdit.Text := IntToStr(ItemNoScroll.Position);
S := BankPath + 'BlankFile' + ExtractFileName(BankName);
AssignFile(F,S);
Reset(F);
where := itemno-1;
Seek(F,where);
read(F,FRecd);
CloseFile(F);
CodeCombo.Text := Frecd.Code;
BMPFileEdit.Text := Frecd.Picture;
PcntEdit.Text := FloatToStr(Frecd.PcntPass);
if BMPFileEdit.Text <> '' then
begin
if FileExists(Frecd.Picture) { *Converted from FileExists* } then
begin
BMPImage.Picture.LoadFromFile(Frecd.Picture);
BMPImage.Visible := true;
end
else begin
// ShowMessage('Image ' + Frecd.Picture + ' not found.');
BMPFileEdit.Text := '';
Frecd.Picture := '';
end;
end
else BMPImage.Visible := false;
ItemWeightEdit.Text := IntToStr(Frecd.ItemWeight);
IRT1Edit.Text := FloatToStr(Frecd.IRT[1]);
IRT2Edit.Text := FloatToStr(Frecd.IRT[2]);
IRT3Edit.Text := FLoatToStr(Frecd.IRT[3]);
StemMemo.Clear;
for i := 1 to 10 do
begin
S := Frecd.ItemStem[i];
if length(S) > 0 then StemMemo.Lines.Add(S);
end;
AnswerEdit.Text := Frecd.BestAns;
end;
//-------------------------------------------------------------------
procedure TCompletionItemFrm.ReturnBtnClick(Sender: TObject);
begin
CompletionItemFrm.Hide;
end;
//-------------------------------------------------------------------
procedure TCompletionItemFrm.NewBtnClick(Sender: TObject);
begin
StemMemo.Clear;
AnswerEdit.Text := '';
ItemNoScroll.Max := maxitems + 1;
ItemNoScroll.Position := ItemNoScroll.Max;
ItemNoEdit.Text := IntToStr(ItemNoScroll.Position);
CodeCombo.Text := '';
BMPFileEdit.Text := '';
BMPImage.Visible := false;
PcntEdit.Text := '0';
IRT1Edit.Text := '0';
IRT2Edit.Text := '0';
IRT3Edit.Text := '0';
NoSelEdit.Text := '0';
ItemWeightEdit.Text := '0';
BMPImage.Visible := false;
end;
//-------------------------------------------------------------------
procedure TCompletionItemFrm.SaveBtnClick(Sender: TObject);
var
NewRcd : BlankItemRcd;
itemno : integer;
begin
itemno := ItemNoScroll.Position;
LoadRecord(NewRcd,self);
WriteCOItem(itemno,NewRcd);
if itemno > maxitems then
begin
maxitems := itemno;
ItemNoScroll.Max := maxitems+1;
end;
end;
//-------------------------------------------------------------------
procedure TCompletionItemFrm.LoadRecord(VAR NewRcd : BlankItemRcd; Sender : TObject);
var
i : integer;
S : string;
begin
NewRcd.ItemNo := ItemNoScroll.Position;
NewRcd.Code := CodeCombo.Text;
for i := 0 to StemMemo.Lines.Count-1 do
begin
S := Trim(StemMemo.Lines[i]);
NewRcd.ItemStem[i+1] := S;
end;
if StemMemo.Lines.Count < 10 then
for i := StemMemo.Lines.Count+1 to 10 do NewRcd.ItemStem[i] := '';
NewRcd.BestAns := AnswerEdit.Text;
NewRcd.ItemWeight := StrToInt(ItemWeightEdit.Text);
NewRcd.Picture := BMPFileEdit.Text;
NewRcd.PcntPass := StrToFloat(PcntEdit.Text);
NewRcd.IRT[1] := StrToFloat(IRT1Edit.Text);
NewRcd.IRT[2] := StrToFloat(IRT2Edit.Text);
NewRcd.IRT[3] := StrToFloat(IRT3Edit.Text);
NewRcd.FreqElect := StrToInt(NoSelEdit.Text);
end;
//-------------------------------------------------------------------
procedure TCompletionItemFrm.DeleteBtnClick(Sender: TObject);
var
FOld : File of BlankItemRcd;
FNew : File of BlankItemRcd;
itemno : integer;
i : integer;
SOld : string;
SNew : string;
begin
itemno := ItemNoScroll.Position;
SOld := BankPath + 'BlankFile' + ExtractFileName(BankName);
AssignFile(FOld,SOld);
ReSet(FOld);
SNew := BankPath + 'TempBlankFile';
AssignFile(FNew,SNew);
Rewrite(FNew);
// copy up to itemno from old file to new file
for i := 1 to itemno-1 do
begin
if not EOF(FOld) then
begin
read(FOld,ARcd);
write(FNew,ARcd);
end;
end;
// read past itemno to delete
if not EOF(FOld) then read(FOld,ARcd);
// write remaining records, if any, from old to new
if not EOF(FOld) then
begin
while not EOF(FOld) do
begin
read(FOld,ARcd);
write(FNew,ARcd);
end;
end;
CloseFile(FOld);
CloseFile(FNew);
// delete old file and rename temp file to old file name
DeleteFile(SOld); { *Converted from DeleteFile* }
RenameFile(SNew, Sold); { *Converted from RenameFile* }
maxitems := maxitems - 1;
if maxitems > 0 then ItemNoScroll.Max := maxitems else
ItemNoScroll.Max := 1;
end;
//-------------------------------------------------------------------
procedure TCompletionItemFrm.BrowseBtnClick(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
BMPFileEdit.Text := OpenPictureDialog1.FileName;
BMPImage.Picture.LoadFromFile(BMPFileEdit.Text);
BMPImage.Visible := true;
end;
end;
//-------------------------------------------------------------------
procedure TCompletionItemFrm.ItemNoScrollScroll(Sender: TObject;
ScrollCode: TScrollCode; var ScrollPos: Integer);
var
itemno : integer;
begin
itemno := ScrollPos;
if (itemno > maxitems) or (itemno < 1) then exit;
ItemNoEdit.Text := IntToStr(itemno);
ShowBlankItem(self,itemno);
end;
//-------------------------------------------------------------------
procedure TCompletionItemFrm.ClearBtnClick(Sender: TObject);
begin
BMPFileEdit.Text := '';
BMPImage.Visible := false;
end;
//-------------------------------------------------------------------
end.

View File

@ -1,71 +0,0 @@
unit DataUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Grids, OutPutUnit, Globals;
procedure GetFileData(VAR FName : string);
procedure Allocations;
procedure DeAllocations;
implementation
uses LinPro;
procedure GetFileData(VAR FName : string);
var
F : TextFile;
i, j : integer;
begin
LinProFrm.OpenDialog1.DefaultExt := 'LPR';
LinProFrm.OpenDialog1.Filter := 'Linear Programming File (*.LPR)|*.LPR|All Files (*.*)|*.*';
LinProFrm.OpenDialog1.FilterIndex := 1;
if LinProFrm.OpenDialog1.Execute then
begin
FName := LinProFrm.OpenDialog1.FileName;
AssignFile(F,FName);
Reset(F);
readln(F,LinProFrm.NoVars);
readln(F,LinProFrm.NoMax);
readln(F,LinProFrm.NoMin);
readln(F,LinProFrm.NoEql);
readln(F,LinProFrm.MinMax);
LinProFrm.NoCoefs := LinProFrm.NoMax + LinProFrm.NoMin + LinProFrm.NoEql;
Alloc;
for i := 1 to LinProFrm.NoVars do readln(F,LinProFrm.Objective[i]);
for i := 1 to LinProFrm.NoMax do readln(F,LinProFrm.MaxConstraints[i]);
for i := 1 to LinProFrm.NoMin do readln(F,LinProFrm.MinConstraints[i]);
for i := 1 to LinProFrm.NoEql do readln(F,LinProFrm.EqlConstraints[i]);
for i := 1 to LinProFrm.NoCoefs do
for j := 1 to LinProFrm.NoVars do readln(F,LinProFrm.Coefficients[i,j]);
CloseFile(F);
end;
end;
//-------------------------------------------------------------------
procedure Allocations;
begin
SetLength(LinProFrm.Objective,LinProFrm.NoVars + 1);
SetLength(LinProFrm.MaxConstraints,LinProFrm.NoMax + 1);
SetLength(LinProFrm.MinConstraints,LinProFrm.NoMin + 1);
SetLength(LinProFrm.EqlConstraints,LinProFrm.NoEql+1);
SetLength(LinProFrm.Coefficients,LinProFrm.NoCoefs+1,LinProFrm.NoVars+1);
end;
//-------------------------------------------------------------------
procedure DeAllocations;
begin
// cleanup
LinProFrm.Coefficients := nil;
LinProFrm.EqlConstraints := nil;
LinProFrm.MinConstraints := nil;
LinProFrm.MaxConstraints := nil;
LinProFrm.Objective := nil;
end;
//-------------------------------------------------------------------
end.

File diff suppressed because it is too large Load Diff

View File

@ -1,422 +0,0 @@
object DIFfrm: TDIFfrm
Left = 62
Top = 100
Width = 486
Height = 466
HelpContext = 1210
Caption = 'DIF Specifications'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
HelpFile = 'OS2Help.hlp'
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 8
Top = 112
Width = 89
Height = 13
Caption = 'Available Variables'
end
object Label2: TLabel
Left = 200
Top = 112
Width = 70
Height = 13
Caption = 'Items Selected'
end
object Label3: TLabel
Left = 200
Top = 264
Width = 84
Height = 13
Caption = 'Grouping Variable'
end
object Label4: TLabel
Left = 200
Top = 328
Width = 110
Height = 13
Caption = 'Reference group code:'
end
object Label5: TLabel
Left = 200
Top = 352
Width = 89
Height = 13
Caption = 'Focal Group Code:'
end
object Label6: TLabel
Left = 200
Top = 376
Width = 94
Height = 13
Caption = 'No. of Score Levels'
end
object Label7: TLabel
Left = 352
Top = 288
Width = 108
Height = 13
Caption = 'Enter bounds for levels'
end
object Label8: TLabel
Left = 352
Top = 352
Width = 66
Height = 13
Caption = 'Lower Bound:'
end
object Label9: TLabel
Left = 352
Top = 376
Width = 66
Height = 13
Caption = 'Upper Bound:'
end
object Label10: TLabel
Left = 352
Top = 304
Width = 28
Height = 13
Caption = 'Down'
end
object Label11: TLabel
Left = 416
Top = 304
Width = 14
Height = 13
Caption = 'Up'
end
object Label12: TLabel
Left = 440
Top = 304
Width = 26
Height = 13
Caption = 'Level'
end
object Memo1: TMemo
Left = 8
Top = 0
Width = 457
Height = 105
Lines.Strings = (
'This procedure is an adaptation of the program written by Niels ' +
'G. Waller, Dept. of Psychology,'
'University of California - Davis, Jan. 1998. It'#39's purpose is to' +
' identify test items that differ in the '
'response pattern for two groups: a reference group and a focal g' +
'roup. The file of data to be '
'analyzed should consist of a variable containing a code designat' +
'ing the two groups and '
'variables containing subject'#39's item responses coded 0 for incorr' +
'ect and 1 for correct. No '
'missing data may be included. The results provide the Mantel-Ha' +
'enszel statistics for identifying '
'those items which are different for the two groups.')
TabOrder = 0
end
object VarList: TListBox
Left = 8
Top = 128
Width = 137
Height = 249
ItemHeight = 13
MultiSelect = True
TabOrder = 1
end
object ItemInBtn: TBitBtn
Left = 160
Top = 152
Width = 25
Height = 25
TabOrder = 2
OnClick = ItemInBtnClick
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000120B0000120B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333FF3333333333333003333
3333333333773FF3333333333309003333333333337F773FF333333333099900
33333FFFFF7F33773FF30000000999990033777777733333773F099999999999
99007FFFFFFF33333F7700000009999900337777777F333F7733333333099900
33333333337F3F77333333333309003333333333337F77333333333333003333
3333333333773333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333333333333}
NumGlyphs = 2
end
object ItemOutBtn: TBitBtn
Left = 160
Top = 184
Width = 25
Height = 25
TabOrder = 3
OnClick = ItemOutBtnClick
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000120B0000120B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333FF3333333333333003333333333333F77F33333333333009033
333333333F7737F333333333009990333333333F773337FFFFFF330099999000
00003F773333377777770099999999999990773FF33333FFFFF7330099999000
000033773FF33777777733330099903333333333773FF7F33333333333009033
33333333337737F3333333333333003333333333333377333333333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333333333333}
NumGlyphs = 2
end
object AllBtn: TBitBtn
Left = 160
Top = 216
Width = 25
Height = 25
Caption = 'ALL'
TabOrder = 4
OnClick = AllBtnClick
end
object GrpInBtn: TBitBtn
Left = 160
Top = 264
Width = 25
Height = 25
TabOrder = 5
OnClick = GrpInBtnClick
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000120B0000120B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333FF3333333333333003333
3333333333773FF3333333333309003333333333337F773FF333333333099900
33333FFFFF7F33773FF30000000999990033777777733333773F099999999999
99007FFFFFFF33333F7700000009999900337777777F333F7733333333099900
33333333337F3F77333333333309003333333333337F77333333333333003333
3333333333773333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333333333333}
NumGlyphs = 2
end
object GrpOutBtn: TBitBtn
Left = 160
Top = 296
Width = 25
Height = 25
TabOrder = 6
Glyph.Data = {
76010000424D7601000000000000760000002800000020000000100000000100
04000000000000010000120B0000120B00001000000000000000000000000000
800000800000008080008000000080008000808000007F7F7F00BFBFBF000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333FF3333333333333003333333333333F77F33333333333009033
333333333F7737F333333333009990333333333F773337FFFFFF330099999000
00003F773333377777770099999999999990773FF33333FFFFF7330099999000
000033773FF33777777733330099903333333333773FF7F33333333333009033
33333333337737F3333333333333003333333333333377333333333333333333
3333333333333333333333333333333333333333333333333333333333333333
3333333333333333333333333333333333333333333333333333}
NumGlyphs = 2
end
object GroupVarEdit: TEdit
Left = 200
Top = 280
Width = 137
Height = 21
TabOrder = 7
Text = 'GroupVarEdit'
end
object ItemsList: TListBox
Left = 200
Top = 128
Width = 137
Height = 121
ItemHeight = 13
TabOrder = 8
end
object RefGrpEdit: TEdit
Left = 312
Top = 320
Width = 25
Height = 21
TabOrder = 9
Text = 'RefGrpEdit'
end
object TrgtGrpEdit: TEdit
Left = 312
Top = 344
Width = 25
Height = 21
TabOrder = 10
Text = 'TrgtGrpEdit'
end
object ResetBtn: TButton
Left = 8
Top = 408
Width = 65
Height = 25
Caption = 'Reset'
TabOrder = 11
OnClick = ResetBtnClick
end
object ComputeBtn: TButton
Left = 208
Top = 408
Width = 65
Height = 25
Caption = 'Compute'
TabOrder = 12
OnClick = ComputeBtnClick
end
object ReturnBtn: TButton
Left = 400
Top = 408
Width = 65
Height = 25
Caption = 'Return'
ModalResult = 1
TabOrder = 13
OnClick = ReturnBtnClick
end
object GroupBox1: TGroupBox
Left = 352
Top = 112
Width = 113
Height = 169
Caption = 'Options'
TabOrder = 14
object ItemStatsChk: TCheckBox
Left = 8
Top = 16
Width = 89
Height = 17
Caption = 'Item Statistics'
Checked = True
State = cbChecked
TabOrder = 0
end
object TestStatsChk: TCheckBox
Left = 8
Top = 32
Width = 89
Height = 17
Caption = 'Test Statistics'
TabOrder = 1
end
object ItemCorrsChk: TCheckBox
Left = 8
Top = 48
Width = 97
Height = 17
Caption = 'Item Intercorr.s'
TabOrder = 2
end
object ItemTestChk: TCheckBox
Left = 8
Top = 64
Width = 89
Height = 17
Caption = 'Item-Test cor.s'
TabOrder = 3
end
object AlphaChk: TCheckBox
Left = 8
Top = 80
Width = 97
Height = 17
Caption = 'Alpha Reliability'
TabOrder = 4
end
object LogisticChk: TCheckBox
Left = 8
Top = 112
Width = 97
Height = 17
Caption = 'Logistic Regres.'
Enabled = False
TabOrder = 5
end
object MHChk: TCheckBox
Left = 8
Top = 96
Width = 97
Height = 17
Caption = 'Mantel-Haenszel'
Checked = True
State = cbChecked
TabOrder = 6
end
object CurvesChk: TCheckBox
Left = 8
Top = 128
Width = 97
Height = 17
Caption = 'Item Char. Crvs.'
TabOrder = 7
end
object CountsChk: TCheckBox
Left = 8
Top = 144
Width = 97
Height = 17
Caption = 'Level Counts'
TabOrder = 8
end
end
object LevelsEdit: TEdit
Left = 312
Top = 368
Width = 25
Height = 21
TabOrder = 15
OnExit = LevelsEditExit
end
object LevelNoEdit: TEdit
Left = 440
Top = 320
Width = 25
Height = 21
TabOrder = 16
Text = '1'
end
object LowBoundEdit: TEdit
Left = 440
Top = 344
Width = 25
Height = 21
TabOrder = 17
OnExit = LowBoundEditExit
end
object UpBoundEdit: TEdit
Left = 440
Top = 368
Width = 25
Height = 21
TabOrder = 18
OnExit = UpBoundEditExit
end
object LevelScroll: TScrollBar
Left = 352
Top = 320
Width = 81
Height = 19
Min = 1
PageSize = 0
Position = 1
TabOrder = 19
OnScroll = LevelScrollScroll
end
end

View File

@ -1,127 +0,0 @@
LazarusResources.Add('TDIFfrm','FORMDATA',[
'TPF0'#7'TDIFfrm'#6'DIFfrm'#4'Left'#2'>'#3'Top'#2'd'#5'Width'#3#230#1#6'Heigh'
+'t'#3#210#1#11'HelpContext'#3#186#4#7'Caption'#6#18'DIF Specifications'#5'Co'
+'lor'#7#9'clBtnFace'#12'Font.Charset'#7#15'DEFAULT_CHARSET'#10'Font.Color'#7
+#12'clWindowText'#11'Font.Height'#2#245#9'Font.Name'#6#13'MS Sans Serif'#10
+'Font.Style'#11#0#8'HelpFile'#6#11'OS2Help.hlp'#6'OnShow'#7#8'FormShow'#13'P'
+'ixelsPerInch'#2'`'#10'TextHeight'#2#13#0#6'TLabel'#6'Label1'#4'Left'#2#8#3
+'Top'#2'p'#5'Width'#2'Y'#6'Height'#2#13#7'Caption'#6#19'Available Variables'
+#0#0#6'TLabel'#6'Label2'#4'Left'#3#200#0#3'Top'#2'p'#5'Width'#2'F'#6'Height'
+#2#13#7'Caption'#6#14'Items Selected'#0#0#6'TLabel'#6'Label3'#4'Left'#3#200#0
+#3'Top'#3#8#1#5'Width'#2'T'#6'Height'#2#13#7'Caption'#6#17'Grouping Variable'
+#0#0#6'TLabel'#6'Label4'#4'Left'#3#200#0#3'Top'#3'H'#1#5'Width'#2'n'#6'Heigh'
+'t'#2#13#7'Caption'#6#21'Reference group code:'#0#0#6'TLabel'#6'Label5'#4'Le'
+'ft'#3#200#0#3'Top'#3'`'#1#5'Width'#2'Y'#6'Height'#2#13#7'Caption'#6#17'Foca'
+'l Group Code:'#0#0#6'TLabel'#6'Label6'#4'Left'#3#200#0#3'Top'#3'x'#1#5'Widt'
+'h'#2'^'#6'Height'#2#13#7'Caption'#6#19'No. of Score Levels'#0#0#6'TLabel'#6
+'Label7'#4'Left'#3'`'#1#3'Top'#3' '#1#5'Width'#2'l'#6'Height'#2#13#7'Caption'
+#6#23'Enter bounds for levels'#0#0#6'TLabel'#6'Label8'#4'Left'#3'`'#1#3'Top'
+#3'`'#1#5'Width'#2'B'#6'Height'#2#13#7'Caption'#6#12'Lower Bound:'#0#0#6'TLa'
+'bel'#6'Label9'#4'Left'#3'`'#1#3'Top'#3'x'#1#5'Width'#2'B'#6'Height'#2#13#7
+'Caption'#6#12'Upper Bound:'#0#0#6'TLabel'#7'Label10'#4'Left'#3'`'#1#3'Top'#3
+'0'#1#5'Width'#2#28#6'Height'#2#13#7'Caption'#6#4'Down'#0#0#6'TLabel'#7'Labe'
+'l11'#4'Left'#3#160#1#3'Top'#3'0'#1#5'Width'#2#14#6'Height'#2#13#7'Caption'#6
+#2'Up'#0#0#6'TLabel'#7'Label12'#4'Left'#3#184#1#3'Top'#3'0'#1#5'Width'#2#26#6
+'Height'#2#13#7'Caption'#6#5'Level'#0#0#5'TMemo'#5'Memo1'#4'Left'#2#8#3'Top'
+#2#0#5'Width'#3#201#1#6'Height'#2'i'#13'Lines.Strings'#1#6'_This procedure i'
+'s an adaptation of the program written by Niels G. Waller, Dept. of Psychol'
+'ogy,'#6'hUniversity of California - Davis, Jan. 1998. It''s purpose is to '
+'identify test items that differ in the '#6'^response pattern for two groups'
+': a reference group and a focal group. The file of data to be '#6'Wanalyze'
+'d should consist of a variable containing a code designating the two groups'
+' and '#6'[variables containing subject''s item responses coded 0 for incorr'
+'ect and 1 for correct. No '#6'bmissing data may be included. The results '
+'provide the Mantel-Haenszel statistics for identifying '#6'3those items whi'
+'ch are different for the two groups.'#0#8'TabOrder'#2#0#0#0#8'TListBox'#7'V'
+'arList'#4'Left'#2#8#3'Top'#3#128#0#5'Width'#3#137#0#6'Height'#3#249#0#10'It'
+'emHeight'#2#13#11'MultiSelect'#9#8'TabOrder'#2#1#0#0#7'TBitBtn'#9'ItemInBtn'
+#4'Left'#3#160#0#3'Top'#3#152#0#5'Width'#2#25#6'Height'#2#25#8'TabOrder'#2#2
+#7'OnClick'#7#14'ItemInBtnClick'#10'Glyph.Data'#10'z'#1#0#0'v'#1#0#0'BMv'#1#0
+#0#0#0#0#0'v'#0#0#0'('#0#0#0' '#0#0#0#16#0#0#0#1#0#4#0#0#0#0#0#0#1#0#0#18#11
+#0#0#18#11#0#0#16#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0
+#0#0#128#0#128#0#128#128#0#0''#0#191#191#191#0#0#0#255#0#0#255#0#0#0#255
+#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0'333333333333333333333'
+'33333333333333333333333333333333333333?'#243'333333'#0'3333333w?'#243'33333'
+#9#0'333333w?'#243'3333'#9#153#0'33?'#255#255'3w?'#243#0#0#0#9#153#153#0'3'
+'wwws33w?'#9#153#153#153#153#153#153#0''#255#255#255'33?w'#0#0#0#9#153#153#0
+'3www3?w3333'#9#153#0'33333?w33333'#9#0'333333w333333'#0'3333333w33333333'
+'33333333333333333333333333333333333333333333'#9'NumGlyphs'#2#2#0#0#7'TBitBt'
+'n'#10'ItemOutBtn'#4'Left'#3#160#0#3'Top'#3#184#0#5'Width'#2#25#6'Height'#2
+#25#8'TabOrder'#2#3#7'OnClick'#7#15'ItemOutBtnClick'#10'Glyph.Data'#10'z'#1#0
+#0'v'#1#0#0'BMv'#1#0#0#0#0#0#0'v'#0#0#0'('#0#0#0' '#0#0#0#16#0#0#0#1#0#4#0#0
+#0#0#0#0#1#0#0#18#11#0#0#18#11#0#0#16#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0
+#0#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0''#0#191#191#191#0#0#0#255
+#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255#255#255#0'333'
+'33333333333333333333333333333333333333333?'#243'333333'#0'333333?w'#243'333'
+'33'#0#144'33333?w7'#243'3333'#0#153#144'3333?w37'#255#255#255'3'#0#153#153
+#144#0#0#0'?w337www'#0#153#153#153#153#153#153#144'w?'#243'33'#255#255#247'3'
+#0#153#153#144#0#0#0'3w?'#243'7www33'#0#153#144'33333w?'#247#243'33333'#0#144
+'333333w7'#243'333333'#0'3333333w3333333333333333333333333333333333333333333'
+'333333333333333333333333'#9'NumGlyphs'#2#2#0#0#7'TBitBtn'#6'AllBtn'#4'Left'
+#3#160#0#3'Top'#3#216#0#5'Width'#2#25#6'Height'#2#25#7'Caption'#6#3'ALL'#8'T'
+'abOrder'#2#4#7'OnClick'#7#11'AllBtnClick'#0#0#7'TBitBtn'#8'GrpInBtn'#4'Left'
+#3#160#0#3'Top'#3#8#1#5'Width'#2#25#6'Height'#2#25#8'TabOrder'#2#5#7'OnClick'
+#7#13'GrpInBtnClick'#10'Glyph.Data'#10'z'#1#0#0'v'#1#0#0'BMv'#1#0#0#0#0#0#0
+'v'#0#0#0'('#0#0#0' '#0#0#0#16#0#0#0#1#0#4#0#0#0#0#0#0#1#0#0#18#11#0#0#18#11
,#0#0#16#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0
+#128#0#128#128#0#0''#0#191#191#191#0#0#0#255#0#0#255#0#0#0#255#255#0#255#0
+#0#0#255#0#255#0#255#255#0#0#255#255#255#0'333333333333333333333333333333333'
+'33333333333333333333333333?'#243'333333'#0'3333333w?'#243'33333'#9#0'333333'
+'w?'#243'3333'#9#153#0'33?'#255#255'3w?'#243#0#0#0#9#153#153#0'3wwws33w?'#9
+#153#153#153#153#153#153#0''#255#255#255'33?w'#0#0#0#9#153#153#0'3www3?w33'
+'33'#9#153#0'33333?w33333'#9#0'333333w333333'#0'3333333w333333333333333333'
+'3333333333333333333333333333333333'#9'NumGlyphs'#2#2#0#0#7'TBitBtn'#9'GrpOu'
+'tBtn'#4'Left'#3#160#0#3'Top'#3'('#1#5'Width'#2#25#6'Height'#2#25#8'TabOrder'
+#2#6#10'Glyph.Data'#10'z'#1#0#0'v'#1#0#0'BMv'#1#0#0#0#0#0#0'v'#0#0#0'('#0#0#0
+' '#0#0#0#16#0#0#0#1#0#4#0#0#0#0#0#0#1#0#0#18#11#0#0#18#11#0#0#16#0#0#0#0#0#0
+#0#0#0#0#0#0#0#128#0#0#128#0#0#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0
+''#0#191#191#191#0#0#0#255#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0
+#255#255#0#0#255#255#255#0'33333333333333333333333333333333333333333333?'#243
+'333333'#0'333333?w'#243'33333'#0#144'33333?w7'#243'3333'#0#153#144'3333?w37'
+#255#255#255'3'#0#153#153#144#0#0#0'?w337www'#0#153#153#153#153#153#153#144
+'w?'#243'33'#255#255#247'3'#0#153#153#144#0#0#0'3w?'#243'7www33'#0#153#144'3'
+'3333w?'#247#243'33333'#0#144'333333w7'#243'333333'#0'3333333w33333333333333'
+'33333333333333333333333333333333333333333333333333333'#9'NumGlyphs'#2#2#0#0
+#5'TEdit'#12'GroupVarEdit'#4'Left'#3#200#0#3'Top'#3#24#1#5'Width'#3#137#0#6
+'Height'#2#21#8'TabOrder'#2#7#4'Text'#6#12'GroupVarEdit'#0#0#8'TListBox'#9'I'
+'temsList'#4'Left'#3#200#0#3'Top'#3#128#0#5'Width'#3#137#0#6'Height'#2'y'#10
+'ItemHeight'#2#13#8'TabOrder'#2#8#0#0#5'TEdit'#10'RefGrpEdit'#4'Left'#3'8'#1
+#3'Top'#3'@'#1#5'Width'#2#25#6'Height'#2#21#8'TabOrder'#2#9#4'Text'#6#10'Ref'
+'GrpEdit'#0#0#5'TEdit'#11'TrgtGrpEdit'#4'Left'#3'8'#1#3'Top'#3'X'#1#5'Width'
+#2#25#6'Height'#2#21#8'TabOrder'#2#10#4'Text'#6#11'TrgtGrpEdit'#0#0#7'TButto'
+'n'#8'ResetBtn'#4'Left'#2#8#3'Top'#3#152#1#5'Width'#2'A'#6'Height'#2#25#7'Ca'
+'ption'#6#5'Reset'#8'TabOrder'#2#11#7'OnClick'#7#13'ResetBtnClick'#0#0#7'TBu'
+'tton'#10'ComputeBtn'#4'Left'#3#208#0#3'Top'#3#152#1#5'Width'#2'A'#6'Height'
+#2#25#7'Caption'#6#7'Compute'#8'TabOrder'#2#12#7'OnClick'#7#15'ComputeBtnCli'
+'ck'#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#144#1#3'Top'#3#152#1#5'Width'#2'A'
+#6'Height'#2#25#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#13#7
+'OnClick'#7#14'ReturnBtnClick'#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3'`'#1#3
+'Top'#2'p'#5'Width'#2'q'#6'Height'#3#169#0#7'Caption'#6#7'Options'#8'TabOrde'
+'r'#2#14#0#9'TCheckBox'#12'ItemStatsChk'#4'Left'#2#8#3'Top'#2#16#5'Width'#2
+'Y'#6'Height'#2#17#7'Caption'#6#15'Item Statistics'#7'Checked'#9#5'State'#7#9
+'cbChecked'#8'TabOrder'#2#0#0#0#9'TCheckBox'#12'TestStatsChk'#4'Left'#2#8#3
+'Top'#2' '#5'Width'#2'Y'#6'Height'#2#17#7'Caption'#6#15'Test Statistics'#8'T'
+'abOrder'#2#1#0#0#9'TCheckBox'#12'ItemCorrsChk'#4'Left'#2#8#3'Top'#2'0'#5'Wi'
+'dth'#2'a'#6'Height'#2#17#7'Caption'#6#16'Item Intercorr.s'#8'TabOrder'#2#2#0
+#0#9'TCheckBox'#11'ItemTestChk'#4'Left'#2#8#3'Top'#2'@'#5'Width'#2'Y'#6'Heig'
+'ht'#2#17#7'Caption'#6#15'Item-Test cor.s'#8'TabOrder'#2#3#0#0#9'TCheckBox'#8
+'AlphaChk'#4'Left'#2#8#3'Top'#2'P'#5'Width'#2'a'#6'Height'#2#17#7'Caption'#6
+#17'Alpha Reliability'#8'TabOrder'#2#4#0#0#9'TCheckBox'#11'LogisticChk'#4'Le'
+'ft'#2#8#3'Top'#2'p'#5'Width'#2'a'#6'Height'#2#17#7'Caption'#6#16'Logistic R'
+'egres.'#7'Enabled'#8#8'TabOrder'#2#5#0#0#9'TCheckBox'#5'MHChk'#4'Left'#2#8#3
+'Top'#2'`'#5'Width'#2'a'#6'Height'#2#17#7'Caption'#6#15'Mantel-Haenszel'#7'C'
+'hecked'#9#5'State'#7#9'cbChecked'#8'TabOrder'#2#6#0#0#9'TCheckBox'#9'Curves'
+'Chk'#4'Left'#2#8#3'Top'#3#128#0#5'Width'#2'a'#6'Height'#2#17#7'Caption'#6#16
+'Item Char. Crvs.'#8'TabOrder'#2#7#0#0#9'TCheckBox'#9'CountsChk'#4'Left'#2#8
+#3'Top'#3#144#0#5'Width'#2'a'#6'Height'#2#17#7'Caption'#6#12'Level Counts'#8
+'TabOrder'#2#8#0#0#0#5'TEdit'#10'LevelsEdit'#4'Left'#3'8'#1#3'Top'#3'p'#1#5
+'Width'#2#25#6'Height'#2#21#8'TabOrder'#2#15#6'OnExit'#7#14'LevelsEditExit'#0
+#0#5'TEdit'#11'LevelNoEdit'#4'Left'#3#184#1#3'Top'#3'@'#1#5'Width'#2#25#6'He'
+'ight'#2#21#8'TabOrder'#2#16#4'Text'#6#1'1'#0#0#5'TEdit'#12'LowBoundEdit'#4
+'Left'#3#184#1#3'Top'#3'X'#1#5'Width'#2#25#6'Height'#2#21#8'TabOrder'#2#17#6
+'OnExit'#7#16'LowBoundEditExit'#0#0#5'TEdit'#11'UpBoundEdit'#4'Left'#3#184#1
+#3'Top'#3'p'#1#5'Width'#2#25#6'Height'#2#21#8'TabOrder'#2#18#6'OnExit'#7#15
+'UpBoundEditExit'#0#0#10'TScrollBar'#11'LevelScroll'#4'Left'#3'`'#1#3'Top'#3
+'@'#1#5'Width'#2'Q'#6'Height'#2#19#3'Min'#2#1#8'PageSize'#2#0#8'Position'#2#1
+#8'TabOrder'#2#19#8'OnScroll'#7#17'LevelScrollScroll'#0#0#0
]);

View File

@ -1,53 +0,0 @@
unit DifferenceUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, contexthelpunit;
type
{ TDifferenceFrm }
TDifferenceFrm = class(TForm)
CancelBtn: TButton;
HelpBtn: TButton;
OKBtn: TButton;
LagEdit: TEdit;
OrderEdit: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure FormShow(Sender: TObject);
procedure HelpBtnClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
DifferenceFrm: TDifferenceFrm;
implementation
{ TDifferenceFrm }
procedure TDifferenceFrm.FormShow(Sender: TObject);
begin
LagEdit.Text := '1';
OrderEdit.Text := '1';
end;
procedure TDifferenceFrm.HelpBtnClick(Sender: TObject);
begin
ContextHelpForm.HelpMessage((Sender as TButton).tag);
end;
initialization
{$I differenceunit.lrs}
end.

View File

@ -1,71 +0,0 @@
object DifferenceFrm: TDifferenceFrm
Left = 211
Height = 136
Top = 137
Width = 271
Caption = 'Differencing Specification'
ClientHeight = 136
ClientWidth = 271
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 7
Height = 14
Top = 16
Width = 102
Caption = 'Difference for lag of:'
ParentColor = False
end
object Label2: TLabel
Left = 7
Height = 14
Top = 56
Width = 114
Caption = 'No. of times to repeat: '
ParentColor = False
end
object LagEdit: TEdit
Left = 120
Height = 21
Top = 9
Width = 39
TabOrder = 0
Text = '1'
end
object OrderEdit: TEdit
Left = 120
Height = 21
Top = 49
Width = 39
TabOrder = 1
Text = '1'
end
object CancelBtn: TButton
Left = 96
Height = 31
Top = 88
Width = 78
Caption = 'Cancel'
ModalResult = 2
TabOrder = 2
end
object OKBtn: TButton
Left = 184
Height = 31
Top = 88
Width = 78
Caption = 'OK'
ModalResult = 1
TabOrder = 3
end
object HelpBtn: TButton
Tag = 121
Left = 8
Height = 32
Top = 88
Width = 82
Caption = 'Help'
OnClick = HelpBtnClick
TabOrder = 4
end
end

View File

@ -1,20 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TDifferenceFrm','FORMDATA',[
'TPF0'#14'TDifferenceFrm'#13'DifferenceFrm'#4'Left'#3#211#0#6'Height'#3#136#0
+#3'Top'#3#137#0#5'Width'#3#15#1#7'Caption'#6#26'Differencing Specification'
+#12'ClientHeight'#3#136#0#11'ClientWidth'#3#15#1#6'OnShow'#7#8'FormShow'#10
+'LCLVersion'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#7#6'Height'#2#14#3
+'Top'#2#16#5'Width'#2'f'#7'Caption'#6#22'Difference for lag of:'#11'ParentCo'
+'lor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#7#6'Height'#2#14#3'Top'#2'8'#5'Wid'
+'th'#2'r'#7'Caption'#6#24'No. of times to repeat: '#11'ParentColor'#8#0#0#5
+'TEdit'#7'LagEdit'#4'Left'#2'x'#6'Height'#2#21#3'Top'#2#9#5'Width'#2''''#8'T'
+'abOrder'#2#0#4'Text'#6#1'1'#0#0#5'TEdit'#9'OrderEdit'#4'Left'#2'x'#6'Height'
+#2#21#3'Top'#2'1'#5'Width'#2''''#8'TabOrder'#2#1#4'Text'#6#1'1'#0#0#7'TButto'
+'n'#9'CancelBtn'#4'Left'#2'`'#6'Height'#2#31#3'Top'#2'X'#5'Width'#2'N'#7'Cap'
+'tion'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#2#0#0#7'TButton'#5'OKBt'
+'n'#4'Left'#3#184#0#6'Height'#2#31#3'Top'#2'X'#5'Width'#2'N'#7'Caption'#6#2
+'OK'#11'ModalResult'#2#1#8'TabOrder'#2#3#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2
+'y'#4'Left'#2#8#6'Height'#2' '#3'Top'#2'X'#5'Width'#2'R'#7'Caption'#6#4'Help'
+#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#4#0#0#0
]);

File diff suppressed because it is too large Load Diff

View File

@ -1,406 +0,0 @@
object DiscrimFrm: TDiscrimFrm
Left = 152
Height = 415
Top = 93
Width = 560
Caption = 'Discriminant Function and Multivariate Analysis of Variance'
ClientHeight = 415
ClientWidth = 560
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 6
Height = 14
Top = 2
Width = 85
Caption = 'Available Variable'
ParentColor = False
end
object Label2: TLabel
Left = 225
Height = 14
Top = 16
Width = 71
Caption = 'Group Variable'
ParentColor = False
end
object Label3: TLabel
Left = 225
Height = 14
Top = 104
Width = 90
Caption = 'Predictor Variables'
ParentColor = False
end
object VarList: TListBox
Left = 6
Height = 288
Top = 17
Width = 165
ItemHeight = 0
MultiSelect = True
TabOrder = 0
end
object DepIn: TBitBtn
Left = 184
Height = 31
Top = 17
Width = 33
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
}
NumGlyphs = 0
OnClick = DepInClick
TabOrder = 1
end
object DepOut: TBitBtn
Left = 184
Height = 31
Top = 56
Width = 33
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
}
NumGlyphs = 0
OnClick = DepOutClick
TabOrder = 2
end
object PredIn: TBitBtn
Left = 184
Height = 31
Top = 128
Width = 33
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
}
NumGlyphs = 0
OnClick = PredInClick
TabOrder = 3
end
object PredOut: TBitBtn
Left = 184
Height = 31
Top = 168
Width = 33
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
}
NumGlyphs = 0
OnClick = PredOutClick
TabOrder = 4
end
object GroupVar: TEdit
Left = 225
Height = 21
Top = 36
Width = 136
TabOrder = 5
Text = 'GroupVar'
end
object PredList: TListBox
Left = 223
Height = 182
Top = 120
Width = 139
ItemHeight = 0
TabOrder = 6
end
object GroupBox1: TGroupBox
Left = 377
Height = 294
Top = 6
Width = 174
Caption = 'Options'
ClientHeight = 276
ClientWidth = 170
TabOrder = 7
object DescChk: TCheckBox
Left = 6
Height = 17
Top = 1
Width = 119
Caption = 'Descriptive Statistics'
TabOrder = 0
end
object CorrsChk: TCheckBox
Left = 7
Height = 17
Top = 22
Width = 78
Caption = 'Correlations'
TabOrder = 1
end
object InvChk: TCheckBox
Left = 6
Height = 17
Top = 44
Width = 95
Caption = 'Matrix Inverses'
TabOrder = 2
end
object PlotChk: TCheckBox
Left = 6
Height = 17
Top = 65
Width = 73
Caption = 'Plot Scores'
TabOrder = 3
end
object ClassChk: TCheckBox
Left = 6
Height = 17
Top = 88
Width = 92
Caption = 'Classify Scores'
TabOrder = 4
end
object AnovaChk: TCheckBox
Left = 6
Height = 17
Top = 110
Width = 109
Caption = 'One-Way ANOVAs'
TabOrder = 5
end
object CrossChk: TCheckBox
Left = 6
Height = 17
Top = 130
Width = 93
Caption = 'Cross-Products'
TabOrder = 6
end
object DevCPChk: TCheckBox
Left = 6
Height = 17
Top = 152
Width = 141
Caption = 'Deviation Cross-Products'
TabOrder = 7
end
object EigensChk: TCheckBox
Left = 6
Height = 17
Top = 175
Width = 85
Caption = 'Eigen Vectors'
TabOrder = 8
end
object PCovChk: TCheckBox
Left = 7
Height = 17
Top = 194
Width = 142
Caption = 'Pooled Within Covariance'
TabOrder = 9
end
object CentroidsChk: TCheckBox
Left = 7
Height = 17
Top = 218
Width = 66
Caption = 'Centroids'
TabOrder = 10
end
object ScoresChk: TCheckBox
Left = 7
Height = 17
Top = 242
Width = 106
Caption = 'Scores to the Grid'
TabOrder = 11
end
end
object ClassSize: TRadioGroup
Left = 377
Height = 94
Top = 310
Width = 172
AutoFill = True
Caption = 'Classify Using:'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 76
ClientWidth = 168
Items.Strings = (
'Equal Group Sizes'
'Existing Sample Sizes'
'Entered Prior Sizes'
)
TabOrder = 8
end
object ResetBtn: TButton
Left = 27
Height = 28
Top = 328
Width = 64
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 9
end
object CancelBtn: TButton
Left = 107
Height = 28
Top = 328
Width = 64
Caption = 'Cancel'
ModalResult = 2
TabOrder = 10
end
object ComputeBtn: TButton
Left = 216
Height = 28
Top = 328
Width = 64
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 11
end
object ReturnBtn: TButton
Left = 296
Height = 28
Top = 328
Width = 64
Caption = 'Return'
ModalResult = 1
TabOrder = 12
end
end

View File

@ -1,264 +0,0 @@
LazarusResources.Add('TDiscrimFrm','FORMDATA',[
'TPF0'#11'TDiscrimFrm'#10'DiscrimFrm'#4'Left'#3#152#0#6'Height'#3#159#1#3'Top'
+#2']'#5'Width'#3'0'#2#7'Caption'#6';Discriminant Function and Multivariate A'
+'nalysis of Variance'#12'ClientHeight'#3#159#1#11'ClientWidth'#3'0'#2#6'OnSh'
+'ow'#7#8'FormShow'#10'LCLVersion'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'
+#2#6#6'Height'#2#14#3'Top'#2#2#5'Width'#2'U'#7'Caption'#6#18'Available Varia'
+'ble'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#225#0#6'Height'#2
+#14#3'Top'#2#16#5'Width'#2'G'#7'Caption'#6#14'Group Variable'#11'ParentColor'
+#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#225#0#6'Height'#2#14#3'Top'#2'h'#5'Widt'
+'h'#2'Z'#7'Caption'#6#19'Predictor Variables'#11'ParentColor'#8#0#0#8'TListB'
+'ox'#7'VarList'#4'Left'#2#6#6'Height'#3' '#1#3'Top'#2#17#5'Width'#3#165#0#10
+'ItemHeight'#2#0#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#5'DepIn'#4
+'Left'#3#184#0#6'Height'#2#31#3'Top'#2#17#5'Width'#2'!'#10'Glyph.Data'#10':'
+#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '
+#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'
+#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'
+#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0
+#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255
+#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142
+#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'
+#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162
+#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255
+#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130
+#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199
+'t'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255
+'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'
+#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#10'DepInClick'#8
+'TabOrder'#2#1#0#0#7'TBitBtn'#6'DepOut'#4'Left'#3#184#0#6'Height'#2#31#3'Top'
+#2'8'#5'Width'#2'!'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'
,#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0
+#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153
+'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'
+#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255
+'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'
+#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195
+'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255
+#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255
+#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#11'DepOutClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#6'PredI'
+'n'#4'Left'#3#184#0#6'Height'#2#31#3'Top'#3#128#0#5'Width'#2'!'#10'Glyph.Dat'
+'a'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0
+#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
,#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'#184
+#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177
+'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255
+#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255
+#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142
+#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'
+#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255#162
+#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154#255
+#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194#130
+#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199
+'t'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255
+'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'
+#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'PredInClick'#8
+'TabOrder'#2#3#0#0#7'TBitBtn'#7'PredOut'#4'Left'#3#184#0#6'Height'#2#31#3'To'
+'p'#3#168#0#5'Width'#2'!'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0
+#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'
+#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'
+#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161
+'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131
+#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/'
+'x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'
+#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255
+#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132
+#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255
,#255#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154
+#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255
+#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201
+#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'
+#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'Num'
+'Glyphs'#2#0#7'OnClick'#7#12'PredOutClick'#8'TabOrder'#2#4#0#0#5'TEdit'#8'Gr'
+'oupVar'#4'Left'#3#225#0#6'Height'#2#21#3'Top'#2'$'#5'Width'#3#136#0#8'TabOr'
+'der'#2#5#4'Text'#6#8'GroupVar'#0#0#8'TListBox'#8'PredList'#4'Left'#3#223#0#6
+'Height'#3#182#0#3'Top'#2'x'#5'Width'#3#139#0#10'ItemHeight'#2#0#8'TabOrder'
+#2#6#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3'y'#1#6'Height'#3'&'#1#3'Top'#2#6
+#5'Width'#3#174#0#7'Caption'#6#7'Options'#12'ClientHeight'#3#20#1#11'ClientW'
+'idth'#3#170#0#8'TabOrder'#2#7#0#9'TCheckBox'#7'DescChk'#4'Left'#2#6#6'Heigh'
+'t'#2#17#3'Top'#2#1#5'Width'#2'w'#7'Caption'#6#22'Descriptive Statistics'#8
+'TabOrder'#2#0#0#0#9'TCheckBox'#8'CorrsChk'#4'Left'#2#7#6'Height'#2#17#3'Top'
+#2#22#5'Width'#2'N'#7'Caption'#6#12'Correlations'#8'TabOrder'#2#1#0#0#9'TChe'
+'ckBox'#6'InvChk'#4'Left'#2#6#6'Height'#2#17#3'Top'#2','#5'Width'#2'_'#7'Cap'
+'tion'#6#15'Matrix Inverses'#8'TabOrder'#2#2#0#0#9'TCheckBox'#7'PlotChk'#4'L'
+'eft'#2#6#6'Height'#2#17#3'Top'#2'A'#5'Width'#2'I'#7'Caption'#6#11'Plot Scor'
+'es'#8'TabOrder'#2#3#0#0#9'TCheckBox'#8'ClassChk'#4'Left'#2#6#6'Height'#2#17
+#3'Top'#2'X'#5'Width'#2'\'#7'Caption'#6#15'Classify Scores'#8'TabOrder'#2#4#0
+#0#9'TCheckBox'#8'AnovaChk'#4'Left'#2#6#6'Height'#2#17#3'Top'#2'n'#5'Width'#2
+'m'#7'Caption'#6#14'One-Way ANOVAs'#8'TabOrder'#2#5#0#0#9'TCheckBox'#8'Cross'
+'Chk'#4'Left'#2#6#6'Height'#2#17#3'Top'#3#130#0#5'Width'#2']'#7'Caption'#6#14
+'Cross-Products'#8'TabOrder'#2#6#0#0#9'TCheckBox'#8'DevCPChk'#4'Left'#2#6#6
+'Height'#2#17#3'Top'#3#152#0#5'Width'#3#141#0#7'Caption'#6#24'Deviation Cros'
+'s-Products'#8'TabOrder'#2#7#0#0#9'TCheckBox'#9'EigensChk'#4'Left'#2#6#6'Hei'
+'ght'#2#17#3'Top'#3#175#0#5'Width'#2'U'#7'Caption'#6#13'Eigen Vectors'#8'Tab'
+'Order'#2#8#0#0#9'TCheckBox'#7'PCovChk'#4'Left'#2#7#6'Height'#2#17#3'Top'#3
+#194#0#5'Width'#3#142#0#7'Caption'#6#24'Pooled Within Covariance'#8'TabOrder'
+#2#9#0#0#9'TCheckBox'#12'CentroidsChk'#4'Left'#2#7#6'Height'#2#17#3'Top'#3
+#218#0#5'Width'#2'B'#7'Caption'#6#9'Centroids'#8'TabOrder'#2#10#0#0#9'TCheck'
+'Box'#9'ScoresChk'#4'Left'#2#7#6'Height'#2#17#3'Top'#3#242#0#5'Width'#2'j'#7
+'Caption'#6#18'Scores to the Grid'#8'TabOrder'#2#11#0#0#0#11'TRadioGroup'#9
+'ClassSize'#4'Left'#3'y'#1#6'Height'#2'^'#3'Top'#3'6'#1#5'Width'#3#172#0#8'A'
+'utoFill'#9#7'Caption'#6#15'Classify Using:'#28'ChildSizing.LeftRightSpacing'
+#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7
+#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomoge'
+'nousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'C'
+'hildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29
+'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'Clien'
+'tHeight'#2'L'#11'ClientWidth'#3#168#0#13'Items.Strings'#1#6#17'Equal Group '
+'Sizes'#6#21'Existing Sample Sizes'#6#19'Entered Prior Sizes'#0#8'TabOrder'#2
+#8#0#0#7'TButton'#8'ResetBtn'#4'Left'#2#27#6'Height'#2#28#3'Top'#3'H'#1#5'Wi'
+'dth'#2'@'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2
+#9#0#0#7'TButton'#9'CancelBtn'#4'Left'#2'k'#6'Height'#2#28#3'Top'#3'H'#1#5'W'
,'idth'#2'@'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#10#0#0#7
+'TButton'#10'ComputeBtn'#4'Left'#3#216#0#6'Height'#2#28#3'Top'#3'H'#1#5'Widt'
+'h'#2'@'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'
+#2#11#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3'('#1#6'Height'#2#28#3'Top'#3'H'#1
+#5'Width'#2'@'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#12#0
+#0#0
]);

View File

@ -1,158 +0,0 @@
object DistribFrm: TDistribFrm
Left = 183
Height = 286
Top = 110
Width = 323
Caption = 'Distributions'
ClientHeight = 286
ClientWidth = 323
OnShow = FormShow
LCLVersion = '0.9.28.2'
object GroupBox1: TGroupBox
Left = 8
Height = 96
Top = 8
Width = 208
Caption = 'Plot Distribution:'
ClientHeight = 78
ClientWidth = 204
TabOrder = 0
object NDChk: TCheckBox
Left = 9
Height = 17
Top = 2
Width = 110
Caption = 'Normal Distribution'
OnClick = NDChkClick
TabOrder = 0
end
object ChiChk: TCheckBox
Left = 9
Height = 17
Top = 24
Width = 130
Caption = 'Chi-Square Distribution'
OnClick = ChiChkClick
TabOrder = 1
end
object FChk: TCheckBox
Left = 9
Height = 17
Top = 49
Width = 121
Caption = 'Central F Distribution'
OnClick = FChkClick
TabOrder = 2
end
end
object GroupBox2: TGroupBox
Left = 8
Height = 152
Top = 120
Width = 208
Caption = 'Parameters'
ClientHeight = 134
ClientWidth = 204
TabOrder = 1
object AlphaLabel: TLabel
Left = 8
Height = 14
Top = 15
Width = 85
Caption = 'Type I Error Rate'
ParentColor = False
end
object Label2: TLabel
Left = 8
Height = 14
Top = 46
Width = 86
Caption = 'Deg. Freedom (1)'
ParentColor = False
end
object Label3: TLabel
Left = 9
Height = 14
Top = 81
Width = 86
Caption = 'Deg. Freedom (2)'
ParentColor = False
end
object Label4: TLabel
Left = 8
Height = 14
Top = 111
Width = 27
Caption = 'Mean'
ParentColor = False
end
object AlphaEdit: TEdit
Left = 102
Height = 21
Top = 8
Width = 43
TabOrder = 0
Text = 'AlphaEdit'
end
object DF1Edit: TEdit
Left = 102
Height = 21
Top = 39
Width = 43
TabOrder = 1
Text = 'Edit1'
end
object MeanEdit: TEdit
Left = 102
Height = 21
Top = 104
Width = 43
TabOrder = 2
Text = 'Edit1'
end
object DF2Edit: TEdit
Left = 102
Height = 21
Top = 72
Width = 43
TabOrder = 3
Text = 'Edit1'
end
end
object ResetBtn: TButton
Left = 232
Height = 29
Top = 23
Width = 71
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 2
end
object CancelBtn: TButton
Left = 232
Height = 29
Top = 88
Width = 71
Caption = 'Cancel'
ModalResult = 2
TabOrder = 3
end
object ComputeBtn: TButton
Left = 232
Height = 29
Top = 152
Width = 71
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 4
end
object ReturnBtn: TButton
Left = 232
Height = 29
Top = 216
Width = 71
Caption = 'Return'
ModalResult = 1
TabOrder = 5
end
end

View File

@ -1,38 +0,0 @@
LazarusResources.Add('TDistribFrm','FORMDATA',[
'TPF0'#11'TDistribFrm'#10'DistribFrm'#4'Left'#3#183#0#6'Height'#3#30#1#3'Top'
+#2'n'#5'Width'#3'C'#1#7'Caption'#6#13'Distributions'#12'ClientHeight'#3#30#1
+#11'ClientWidth'#3'C'#1#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#8'0.9.28.2'
+#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#8#6'Height'#2'`'#3'Top'#2#8#5'Width'#3
+#208#0#7'Caption'#6#18'Plot Distribution:'#12'ClientHeight'#2'N'#11'ClientWi'
+'dth'#3#204#0#8'TabOrder'#2#0#0#9'TCheckBox'#5'NDChk'#4'Left'#2#9#6'Height'#2
+#17#3'Top'#2#2#5'Width'#2'n'#7'Caption'#6#19'Normal Distribution'#7'OnClick'
+#7#10'NDChkClick'#8'TabOrder'#2#0#0#0#9'TCheckBox'#6'ChiChk'#4'Left'#2#9#6'H'
+'eight'#2#17#3'Top'#2#24#5'Width'#3#130#0#7'Caption'#6#23'Chi-Square Distrib'
+'ution'#7'OnClick'#7#11'ChiChkClick'#8'TabOrder'#2#1#0#0#9'TCheckBox'#4'FChk'
+#4'Left'#2#9#6'Height'#2#17#3'Top'#2'1'#5'Width'#2'y'#7'Caption'#6#22'Centra'
+'l F Distribution'#7'OnClick'#7#9'FChkClick'#8'TabOrder'#2#2#0#0#0#9'TGroupB'
+'ox'#9'GroupBox2'#4'Left'#2#8#6'Height'#3#152#0#3'Top'#2'x'#5'Width'#3#208#0
+#7'Caption'#6#10'Parameters'#12'ClientHeight'#3#134#0#11'ClientWidth'#3#204#0
+#8'TabOrder'#2#1#0#6'TLabel'#10'AlphaLabel'#4'Left'#2#8#6'Height'#2#14#3'Top'
+#2#15#5'Width'#2'U'#7'Caption'#6#17'Type I Error Rate'#11'ParentColor'#8#0#0
+#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#14#3'Top'#2'.'#5'Width'#2'V'#7
+'Caption'#6#16'Deg. Freedom (1)'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4
+'Left'#2#9#6'Height'#2#14#3'Top'#2'Q'#5'Width'#2'V'#7'Caption'#6#16'Deg. Fre'
+'edom (2)'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#2#8#6'Height'#2
+#14#3'Top'#2'o'#5'Width'#2#27#7'Caption'#6#4'Mean'#11'ParentColor'#8#0#0#5'T'
+'Edit'#9'AlphaEdit'#4'Left'#2'f'#6'Height'#2#21#3'Top'#2#8#5'Width'#2'+'#8'T'
+'abOrder'#2#0#4'Text'#6#9'AlphaEdit'#0#0#5'TEdit'#7'DF1Edit'#4'Left'#2'f'#6
+'Height'#2#21#3'Top'#2''''#5'Width'#2'+'#8'TabOrder'#2#1#4'Text'#6#5'Edit1'#0
+#0#5'TEdit'#8'MeanEdit'#4'Left'#2'f'#6'Height'#2#21#3'Top'#2'h'#5'Width'#2'+'
+#8'TabOrder'#2#2#4'Text'#6#5'Edit1'#0#0#5'TEdit'#7'DF2Edit'#4'Left'#2'f'#6'H'
+'eight'#2#21#3'Top'#2'H'#5'Width'#2'+'#8'TabOrder'#2#3#4'Text'#6#5'Edit1'#0#0
+#0#7'TButton'#8'ResetBtn'#4'Left'#3#232#0#6'Height'#2#29#3'Top'#2#23#5'Width'
+#2'G'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#2#0
+#0#7'TButton'#9'CancelBtn'#4'Left'#3#232#0#6'Height'#2#29#3'Top'#2'X'#5'Widt'
+'h'#2'G'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#3#0#0#7'TB'
+'utton'#10'ComputeBtn'#4'Left'#3#232#0#6'Height'#2#29#3'Top'#3#152#0#5'Width'
+#2'G'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2
+#4#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#232#0#6'Height'#2#29#3'Top'#3#216#0
+#5'Width'#2'G'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#5#0#0
+#0
]);

View File

@ -1,151 +0,0 @@
object ErrorCurvesFrm: TErrorCurvesFrm
Left = 172
Height = 276
Top = 104
Width = 383
Caption = 'Alpha and Beta Curves for z tests'
ClientHeight = 276
ClientWidth = 383
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 7
Height = 14
Top = 87
Width = 135
Caption = 'Mean of the Null Hypothesis'
ParentColor = False
end
object Label2: TLabel
Left = 7
Height = 14
Top = 119
Width = 171
Caption = 'Mean of the Alternative Hypothesis'
ParentColor = False
end
object Label3: TLabel
Left = 7
Height = 14
Top = 151
Width = 182
Caption = 'Standard Deviation of the Distribution'
ParentColor = False
end
object Label4: TLabel
Left = 7
Height = 14
Top = 184
Width = 170
Caption = 'Probability of Making a Type I Error'
ParentColor = False
end
object Label5: TLabel
Left = 7
Height = 14
Top = 216
Width = 174
Caption = 'Probability of Making a Type II Error'
ParentColor = False
end
object NullMeanEdit: TEdit
Left = 198
Height = 21
Top = 80
Width = 60
TabOrder = 0
Text = 'NullMeanEdit'
end
object AltMeanEdit: TEdit
Left = 198
Height = 21
Top = 112
Width = 60
TabOrder = 1
Text = 'Edit1'
end
object SDEdit: TEdit
Left = 198
Height = 21
Top = 144
Width = 60
TabOrder = 2
Text = 'Edit1'
end
object TypeIEdit: TEdit
Left = 198
Height = 21
Top = 176
Width = 60
TabOrder = 3
Text = 'Edit1'
end
object TypeIIEdit: TEdit
Left = 198
Height = 21
Top = 208
Width = 60
TabOrder = 4
Text = 'Edit1'
end
object ResetBtn: TButton
Left = 288
Height = 29
Top = 72
Width = 70
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 5
end
object CancelBtn: TButton
Left = 288
Height = 29
Top = 9
Width = 70
Caption = 'Cancel'
ModalResult = 2
TabOrder = 6
end
object ComputeBtn: TButton
Left = 288
Height = 29
Top = 136
Width = 70
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 7
end
object ReturnBtn: TButton
Left = 288
Height = 29
Top = 200
Width = 70
Caption = 'Return'
ModalResult = 1
TabOrder = 8
end
object NullType: TRadioGroup
Left = 8
Height = 67
Top = 0
Width = 252
AutoFill = True
Caption = 'Null Hypothesis Characteristic:'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 49
ClientWidth = 248
ItemIndex = 1
Items.Strings = (
'One-tailed (Directional alterntive)'
'Two-tailed (non-directional alterntive)'
)
TabOrder = 9
end
end

View File

@ -1,42 +0,0 @@
LazarusResources.Add('TErrorCurvesFrm','FORMDATA',[
'TPF0'#15'TErrorCurvesFrm'#14'ErrorCurvesFrm'#4'Left'#3#172#0#6'Height'#3#20#1
+#3'Top'#2'h'#5'Width'#3#127#1#7'Caption'#6'!Alpha and Beta Curves for z test'
+'s'#12'ClientHeight'#3#20#1#11'ClientWidth'#3#127#1#6'OnShow'#7#8'FormShow'
+#10'LCLVersion'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#7#6'Height'#2
+#14#3'Top'#2'W'#5'Width'#3#135#0#7'Caption'#6#27'Mean of the Null Hypothesis'
+#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#7#6'Height'#2#14#3'Top'
+#2'w'#5'Width'#3#171#0#7'Caption'#6'"Mean of the Alternative Hypothesis'#11
+'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#2#7#6'Height'#2#14#3'Top'#3
+#151#0#5'Width'#3#182#0#7'Caption'#6'&Standard Deviation of the Distribution'
+#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#2#7#6'Height'#2#14#3'Top'
+#3#184#0#5'Width'#3#170#0#7'Caption'#6'$Probability of Making a Type I Error'
+#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2#7#6'Height'#2#14#3'Top'
+#3#216#0#5'Width'#3#174#0#7'Caption'#6'%Probability of Making a Type II Erro'
+'r'#11'ParentColor'#8#0#0#5'TEdit'#12'NullMeanEdit'#4'Left'#3#198#0#6'Height'
+#2#21#3'Top'#2'P'#5'Width'#2'<'#8'TabOrder'#2#0#4'Text'#6#12'NullMeanEdit'#0
+#0#5'TEdit'#11'AltMeanEdit'#4'Left'#3#198#0#6'Height'#2#21#3'Top'#2'p'#5'Wid'
+'th'#2'<'#8'TabOrder'#2#1#4'Text'#6#5'Edit1'#0#0#5'TEdit'#6'SDEdit'#4'Left'#3
+#198#0#6'Height'#2#21#3'Top'#3#144#0#5'Width'#2'<'#8'TabOrder'#2#2#4'Text'#6
+#5'Edit1'#0#0#5'TEdit'#9'TypeIEdit'#4'Left'#3#198#0#6'Height'#2#21#3'Top'#3
+#176#0#5'Width'#2'<'#8'TabOrder'#2#3#4'Text'#6#5'Edit1'#0#0#5'TEdit'#10'Type'
+'IIEdit'#4'Left'#3#198#0#6'Height'#2#21#3'Top'#3#208#0#5'Width'#2'<'#8'TabOr'
+'der'#2#4#4'Text'#6#5'Edit1'#0#0#7'TButton'#8'ResetBtn'#4'Left'#3' '#1#6'Hei'
+'ght'#2#29#3'Top'#2'H'#5'Width'#2'F'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'R'
+'esetBtnClick'#8'TabOrder'#2#5#0#0#7'TButton'#9'CancelBtn'#4'Left'#3' '#1#6
+'Height'#2#29#3'Top'#2#9#5'Width'#2'F'#7'Caption'#6#6'Cancel'#11'ModalResult'
+#2#2#8'TabOrder'#2#6#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3' '#1#6'Height'#2
+#29#3'Top'#3#136#0#5'Width'#2'F'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'Com'
+'puteBtnClick'#8'TabOrder'#2#7#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3' '#1#6
+'Height'#2#29#3'Top'#3#200#0#5'Width'#2'F'#7'Caption'#6#6'Return'#11'ModalRe'
+'sult'#2#1#8'TabOrder'#2#8#0#0#11'TRadioGroup'#8'NullType'#4'Left'#2#8#6'Hei'
+'ght'#2'C'#3'Top'#2#0#5'Width'#3#252#0#8'AutoFill'#9#7'Caption'#6#31'Null Hy'
+'pothesis Characteristic:'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizi'
+'ng.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogeno'
+'usChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResiz'
+'e'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.Shr'
+'inkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRigh'
+'tThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2'1'
+#11'ClientWidth'#3#248#0#9'ItemIndex'#2#1#13'Items.Strings'#1#6'#One-tailed '
+'(Directional alterntive)'#6'''Two-tailed (non-directional alterntive)'#0#8
+'TabOrder'#2#9#0#0#0
]);

View File

@ -1,420 +0,0 @@
unit EssayUnit;
{$MODE Delphi}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, ItemBankGlobals, ExtDlgs, FunctionsUnit;
type
TEssayFrm = class(TForm)
Label2: TLabel;
ItemNoEdit: TEdit;
ItemNoScroll: TScrollBar;
Label1: TLabel;
CodeCombo: TComboBox;
Label14: TLabel;
BMPFileEdit: TEdit;
Label15: TLabel;
BrowseBtn: TButton;
ClearBtn: TButton;
Label16: TLabel;
BMPImage: TImage;
Label18: TLabel;
ItemWeightEdit: TEdit;
Panel1: TPanel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
PcntEdit: TEdit;
IRT1Edit: TEdit;
IRT2Edit: TEdit;
IRT3Edit: TEdit;
NoSelEdit: TEdit;
Label3: TLabel;
StemMemo: TMemo;
NewBtn: TButton;
SaveBtn: TButton;
DeleteBtn: TButton;
ReturnBtn: TButton;
AnswerMemo: TMemo;
Label4: TLabel;
OpenPictureDialog1: TOpenPictureDialog;
Label5: TLabel;
SymbolBox: TListBox;
Label6: TLabel;
OpenDialog1: TOpenDialog;
procedure FormShow(Sender: TObject);
procedure ShowEssayItem(Sender: TObject; itemno : integer);
procedure ReturnBtnClick(Sender: TObject);
procedure NewBtnClick(Sender: TObject);
procedure SaveBtnClick(Sender: TObject);
procedure LoadRecord(VAR NewRcd : EssayItemRcd; Sender : TObject);
procedure DeleteBtnClick(Sender: TObject);
procedure BrowseBtnClick(Sender: TObject);
procedure ItemNoScrollScroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
procedure ClearBtnClick(Sender: TObject);
procedure SymbolBoxClick(Sender: TObject);
procedure StemMemoEnter(Sender: TObject);
procedure AnswerMemoEnter(Sender: TObject);
private
{ Private declarations }
maxitems : integer;
ARcd : EssayItemRcd;
symbol : char;
EditBox : integer;
public
{ Public declarations }
end;
var
EssayFrm: TEssayFrm;
implementation
{$R *.lfm}
procedure TEssayFrm.FormShow(Sender: TObject);
var
F : TextFile;
S : string;
TF : File of EssayItemRcd;
i : integer;
begin
StemMemo.Clear;
AnswerMemo.Clear;
ItemNoScroll.Min := 1;
ItemNoScroll.Max := 1;
ItemNoEdit.Text := '1';
ItemNoScroll.Position := 1;
CodeCombo.Text := '';
BMPFileEdit.Text := '';
PcntEdit.Text := '0';
IRT1Edit.Text := '0';
IRT2Edit.Text := '0';
IRT3Edit.Text := '0';
NoSelEdit.Text := '0';
ItemWeightEdit.Text := '0';
maxitems := 0;
OpenDialog1.DefaultExt := '.COD';
OpenDialog1.Filter := 'Code files (*.cod)|*.COD|Text files (*.txt)|*.TXT|All files (*.*)|*.*';
OpenDialog1.FilterIndex := 1;
OpenDialog1.FileName := BankPath + ExtractFileName(BankName) + '.COD';
OpenDialog1.Title := 'Name of Item Code File:';
if OpenDialog1.Execute then
begin
AssignFile(F,OpenDialog1.filename);
ReSet(F);
while not EOF(F) do
begin
readln(F,S);
CodeCombo.Items.Add(S);
end;
end
else begin
ShowMessage('You must first open a file of item codes.');
exit;
end;
CloseFile(F);
S := BankPath + 'EssayFile' + ExtractFileName(BankName);
EssayFName := S;
if FileExists(S) { *Converted from FileExists* } then
begin
AssignFile(TF,S);
Reset(TF);
while not EOF(TF) do
begin
read(TF,EssayItem);
maxitems := maxitems + 1;
end;
CloseFile(TF);
if maxitems > ItemNoScroll.Max then
ItemNoScroll.Max := maxitems;
ItemNoScroll.Min := 1;
end
else begin // create empty file
AssignFile(TF,S);
rewrite(TF);
CloseFile(TF);
end;
for i := 1 to 20 do ARcd.BestAns[i] := '';
if maxitems > 0 then
begin
ItemNoScroll.Position := 1;
ShowEssayItem(self,1);
end;
SymbolBox.Clear;
for i := 127 to 255 do SymbolBox.Items.Add(chr(ord(i)));
end;
//-------------------------------------------------------------------
procedure TEssayFrm.ShowEssayItem(Sender: TObject; itemno : integer);
var
S : string;
F : File of EssayItemRcd;
where : longint;
Frecd : EssayItemRcd;
i : integer;
begin
ItemNoEdit.Text := IntToStr(ItemNoScroll.Position);
S := BankPath + 'EssayFile' + ExtractFileName(BankName);
AssignFile(F,S);
Reset(F);
where := itemno-1;
Seek(F,where);
read(F,FRecd);
CloseFile(F);
CodeCombo.Text := Frecd.Code;
BMPFileEdit.Text := Frecd.Picture;
PcntEdit.Text := FloatToStr(Frecd.PcntPass);
if BMPFileEdit.Text <> '' then
begin
if FileExists(Frecd.Picture) { *Converted from FileExists* } then
begin
BMPImage.Picture.LoadFromFile(Frecd.Picture);
BMPImage.Visible := true;
end
else begin
// ShowMessage('Image ' + Frecd.Picture + ' not found.');
BMPFileEdit.Text := '';
Frecd.Picture := '';
end;
end
else BMPImage.Visible := false;
ItemWeightEdit.Text := IntToStr(Frecd.ItemWeight);
IRT1Edit.Text := FloatToStr(Frecd.IRT[1]);
IRT2Edit.Text := FloatToStr(Frecd.IRT[2]);
IRT3Edit.Text := FLoatToStr(Frecd.IRT[3]);
StemMemo.Clear;
for i := 1 to 20 do
begin
S := Frecd.ItemStem[i];
if length(S) > 0 then StemMemo.Lines.Add(S);
end;
AnswerMemo.Clear;
for i := 1 to 20 do
begin
S := Frecd.BestAns[i];
if length(S) > 0 then AnswerMemo.Lines.Add(S);
end;
end;
//-------------------------------------------------------------------
procedure TEssayFrm.ReturnBtnClick(Sender: TObject);
begin
EssayFrm.Hide;
end;
//-------------------------------------------------------------------
procedure TEssayFrm.NewBtnClick(Sender: TObject);
begin
StemMemo.Clear;
AnswerMemo.Clear;
ItemNoScroll.Max := maxitems + 1;
ItemNoScroll.Position := ItemNoScroll.Max;
ItemNoEdit.Text := IntToStr(ItemNoScroll.Position);
CodeCombo.Text := '';
BMPFileEdit.Text := '';
BMPImage.Visible := false;
PcntEdit.Text := '0';
IRT1Edit.Text := '0';
IRT2Edit.Text := '0';
IRT3Edit.Text := '0';
NoSelEdit.Text := '0';
ItemWeightEdit.Text := '0';
BMPImage.Visible := false;
end;
//-------------------------------------------------------------------
procedure TEssayFrm.SaveBtnClick(Sender: TObject);
var
NewRcd : EssayItemRcd;
itemno : integer;
begin
itemno := ItemNoScroll.Position;
LoadRecord(NewRcd,self);
WriteESItem(itemno,NewRcd);
if itemno > maxitems then
begin
maxitems := itemno;
ItemNoScroll.Max := maxitems+1;
end;
end;
//-------------------------------------------------------------------
procedure TEssayFrm.LoadRecord(VAR NewRcd : EssayItemRcd; Sender : TObject);
var
i : integer;
S : string;
begin
NewRcd.ItemNo := ItemNoScroll.Position;
NewRcd.Code := CodeCombo.Text;
for i := 0 to StemMemo.Lines.Count-1 do
begin
S := Trim(StemMemo.Lines[i]);
NewRcd.ItemStem[i+1] := S;
end;
if StemMemo.Lines.Count < 20 then
for i := StemMemo.Lines.Count+1 to 20 do NewRcd.ItemStem[i] := '';
for i := 0 to AnswerMemo.Lines.Count-1 do
begin
S := Trim(AnswerMemo.Lines[i]);
NewRcd.BestAns[i+1] := S;
end;
if AnswerMemo.Lines.Count < 20 then
for i := AnswerMemo.Lines.Count+1 to 20 do NewRcd.BestAns[i] := '';
NewRcd.ItemWeight := StrToInt(ItemWeightEdit.Text);
NewRcd.Picture := BMPFileEdit.Text;
NewRcd.PcntPass := StrToFloat(PcntEdit.Text);
NewRcd.IRT[1] := StrToFloat(IRT1Edit.Text);
NewRcd.IRT[2] := StrToFloat(IRT2Edit.Text);
NewRcd.IRT[3] := StrToFloat(IRT3Edit.Text);
NewRcd.FreqElect := StrToInt(NoSelEdit.Text);
end;
//-------------------------------------------------------------------
procedure TEssayFrm.DeleteBtnClick(Sender: TObject);
var
FOld : File of EssayItemRcd;
FNew : File of EssayItemRcd;
itemno : integer;
i : integer;
SOld : string;
SNew : string;
begin
itemno := ItemNoScroll.Position;
SOld := BankPath + 'EssayFile' + ExtractFileName(BankName);
AssignFile(FOld,SOld);
ReSet(FOld);
SNew := BankPath + 'TempEssayFile';
AssignFile(FNew,SNew);
Rewrite(FNew);
// copy up to itemno from old file to new file
for i := 1 to itemno-1 do
begin
if not EOF(FOld) then
begin
read(FOld,ARcd);
write(FNew,ARcd);
end;
end;
// read past itemno to delete
if not EOF(FOld) then read(FOld,ARcd);
// write remaining records, if any, from old to new
if not EOF(FOld) then
begin
while not EOF(FOld) do
begin
read(FOld,ARcd);
write(FNew,ARcd);
end;
end;
CloseFile(FOld);
CloseFile(FNew);
// delete old file and rename temp file to old file name
DeleteFile(SOld); { *Converted from DeleteFile* }
RenameFile(SNew, Sold); { *Converted from RenameFile* }
maxitems := maxitems - 1;
if maxitems > 0 then ItemNoScroll.Max := maxitems else
ItemNoScroll.Max := 1;
end;
//-------------------------------------------------------------------
procedure TEssayFrm.BrowseBtnClick(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
BMPFileEdit.Text := OpenPictureDialog1.FileName;
BMPImage.Picture.LoadFromFile(BMPFileEdit.Text);
BMPImage.Visible := true;
end;
end;
//-------------------------------------------------------------------
procedure TEssayFrm.ItemNoScrollScroll(Sender: TObject;
ScrollCode: TScrollCode; var ScrollPos: Integer);
var
itemno : integer;
begin
itemno := ScrollPos;
if (itemno > maxitems) or (itemno < 1) then exit;
ItemNoEdit.Text := IntToStr(itemno);
ShowEssayItem(self,itemno);
end;
//-------------------------------------------------------------------
procedure TEssayFrm.ClearBtnClick(Sender: TObject);
begin
BMPFileEdit.Text := '';
BMPImage.Visible := false;
end;
//-------------------------------------------------------------------
procedure TEssayFrm.SymbolBoxClick(Sender: TObject);
var
index : integer;
S : string;
begin
if EditBox = 1 then
begin
index := SymbolBox.ItemIndex;
S := SymbolBox.Items.Strings[index];
symbol := S[1];
index := StemMemo.Lines.Count;
if index > 0 then
begin
S := StemMemo.Lines.Strings[index-1];
StemMemo.Lines.Delete(index-1);
S := S + symbol;
StemMemo.Lines.Insert(index-1,S);
end
else begin
S := StemMemo.Lines.Strings[0];
StemMemo.Lines.Delete(0);
S := S + symbol;
StemMemo.Lines.Add(S);
end;
end
else begin
index := SymbolBox.ItemIndex;
S := SymbolBox.Items.Strings[index];
symbol := S[1];
index := AnswerMemo.Lines.Count;
if index > 0 then
begin
S := AnswerMemo.Lines.Strings[index-1];
AnswerMemo.Lines.Delete(index-1);
S := S + symbol;
AnswerMemo.Lines.Insert(index-1,S);
end
else begin
S := AnswerMemo.Lines.Strings[0];
AnswerMemo.Lines.Delete(0);
S := S + symbol;
AnswerMemo.Lines.Add(S);
end;
end;
end;
//-------------------------------------------------------------------
procedure TEssayFrm.StemMemoEnter(Sender: TObject);
begin
EditBox := 1;
end;
//-------------------------------------------------------------------
procedure TEssayFrm.AnswerMemoEnter(Sender: TObject);
begin
EditBox := 2;
end;
//-------------------------------------------------------------------
end.

View File

@ -1,329 +0,0 @@
object EssayFrm: TEssayFrm
Left = 23
Top = 10
HelpContext = 1855
BorderStyle = bsDialog
Caption = 'Essay Item Specification'
ClientHeight = 479
ClientWidth = 658
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
HelpFile = 'ITEMBANKHELP.HLP'
OnShow = FormShow
PixelsPerInch = 96
object Label2: TLabel
Left = 16
Top = 8
Width = 63
Height = 13
Caption = 'Item Number:'
end
object Label1: TLabel
Left = 160
Top = 8
Width = 281
Height = 13
Caption = 'Click on the Item Classification Code listed in the box below.'
end
object Label14: TLabel
Left = 16
Top = 64
Width = 89
Height = 13
Caption = 'Bit Map File Name:'
end
object Label15: TLabel
Left = 16
Top = 88
Width = 72
Height = 13
Caption = 'Image (if used):'
end
object Label16: TLabel
Left = 120
Top = 80
Width = 97
Height = 13
Caption = '(Thumb Nail Sketch)'
end
object BMPImage: TImage
Left = 112
Top = 96
Width = 121
Height = 97
Center = True
Stretch = True
end
object Label18: TLabel
Left = 248
Top = 96
Width = 60
Height = 13
Caption = 'Item Weight:'
end
object Label3: TLabel
Left = 16
Top = 208
Width = 47
Height = 13
Caption = 'Item Stem'
end
object Label4: TLabel
Left = 16
Top = 328
Width = 92
Height = 13
Caption = 'Suggested Answer:'
end
object Label5: TLabel
Left = 600
Top = 8
Width = 39
Height = 13
Caption = 'Symbols'
end
object Label6: TLabel
Left = 584
Top = 24
Width = 68
Height = 13
Caption = 'Click to Select'
end
object ItemNoEdit: TEdit
Left = 104
Top = 0
Width = 41
Height = 21
TabOrder = 0
end
object ItemNoScroll: TScrollBar
Left = 16
Top = 28
Width = 129
Height = 16
Max = 1000
PageSize = 0
TabOrder = 1
OnScroll = ItemNoScrollScroll
end
object CodeCombo: TComboBox
Left = 160
Top = 24
Width = 417
Height = 21
ItemHeight = 13
TabOrder = 2
Text = 'Classification Code'
end
object BMPFileEdit: TEdit
Left = 112
Top = 56
Width = 465
Height = 21
TabOrder = 3
Text = 'BMPFileEdit'
end
object BrowseBtn: TButton
Left = 24
Top = 112
Width = 57
Height = 25
Caption = 'Browse'
TabOrder = 4
OnClick = BrowseBtnClick
end
object ClearBtn: TButton
Left = 24
Top = 144
Width = 57
Height = 25
Caption = 'Clear'
TabOrder = 5
OnClick = ClearBtnClick
end
object ItemWeightEdit: TEdit
Left = 312
Top = 96
Width = 33
Height = 21
TabOrder = 6
Text = 'ItemWeightEdit'
end
object Panel1: TPanel
Left = 408
Top = 80
Width = 169
Height = 137
TabOrder = 7
object Label9: TLabel
Left = 6
Top = 14
Width = 78
Height = 13
Caption = 'Percent Passed:'
end
object Label10: TLabel
Left = 6
Top = 38
Width = 97
Height = 13
Caption = 'Log Difficulty (IRT1):'
end
object Label11: TLabel
Left = 6
Top = 62
Width = 86
Height = 13
Caption = 'Item Slope (IRT2):'
end
object Label12: TLabel
Left = 6
Top = 86
Width = 96
Height = 13
Caption = 'Item Chance (IRT3):'
end
object Label13: TLabel
Left = 6
Top = 110
Width = 76
Height = 13
Caption = 'Times Selected:'
end
object PcntEdit: TEdit
Left = 110
Top = 6
Width = 41
Height = 21
TabOrder = 0
end
object IRT1Edit: TEdit
Left = 110
Top = 30
Width = 41
Height = 21
TabOrder = 1
end
object IRT2Edit: TEdit
Left = 110
Top = 54
Width = 41
Height = 21
TabOrder = 2
end
object IRT3Edit: TEdit
Left = 110
Top = 78
Width = 41
Height = 21
TabOrder = 3
end
object NoSelEdit: TEdit
Left = 110
Top = 102
Width = 41
Height = 21
TabOrder = 4
end
end
object StemMemo: TMemo
Left = 16
Top = 224
Width = 561
Height = 97
Font.Charset = GREEK_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Times New Roman'
Font.Style = []
MaxLength = 1000
ParentFont = False
ScrollBars = ssVertical
TabOrder = 8
WantTabs = True
WordWrap = False
OnEnter = StemMemoEnter
end
object NewBtn: TButton
Left = 16
Top = 443
Width = 73
Height = 25
Caption = 'New Item'
TabOrder = 9
OnClick = NewBtnClick
end
object SaveBtn: TButton
Left = 104
Top = 443
Width = 73
Height = 25
Caption = 'Save Item'
TabOrder = 10
OnClick = SaveBtnClick
end
object DeleteBtn: TButton
Left = 192
Top = 443
Width = 73
Height = 25
Caption = 'Delete'
TabOrder = 11
OnClick = DeleteBtnClick
end
object ReturnBtn: TButton
Left = 496
Top = 443
Width = 73
Height = 25
Caption = 'Return'
ModalResult = 1
TabOrder = 12
OnClick = ReturnBtnClick
end
object AnswerMemo: TMemo
Left = 16
Top = 344
Width = 553
Height = 89
Font.Charset = GREEK_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Times New Roman'
Font.Style = []
Lines.Strings = (
'')
MaxLength = 1000
ParentFont = False
TabOrder = 13
WantTabs = True
OnEnter = AnswerMemoEnter
end
object SymbolBox: TListBox
Left = 592
Top = 40
Width = 49
Height = 425
Font.Charset = GREEK_CHARSET
Font.Color = clWindowText
Font.Height = -16
Font.Name = 'Times New Roman'
Font.Style = []
ItemHeight = 19
ParentFont = False
TabOrder = 14
OnClick = SymbolBoxClick
end
object OpenPictureDialog1: TOpenPictureDialog
Left = 304
Top = 440
end
object OpenDialog1: TOpenDialog
Left = 344
Top = 440
end
end

View File

@ -1,456 +0,0 @@
unit ExactUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls, StdCtrls, Buttons, MainUnit, OutPutUnit, FunctionsLib,
Globals, DataProcs, Math;
type
{ TFisherFrm }
TFisherFrm = class(TForm)
ResetBtn: TButton;
CancelBtn: TButton;
ComputeBtn: TButton;
ReturnBtn: TButton;
RC11Edit: TEdit;
RC12Edit: TEdit;
RC21Edit: TEdit;
RC22Edit: TEdit;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
NCasesEdit: TEdit;
NCasesLabel: TLabel;
Panel2: TPanel;
RowIn: TBitBtn;
RowOut: TBitBtn;
ColIn: TBitBtn;
ColOut: TBitBtn;
DepIn: TBitBtn;
DepOut: TBitBtn;
ColEdit: TEdit;
DepEdit: TEdit;
RowEdit: TEdit;
InputGrp: TRadioGroup;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
VarList: TListBox;
Panel1: TPanel;
procedure ColInClick(Sender: TObject);
procedure ColOutClick(Sender: TObject);
procedure ComputeBtnClick(Sender: TObject);
procedure DepInClick(Sender: TObject);
procedure DepOutClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure InputGrpClick(Sender: TObject);
procedure RC11EditKeyPress(Sender: TObject; var Key: char);
procedure RC12EditKeyPress(Sender: TObject; var Key: char);
procedure RC21EditKeyPress(Sender: TObject; var Key: char);
procedure RC22EditKeyPress(Sender: TObject; var Key: char);
procedure ResetBtnClick(Sender: TObject);
procedure RowInClick(Sender: TObject);
procedure RowOutClick(Sender: TObject);
private
{ private declarations }
procedure FisherTable(A, b, C, d : integer; p, SumP : double);
public
{ public declarations }
end;
var
FisherFrm: TFisherFrm;
implementation
{ TFisherFrm }
procedure TFisherFrm.ResetBtnClick(Sender: TObject);
VAR i : integer;
begin
VarList.Clear;
RowEdit.Text := '';
ColEdit.Text := '';
DepEdit.Text := '';
DepEdit.Visible := false;
RowIn.Visible := true;
RowOut.Visible := false;
ColIn.Visible := false;
ColOut.Visible := false;
DepIn.Visible := false;
DepOut.Visible := false;
NCasesLabel.Visible := false;
Label4.Visible := false;
NCasesEdit.Text := '';
NCasesEdit.Visible := false;
for i := 1 to NoVariables do
VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]);
Panel1.Visible := false;
Panel2.Visible := false;
RC11Edit.Text := '';
RC12Edit.Text := '';
RC21Edit.Text := '';
RC22Edit.Text := '';
end;
procedure TFisherFrm.RowInClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
RowEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
RowIn.Visible := false;
RowOut.Visible := true;
end;
procedure TFisherFrm.RowOutClick(Sender: TObject);
begin
VarList.Items.Add(RowEdit.Text);
RowEdit.Text := '';
RowIn.Visible := true;
RowOut.Visible := false;
end;
procedure TFisherFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
procedure TFisherFrm.ColInClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
ColEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
ColIn.Visible := false;
ColOut.Visible := true;
end;
procedure TFisherFrm.ColOutClick(Sender: TObject);
begin
VarList.Items.Add(ColEdit.Text);
ColEdit.Text := '';
ColIn.Visible := true;
ColOut.Visible := false;
end;
procedure TFisherFrm.ComputeBtnClick(Sender: TObject);
var
i, j, row, col, caserow, casecol, A, b, C, d, Largest : integer;
N, APlusB, APlusC, BPlusD, CPlusD, NoSelected, dep : integer;
FirstP, p, SumProb, Tocher, Alpha, X : double;
obs : array[1..2,1..2] of integer;
ColNoSelected : IntDyneVec;
done : boolean;
cellstring, outline, response : string;
begin
Randomize; // initialize random number generator
row := 0;
col := 0;
dep := 0;
// get column no.s of row and col variables
if InputGrp.ItemIndex <> 3 then
begin
for i := 1 to NoVariables do
begin
cellstring := RowEdit.Text;
if cellstring = OS3MainFrm.DataGrid.Cells[i,0] then row := i;
cellstring := ColEdit.Text;
if cellstring = OS3MainFrm.DataGrid.Cells[i,0] then col := i;
if InputGrp.ItemIndex = 2 then
begin
cellstring := DepEdit.Text;
if cellstring = OS3MainFrm.DataGrid.Cells[i,0] then dep := i;
end;
end;
end;
SetLength(ColNoSelected,3);
ColNoSelected[0] := row;
ColNoSelected[1] := col;
if InputGrp.ItemIndex = 2 then
begin
ColNoSelected[2] := dep;
NoSelected := 3;
end
else NoSelected := 2;
//initialize observed matrix
for i := 1 to 2 do
for j := 1 to 2 do obs[i,j] := 0;
if InputGrp.ItemIndex = 3 then // get freq. from form
begin
obs[1,1] := StrToInt(RC11Edit.Text);
obs[1,2] := StrToInt(RC12Edit.Text);
obs[2,1] := StrToInt(RC21Edit.Text);
obs[2,2] := StrToInt(RC22Edit.Text);
end;
if InputGrp.ItemIndex = 0 then // count no. in row/col combinations
begin
for j := 1 to NoCases do
begin
if (not GoodRecord(j,NoSelected,ColNoSelected)) then continue;
caserow := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[row,j])));
casecol := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,j])));
if (caserow > 2) or (caserow < 1) then
begin
ShowMessage('ERROR! Row < 1 or > 2 found. Case ignored.');
continue;
end;
if (casecol > 2) or (casecol < 1) then
begin
ShowMessage('ERROR! Column < 1 or > 2 found. Case ignored.');
continue;
end;
obs[caserow,casecol] := obs[caserow,casecol] + 1;
end;
end;
if (InputGrp.ItemIndex = 1) or (InputGrp.ItemIndex = 2) then // Grid has frequencies for row/col
begin
for j := 1 to NoCases do
begin
if (not GoodRecord(j,NoSelected,ColNoSelected)) then continue;
caserow := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[row,j])));
casecol := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,j])));
if (caserow > 2) or (caserow < 1) then
begin
ShowMessage('ERROR! Row < 1 or > 2 found. Case ignored.');
continue;
end;
if (casecol > 2) or (casecol < 1) then
begin
ShowMessage('ERROR! Column < 1 or > 2 found. Case ignored.');
continue;
end;
obs[caserow,casecol] := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[dep,j])));
if InputGrp.ItemIndex = 2 then
obs[caserow,casecol] := obs[caserow,casecol] *
StrToInt(NCasesEdit.Text);
end;
end;
//Find smallest value
A := obs[1,1];
b := obs[1,2];
C := obs[2,1];
d := obs[2,2];
APlusB := A + b;
CPlusD := C + d;
BPlusD := b + d;
APlusC := A + C;
N := A + b + C + d;
Largest := 1;
if (b > A) then largest := 2;
if ((b > A) and (b > C) and (b > d)) then Largest := 2;
if ((C > A) and (C > b) and (C > d)) then Largest := 3;
if ((d > A) and (d > b) and (d > C)) then Largest := 4;
//Ready output
OutPutFrm.RichEdit.Clear;
SumProb := 0.0;
OutPutFrm.RichEdit.Lines.Add('Fisher Exact Probability Test');
OutPutFrm.RichEdit.Lines.Add('');
//Get first probability
FirstP := combos(A, APlusC) * combos(b, BPlusD) / combos(APlusB, N);
SumProb := SumProb + FirstP;
FisherTable(A, b, C, d, FirstP, SumProb);
//Get more extreme probabilities
done := false;
while (not done) do
begin
case Largest of
1: begin// top row, first col
if (A = APlusB) then done := true
else begin
A := A + 1;
b := b - 1;
C := C - 1;
d := d + 1;
end;
end;
2: begin// top row, second column
if (b = APlusB) then done := true
else begin
A := A - 1;
b := b + 1;
C := C + 1;
d := d - 1;
end;
end;
3: begin // second row, first column
if (C = CPlusD) then done := true
else begin
A := A - 1;
b := b + 1;
C := C + 1;
d := d - 1;
end;
end;
4: begin // second row, second column
if (d = CPlusD) then done := true
else begin
A := A + 1;
b := b - 1;
C := C - 1;
d := d + 1;
end;
end;
end; // end case
if (not done) then
begin
p := combos(A, APlusC) * combos(b, BPlusD) / combos(APlusB, N);
SumProb := SumProb + p;
FisherTable(A, b, C, d, p, SumProb);
end;
end;
//Tocher's modification
response :=
InputBox( 'ALPHA','Enter your Alpha (Type I Error rate) : ', '0.05');
Alpha := StrToFloat(response);
if ((SumProb - FirstP) > Alpha) then //Extreme values > alpha - accept null hypothesis
OutPutFrm.RichEdit.Lines.Add('Null hypothesis accepted.')
else begin//Extreme values significant - is total probability significant?
if (SumProb >= Alpha) then//No, so apply Tocher's rule
begin
Tocher := ( Alpha - (SumProb - FirstP)) / FirstP;
X := random(1000) / 1000.0; //Select a random value between 0 and num - 1
outline := format('Tocher ratio computed: %5.3f',[Tocher]);
OutPutFrm.RichEdit.Lines.Add(outline);
if (X < Tocher) then //Call it significant
begin
outline := format('A random value of %5.3f selected was less than the Tocher value.',[X]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('Conclusion: Reject the null Hypothesis');
end
else begin //Call it non-significant
outline := format('A random value of %5.3f selected was greater than the Tocher value.',[X]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('Conclusion: Accept the null Hypothesis');
end;
end
else begin //Total probability < alpha - reject null
OutPutFrm.RichEdit.Lines.Add('Probability less than alpha - reject null hypothesis.');
end; // end if-else
end; // end if-else
OutPutFrm.ShowModal;
end;
procedure TFisherFrm.DepInClick(Sender: TObject);
VAR index : integer;
begin
index := VarList.ItemIndex;
DepEdit.Text := VarList.Items.Strings[index];
VarList.Items.Delete(index);
DepIn.Visible := false;
DepOut.Visible := true;
end;
procedure TFisherFrm.DepOutClick(Sender: TObject);
begin
VarList.Items.Add(DepEdit.Text);
DepEdit.Text := '';
DepIn.Visible := true;
DepOut.Visible := false;
end;
procedure TFisherFrm.InputGrpClick(Sender: TObject);
begin
if InputGrp.ItemIndex = 3 then
begin
Panel2.Visible := true;
Panel1.Visible := false;
RC11Edit.SetFocus;
Label4.Visible := false;
ColIn.Visible := false;
DepIn.Visible := false;
DepOut.Visible := false;
end
else
begin
Panel1.Visible := true;
Panel2.Visible := false;
ColIn.Visible := true;
ColOut.Visible := false;
if InputGrp.ItemIndex = 2 then
begin
NCasesLabel.Visible := true;
NCasesEdit.Visible := true;
end
else begin
NCasesLabel.Visible := false;
NCasesEdit.Visible := false;
end;
if InputGrp.ItemIndex = 0 then
begin
Label4.Visible := false;
DepEdit.Visible := false;
DepIn.Visible := false;
DepOut.Visible := false;
end
else begin // InputGrp = 1
Label4.Visible := true;
DepEdit.Visible := true;
DepIn.Visible := true;
DepOut.Visible := true;
end;
end;
end;
procedure TFisherFrm.RC11EditKeyPress(Sender: TObject; var Key: char);
begin
if Ord(Key) = 13 then RC12Edit.SetFocus;
end;
procedure TFisherFrm.RC12EditKeyPress(Sender: TObject; var Key: char);
begin
if Ord(Key) = 13 then RC21Edit.SetFocus;
end;
procedure TFisherFrm.RC21EditKeyPress(Sender: TObject; var Key: char);
begin
if Ord(Key) = 13 then RC22Edit.SetFocus;
end;
procedure TFisherFrm.RC22EditKeyPress(Sender: TObject; var Key: char);
begin
if Ord(Key) = 13 then ComputeBtn.SetFocus;
end;
procedure TFisherFrm.FisherTable(A, b, C, d : integer; p, SumP : double);
var
outline : string;
begin
OutPutFrm.RichEdit.Lines.Add('');
OutPutFrm.RichEdit.Lines.Add('Contingency Table for Fisher Exact Test');
OutPutFrm.RichEdit.Lines.Add(' Column');
OutPutFrm.RichEdit.Lines.Add('Row 1 2');
outline := format(' 1 %10d %10d',[A, b]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format(' 2 %10d %10d',[C, d]);
OutPutFrm.RichEdit.Lines.Add(outline);
outline := format('Probability := %6.4f',[p]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
outline := format('Cumulative Probability := %6.4f',[SumP]);
OutPutFrm.RichEdit.Lines.Add(outline);
OutPutFrm.RichEdit.Lines.Add('');
end;
initialization
{$I exactunit.lrs}
end.

View File

@ -1,508 +0,0 @@
object FisherFrm: TFisherFrm
Left = 171
Height = 407
Top = 104
Width = 553
Caption = 'Fisher''s Exact Test for a 2 by 2 Table'
ClientHeight = 407
ClientWidth = 553
OnShow = FormShow
LCLVersion = '0.9.26.2'
object InputGrp: TRadioGroup
Left = 6
Height = 95
Top = 1
Width = 366
AutoFill = True
Caption = 'Input Options'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 77
ClientWidth = 362
Items.Strings = (
'Count cases classified by row and column vectors in the data grid.'
'Use frequencies recorded in the data grid for row and column variables.'
'Use proportions recorded in the data grid for row and column variables.'
'Enter frequencies on this form.'
)
OnClick = InputGrpClick
TabOrder = 0
end
object Panel1: TPanel
Left = 6
Height = 293
Top = 103
Width = 368
ClientHeight = 293
ClientWidth = 368
TabOrder = 1
object Label1: TLabel
Left = 8
Height = 14
Top = 7
Width = 90
Caption = 'Variables Available'
ParentColor = False
end
object Label2: TLabel
Left = 208
Height = 14
Top = 23
Width = 63
Caption = 'Row Variable'
ParentColor = False
end
object Label3: TLabel
Left = 207
Height = 14
Top = 103
Width = 77
Caption = 'Column Variable'
ParentColor = False
end
object Label4: TLabel
Left = 207
Height = 14
Top = 183
Width = 93
Caption = 'Variable to Analyze'
ParentColor = False
end
object NCasesLabel: TLabel
Left = 8
Height = 14
Top = 265
Width = 94
Caption = 'Total No. of Cases:'
ParentColor = False
end
object VarList: TListBox
Left = 6
Height = 226
Top = 24
Width = 153
TabOrder = 0
end
object RowIn: TBitBtn
Left = 170
Height = 26
Top = 25
Width = 29
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
}
NumGlyphs = 0
OnClick = RowInClick
TabOrder = 1
end
object RowEdit: TEdit
Left = 208
Height = 16
Top = 40
Width = 136
TabOrder = 2
Text = 'RowEdit'
end
object ColEdit: TEdit
Left = 207
Height = 17
Top = 120
Width = 138
TabOrder = 3
Text = 'ColEdit'
end
object DepEdit: TEdit
Left = 207
Height = 17
Top = 199
Width = 138
TabOrder = 4
Text = 'DepEdit'
end
object NCasesEdit: TEdit
Left = 111
Height = 18
Top = 261
Width = 49
TabOrder = 5
Text = 'NCasesEdit'
end
end
object RowOut: TBitBtn
Left = 176
Height = 26
Top = 160
Width = 29
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
}
NumGlyphs = 0
OnClick = RowOutClick
TabOrder = 2
end
object ColIn: TBitBtn
Left = 176
Height = 26
Top = 208
Width = 29
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
}
NumGlyphs = 0
OnClick = ColInClick
TabOrder = 3
end
object ColOut: TBitBtn
Left = 176
Height = 26
Top = 240
Width = 29
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
}
NumGlyphs = 0
OnClick = ColOutClick
TabOrder = 4
end
object DepIn: TBitBtn
Left = 176
Height = 26
Top = 288
Width = 29
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
}
NumGlyphs = 0
OnClick = DepInClick
TabOrder = 5
end
object DepOut: TBitBtn
Left = 176
Height = 26
Top = 320
Width = 29
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
}
NumGlyphs = 0
OnClick = DepOutClick
TabOrder = 6
end
object Panel2: TPanel
Left = 384
Height = 88
Top = 8
Width = 158
ClientHeight = 88
ClientWidth = 158
TabOrder = 7
object Label6: TLabel
Left = 7
Height = 14
Top = 27
Width = 31
Caption = 'Row 1'
ParentColor = False
end
object Label7: TLabel
Left = 7
Height = 14
Top = 59
Width = 31
Caption = 'Row 2'
ParentColor = False
end
object Label8: TLabel
Left = 40
Height = 14
Top = 9
Width = 29
Caption = 'Col. 1'
ParentColor = False
end
object Label9: TLabel
Left = 88
Height = 14
Top = 9
Width = 29
Caption = 'Col. 2'
ParentColor = False
end
object RC11Edit: TEdit
Left = 40
Height = 21
Top = 24
Width = 38
OnKeyPress = RC11EditKeyPress
TabOrder = 0
Text = 'RC11Edit'
end
object RC12Edit: TEdit
Left = 87
Height = 20
Top = 24
Width = 43
OnKeyPress = RC12EditKeyPress
TabOrder = 1
Text = 'RC12Edit'
end
object RC21Edit: TEdit
Left = 40
Height = 18
Top = 55
Width = 36
OnKeyPress = RC21EditKeyPress
TabOrder = 2
Text = 'RC21Edit'
end
object RC22Edit: TEdit
Left = 88
Height = 16
Top = 54
Width = 42
OnKeyPress = RC22EditKeyPress
TabOrder = 3
Text = 'RC22Edit'
end
end
object ResetBtn: TButton
Left = 424
Height = 29
Top = 112
Width = 83
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 8
end
object CancelBtn: TButton
Left = 424
Height = 29
Top = 176
Width = 83
Caption = 'Cancel'
ModalResult = 2
TabOrder = 9
end
object ComputeBtn: TButton
Left = 424
Height = 29
Top = 240
Width = 83
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 10
end
object ReturnBtn: TButton
Left = 424
Height = 29
Top = 296
Width = 83
Caption = 'Return'
ModalResult = 1
TabOrder = 11
end
end

View File

@ -1,372 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TFisherFrm','FORMDATA',[
'TPF0'#10'TFisherFrm'#9'FisherFrm'#4'Left'#3#171#0#6'Height'#3#151#1#3'Top'#2
+'h'#5'Width'#3')'#2#7'Caption'#6'&Fisher''s Exact Test for a 2 by 2 Table'#12
+'ClientHeight'#3#151#1#11'ClientWidth'#3')'#2#6'OnShow'#7#8'FormShow'#10'LCL'
+'Version'#6#8'0.9.26.2'#0#11'TRadioGroup'#8'InputGrp'#4'Left'#2#6#6'Height'#2
+'_'#3'Top'#2#1#5'Width'#3'n'#1#8'AutoFill'#9#7'Caption'#6#13'Input Options'
+#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29
+'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizin'
+'g.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHori'
+'zontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleCh'
+'ilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSi'
+'zing.ControlsPerLine'#2#1#12'ClientHeight'#2'M'#11'ClientWidth'#3'j'#1#13'I'
+'tems.Strings'#1#6'BCount cases classified by row and column vectors in the '
+'data grid.'#6'GUse frequencies recorded in the data grid for row and column'
+' variables.'#6'GUse proportions recorded in the data grid for row and colum'
+'n variables.'#6#31'Enter frequencies on this form.'#0#7'OnClick'#7#13'Input'
+'GrpClick'#8'TabOrder'#2#0#0#0#6'TPanel'#6'Panel1'#4'Left'#2#6#6'Height'#3'%'
+#1#3'Top'#2'g'#5'Width'#3'p'#1#12'ClientHeight'#3'%'#1#11'ClientWidth'#3'p'#1
+#8'TabOrder'#2#1#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'#2#14#3'Top'#2#7
+#5'Width'#2'Z'#7'Caption'#6#19'Variables Available'#11'ParentColor'#8#0#0#6
+'TLabel'#6'Label2'#4'Left'#3#208#0#6'Height'#2#14#3'Top'#2#23#5'Width'#2'?'#7
+'Caption'#6#12'Row Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Lef'
+'t'#3#207#0#6'Height'#2#14#3'Top'#2'g'#5'Width'#2'M'#7'Caption'#6#15'Column '
+'Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#3#207#0#6'Heigh'
+'t'#2#14#3'Top'#3#183#0#5'Width'#2']'#7'Caption'#6#19'Variable to Analyze'#11
+'ParentColor'#8#0#0#6'TLabel'#11'NCasesLabel'#4'Left'#2#8#6'Height'#2#14#3'T'
+'op'#3#9#1#5'Width'#2'^'#7'Caption'#6#19'Total No. of Cases:'#11'ParentColor'
+#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#6#6'Height'#3#226#0#3'Top'#2#24#5'Wi'
+'dth'#3#153#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#5'RowIn'#4'Left'#3#170#0#6'Heig'
+'ht'#2#26#3'Top'#2#25#5'Width'#2#29#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'
+#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0
+'d'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'!c$'#184#29'^ '#6#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'
+#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'?'#136'E'
+#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255#255#0#255#255#255#0#255#255
+#255#0'e'#195'q'#255#160#215#169#255#156#213#165#255#152#211#161#255#148#208
+#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'
+#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140'J'#255'!c$'#196#255#255#255
+#0#255#255#255#0'h'#199't'#255#165#218#174#255#162#216#171#255#158#214#167
+#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202
+#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'J'#145'P'#255'%i)'
+#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'#199't'#255'e'#195'q'#255'a'
+#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'
+#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/x5'#209#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'A'#145'I'#247';'#136'B'#219#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#9'NumGlyphs'#2#0#7'OnClick'#7#10'RowInClick'#8'TabOrder'#2#1#0#0#5'TEdit'#7
+'RowEdit'#4'Left'#3#208#0#6'Height'#2#16#3'Top'#2'('#5'Width'#3#136#0#8'TabO'
+'rder'#2#2#4'Text'#6#7'RowEdit'#0#0#5'TEdit'#7'ColEdit'#4'Left'#3#207#0#6'He'
+'ight'#2#17#3'Top'#2'x'#5'Width'#3#138#0#8'TabOrder'#2#3#4'Text'#6#7'ColEdit'
+#0#0#5'TEdit'#7'DepEdit'#4'Left'#3#207#0#6'Height'#2#17#3'Top'#3#199#0#5'Wid'
+'th'#3#138#0#8'TabOrder'#2#4#4'Text'#6#7'DepEdit'#0#0#5'TEdit'#10'NCasesEdit'
+#4'Left'#2'o'#6'Height'#2#18#3'Top'#3#5#1#5'Width'#2'1'#8'TabOrder'#2#5#4'Te'
+'xt'#6#10'NCasesEdit'#0#0#0#7'TBitBtn'#6'RowOut'#4'Left'#3#176#0#6'Height'#2
+#26#3'Top'#3#160#0#5'Width'#2#29#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0
+#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0
+#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161
+'V'#6'G'#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'
+#217'M'#161'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255
+'z'#193#131#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'
+#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255
+#255#255#0'e'#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148
+#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255
+'~'#195#132#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255
+#255#0#255#255#255#0'h'#199't'#201''#204#138#255#162#216#171#255#158#214#167
+#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202
+#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'
+#255#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255
+'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'
+#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'
+#247#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'
+#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
,#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'RowOutClick'#8'TabOrder'#2#2#0#0
+#7'TBitBtn'#5'ColIn'#4'Left'#3#176#0#6'Height'#2#26#3'Top'#3#208#0#5'Width'#2
+#29#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0
+#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'
+#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'
+#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'
+#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!'
+'c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169
+#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203
+#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190
+'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165
+#218#174#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255
+#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135
+#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199
+'t'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255
+'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157
+'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#10
+'ColInClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#6'ColOut'#4'Left'#3#176#0#6'Heig'
+'ht'#2#26#3'Top'#3#240#0#5'Width'#2#29#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'B'
+'M6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0
+#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255
,#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169
+'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'
+#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0
+#255#255#255#0'e'#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255
+#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137
+#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255
+#255#255#0#255#255#255#0'h'#199't'#201''#204#138#255#162#216#171#255#158#214
+#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137
+#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i'
+')'#255#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139
+#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255
+'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195
+'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'
+#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'ColOutClick'#8'TabOrder'#2#4#0#0
+#7'TBitBtn'#5'DepIn'#4'Left'#3#176#0#6'Height'#2#26#3'Top'#3' '#1#5'Width'#2
+#29#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0
+#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
,#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0'!c$'#184#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'
+#217#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'
+#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'
+#255';'#136'B'#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!'
+'c$'#207#255#255#255#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169
+#255#156#213#165#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203
+#147#255#135#201#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190
+'|'#255'E'#140'J'#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165
+#218#174#255#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255
+#147#207#154#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135
+#255'}'#194#130#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199
+'t'#255'h'#199't'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255
+'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157
+'\'#255'/x5'#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#10
+'DepInClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'#6'DepOut'#4'Left'#3#176#0#6'Heig'
+'ht'#2#26#3'Top'#3'@'#1#5'Width'#2#29#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM'
+'6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0
+#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+'M'#161'V'#6'G'#153'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169
+'\'#217'M'#161'V'#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'
+#255'z'#193#131#255'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255
+'5'#128';'#255'/x5'#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0
+#255#255#255#0'e'#195'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255
+#148#208#157#255#144#206#152#255#139#203#147#255#135#201#142#255#130#198#137
+#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255
+#255#255#0#255#255#255#0'h'#199't'#201''#204#138#255#162#216#171#255#158#214
+#167#255#154#212#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137
,#202#144#255#133#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i'
+')'#255#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139
+#255'|'#201#135#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255
+'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195
+'q'#247#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'
+#187#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#11'DepOutClick'#8'TabOrder'#2#6#0#0
+#6'TPanel'#6'Panel2'#4'Left'#3#128#1#6'Height'#2'X'#3'Top'#2#8#5'Width'#3#158
+#0#12'ClientHeight'#2'X'#11'ClientWidth'#3#158#0#8'TabOrder'#2#7#0#6'TLabel'
+#6'Label6'#4'Left'#2#7#6'Height'#2#14#3'Top'#2#27#5'Width'#2#31#7'Caption'#6
+#5'Row 1'#11'ParentColor'#8#0#0#6'TLabel'#6'Label7'#4'Left'#2#7#6'Height'#2
+#14#3'Top'#2';'#5'Width'#2#31#7'Caption'#6#5'Row 2'#11'ParentColor'#8#0#0#6
+'TLabel'#6'Label8'#4'Left'#2'('#6'Height'#2#14#3'Top'#2#9#5'Width'#2#29#7'Ca'
+'ption'#6#6'Col. 1'#11'ParentColor'#8#0#0#6'TLabel'#6'Label9'#4'Left'#2'X'#6
+'Height'#2#14#3'Top'#2#9#5'Width'#2#29#7'Caption'#6#6'Col. 2'#11'ParentColor'
+#8#0#0#5'TEdit'#8'RC11Edit'#4'Left'#2'('#6'Height'#2#21#3'Top'#2#24#5'Width'
+#2'&'#10'OnKeyPress'#7#16'RC11EditKeyPress'#8'TabOrder'#2#0#4'Text'#6#8'RC11'
+'Edit'#0#0#5'TEdit'#8'RC12Edit'#4'Left'#2'W'#6'Height'#2#20#3'Top'#2#24#5'Wi'
+'dth'#2'+'#10'OnKeyPress'#7#16'RC12EditKeyPress'#8'TabOrder'#2#1#4'Text'#6#8
+'RC12Edit'#0#0#5'TEdit'#8'RC21Edit'#4'Left'#2'('#6'Height'#2#18#3'Top'#2'7'#5
+'Width'#2'$'#10'OnKeyPress'#7#16'RC21EditKeyPress'#8'TabOrder'#2#2#4'Text'#6
+#8'RC21Edit'#0#0#5'TEdit'#8'RC22Edit'#4'Left'#2'X'#6'Height'#2#16#3'Top'#2'6'
+#5'Width'#2'*'#10'OnKeyPress'#7#16'RC22EditKeyPress'#8'TabOrder'#2#3#4'Text'
+#6#8'RC22Edit'#0#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#168#1#6'Height'#2#29#3
+'Top'#2'p'#5'Width'#2'S'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'
+#8'TabOrder'#2#8#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#168#1#6'Height'#2#29#3
+'Top'#3#176#0#5'Width'#2'S'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'Tab'
+'Order'#2#9#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#168#1#6'Height'#2#29#3'T'
+'op'#3#240#0#5'Width'#2'S'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBt'
+'nClick'#8'TabOrder'#2#10#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#168#1#6'Heig'
+'ht'#2#29#3'Top'#3'('#1#5'Width'#2'S'#7'Caption'#6#6'Return'#11'ModalResult'
+#2#1#8'TabOrder'#2#11#0#0#0
]);

View File

@ -1,56 +0,0 @@
unit ExpSmoothUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TExpSmoothFrm }
TExpSmoothFrm = class(TForm)
AlphaEdit: TEdit;
CancelBtn: TButton;
OKBtn: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
AlphaScroll: TScrollBar;
procedure AlphaScrollChange(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
alpha : double;
end;
var
ExpSmoothFrm: TExpSmoothFrm;
implementation
{ TExpSmoothFrm }
procedure TExpSmoothFrm.FormShow(Sender: TObject);
begin
AlphaEdit.Text := '0.99';
AlphaScroll.Position := 99;
alpha := 0.99;
end;
procedure TExpSmoothFrm.AlphaScrollChange(Sender: TObject);
begin
AlphaEdit.Text := FloatToStr(AlphaScroll.Position / 100.0);
alpha := AlphaScroll.Position / 100.0;
end;
initialization
{$I expsmoothunit.lrs}
end.

View File

@ -1,72 +0,0 @@
object ExpSmoothFrm: TExpSmoothFrm
Left = 208
Height = 166
Top = 135
Width = 273
Caption = 'Exponential Smoothing Form'
ClientHeight = 166
ClientWidth = 273
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 8
Height = 14
Top = 24
Width = 42
Caption = 'Alpha = '
ParentColor = False
end
object Label2: TLabel
Left = 8
Height = 14
Top = 80
Width = 17
Caption = '0.0'
ParentColor = False
end
object Label3: TLabel
Left = 240
Height = 14
Top = 80
Width = 17
Caption = '1.0'
ParentColor = False
end
object AlphaEdit: TEdit
Left = 64
Height = 21
Top = 17
Width = 44
TabOrder = 0
Text = '0.99'
end
object AlphaScroll: TScrollBar
Left = 8
Height = 23
Top = 48
Width = 253
Max = 1
PageSize = 0
Position = 1
TabOrder = 1
OnChange = AlphaScrollChange
end
object CancelBtn: TButton
Left = 8
Height = 28
Top = 112
Width = 75
Caption = 'Cancel'
ModalResult = 2
TabOrder = 2
end
object OKBtn: TButton
Left = 184
Height = 28
Top = 112
Width = 75
Caption = 'OK'
ModalResult = 1
TabOrder = 3
end
end

View File

@ -1,20 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TExpSmoothFrm','FORMDATA',[
'TPF0'#13'TExpSmoothFrm'#12'ExpSmoothFrm'#4'Left'#3#208#0#6'Height'#3#166#0#3
+'Top'#3#135#0#5'Width'#3#17#1#7'Caption'#6#26'Exponential Smoothing Form'#12
+'ClientHeight'#3#166#0#11'ClientWidth'#3#17#1#6'OnShow'#7#8'FormShow'#10'LCL'
+'Version'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'#2#14#3'T'
+'op'#2#24#5'Width'#2'*'#7'Caption'#6#8'Alpha = '#11'ParentColor'#8#0#0#6'TLa'
+'bel'#6'Label2'#4'Left'#2#8#6'Height'#2#14#3'Top'#2'P'#5'Width'#2#17#7'Capti'
+'on'#6#3'0.0'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#240#0#6'He'
+'ight'#2#14#3'Top'#2'P'#5'Width'#2#17#7'Caption'#6#3'1.0'#11'ParentColor'#8#0
+#0#5'TEdit'#9'AlphaEdit'#4'Left'#2'@'#6'Height'#2#21#3'Top'#2#17#5'Width'#2
+','#8'TabOrder'#2#0#4'Text'#6#4'0.99'#0#0#10'TScrollBar'#11'AlphaScroll'#4'L'
+'eft'#2#8#6'Height'#2#23#3'Top'#2'0'#5'Width'#3#253#0#3'Max'#2#1#8'PageSize'
+#2#0#8'Position'#2#1#8'TabOrder'#2#1#8'OnChange'#7#17'AlphaScrollChange'#0#0
+#7'TButton'#9'CancelBtn'#4'Left'#2#8#6'Height'#2#28#3'Top'#2'p'#5'Width'#2'K'
+#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#2#0#0#7'TButton'#5
+'OKBtn'#4'Left'#3#184#0#6'Height'#2#28#3'Top'#2'p'#5'Width'#2'K'#7'Caption'#6
+#2'OK'#11'ModalResult'#2#1#8'TabOrder'#2#3#0#0#0
]);

File diff suppressed because it is too large Load Diff

View File

@ -1,379 +0,0 @@
object FactorFrm: TFactorFrm
Left = 181
Height = 486
Top = 99
Width = 608
Caption = 'Factor Analysis'
ClientHeight = 486
ClientWidth = 608
OnShow = FormShow
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 6
Height = 14
Top = 1
Width = 90
Caption = 'Available Variables'
ParentColor = False
end
object Label2: TLabel
Left = 227
Height = 14
Top = 1
Width = 88
Caption = 'Selected Variables'
ParentColor = False
end
object Label3: TLabel
Left = 415
Height = 14
Top = 328
Width = 115
Caption = 'Min. root size to rotate:'
ParentColor = False
end
object Label4: TLabel
Left = 415
Height = 14
Top = 358
Width = 99
Caption = 'Maximum Iterations:'
ParentColor = False
end
object Label5: TLabel
Left = 414
Height = 14
Top = 391
Width = 108
Caption = 'Maximum No. Factors:'
ParentColor = False
end
object VarList: TListBox
Left = 7
Height = 295
Top = 15
Width = 169
ItemHeight = 0
MultiSelect = True
TabOrder = 0
end
object InBtn: TBitBtn
Left = 183
Height = 35
Top = 16
Width = 36
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
}
NumGlyphs = 0
OnClick = InBtnClick
TabOrder = 1
end
object OutBtn: TBitBtn
Left = 184
Height = 35
Top = 56
Width = 36
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
}
NumGlyphs = 0
OnClick = OutBtnClick
TabOrder = 2
end
object FactorList: TListBox
Left = 225
Height = 292
Top = 16
Width = 173
ItemHeight = 0
TabOrder = 3
end
object TypeGroup: TRadioGroup
Left = 416
Height = 156
Top = 4
Width = 187
AutoFill = True
Caption = 'Type of Analysis'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 138
ClientWidth = 183
Items.Strings = (
'Principal Components'
'Partial Image (No Iterations)'
'Guttman Image'
'Harris Scaled Image'
'Canonical (Max. Likelihood)'
'Alpha'
'Principal Factors'
)
TabOrder = 4
end
object RotateGroup: TRadioGroup
Left = 415
Height = 133
Top = 176
Width = 187
AutoFill = True
Caption = 'Rotation Option'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 115
ClientWidth = 183
Items.Strings = (
'Varimax'
'Oblimax'
'Quartimax'
'Manual (Graphical)'
'Procrustian'
'NO rotation'
)
TabOrder = 5
end
object GroupBox1: TGroupBox
Left = 6
Height = 110
Top = 320
Width = 393
Caption = 'Output Options:'
ClientHeight = 92
ClientWidth = 389
TabOrder = 6
object DescBtn: TCheckBox
Left = 6
Height = 17
Top = 2
Width = 119
Caption = 'Descriptive Statistics'
TabOrder = 0
end
object RMatBtn: TCheckBox
Left = 6
Height = 17
Top = 24
Width = 106
Caption = 'Correlation Matrix'
TabOrder = 1
end
object UnrotBtn: TCheckBox
Left = 5
Height = 17
Top = 46
Width = 108
Caption = 'Unrotated Factors'
TabOrder = 2
end
object PcntTrBtn: TCheckBox
Left = 6
Height = 17
Top = 67
Width = 87
Caption = 'Percent Trace'
TabOrder = 3
end
object ScreeBtn: TCheckBox
Left = 137
Height = 17
Top = 2
Width = 68
Caption = 'Scree Plot'
TabOrder = 4
end
object ComUnBtn: TCheckBox
Left = 136
Height = 17
Top = 24
Width = 88
Caption = 'Communalities'
TabOrder = 5
end
object PlotBtn: TCheckBox
Left = 137
Height = 17
Top = 46
Width = 77
Caption = 'Plot Factors'
TabOrder = 6
end
object ScoresBtn: TCheckBox
Left = 137
Height = 17
Top = 67
Width = 86
Caption = 'Factor Scores'
TabOrder = 7
end
object SaveCorsBtn: TCheckBox
Left = 248
Height = 17
Top = 2
Width = 133
Caption = 'Save Correlation Matrix'
TabOrder = 8
end
object SaveFactBtn: TCheckBox
Left = 248
Height = 17
Top = 24
Width = 111
Caption = 'Save Factor Matrix'
TabOrder = 9
end
object SortBtn: TCheckBox
Left = 248
Height = 17
Top = 46
Width = 79
Caption = 'Sort Factors'
TabOrder = 10
end
end
object MinRootEdit: TEdit
Left = 568
Height = 21
Top = 323
Width = 32
TabOrder = 7
Text = 'MinRootEdit'
end
object MaxItersEdit: TEdit
Left = 568
Height = 21
Top = 353
Width = 32
TabOrder = 8
Text = 'Edit1'
end
object MaxFactorsEdit: TEdit
Left = 568
Height = 21
Top = 386
Width = 32
TabOrder = 9
Text = 'Edit1'
end
object ResetBtn: TButton
Left = 7
Height = 30
Top = 440
Width = 74
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 10
end
object CancelBtn: TButton
Left = 102
Height = 30
Top = 440
Width = 74
Caption = 'Cancel'
ModalResult = 2
TabOrder = 11
end
object ComputeBtn: TButton
Left = 224
Height = 30
Top = 440
Width = 74
Caption = 'Compute'
OnClick = ComputeBtnClick
TabOrder = 12
end
object ReturnBtn: TButton
Left = 320
Height = 30
Top = 440
Width = 74
Caption = 'Return'
ModalResult = 1
TabOrder = 13
end
object OpenDialog1: TOpenDialog
left = 425
top = 431
end
object SaveDialog1: TSaveDialog
left = 472
top = 431
end
end

View File

@ -1,180 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TFactorFrm','FORMDATA',[
'TPF0'#10'TFactorFrm'#9'FactorFrm'#4'Left'#3#181#0#6'Height'#3#230#1#3'Top'#2
+'c'#5'Width'#3'`'#2#7'Caption'#6#15'Factor Analysis'#12'ClientHeight'#3#230#1
+#11'ClientWidth'#3'`'#2#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#8'0.9.28.2'
+#0#6'TLabel'#6'Label1'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#1#5'Width'#2'Z'#7
+'Caption'#6#19'Available Variables'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'
+#4'Left'#3#227#0#6'Height'#2#14#3'Top'#2#1#5'Width'#2'X'#7'Caption'#6#18'Sel'
+'ected Variables'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#159#1#6
+'Height'#2#14#3'Top'#3'H'#1#5'Width'#2's'#7'Caption'#6#25'Min. root size to '
+'rotate:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#3#159#1#6'Height'
+#2#14#3'Top'#3'f'#1#5'Width'#2'c'#7'Caption'#6#19'Maximum Iterations:'#11'Pa'
+'rentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#3#158#1#6'Height'#2#14#3'Top'#3
+#135#1#5'Width'#2'l'#7'Caption'#6#20'Maximum No. Factors:'#11'ParentColor'#8
+#0#0#8'TListBox'#7'VarList'#4'Left'#2#7#6'Height'#3''''#1#3'Top'#2#15#5'Widt'
+'h'#3#169#0#10'ItemHeight'#2#0#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#7'TBitB'
+'tn'#5'InBtn'#4'Left'#3#183#0#6'Height'#2'#'#3'Top'#2#16#5'Width'#2'$'#10'Gl'
+'yph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0
+#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'!c$'
+#184#29'^ '#6#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0'*p/8%i)'#247'!c$'#217#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0'a'#190'm'#255']'#184'h'#255'X'
+#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'
+#255'5'#128';'#255'?'#136'E'#255'Y'#161'^'#255'D'#139'I'#255'!c$'#207#255#255
+#255#0#255#255#255#0#255#255#255#0'e'#195'q'#255#160#215#169#255#156#213#165
+#255#152#211#161#255#148#208#157#255#144#206#152#255#139#203#147#255#135#201
+#142#255#130#198#137#255'~'#195#132#255'z'#193#128#255'v'#190'|'#255'E'#140
+'J'#255'!c$'#196#255#255#255#0#255#255#255#0'h'#199't'#255#165#218#174#255
+#162#216#171#255#158#214#167#255#154#212#163#255#150#210#159#255#147#207#154
+#255#142#204#149#255#137#202#144#255#133#199#139#255#129#197#135#255'}'#194
+#130#255'J'#145'P'#255'%i)'#201#255#255#255#0#255#255#255#0'h'#199't'#255'h'
+#199't'#255'e'#195'q'#255'a'#190'm'#255']'#184'h'#255'X'#177'b'#255'S'#169'\'
+#255'M'#161'V'#255'G'#153'O'#255'A'#145'I'#255'Z'#163'b'#255'U'#157'\'#255'/'
+'x5'#209#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'A'#145'I'#247';'#136'B'#219#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'G'#153'O'#187'A'#145'I'#6#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
,#255#255#255#0#255#255#255#0#9'NumGlyphs'#2#0#7'OnClick'#7#10'InBtnClick'#8
+'TabOrder'#2#1#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#184#0#6'Height'#2'#'#3'Top'
+#2'8'#5'Width'#2'$'#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'
+#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0
+#0#0#0#0#0#0#0#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'M'#161'V'#6'G'#153
+'O'#184#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0'S'#169'\'#217'M'#161'V'
+#247'G'#153'O8'#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0']'#184'h'#207'q'#190'{'#255'z'#193#131#255
+'['#170'd'#255'G'#153'O'#255'A'#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'
+#255'*p/'#255'%i)'#255'!c$'#255#29'^ '#255#255#255#255#0#255#255#255#0'e'#195
+'q'#196'{'#200#134#255#156#213#165#255#152#211#161#255#148#208#157#255#144
+#206#152#255#139#203#147#255#135#201#142#255#130#198#137#255'~'#195#132#255
+'z'#193#128#255'v'#190'|'#255'r'#189'x'#255'!c$'#255#255#255#255#0#255#255
+#255#0'h'#199't'#201#127#204#138#255#162#216#171#255#158#214#167#255#154#212
+#163#255#150#210#159#255#147#207#154#255#142#204#149#255#137#202#144#255#133
+#199#139#255#129#197#135#255'}'#194#130#255'x'#192'~'#255'%i)'#255#255#255
+#255#0#255#255#255#0#255#255#255#0'h'#199't'#209#128#205#139#255'|'#201#135
+#255']'#184'h'#255'X'#177'b'#255'S'#169'\'#255'M'#161'V'#255'G'#153'O'#255'A'
+#145'I'#255';'#136'B'#255'5'#128';'#255'/x5'#255'*p/'#255#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#219'e'#195'q'#247#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0'h'#199't'#6'h'#199't'#187#255#255#255
+#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255
+#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0
+#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255
+#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#11'OutBtnClick'#8'TabOrder'#2#2#0#0#8'TListBox'#10'Fac'
+'torList'#4'Left'#3#225#0#6'Height'#3'$'#1#3'Top'#2#16#5'Width'#3#173#0#10'I'
+'temHeight'#2#0#8'TabOrder'#2#3#0#0#11'TRadioGroup'#9'TypeGroup'#4'Left'#3
+#160#1#6'Height'#3#156#0#3'Top'#2#4#5'Width'#3#187#0#8'AutoFill'#9#7'Caption'
+#6#16'Type of Analysis'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.'
+'TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousC'
+'hildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'
+#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.Shrink'
+'Vertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightTh'
+'enTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#3#138#0
+#11'ClientWidth'#3#183#0#13'Items.Strings'#1#6#20'Principal Components'#6#29
+'Partial Image (No Iterations)'#6#13'Guttman Image'#6#19'Harris Scaled Image'
,#6#27'Canonical (Max. Likelihood)'#6#5'Alpha'#6#17'Principal Factors'#0#8'Ta'
+'bOrder'#2#4#0#0#11'TRadioGroup'#11'RotateGroup'#4'Left'#3#159#1#6'Height'#3
+#133#0#3'Top'#3#176#0#5'Width'#3#187#0#8'AutoFill'#9#7'Caption'#6#15'Rotatio'
+'n Option'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpac'
+'ing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27
+'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.'
+'ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14
+'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'
+#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2's'#11'ClientWidth'#3
+#183#0#13'Items.Strings'#1#6#7'Varimax'#6#7'Oblimax'#6#9'Quartimax'#6#18'Man'
+'ual (Graphical)'#6#11'Procrustian'#6#11'NO rotation'#0#8'TabOrder'#2#5#0#0#9
+'TGroupBox'#9'GroupBox1'#4'Left'#2#6#6'Height'#2'n'#3'Top'#3'@'#1#5'Width'#3
+#137#1#7'Caption'#6#15'Output Options:'#12'ClientHeight'#2'\'#11'ClientWidth'
+#3#133#1#8'TabOrder'#2#6#0#9'TCheckBox'#7'DescBtn'#4'Left'#2#6#6'Height'#2#17
+#3'Top'#2#2#5'Width'#2'w'#7'Caption'#6#22'Descriptive Statistics'#8'TabOrder'
+#2#0#0#0#9'TCheckBox'#7'RMatBtn'#4'Left'#2#6#6'Height'#2#17#3'Top'#2#24#5'Wi'
+'dth'#2'j'#7'Caption'#6#18'Correlation Matrix'#8'TabOrder'#2#1#0#0#9'TCheckB'
+'ox'#8'UnrotBtn'#4'Left'#2#5#6'Height'#2#17#3'Top'#2'.'#5'Width'#2'l'#7'Capt'
+'ion'#6#17'Unrotated Factors'#8'TabOrder'#2#2#0#0#9'TCheckBox'#9'PcntTrBtn'#4
+'Left'#2#6#6'Height'#2#17#3'Top'#2'C'#5'Width'#2'W'#7'Caption'#6#13'Percent '
+'Trace'#8'TabOrder'#2#3#0#0#9'TCheckBox'#8'ScreeBtn'#4'Left'#3#137#0#6'Heigh'
+'t'#2#17#3'Top'#2#2#5'Width'#2'D'#7'Caption'#6#10'Scree Plot'#8'TabOrder'#2#4
+#0#0#9'TCheckBox'#8'ComUnBtn'#4'Left'#3#136#0#6'Height'#2#17#3'Top'#2#24#5'W'
+'idth'#2'X'#7'Caption'#6#13'Communalities'#8'TabOrder'#2#5#0#0#9'TCheckBox'#7
+'PlotBtn'#4'Left'#3#137#0#6'Height'#2#17#3'Top'#2'.'#5'Width'#2'M'#7'Caption'
+#6#12'Plot Factors'#8'TabOrder'#2#6#0#0#9'TCheckBox'#9'ScoresBtn'#4'Left'#3
+#137#0#6'Height'#2#17#3'Top'#2'C'#5'Width'#2'V'#7'Caption'#6#13'Factor Score'
+'s'#8'TabOrder'#2#7#0#0#9'TCheckBox'#11'SaveCorsBtn'#4'Left'#3#248#0#6'Heigh'
+'t'#2#17#3'Top'#2#2#5'Width'#3#133#0#7'Caption'#6#23'Save Correlation Matrix'
+#8'TabOrder'#2#8#0#0#9'TCheckBox'#11'SaveFactBtn'#4'Left'#3#248#0#6'Height'#2
+#17#3'Top'#2#24#5'Width'#2'o'#7'Caption'#6#18'Save Factor Matrix'#8'TabOrder'
+#2#9#0#0#9'TCheckBox'#7'SortBtn'#4'Left'#3#248#0#6'Height'#2#17#3'Top'#2'.'#5
+'Width'#2'O'#7'Caption'#6#12'Sort Factors'#8'TabOrder'#2#10#0#0#0#5'TEdit'#11
+'MinRootEdit'#4'Left'#3'8'#2#6'Height'#2#21#3'Top'#3'C'#1#5'Width'#2' '#8'Ta'
+'bOrder'#2#7#4'Text'#6#11'MinRootEdit'#0#0#5'TEdit'#12'MaxItersEdit'#4'Left'
+#3'8'#2#6'Height'#2#21#3'Top'#3'a'#1#5'Width'#2' '#8'TabOrder'#2#8#4'Text'#6
+#5'Edit1'#0#0#5'TEdit'#14'MaxFactorsEdit'#4'Left'#3'8'#2#6'Height'#2#21#3'To'
+'p'#3#130#1#5'Width'#2' '#8'TabOrder'#2#9#4'Text'#6#5'Edit1'#0#0#7'TButton'#8
+'ResetBtn'#4'Left'#2#7#6'Height'#2#30#3'Top'#3#184#1#5'Width'#2'J'#7'Caption'
+#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#10#0#0#7'TButton'#9
+'CancelBtn'#4'Left'#2'f'#6'Height'#2#30#3'Top'#3#184#1#5'Width'#2'J'#7'Capti'
+'on'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#11#0#0#7'TButton'#10'Comp'
+'uteBtn'#4'Left'#3#224#0#6'Height'#2#30#3'Top'#3#184#1#5'Width'#2'J'#7'Capti'
+'on'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#12#0#0#7'TB'
+'utton'#9'ReturnBtn'#4'Left'#3'@'#1#6'Height'#2#30#3'Top'#3#184#1#5'Width'#2
+'J'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#13#0#0#11'TOpen'
+'Dialog'#11'OpenDialog1'#4'left'#3#169#1#3'top'#3#175#1#0#0#11'TSaveDialog'
+#11'SaveDialog1'#4'left'#3#216#1#3'top'#3#175#1#0#0#0
]);

View File

@ -1,36 +0,0 @@
unit FFTUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TFFTFrm }
TFFTFrm = class(TForm)
CancelBtn: TButton;
OKBtn: TButton;
NptsEdit: TEdit;
Label1: TLabel;
Memo1: TMemo;
private
{ private declarations }
public
{ public declarations }
end;
var
FFTFrm: TFFTFrm;
implementation
initialization
{$I fftunit.lrs}
end.

View File

@ -1,54 +0,0 @@
object FFTFrm: TFFTFrm
Left = 192
Height = 138
Top = 136
Width = 232
Caption = 'Fourier Transform Form'
ClientHeight = 138
ClientWidth = 232
LCLVersion = '0.9.28.2'
object Label1: TLabel
Left = 8
Height = 14
Top = 72
Width = 90
Caption = 'Number of points: '
ParentColor = False
end
object Memo1: TMemo
Left = 7
Height = 44
Top = 8
Width = 209
Lines.Strings = (
'Enter the number of data points to '
'include in the Fourier smoothing.'
)
TabOrder = 0
end
object NptsEdit: TEdit
Left = 104
Height = 21
Top = 62
Width = 45
TabOrder = 1
end
object CancelBtn: TButton
Left = 7
Height = 29
Top = 97
Width = 70
Caption = 'Cancel'
ModalResult = 2
TabOrder = 2
end
object OKBtn: TButton
Left = 112
Height = 29
Top = 97
Width = 70
Caption = 'OK'
ModalResult = 1
TabOrder = 3
end
end

View File

@ -1,16 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TFFTFrm','FORMDATA',[
'TPF0'#7'TFFTFrm'#6'FFTFrm'#4'Left'#3#192#0#6'Height'#3#138#0#3'Top'#3#136#0#5
+'Width'#3#232#0#7'Caption'#6#22'Fourier Transform Form'#12'ClientHeight'#3
+#138#0#11'ClientWidth'#3#232#0#10'LCLVersion'#6#8'0.9.28.2'#0#6'TLabel'#6'La'
+'bel1'#4'Left'#2#8#6'Height'#2#14#3'Top'#2'H'#5'Width'#2'Z'#7'Caption'#6#18
+'Number of points: '#11'ParentColor'#8#0#0#5'TMemo'#5'Memo1'#4'Left'#2#7#6'H'
+'eight'#2','#3'Top'#2#8#5'Width'#3#209#0#13'Lines.Strings'#1#6'#Enter the nu'
+'mber of data points to '#6'!include in the Fourier smoothing.'#0#8'TabOrder'
+#2#0#0#0#5'TEdit'#8'NptsEdit'#4'Left'#2'h'#6'Height'#2#21#3'Top'#2'>'#5'Widt'
+'h'#2'-'#8'TabOrder'#2#1#0#0#7'TButton'#9'CancelBtn'#4'Left'#2#7#6'Height'#2
+#29#3'Top'#2'a'#5'Width'#2'F'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'T'
+'abOrder'#2#2#0#0#7'TButton'#5'OKBtn'#4'Left'#2'p'#6'Height'#2#29#3'Top'#2'a'
+#5'Width'#2'F'#7'Caption'#6#2'OK'#11'ModalResult'#2#1#8'TabOrder'#2#3#0#0#0
]);

View File

@ -1,447 +0,0 @@
unit FileExtractUnit;
{$MODE Delphi}
interface
uses
LCLIntf, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, ExtCtrls, GLOBALS, OS3MainUnit, DATAPROCS, DICTIONARYUNIT,
LResources, Buttons;
type
TFileExtractFrm = class(TForm)
Memo1: TMemo;
Label2: TLabel;
NoLinesEdit: TEdit;
Label3: TLabel;
NoFieldsEdit: TEdit;
FormatGrp: TRadioGroup;
Label4: TLabel;
KeyVarNoEdit: TEdit;
Label5: TLabel;
ValueEdit: TEdit;
LabelsChk: TCheckBox;
FmtGrid: TStringGrid;
CancelBtn: TButton;
OKBtn: TButton;
ResetBtn: TButton;
ExtractBtn: TButton;
OpenDialog1: TOpenDialog;
FileSelBtn: TButton;
Label1: TLabel;
NoGotEdit: TEdit;
Label6: TLabel;
RecdReadEdit: TEdit;
TypeBox: TComboBox;
procedure ResetBtnClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CancelBtnClick(Sender: TObject);
procedure FormatGrpClick(Sender: TObject);
procedure OKBtnClick(Sender: TObject);
procedure ExtractBtnClick(Sender: TObject);
procedure FileSelBtnClick(Sender: TObject);
procedure TypeBoxChange(Sender: TObject);
private
{ Private declarations }
FileName : string;
public
{ Public declarations }
function GetValues(VAR TheFile : TextFile;
NoLines : integer;
NoFlds : integer;
Token : integer;
VAR StrValues : StrDyneVec) : boolean;
procedure PutGrid(RecdNo : integer;
NoFlds : integer;
LabelsFirst : boolean;
VAR StrValues : StrDyneVec);
function GetFmtValues(VAR TheFile : TextFile;
NoLines : integer;
NoFlds : integer;
VAR StrValues : StrDyneVec) : boolean;
end;
var
FileExtractFrm: TFileExtractFrm;
implementation
procedure TFileExtractFrm.ResetBtnClick(Sender: TObject);
begin
NoLinesEdit.Text := '1';
NoFieldsEdit.Text := '';
KeyVarNoEdit.Text := '';
ValueEdit.Text := '';
NoGotEdit.Text := '';
RecdReadEdit.Text := '';
FormatGrp.ItemIndex := 0;
LabelsChk.Checked := false;
FmtGrid.Cells[0,0] := 'Field';
FmtGrid.Cells[1,0] := 'Start';
FmtGrid.Cells[2,0] := 'End';
FmtGrid.Cells[3,0] := 'Data Type';
FmtGrid.Cells[4,0] := 'Line No.';
FmtGrid.Cells[5,0] := 'Label';
FmtGrid.Visible := false;
TypeBox.Text := 'Types';
TypeBox.Visible := false;
end;
//--------------------------------------------------------
procedure TFileExtractFrm.FormShow(Sender: TObject);
begin
ResetBtnClick(self);
end;
//---------------------------------------------------------
procedure TFileExtractFrm.CancelBtnClick(Sender: TObject);
begin
FileExtractFrm.Hide;
end;
//--------------------------------------------------------------
procedure TFileExtractFrm.FormatGrpClick(Sender: TObject);
begin
if FormatGrp.ItemIndex = 3 then
begin
FmtGrid.RowCount := StrToInt(NoFieldsEdit.Text) + 1;
FmtGrid.Visible := true;
TypeBox.Visible := true;
end
else begin
FmtGrid.Visible := false;
TypeBox.Visible := false;
end;
end;
//-------------------------------------------------------------
procedure TFileExtractFrm.OKBtnClick(Sender: TObject);
begin
FileExtractFrm.Hide;
end;
//---------------------------------------------------------------------
function TFileExtractFrm.GetValues(VAR TheFile : TextFile;
NoLines : integer;
NoFlds : integer;
Token : integer;
VAR StrValues : StrDyneVec) : boolean;
var
done, endline : boolean;
i, valcount : integer;
cellstring : string;
achar : char;
begin
done := false;
valcount := 0;
if not done then
begin
for i := 1 to NoLines do
begin
endline := false;
while not endline do
begin
read(TheFile,achar);
if EOF(TheFile) then
begin
done := true;
GetValues := done;
exit;
end;
if ord(achar) = 10 then continue; // ignore line feed
if ord(achar) <> 13 then // not a new line
begin
if ord(achar) <> Token then // not a tab character
cellstring := cellstring + achar
else
begin // Token character found - save string and bump counter
StrValues[valcount] := cellstring;
cellstring := '';
valcount := valcount + 1;
end;
end // not a new line - tab or character found
else begin
endline := true;
StrValues[valcount] := cellstring;
valcount := valcount + 1;
cellstring := '';
end;
end; // next line
end; // next line
end // net yet at eof
else done := true;
if valcount <> NoFlds then
begin
ShowMessage('ERROR! Mismatched no. fields - see grid for first record');
FmtGrid.ColCount := valcount + 1;
FmtGrid.Visible := true;
for i := 1 to NoFlds do
FmtGrid.Cells[i-1,0] := StrValues[i-1];
done := true;
end;
GetValues := done;
end;
//---------------------------------------------------------------------
procedure TFileExtractFrm.PutGrid(RecdNo : integer;
NoFlds : integer;
LabelsFirst : boolean;
VAR StrValues : StrDyneVec);
var
i : integer;
cellstring : string;
begin
if LabelsFirst = true then
begin
OS3MainFrm.DataGrid.RowCount := 2;
OS3MainFrm.DataGrid.Cells[0,0] := 'Case 0';
for i := 1 to NoFlds do OS3MainFrm.DataGrid.Cells[i,0] := StrValues[i-1];
end
else
begin
OS3MainFrm.DataGrid.RowCount := RecdNo + 1;
cellstring := 'Case ' + IntToStr(RecdNo);
OS3MainFrm.DataGrid.Cells[0,RecdNo] := cellstring;
for i := 1 to NoFlds do OS3MainFrm.DataGrid.Cells[i,RecdNo] := StrValues[i-1];
end;
end;
//---------------------------------------------------------------------
procedure TFileExtractFrm.ExtractBtnClick(Sender: TObject);
var
LabelsFirst : boolean; // first record contains variable labels
NoFlds : integer; // number of variables
NoLines : integer; // number of lines per record
FormatType : integer; // 1 = tab, 2 = comma, 3 = space, 4 = user spec.
KeyNo : integer; // sequence number of field containing the key
KeyValue : string; // value of the key field
TheFile : TextFile; // file handle
StrValues : StrDyneVec; // pointer to array of strings for record values
done : boolean;
NoRecords : integer;
Token : integer; // tab, comma or space charcter ordinal value
i, fldno : integer;
OldCursor : Tcursor;
NoRead : integer; // no. of records read from big file
fldtype : string;
cellstring : string; // for labels provided in the fmtgrid
begin
// get entered values from the form
if LabelsChk.Checked then LabelsFirst := true else LabelsFirst := false;
NoFlds := StrToInt(NoFieldsEdit.Text);
NoLines := StrToInt(NoLinesEdit.Text);
FormatType := FormatGrp.ItemIndex + 1;
KeyNo := StrToInt(KeyVarNoEdit.Text);
KeyValue := ValueEdit.Text;
SetLength(StrValues,NoFlds + 1);
done := false;
NoRecords := 0;
Token := ord(' '); // default of a space
OldCursor := FileExtractFrm.Cursor;
NoRead := 0;
OS3MainFrm.DataGrid.ColCount := NoFlds + 1;
for i := 1 to NoFlds do
begin
DictionaryFrm.DictGrid.RowCount := i;
DictionaryFrm.Defaults(Self,i);
VarDefined[i] := true;
end;
// open file for processing
AssignFile(TheFile,FileName);
Reset(TheFile);
// process first (or second) record according to format type
case FormatType of
1, 2, 3 : begin // tab seperated fields
FileExtractFrm.Cursor := crHourGlass;
if not LabelsFirst then
begin
// store labels (if not blank) into grid row 0 and type in defs.
for i := 1 to NoFlds do
begin
cellstring := format('VAR%2d',[i]);
OS3MainFrm.DataGrid.Cells[i,0] := cellstring;
end;
end;
while Not done do
begin
if FormatType = 1 then Token := 9; // tab character
if FormatType = 2 then Token := ord(','); // comma
if FormatType = 3 then Token := ord(' '); // space
done := GetValues(TheFile,NoLines,NoFlds,Token,StrValues);
if not done then
begin
NoRead := NoRead + 1;
if LabelsFirst then
begin
PutGrid(0,NoFlds,LabelsFirst,StrValues);
LabelsFirst := false;
end;
RecdReadEdit.Text := IntToStr(NoRead);
FileExtractFrm.Repaint;
StrValues[KeyNo-1] := Trim(StrValues[KeyNo-1]);
if StrValues[KeyNo-1] = KeyValue then // found group record
begin
NoRecords := NoRecords + 1;
PutGrid(NoRecords,NoFlds,LabelsFirst,StrValues);
NoGotEdit.Text := IntToStr(NoRecords);
end;
end;
end;
FileExtractFrm.Cursor := OldCursor;
OS3MainFrm.NoCasesEdit.Text := IntToStr(NoRecords);
OS3MainFrm.NoVarsEdit.Text := IntToStr(NoFlds);
OS3MainFrm.RowEdit.Text := '1';
OS3MainFrm.ColEdit.Text := '1';
OS3MainFrm.DataGrid.Row := 1;
OS3MainFrm.DataGrid.Col := 1;
NoVariables := NoFlds;
NoCases := NoRecords;
end;
4 : begin // user specified format
FileExtractFrm.Cursor := crHourGlass;
if not LabelsFirst then
begin
// store labels (if not blank) into grid row 0 and type in defs.
for i := 1 to NoFlds do
begin
fldno := StrToInt(FmtGrid.Cells[0,i]);
fldtype := FmtGrid.Cells[3,fldno];
DictionaryFrm.DictGrid.Cells[4,fldno] := fldtype[2];
cellstring := FmtGrid.Cells[5,fldno];
DictionaryFrm.DictGrid.Cells[1,fldno] := cellstring;
DictionaryFrm.DictGrid.Cells[2,fldno] := cellstring;
if cellstring <> '' then OS3MainFrm.DataGrid.Cells[i,0] := cellstring;
end;
end;
while NOT done do
begin
done := GetFmtValues(TheFile,NoLines,NoFlds,StrValues);
if not done then
begin
NoRead := NoRead + 1;
if LabelsFirst then
begin
PutGrid(0,NoFlds,LabelsFirst,StrValues);
LabelsFirst := false;
end;
RecdReadEdit.Text := IntToStr(NoRead);
FileExtractFrm.Repaint;
StrValues[KeyNo-1] := Trim(StrValues[KeyNo-1]);
if StrValues[KeyNo-1] = KeyValue then // found group record
begin
NoRecords := NoRecords + 1;
PutGrid(NoRecords,NoFlds,LabelsFirst,StrValues);
NoGotEdit.Text := IntToStr(NoRecords);
end;
end; // if not done
end; // while not done
FileExtractFrm.Cursor := OldCursor;
OS3MainFrm.NoCasesEdit.Text := IntToStr(NoRecords);
OS3MainFrm.NoVarsEdit.Text := IntToStr(NoFlds);
OS3MainFrm.RowEdit.Text := '1';
OS3MainFrm.ColEdit.Text := '1';
OS3MainFrm.DataGrid.Row := 1;
OS3MainFrm.DataGrid.Col := 1;
NoVariables := NoFlds;
NoCases := NoRecords;
end; // end case 4 (formatted input)
end; // end case switch
StrValues := nil;
CloseFile(TheFile);
end;
//------------------------------------------------------------------------
procedure TFileExtractFrm.FileSelBtnClick(Sender: TObject);
begin
OpenDialog1.Filter := 'Tab field files (*.tab)|*.TAB|Text files (*.txt)|*.TXT|All files (*.*)|*.*';
OpenDialog1.FilterIndex := 1;
OpenDialog1.DefaultExt := 'TAB';
if OpenDialog1.Execute then FileName := OpenDialog1.FileName
else ShowMessage('Error in opening File!');
end;
//-------------------------------------------------------------------------
function TFileExtractFrm.GetFmtValues(VAR TheFile : TextFile;
NoLines : integer;
NoFlds : integer;
VAR StrValues : StrDyneVec) : boolean;
var
done, endline : boolean;
i, j, endat, startat, stlong, valcount, fldno : integer;
LineStr : string;
achar : char;
begin
done := false;
valcount := 0;
if not done then
begin
for i := 1 to NoLines do
begin
endline := false;
while not endline do
begin
read(TheFile,achar);
if EOF(TheFile) then
begin
done := true;
GetFmtValues := done;
exit;
end;
if ord(achar) = 10 then continue; // ignore line feed
if ord(achar) <> 13 then LineStr := LineStr + achar
else endline := true;
end;
// now, parse values in this line
for j := 1 to NoFlds do
begin
if StrToInt(FmtGrid.Cells[4,j]) <> i then continue; // in line i?
startat := StrToInt(FmtGrid.Cells[1,j]);
endat := StrToInt(FmtGrid.Cells[2,j]);
stlong := endat - startat + 1;
fldno := StrToInt(FmtGrid.Cells[0,j]);
StrValues[fldno-1] := Copy(LineStr,startat,stlong);
valcount := valcount + 1;
end; // next j
LineStr := '';
end; // next line
end // not yet at eof
else done := true;
if valcount <> NoFlds then
begin
ShowMessage('ERROR! Mismatched no. fields and actual record data.');
done := true;
end;
GetFmtValues := done;
end;
//-----------------------------------------------------------------------
procedure TFileExtractFrm.TypeBoxChange(Sender: TObject);
var
index : integer;
row, col : integer;
begin
index := TypeBox.ItemIndex;
row := FmtGrid.Row;
col := FmtGrid.Col;
FmtGrid.Cells[col,row] := IntToStr(index);
end;
//-------------------------------------------------------------------------
initialization
{$i FILEEXTRACTUNIT.lrs}
{$i FILEEXTRACTUNIT.lrs}
end.

View File

@ -1,255 +0,0 @@
object FileExtractFrm: TFileExtractFrm
Left = 160
Height = 509
Top = 713
Width = 435
HelpContext = 406
HorzScrollBar.Page = 434
VertScrollBar.Page = 508
ActiveControl = NoFieldsEdit
Caption = 'File Extraction Procedure'
Font.Height = -11
Font.Name = 'MS Sans Serif'
HelpFile = 'OS2Help.hlp'
OnShow = FormShow
object Label2: TLabel
Left = 8
Height = 14
Top = 152
Width = 132
Caption = 'Number of lines per record:'
Color = clNone
ParentColor = False
end
object Label3: TLabel
Left = 224
Height = 14
Top = 152
Width = 170
Caption = 'No. of fields (variables) per record:'
Color = clNone
ParentColor = False
end
object Label4: TLabel
Left = 8
Height = 14
Top = 176
Width = 192
Caption = 'Sequence number of key selection field:'
Color = clNone
ParentColor = False
end
object Label5: TLabel
Left = 8
Height = 40
Top = 200
Width = 76
Caption = 'Selection Value (Including Dec. Fraction):'
Color = clNone
ParentColor = False
WordWrap = True
end
object Label1: TLabel
Left = 272
Height = 14
Top = 424
Width = 94
Caption = 'Records Retrieved:'
Color = clNone
ParentColor = False
end
object Label6: TLabel
Left = 8
Height = 14
Top = 424
Width = 96
Caption = 'Records Processed:'
Color = clNone
ParentColor = False
end
object Memo1: TMemo
Left = 24
Height = 113
Width = 377
Lines.Strings = (
'This procedure is used to extract records from files too large to read directly '
'into the data grid. The data grid can hold about 100,000 records. If your file'
'is larger but you will not be processing all records, you may extract sub-groups'
'of records using a "key" field, e.g. a group identification number. The records'
'extracted will be placed into the data grid as if you had entered them via the'
'keyboard. You may then save the sub-file, process it, etc. as any other file. If'
'you have multiple groups to extract, repeat pressing the Extract button until all'
'sub-files you need are placed into the data grid. Press return to continue.'
)
TabOrder = 4
end
object NoLinesEdit: TEdit
Left = 144
Height = 21
Top = 152
Width = 25
TabOrder = 5
end
object NoFieldsEdit: TEdit
Left = 392
Height = 21
Top = 152
Width = 25
TabOrder = 0
end
object FormatGrp: TRadioGroup
Left = 272
Height = 81
Top = 176
Width = 145
AutoFill = True
Caption = 'Record Format:'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
Items.Strings = (
'Tab seperated fields'
'comma seperated fields'
'space seperated fields'
'User specified format'
)
OnClick = FormatGrpClick
TabOrder = 3
end
object KeyVarNoEdit: TEdit
Left = 200
Height = 21
Top = 176
Width = 25
TabOrder = 1
end
object ValueEdit: TEdit
Left = 112
Height = 21
Top = 208
Width = 113
TabOrder = 2
end
object LabelsChk: TCheckBox
Left = 8
Height = 13
Top = 248
Width = 207
Caption = 'The first record contains variable labels.'
TabOrder = 6
end
object FmtGrid: TStringGrid
Left = 8
Height = 121
Top = 296
Width = 409
ColCount = 6
FixedColor = clBtnFace
FixedCols = 0
FixedRows = 0
GridLineWidth = 0
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goColMoving, goEditing, goTabs]
RowCount = 5
ScrollBars = ssAutoBoth
TabOrder = 7
TabStop = True
end
object CancelBtn: TButton
Left = 160
Height = 25
Top = 448
Width = 57
BorderSpacing.InnerBorder = 4
Caption = 'Cancel'
ModalResult = 2
OnClick = CancelBtnClick
TabOrder = 8
end
object OKBtn: TButton
Left = 360
Height = 25
Top = 448
Width = 57
BorderSpacing.InnerBorder = 4
Caption = 'Return'
ModalResult = 1
OnClick = OKBtnClick
TabOrder = 9
end
object ResetBtn: TButton
Left = 224
Height = 25
Top = 448
Width = 57
BorderSpacing.InnerBorder = 4
Caption = 'Reset'
OnClick = ResetBtnClick
TabOrder = 10
end
object ExtractBtn: TButton
Left = 288
Height = 25
Top = 448
Width = 65
BorderSpacing.InnerBorder = 4
Caption = 'Extract'
OnClick = ExtractBtnClick
TabOrder = 11
end
object FileSelBtn: TButton
Left = 8
Height = 25
Top = 120
Width = 201
BorderSpacing.InnerBorder = 4
Caption = 'Press to Select a Huge File for Extraction'
OnClick = FileSelBtnClick
TabOrder = 12
end
object NoGotEdit: TEdit
Left = 368
Height = 21
Top = 424
Width = 49
TabOrder = 13
Text = 'NoGotEdit'
end
object RecdReadEdit: TEdit
Left = 104
Height = 21
Top = 424
Width = 65
TabOrder = 14
Text = 'RecdReadEdit'
end
object TypeBox: TComboBox
Left = 208
Height = 21
Top = 272
Width = 57
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
ItemHeight = 13
Items.Strings = (
'(I)nteger'
'(F)loating point'
'(S)tring'
'(M)oney'
'(D)ate'
)
MaxLength = 0
OnChange = TypeBoxChange
TabOrder = 15
Text = 'Type'
end
object OpenDialog1: TOpenDialog
Title = 'Open existing file'
FilterIndex = 0
left = 240
top = 192
end
end

Some files were not shown because too many files have changed in this diff Show More