diff --git a/applications/lazstats/source_orig/ABCLogLinUnit.lfm b/applications/lazstats/source_orig/ABCLogLinUnit.lfm deleted file mode 100644 index a81eb567c..000000000 --- a/applications/lazstats/source_orig/ABCLogLinUnit.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/ABCLogLinUnit.lrs b/applications/lazstats/source_orig/ABCLogLinUnit.lrs deleted file mode 100644 index 5f87d56d2..000000000 --- a/applications/lazstats/source_orig/ABCLogLinUnit.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/ABCLogLinUnit.pas b/applications/lazstats/source_orig/ABCLogLinUnit.pas deleted file mode 100644 index ffe53a97e..000000000 --- a/applications/lazstats/source_orig/ABCLogLinUnit.pas +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/ABRANOVAUNIT.PAS b/applications/lazstats/source_orig/ABRANOVAUNIT.PAS deleted file mode 100644 index f8f9d9735..000000000 --- a/applications/lazstats/source_orig/ABRANOVAUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/ABRANOVAUNIT.lfm b/applications/lazstats/source_orig/ABRANOVAUNIT.lfm deleted file mode 100644 index c5b005787..000000000 --- a/applications/lazstats/source_orig/ABRANOVAUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/ABRANOVAUNIT.lrs b/applications/lazstats/source_orig/ABRANOVAUNIT.lrs deleted file mode 100644 index 7b1ed2094..000000000 --- a/applications/lazstats/source_orig/ABRANOVAUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/AJKLogLinUnit.pas b/applications/lazstats/source_orig/AJKLogLinUnit.pas deleted file mode 100644 index a74f1e186..000000000 --- a/applications/lazstats/source_orig/AJKLogLinUnit.pas +++ /dev/null @@ -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. diff --git a/applications/lazstats/source_orig/ANCOVAUNIT.PAS b/applications/lazstats/source_orig/ANCOVAUNIT.PAS deleted file mode 100644 index db884ee1e..000000000 --- a/applications/lazstats/source_orig/ANCOVAUNIT.PAS +++ /dev/null @@ -1,1154 +0,0 @@ -unit ANCOVAUNIT; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - MainUnit, OutPutUnit, FunctionsLib, GraphLib, - Globals, DataProcs, MatrixLib, DictionaryUnit, StdCtrls, Buttons, ExtCtrls,contexthelpunit; - -type - - { TANCOVAfrm } - - TANCOVAfrm = class(TForm) - HelpBtn: TButton; - MultCompChk: TCheckBox; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - PlotMeans: TCheckBox; - Inverses: TCheckBox; - RMats: TCheckBox; - Describe: TCheckBox; - DepIn: TBitBtn; - DepOut: TBitBtn; - FixedIn: TBitBtn; - FixedOut: TBitBtn; - CovIn: TBitBtn; - CovOut: TBitBtn; - DepVar: TEdit; - GroupBox1: TGroupBox; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - FixedList: TListBox; - Label4: TLabel; - CovList: TListBox; - VarList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure CovInClick(Sender: TObject); - procedure CovOutClick(Sender: TObject); - procedure DepInClick(Sender: TObject); - procedure DepOutClick(Sender: TObject); - procedure FixedInClick(Sender: TObject); - procedure FixedOutClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - NCases, NoSelected, NoFixed, NoCovs, DepColNo : integer; - ColNoSelected : IntDyneVec; // Grid col. no's of predictors - RowLabels, ColLabels : StrDyneVec; - CorMat : DblDyneMat; // correlation matrix - IndMat : DblDyneMat; // correlation matrix among independent variables - BetaWeights : DblDyneVec; // standardized regression weights - Means, Variances, StdDevs : DblDyneVec; - PrintIt : boolean; // true to print correlations in reg procedure - probout : double; // probability for removing a variable - Testout : boolean; // true if testing for retention of variables - plot : boolean; // if true, plot group means - StdErrEst : double; // standard error of estimate - multcomp : boolean; // if true make multiple comparisons - R2 : double; // squared multiple correlation coefficient - FixedCols : IntDyneVec; // grid columns of fixed variables - CovCols : IntDyneVec; // grid columns of covariates - mingrp, maxgrp : IntDyneVec; // min and max group codes - Block : IntDyneMat; // descriptors for group codings - // values 1 to 5 contain group min, max, startcol, endcol and no. of vectors - NoBlocks : integer; // number of vector blocks created for groups and inter. - errorcode : boolean; // returned by routines that use an errorcode - IndepIndex : IntDyneVec; // sequential number of predictors in corr. matrix - BlockLabel : StrDyneVec; - descript : boolean; - printinv : boolean; - NoTestVecs : integer; // no. of vectors for group interactions with covariates - constant : double; // regression constant - noind : integer; // no. of independent variables in a regression analysis - BWeights : DblDyneVec; // raw regression weights - BStdErrs : DblDyneVec; // standard errors of regression weights - BTtests : DblDyneVec; - - procedure GetParms(Sender: TObject); - procedure CodeGroups(Sender: TObject); - procedure GenInteractions(Sender: TObject); - procedure DoRegs(Sender: TObject); - procedure CleanUp(Sender: TObject); - procedure EntryOpt1(Sender: TObject); - procedure GenCovInteracts(Sender: TObject); - procedure AdjustMeans(Sender: TObject); - procedure MultCompare(Sender: TObject); - - public - { public declarations } - end; - -var - ANCOVAfrm: TANCOVAfrm; - -implementation - -{ TANCOVAfrm } - -procedure TANCOVAfrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - DepVar.Text := ''; - DepIn.Visible := true; - DepOut.Visible := false; - FixedIn.Visible := true; - FixedOut.Visible := false; - CovIn.Visible := true; - CovOut.Visible := false; - VarList.Clear; - CovList.Clear; - FixedList.Clear; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - Describe.Checked := true; - Rmats.Checked := false; - Inverses.Checked := false; - PlotMeans.Checked := false; - NoBlocks := 0; -end; - -procedure TANCOVAfrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TANCOVAfrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TANCOVAfrm.DepInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - DepVar.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - DepIn.Visible := false; - DepOut.Visible := true; -end; - -procedure TANCOVAfrm.CovInClick(Sender: TObject); -VAR i, index : integer; -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - CovList.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - CovOut.Visible := true; -end; - -procedure TANCOVAfrm.ComputeBtnClick(Sender: TObject); -begin - NoFixed := FixedList.Items.Count; - NoCovs := CovList.Items.Count; - if (NoFixed <= 0) or (NoCovs <= 0) then - begin - ShowMessage('ERROR! You must have at least one group variable and one covariate'); - exit; - end; - GetParms(self); - CodeGroups(self); - GenInteractions(self); - GenCovInteracts(self); - DoRegs(self); - CleanUp(self); - ReturnBtn.SetFocus; -end; - -procedure TANCOVAfrm.CovOutClick(Sender: TObject); -VAR index : integer; -begin - index := CovList.ItemIndex; - if index < 0 then - begin - CovOut.Visible := false; - exit; - end; - VarList.Items.Add(CovList.Items.Strings[index]); - CovList.Items.Delete(index); -end; - -procedure TANCOVAfrm.DepOutClick(Sender: TObject); -begin - VarList.Items.Add(DepVar.Text); - DepVar.Text := ''; - DepIn.Visible := true; - DepOut.Visible := false; -end; - -procedure TANCOVAfrm.FixedInClick(Sender: TObject); -VAR i, index : integer; -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - FixedList.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - FixedOut.Visible := true; -end; - -procedure TANCOVAfrm.FixedOutClick(Sender: TObject); -VAR index : integer; -begin - index := FixedList.ItemIndex; - if index < 0 then - begin - FixedOut.Visible := false; - exit; - end; - VarList.Items.Add(FixedList.Items.Strings[index]); - FixedList.Items.Delete(index); -end; - -procedure TANCOVAfrm.GetParms(Sender: TObject); -label covs; -VAR i, j : integer; -begin - SetLength(ColNoSelected,NoVariables); - SetLength(FixedCols,NoFixed); - SetLength(CovCols,NoCovs); - SetLength(mingrp,NoFixed); - SetLength(maxgrp,NoFixed); - SetLength(Block,100,5); - SetLength(BlockLabel,100); - - NoSelected := 0; - NoBlocks := 0; - if Describe.Checked then descript := true else descript := false; - if inverses.Checked then printinv := true else printinv := false; - if plotmeans.Checked then plot := true else plot := false; - if multcompchk.Checked then multcomp := true else multcomp := false; - for i := 1 to NoVariables do - begin - if DepVar.Text = OS3MainFrm.DataGrid.Cells[i,0] then - begin - DepColNo := i; - ColNoSelected[0] := i; - NoSelected := 1; - break; - end; - end; - - if NoFixed < 1 then goto covs; - for i := 0 to NoFixed - 1 do - begin - for j := 1 to NoVariables do - begin - if FixedList.Items.Strings[i] = OS3MainFrm.DataGrid.Cells[j,0] then - begin - FixedCols[i] := j; - ColNoSelected[NoSelected] := j; - NoSelected := NoSelected + 1; - break; - end; - end; - end; - -covs: if NoCovs < 1 then exit; - for i := 0 to NoCovs - 1 do - begin - for j := 1 to NoVariables do - begin - if CovList.Items.Strings[i] = OS3MainFrm.DataGrid.Cells[j,0] then - begin - CovCols[i] := j; - ColNoSelected[NoSelected] := j; - NoSelected := NoSelected + 1; - break; - end; - end; - end; - // create a "Block" for each covariate - for i := 0 to NoCovs-1 do - begin - NoBlocks := NoBlocks + 1; - Block[i,0] := 0; // group min - Block[i,1] := 0; // group max - Block[i,2] := CovCols[i]; // start column in grid - Block[i,3] := CovCols[i]; // end column in grid - Block[i,4] := 1; // no. of vectors - BlockLabel[i] := 'Cov' + IntToStr(i); - end; -end; - -procedure TANCOVAfrm.CodeGroups(Sender: TObject); -var - col, i, j, value, startcol, endcol, novectors : integer; - factlabel, cellstring : string; - -begin -// startcol := Block[NoBlocks,4] + 1; // next column after last block - for i := 0 to NoFixed-1 do // create a block for code vectors of each fixed variable - begin - col := FixedCols[i]; - factlabel := chr(ord('A')+i); - mingrp[i] := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,1]))); - maxgrp[i] := mingrp[i]; - for j := 1 to NoCases do - begin - if NOT GoodRecord(j,NoSelected,ColNoSelected) then continue; - cellstring := Trim(OS3MainFrm.DataGrid.Cells[col,j]); - value := round(StrToFloat(cellstring)); - if value < mingrp[i] then mingrp[i] := value; - if value > maxgrp[i] then maxgrp[i] := value; - end; - // create fixed effect coding for levels - 1 of the fixed effect var. - EffectCode(col,mingrp[i],maxgrp[i],factlabel,startcol, - endcol,novectors); - NoBlocks := NoBlocks + 1; - Block[NoBlocks-1,0] := mingrp[i]; - Block[NoBlocks-1,1] := maxgrp[i]; - Block[NoBlocks-1,2] := startcol; - Block[NoBlocks-1,3] := endcol; - Block[NoBlocks-1,4] := novectors; - BlockLabel[NoBlocks-1] := factlabel; - end; // next factor block -end; - -procedure TANCOVAfrm.GenInteractions(Sender: TObject); -type Twoway = array[0..9,0..1] of integer; -type Threeway = array[0..9,0..2] of integer; -type Fourway = array[0..4,0..3] of integer; -var - i, j, k, l, m, n, o, highest, col, vect1col, vect2col, vect3col, value : integer; - labelstr : string; - startcol, endcol, novectors, oldnovars : integer; - cell1, cell2, cell3, cell4 : string; - TwoWayCombos, ThreeWayCombos, FourwayCombos : double; - Block1, Block2, Block3, Block4, Start1, End1, Start2, End2, Start3, End3 : integer; - Start4, End4 : integer; - const Twoways: Twoway = ((1,2),(1,3),(2,3),(1,4),(2,4),(3,4),(1,5),(2,5),(3,5),(4,5)); - const Threeways: Threeway = ((1,2,3),(1,2,4),(1,3,4),(2,3,4),(1,2,5),(1,3,5), - (1,4,5),(2,3,5),(2,4,5),(3,4,5)); - const Fourways: Fourway = ((1,2,3,4),(1,2,3,5),(1,2,4,5),(1,3,4,5),(2,3,4,5)); - -begin - if NoFixed < 2 then exit; - novectors := 0; - // Do two-way interactions -// col := NoVariables; - TwoWayCombos := round(combos(2.0, NoFixed)); - oldnovars := NoVariables; - for i := 0 to round(TwoWayCombos)-1 do - begin - Block1 := TwoWays[i,0] + NoCovs - 1; - Block2 := TwoWays[i,1] + NoCovs - 1; - Start1 := Block[Block1,2]; - End1 := Block[Block1,3]; - Start2 := Block[Block2,2]; - End2 := Block[Block2,3]; - oldnovars := NoVariables; - startcol := Block[NoBlocks-1,3] + 1; - col := NoVariables; - for j := Start1 to End1 do - begin - for k := Start2 to End2 do - begin - col := col + 1; - novectors := novectors + 1; - DictionaryFrm.NewVar(col); - labelstr := OS3MainFrm.DataGrid.Cells[j,0] + 'x'; - labelstr := labelstr + OS3MainFrm.DataGrid.Cells[k,0]; - OS3MainFrm.DataGrid.Cells[col,0] := labelstr; - DictionaryFrm.DictGrid.Cells[1,col] := labelstr; - for m := 1 to NoCases do - begin - if NOT GoodRecord(m,NoSelected,ColNoSelected) then Continue; - cell1 := Trim(OS3MainFrm.DataGrid.Cells[j,m]); - cell2 := Trim(OS3MainFrm.DataGrid.Cells[k,m]); - value := round(StrToFloat(cell1)) * - round(StrToFloat(cell2)); - OS3MainFrm.DataGrid.Cells[col,m] := IntToStr(value); - end; - end; - endcol := col; - NoBlocks := NoBlocks + 1; - Block[NoBlocks-1,0] := 0; // zeroes for interactions - Block[NoBlocks-1,1] := 0; // zeroes for interactions - Block[NoBlocks-1,2] := startcol; // grid start col for 2-way interactions - Block[NoBlocks-1,3] := endcol; // grid end col for 2-way interactions - Block[NoBlocks-1,4] := novectors; // no. of vectors for 2-way interaction - BlockLabel[NoBlocks-1] := BlockLabel[Block1] + 'x' + BlockLabel[Block2]; - NoVariables := oldnovars + novectors; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - novectors := 0; - end; // end of interaction of fixed effect vectors j and fixed effect vectors k - end; // end of 2 way interactions - - // do 3-way interactions using group vectors and two way interaction vectors - if (NoFixed < 3) then exit; - ThreeWayCombos := Combos(3.0,NoFixed); - for i := 0 to round(ThreeWayCombos)-1 do - begin - startcol := Block[NoBlocks-1,3] + 1; // next column after last block - col := NoVariables; - Block1 := ThreeWays[i,0] + NoCovs - 1; - Block2 := ThreeWays[i,1] + NoCovs - 1; - Block3 := ThreeWays[i,2] + NoCovs - 1; - Start1 := Block[Block1,2]; - End1 := Block[Block1,3]; - Start2 := Block[Block2,2]; - End2 := Block[Block2,3]; - Start3 := Block[Block3,2]; - End3 := Block[Block3,3]; - oldnovars := NoVariables; - novectors := 0; - for j := Start1 to End1 do - begin - for k := Start2 to End2 do - begin - for l := Start3 to End3 do // no. vectors in first factor - begin - col := col + 1; - novectors := novectors + 1; - DictionaryFrm.NewVar(col); - labelstr := OS3MainFrm.DataGrid.Cells[j,0] + 'x'; - labelstr := labelstr + OS3MainFrm.DataGrid.Cells[k,0]; - labelstr := labelstr + 'x' + OS3MainFrm.DataGrid.Cells[l,0]; - OS3MainFrm.DataGrid.Cells[col,0] := labelstr; - DictionaryFrm.DictGrid.Cells[1,col] := labelstr; - for m := 1 to NoCases do - begin - if NOT GoodRecord(m,NoSelected,ColNoSelected) then Continue; - cell1 := Trim(OS3MainFrm.DataGrid.Cells[j,m]); - cell2 := Trim(OS3MainFrm.DataGrid.Cells[k,m]); - cell3 := Trim(OS3MainFrm.DataGrid.Cells[l,m]); - value := round(StrToFloat(cell1)) * - round(StrToFloat(cell2)) * - round(StrToFloat(cell3)); - OS3MainFrm.DataGrid.Cells[col,m] := IntToStr(value); - end; // next case m - end; // next third variable - end; // next second variable - end; // end of interaction of fixed effects vectors for j, k and l - endcol := col; // last grid column containing three-way interaction vectors - NoBlocks := NoBlocks + 1; - Block[NoBlocks-1,0] := 0; // zeroes for interactions - Block[NoBlocks-1,1] := 0; // zeroes for interactions - Block[NoBlocks-1,2] := startcol; // grid start col for 2-way interactions - Block[NoBlocks-1,3] := endcol; // grid end col for 2-way interactions - Block[NoBlocks-1,4] := novectors; // no. of vectors for 2-way interaction - BlockLabel[NoBlocks-1] := BlockLabel[Block1] + 'x' + BlockLabel[Block2] - + 'x' + BlockLabel[Block3]; - NoVariables := oldnovars + novectors; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - end; // end of three way interactions - - // do 4-way interactions using group and 3-way interaction vectors - if (NoFixed < 4) then exit; - FourWayCombos := combos(4.0,NoFixed); - for i := 0 to round(FourWayCombos) - 1 do - begin - startcol := Block[NoBlocks-1][3] + 1; - col := NoVariables; - Block1 := FourWays[i][0] + NoCovs - 1; // block # for first fixed effect - Block2 := FourWays[i][1] + NoCovs - 1; // block # for second fixed effect - Block3 := FourWays[i][2] + NoCovs - 1; // block # for third fixed effect - Block4 := FourWays[i][3] + NoCovs - 1; // block # for fourth fixed effect - Start1 := Block[Block1][2]; - End1 := Block[Block1][3]; - Start2 := Block[Block2][2]; - End2 := Block[Block2][3]; - Start3 := Block[Block3][2]; - End3 := Block[Block3][3]; - Start4 := Block[Block4][2]; - End4 := Block[Block4][3]; - oldnovars := NoVariables; - novectors := 0; - for j := Start1 to End1 do // vector in first fixed factor - begin - for k := Start2 to End2 do // vector in second fixed factor - begin - for l := Start3 to End3 do // vector in third fixed factor - begin - for m := Start4 to End4 do // vecotr in fourth fixed factor - begin - col := col + 1; - novectors := novectors + 1; - DictionaryFrm.NewVar(col); - labelstr := OS3MainFrm.DataGrid.Cells[j,0] + 'x'; - labelstr := labelstr + OS3MainFrm.DataGrid.Cells[k,0]; - labelstr := labelstr + 'x' + OS3MainFrm.DataGrid.Cells[l,0]; - OS3MainFrm.DataGrid.Cells[col,0] := labelstr; - DictionaryFrm.DictGrid.Cells[1,col] := labelstr; - for n := 1 to NoCases do - begin -// if (! ValidRecord(n,ColNoSelected,NoSelected)) continue; - cell1 := Trim(OS3MainFrm.DataGrid.Cells[j,n]); - cell2 := Trim(OS3MainFrm.DataGrid.Cells[k,n]); - cell3 := Trim(OS3MainFrm.DataGrid.Cells[l,n]); - cell4 := Trim(OS3MainFrm.DataGrid.Cells[m,n]); - value := round(StrToFloat(cell1)) * - round(StrToFloat(cell2)) * - round(StrToFloat(cell3)) * - round(StrToFloat(cell4)); - OS3MainFrm.DataGrid.Cells[col,n] := IntToStr(value); - end; // next case n - end; // next fourth vector m - end; // next third vector - end; // next second vector - end; // end of interaction of fixed effects vectors for j, k and l and m - endcol := col; // last grid column containing four-way interaction vectors - NoBlocks := NoBlocks + 1; - Block[NoBlocks-1][0] := 0; // zeroes for interactions - Block[NoBlocks-1][1] := 0; // zeroes for interactions - Block[NoBlocks-1][2] := startcol; // grid start col for 4-way interactions - Block[NoBlocks-1][3] := endcol; // grid end col for 4-way interactions - Block[NoBlocks-1][4] := novectors; // no. of vectors for 2-way interaction - BlockLabel[NoBlocks-1] := BlockLabel[Block1] + 'x' + BlockLabel[Block2] - + 'x' + BlockLabel[Block3] + 'x' - + BlockLabel[Block4]; - NoVariables := oldnovars + novectors; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - end; // end of four-way combinations -end; - -procedure TANCOVAfrm.DoRegs(Sender: TObject); -var - outline : string; - count : integer; - i, j : integer; - -begin - // get count of variables used - count := 0; - for i := 0 to NoBlocks - 1 do - for j := 0 to Block[i,4] do count := count + 1; - SetLength(BetaWeights,count+1); - SetLength(BWeights,count+2); - SetLength(BStdErrs,count+1); - SetLength(BTtests,count+1); - SetLength(Means,count+1); - SetLength(Variances,count+1); - SetLength(StdDevs,count+1); - SetLength(RowLabels,count+1); - SetLength(ColLabels,count+1); - SetLength(Cormat,count+1,count+1); - SetLength(Indmat,count+1,count+1); - SetLength(IndepIndex,count+1); - SetLength(ColNoSelected,count+1); - - if Rmats.Checked then PrintIt := true else PrintIt := false; - Testout := false; - Probout := 0.99; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('ANALYSIS OF COVARIANCE USING MULTIPLE REGRESSION'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'File Analyzed: ' + OS3MainFrm.FileNameEdit.Text; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - EntryOpt1(self); // factors, interactions and covariats concurrently - OutPutFrm.ShowModal; - IndepIndex := nil; -end; - -procedure TANCOVAfrm.CleanUp(Sender: TObject); -begin - Indmat := nil; - Cormat := nil; - ColLabels := nil; - RowLabels := nil; - StdDevs := nil; - Variances := nil; - Means := nil; - BTtests := nil; - BStdErrs := nil; - BWeights := nil; - BetaWeights := nil; - maxgrp := nil; - mingrp := nil; - CovCols := nil; - FixedCols := nil; - ColNoSelected := nil -end; - -procedure TANCOVAfrm.EntryOpt1(Sender: TObject); -var - i, j, k, col, count : integer; - Title : string; - outline : string; - FullR2 : double; - F : double; - Prob : double; - df1, df2: double; - SSGroups : double; - MSGroups : double; - SSError : double; - MSError : double; - SSTotal : double; - SSExplained : double; - SSGrpTot : double; - tProbs : DblDyneVec; -begin - // factors, interactions and covariates concurrently (full model) - // get grid column numbers of all vectors and dependent variable - - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Model for Testing Assumption of Zero Interactions with Covariates'); - OutPutFrm.RichEdit.Lines.Add(''); - count := 0; - for i := 1 to NoBlocks do // no. of vector blocks - begin - for j := 1 to Block[i-1,4] do // no of vectors in block - begin - col := Block[i-1,2] + j - 1; // count from beginning col. - count := count + 1; - ColNoSelected[count-1] := col; - IndepIndex[count-1] := count; - RowLabels[count-1] := OS3MainFrm.DataGrid.Cells[col,0]; - end; - end; - count := count + 1; - noind := count - 1; - ColNoSelected[count-1] := DepColNo; - IndepIndex[count-1] := count; - RowLabels[count-1] := OS3MainFrm.DataGrid.Cells[DepColNo,0]; - // Get correlation matrix (note dependent is last variable) - Correlations(count,ColNoSelected,Cormat,Means,Variances,StdDevs,errorcode,NCases); - if Rmats.Checked then PrintIt := true else PrintIt := false; - if PrintIt then - begin - Title := 'Correlation Matrix'; - Mat_Print(Cormat,count,count,title,RowLabels,RowLabels,NCases); - end; - if descript then - begin - DynVectorPrint(Means,count,'MEANS',RowLabels,NCases); - DynVectorPrint(Variances,count,'VARIANCES',RowLabels,NCases); - DynVectorPrint(StdDevs,count,'STD. DEV.S',RowLabels,NCases); - end; - // Get regression - SetLength(tProbs,count); - PrintIt := true; - printinv := false; - if Inverses.Checked = true then printinv := true; - SetLength(BStdErrs,noind+1); - SetLength(BTtests,noind+1); - MReg(noind,ColNoSelected,DepColNo,RowLabels,Means,Variances,StdDevs,BWeights, - BetaWeights,BStdErrs,BTtests,tProbs,R2,StdErrEst,NCases,errorcode,false); - FullR2 := R2; - SSTotal := Variances[count-1] * (NCases - 1); - SSGroups := FullR2 * SSTotal; - SSError := (1.0 - FullR2) * SSTotal; - df1 := noind; - df2 := NCases - noind - 1; - MSGroups := SSGroups / df1; - MSError := SSError / df2; - F := MSGroups / MSError; - Prob := probf(F,df1,df2); - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'Analysis of Variance for the Model to Test Regression Homogeneity'; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(' SOURCE Deg.F. SS MS F Prob>F'); - outline := format('%10s %10.0f %10.2f %10.2f %10.3f %10.4f', - ['Explained',df1,SSGroups,MSGroups,F,Prob]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%10s %10.0f %10.2f %10.2f', - ['Error',df2,SSError,MSError]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%10s %10d %10.2f', - ['Total',NCases-1,SSTotal]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('%12s %10.3f',['R Squared = ',R2]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - - // Now do analysis without the interactions (Ancova model) - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Model for Analysis of Covariance'); - OutPutFrm.RichEdit.Lines.Add(''); - count := 0; - for i := 1 to NoBlocks - 1 do // no. of vector blocks - begin - for j := 1 to Block[i-1,4] do // no of vectors in block - begin - col := Block[i-1,2] + j - 1; // count from beginning col. - count := count + 1; - ColNoSelected[count-1] := col; - IndepIndex[count-1] := count; - RowLabels[count-1] := OS3MainFrm.DataGrid.Cells[col,0]; - end; - end; - count := count + 1; - noind := count - 1; - ColNoSelected[count-1] := DepColNo; - IndepIndex[count-1] := count; - RowLabels[count-1] := OS3MainFrm.DataGrid.Cells[DepColNo,0]; - // Get correlation matrix (note dependent is last variable) - Correlations(count,ColNoSelected,Cormat,Means,Variances,StdDevs,errorcode,NCases); - // save in IndMat - for i := 0 to count-1 do - for j := 0 to count - 1 do - IndMat[i,j] := Cormat[i,j]; - if Rmats.Checked then PrintIt := true else PrintIt := false; - if PrintIt then - begin - Title := 'Correlation Matrix'; - Mat_Print(Cormat,count,count,title,RowLabels,RowLabels,NCases); - end; - if descript then - begin - DynVectorPrint(Means,count,'MEANS',RowLabels,NCases); - DynVectorPrint(Variances,count,'VARIANCES',RowLabels,NCases); - DynVectorPrint(StdDevs,count,'STD. DEV.S',RowLabels,NCases); - end; - // Get regression - PrintIt := true; - printinv := false; - if Inverses.Checked = true then printinv := true; - SetLength(BStdErrs,noind+1); - SetLength(BTtests,noind+1); - - MReg(noind,ColNoSelected,DepColNo,RowLabels,Means,Variances,StdDevs,BWeights, - BetaWeights,BStdErrs,BTtests,tProbs,R2,StdErrEst,NCases,errorcode,false); - - // test differences between previous and current models (= beta test) - constant := BWeights[noind]; - df1 := NoTestVecs; - F := ((FullR2 - R2) / df1) / ((1.0 - FullR2) / df2); - Prob := probf(F,df1,df2); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Test for Homogeneity of Group Regression Coefficients'); - outline := format('Change in R2 = %6.4f. F = %10.3f Prob.> F = %6.4f with d.f. %8.0f and %8.0f', - [(FullR2 - R2),F,Prob, df1, df2]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('%12s %10.3f',['R Squared = ',R2]); - OutPutFrm.RichEdit.Lines.Add(outline); - - FullR2 := R2; - SSTotal := Variances[count-1] * (NCases - 1); - SSGroups := FullR2 * SSTotal; -// SSExplained := SSGroups; - SSError := (1.0 - FullR2) * SSTotal; - df1 := noind; - df2 := NCases - noind - 1; - MSGroups := SSGroups / df1; - MSError := SSError / df2; - // obtain Adjusted means -// AdjustMeans(self); - // Make Comparisons among means -// if multcomp then MultCompare(self); - F := MSGroups / MSError; - Prob := probf(F,df1,df2); - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'Analysis of Variance for the ANCOVA Model'; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(' SOURCE Deg.F. SS MS F Prob>F'); - outline := format('%10s %10.0f %10.2f %10.2f %10.3f %10.4f', - ['Explained',df1,SSGroups,MSGroups,F,Prob]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%10s %10.0f %10.2f %10.2f', - ['Error',df2,SSError,MSError]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%10s %10d %10.2f', - ['Total',NCases-1,SSTotal]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(''); - // Obtain adjusted means - AdjustMeans(self); - // make comparisons among groups - if multcomp then MultCompare(self); - - // Now do regression, eliminating each block to test effects of that term - PrintIt := false; - OutPutFrm.RichEdit.Lines.Add('Test for Each Source of Variance - Type III SS'); - OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------'); - OutPutFrm.RichEdit.Lines.Add(' SOURCE Deg.F. SS MS F Prob>F'); - OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------'); -// SSGrpTot := 0.0; - for i := 1 to NoBlocks - 1 do // covariates, fixed effects, interactions - begin - count := 0; - for j := 1 to NoBlocks-1 do - begin - if j = i then continue; // exclude the factor to be tested - for k := 1 to Block[j-1,4] do // no of vectors in block - begin - col := Block[j-1,2] + k - 1; // count from beginning col. - count := count + 1; - ColNoSelected[count-1] := col; - IndepIndex[count-1] := count; - RowLabels[count-1] := OS3MainFrm.DataGrid.Cells[col,0]; - end; - end; // get next block of vectors for factors to be included - count := count + 1; - noind := count - 1; - ColNoSelected[count-1] := DepColNo; - IndepIndex[count-1] := count; - RowLabels[count-1] := OS3MainFrm.DataGrid.Cells[DepColNo,0]; - Correlations(count,ColNoSelected,Cormat,Means,Variances,StdDevs,errorcode,NCases); - // Get regression - printinv := false; - SetLength(BStdErrs,noind+1); - SetLength(BTtests,noind+1); - MReg(noind,ColNoSelected,DepColNo,RowLabels,Means,Variances,StdDevs,BWeights, - BetaWeights,BStdErrs,BTtests,tProbs,R2,StdErrEst,NCases,errorcode,false); - df1 := Block[i-1,4]; - SSGroups := (FullR2 - R2)* SSTotal; - SSGrpTot := SSGrpTot + SSGroups; - MSGroups := SSGroups / df1; - F := MSGroups / MSError; - Prob := probf(F,df1,df2); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('%10s %10.0f %10.2f %10.2f %10.3f %10.4f', - [BlockLabel[i-1],df1,SSGroups,MSGroups,F,Prob]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; // get next Block to eliminate - OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------'); - outline := format('%10s %10.0f %10.2f %10.2f',['ERROR',df2,SSError,MSError]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------'); - outline := format('%10s %10d %10.2f',['TOTAL',NCases-1,SSTotal]); -{ - df1 := NoCovs; - SSGroups := SSExplained - SSGrpTot; - MSGroups := SSGroups / df1; - F := MSGroups / MSError; - Prob := probf(F,df1,df2); - outline := format('%10s %10.0f %10.2f %10.2f %10.3f %10.4f', - ['Covariates',df1,SSGroups,MSGroups,F,Prob]); - OutPutFrm.RichEdit.Lines.Add(outline); - - outline := format('%10s %10.0f %10.2f %10.2f', - ['Error',df2,SSError,MSError]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%10s %10d %10.2f', - ['Total',NCases-1,SSTotal]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); -} - tProbs := nil; -end; - -procedure TANCOVAfrm.GenCovInteracts(Sender: TObject); -var - i, j, k, l, m, vect1col, vect2col, col : integer; - value : double; - labelstr, cell1, cell2 : string; - startcol, endcol, novectors, oldnovars : integer; - lastblock, firstblock : integer; - -begin - col := NoVariables; - oldnovars := NoVariables; - novectors := 0; - NoTestVecs := 0; - startcol := Block[NoBlocks-1,3] + 1; - lastblock := NoBlocks; - firstblock := NoCovs + 1; - for i := 1 to NoCovs do // product vectors for each covariate - begin - vect1col := Block[i-1,2]; - for j := firstblock to lastblock do - begin - for l := 1 to Block[j-1,4] do - begin - vect2col := Block[j-1,2] + l - 1; // first vector col. of B - col := col + 1; - novectors := novectors + 1; - NoTestVecs := NoTestVecs + 1; - DictionaryFrm.NewVar(col); - labelstr := OS3MainFrm.DataGrid.Cells[vect1col,0] + 'x'; - labelstr := labelstr + OS3MainFrm.DataGrid.Cells[vect2col,0]; - OS3MainFrm.DataGrid.Cells[col,0] := labelstr; - DictionaryFrm.DictGrid.Cells[1,col] := labelstr; - for m := 1 to NoCases do - begin - if NOT GoodRecord(m,NoSelected,ColNoSelected) then Continue; - cell1 := Trim(OS3MainFrm.DataGrid.Cells[vect1col,m]); - cell2 := Trim(OS3MainFrm.DataGrid.Cells[vect2col,m]); - value := StrToFloat(cell1) * StrToFloat(cell2); - OS3MainFrm.DataGrid.Cells[col,m] := FloatToStr(value); - end; // next case m - end; // next l vector - end; // next fixed effects factor j and interactions - end; // next covariate i - endcol := col; // last grid column containing two-way interaction vectors - NoBlocks := NoBlocks + 1; - Block[NoBlocks-1,0] := 0; // zeroes for interactions - Block[NoBlocks-1,1] := 0; // zeroes for interactions - Block[NoBlocks-1,2] := startcol; // grid start col for 2-way interactions - Block[NoBlocks-1,3] := endcol; // grid end col for 2-way interactions - Block[NoBlocks-1,4] := novectors; // no. of vectors for 2-way interaction - BlockLabel[NoBlocks-1] := BlockLabel[i-1] + 'xFixed'; - NoVariables := oldnovars + novectors; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); -end; - -procedure TANCOVAfrm.AdjustMeans(Sender: TObject); -var - sum : double; - GrpCovMeans : DblDyneMat; - AdjMeans : DblDyneVec; - Intercepts : DblDyneVec; - i, j, k, col, grp, nogrps : integer; - value : double; - Labels : StrDyneVec; - outline : string; - noingrp : IntDyneVec; - XValue : DblDyneVec; - maxmean : double; - cell1 : string; - -begin - SetLength(GrpCovMeans,noind,noind); - SetLength(AdjMeans,noind); - SetLength(Intercepts,noind); - SetLength(Labels,noind); - SetLength(noingrp,noind); - SetLength(XValue,noind); - - // get means for groups and covariates - for j := 1 to NoFixed do // for each fixed variable - begin - nogrps := maxgrp[j-1] - mingrp[j-1] + 1; - maxmean := 0.0; - for i := 1 to nogrps do - begin - XValue[i-1] := i; - noingrp[i-1] := 0; - for k := 1 to NoCovs do GrpCovMeans[i-1,k-1] := 0.0; - end; - for i := 1 to nogrps do AdjMeans[i-1] := 0.0; - for i := 1 to NoCases do - begin - cell1 := Trim(OS3MainFrm.DataGrid.Cells[FixedCols[j-1],i]); - if cell1 = '' then continue; - grp := round(StrToFloat(cell1)); - grp := grp - mingrp[j-1] + 1; - noingrp[grp-1] := noingrp[grp-1] + 1; - for k := 1 to NoCovs do - begin - col := CovCols[k-1]; - cell1 := Trim(OS3MainFrm.DataGrid.Cells[col,i]); - if cell1 = '' then continue; - value := StrToFloat(cell1); - GrpCovMeans[grp-1,k-1] := GrpCovMeans[grp-1,k-1] + value; - end; - cell1 := Trim(OS3MainFrm.DataGrid.Cells[DepColNo,i]); - if cell1 = '' then continue; - value := StrToFloat(cell1); - AdjMeans[grp-1] := AdjMeans[grp-1] + value; - end; // next case i - - SetLength(GraphFrm.Ypoints,1,nogrps); - SetLength(GraphFrm.Xpoints,1,nogrps); - for k := 1 to nogrps do - begin - AdjMeans[k-1] := AdjMeans[k-1] / noingrp[k-1]; - GraphFrm.Ypoints[0,k-1] := AdjMeans[k-1]; - GraphFrm.Xpoints[0,k-1] := k; - if AdjMeans[k-1] > maxmean then maxmean := AdjMeans[k-1]; - for i := 1 to NoCovs do - begin - GrpCovMeans[k-1,i-1] := GrpCovMeans[k-1,i-1] / noingrp[k-1]; - end; - end; - // print unadjusted means - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'Unadjusted Group Means for Group Variables ' - + OS3MainFrm.DataGrid.Cells[FixedCols[j-1] ,0]; - OutPutFrm.RichEdit.Lines.Add(outline); - DynVectorPrint(AdjMeans,nogrps,'Means',Labels,NCases); - OutPutFrm.RichEdit.Lines.Add(''); - - // plot group means if requested - if plot then - begin - GraphFrm.nosets := 1; - GraphFrm.nbars := nogrps; - GraphFrm.Heading := 'Unadjusted Means'; - GraphFrm.XTitle := 'GROUP'; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := 2; // 3d Vertical Bar Chart - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - // get intercepts for group equations for this fixed effect variable - sum := 0.0; - for k := 1 to nogrps - 1 do // no. vectors is 1 less than no. groups - begin - intercepts[k-1] := constant + BWeights[NoCovs+k-1]; - sum := sum + BWeights[NoCovs+k-1]; - end; - intercepts[nogrps-1] := constant - sum; - - // get adjusted means - for k := 1 to nogrps do - begin - sum := 0.0; - for i := 1 to NoCovs do - sum := sum + BWeights[i-1] * (GrpCovMeans[k-1,i-1]-Means[i-1]); - AdjMeans[k-1] := AdjMeans[k-1] - sum; - GraphFrm.Ypoints[0,k-1] := AdjMeans[k-1]; - Labels[k-1] := 'Group ' + IntToStr(k); - end; - // plot group means if requested - if plot then - begin - GraphFrm.nosets := 1; - GraphFrm.nbars := nogrps; - GraphFrm.Heading := 'Adjusted Means'; - GraphFrm.XTitle := 'GROUP'; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := 2; // 3d Vertical Bar Chart - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - // print results for intercepts - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'Intercepts for Each Group Regression Equation for Variable: ' - + OS3MainFrm.DataGrid.Cells[FixedCols[j-1] ,0]; - OutPutFrm.RichEdit.Lines.Add(outline); - DynVectorPrint(Intercepts,nogrps,'Inercepts',Labels,NCases); - OutPutFrm.RichEdit.Lines.Add(''); - // print adjusted means - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'Adjusted Group Means for Group Variables ' - + OS3MainFrm.DataGrid.Cells[FixedCols[j-1] ,0]; - OutPutFrm.RichEdit.Lines.Add(outline); - DynVectorPrint(AdjMeans,nogrps,'Means',Labels,NCases); - OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - XValue := nil; - noingrp := nil; - Labels := nil; - intercepts := nil; - AdjMeans := nil; - GrpCovMeans := nil; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; -end; - -procedure TANCOVAfrm.MultCompare(Sender: TObject); -var - i, j, size : integer; - covmat : DblDyneMat; - outline : string; - title : string; - Labels : StrDyneVec; - sum : double; - df1, df2, F, Prob : double; - -begin - SetLength(covmat,noind,noind); - SetLength(Labels,noind); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Multiple Comparisons Among Group Means'); - OutPutFrm.RichEdit.Lines.Add(''); - SVDInverse(IndMat,noind); - size := noind - NoCovs; - title := 'Inverse of Independents Matrix'; - for i := 1 to noind do Labels[i-1] := 'Group ' + IntToStr(i); - for i := 1 to noind-NoCovs do - for j := 1 to noind-NoCovs do - covmat[i-1,j-1] := sqr(StdErrEst) * IndMat[NoCovs+i-1,NoCovs+j-1] / - (Variances[NoCovs+j-1] * (NoCases-1)); - for i := 1 to size+1 do Labels[i-1] := 'Group ' + IntToStr(i); - // augment matrix - for i := 1 to size do - begin - sum := 0.0; - for j := 1 to size do - begin - sum := sum + covmat[i-1,j-1]; - end; - covmat[i-1,size] := -sum; - covmat[size,i-1] := -sum; - end; - sum := 0.0; - for i := 1 to size do sum := sum + covmat[i-1,size]; - covmat[size,size] := -sum; - if Inverses.Checked then - begin - title := 'Augmented Covariance Among Group Vectors'; - for i := 1 to size do Labels[i-1] := 'Group ' + IntToStr(i); - MAT_PRINT(covmat,size+1,size+1,title,Labels,Labels,NoCases); - end; - - // Now, contrast the b coefficients - // Get last B weight from effect coding as - sum of other B weights - BWeights[noind] := 0.0; - for i := 0 to noind-1 do BWeights[noind] := BWeights[noind] - BWeights[i]; - for i := 1 to size do - begin - for j := i + 1 to size + 1 do - begin - df1 := 1.0; - df2 := NoCases - noind - 1; - F := sqr(BWeights[NoCovs+i-1] - BWeights[NoCovs+j-1]); - F := F / (covmat[i-1,i-1] + covmat[j-1,j-1] - (covmat[i-1,j-1] + covmat[j-1,i-1])); - Prob := probf(F,df1,df2); - outline := format('Comparison of Group %3d with Group %3d', - [i,j]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('F = %10.3f, probability = %5.3f with degrees of freedom %5.0f and %5.0f', - [F, Prob, df1, df2]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - Labels := nil; - covmat := nil; -end; - -initialization - {$I ancovaunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/ANCOVAUNIT.lfm b/applications/lazstats/source_orig/ANCOVAUNIT.lfm deleted file mode 100644 index 8272d9fe6..000000000 --- a/applications/lazstats/source_orig/ANCOVAUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/ANCOVAUNIT.lrs b/applications/lazstats/source_orig/ANCOVAUNIT.lrs deleted file mode 100644 index 40e7bef72..000000000 --- a/applications/lazstats/source_orig/ANCOVAUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/ANOVATESTS.PAS b/applications/lazstats/source_orig/ANOVATESTS.PAS deleted file mode 100644 index 06c42cef6..000000000 --- a/applications/lazstats/source_orig/ANOVATESTS.PAS +++ /dev/null @@ -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. - - \ No newline at end of file diff --git a/applications/lazstats/source_orig/AUTOCORUNIT.PAS b/applications/lazstats/source_orig/AUTOCORUNIT.PAS deleted file mode 100644 index 88983ff89..000000000 --- a/applications/lazstats/source_orig/AUTOCORUNIT.PAS +++ /dev/null @@ -1,1204 +0,0 @@ -unit AutoCorUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, ExtCtrls, Buttons, MainUnit, functionsLib, OutPutUnit, Globals, GraphLib, - DataProcs, MatrixLib, PointsUnit, ExpSmoothUnit, DifferenceUnit,FFTUnit, - PolynomialUnit, Math, contexthelpunit; - - -type - - { TAutocorrFrm } - - TAutocorrFrm = class(TForm) - AlphaEdit: TEdit; - HelpBtn: TButton; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - PlotChk: TCheckBox; - StatsChk: TCheckBox; - RMatChk: TCheckBox; - PartialsChk: TCheckBox; - YuleWalkerChk: TCheckBox; - ResidChk: TCheckBox; - GroupBox5: TGroupBox; - MaxLagEdit: TEdit; - InBtn: TBitBtn; - Label5: TLabel; - Label6: TLabel; - OutBtn: TBitBtn; - DepVarEdit: TEdit; - Label3: TLabel; - Label4: TLabel; - VarList: TListBox; - MRegSmoothChk: TCheckBox; - PolyChk: TCheckBox; - FourierSmoothChk: TCheckBox; - ExpSmoothChk: TCheckBox; - MoveAvgChk: TCheckBox; - DifferenceChk: TCheckBox; - MeanChk: TCheckBox; - GroupBox4: TGroupBox; - Label2: TLabel; - ProjPtsEdit: TEdit; - ProjectChk: TCheckBox; - FromCaseEdit: TEdit; - GroupBox3: TGroupBox; - ToCaseEdit: TEdit; - GroupBox1: TGroupBox; - GroupBox2: TGroupBox; - Label1: TLabel; - ColBtn: TRadioButton; - AllCasesBtn: TRadioButton; - OnlyCasesBtn: TRadioButton; - RowBtn: TRadioButton; - procedure ColBtnClick(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); - procedure ReturnBtnClick(Sender: TObject); - procedure RowBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - procedure four1(VAR data : DblDyneVec; nn : longword; isign : integer); - procedure realft(VAR data : DblDyneVec; n : longword; isign : integer); - procedure fourier(VAR data : DblDyneVec; n : integer; npts : integer); - procedure PolyFit(VAR pts : DblDyneVec; VAR avg : DblDyneVec; - NoPts : integer); - - end; - -var - AutocorrFrm: TAutocorrFrm; - -implementation -uses MoveAvgUnit, AutoPlotUnit; - -{ TAutocorrFrm } - -procedure TAutocorrFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - DepVarEdit.Text := ''; - MaxLagEdit.Text := '30'; - StatsChk.Checked := false; - RmatChk.Checked := false; - PartialsChk.Checked := false; - PlotChk.Checked := true; - ResidChk.Checked := false; - DifferenceChk.Checked := false; - PolyChk.Checked := false; - MeanChk.Checked := false; - MoveAvgChk.Checked := false; - ExpSmoothChk.Checked := false; - FourierSmoothChk.Checked := false; - YuleWalkerChk.Checked := false; - FromCaseEdit.Text := ''; - ToCaseEdit.Text := ''; - AllCasesBtn.Checked := true; - InBtn.Visible := true; - OutBtn.Visible := false; - AlphaEdit.Text := '0.05'; - ProjPtsEdit.Text := ''; - if ColBtn.Checked = true then - begin - for i := 1 to OS3MainFrm.DataGrid.ColCount - 1 do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - end - else begin - for i := 1 to NoCases do - begin - if IsFiltered(i) then continue; - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[0,i]); - end; - end; -end; - -procedure TAutocorrFrm.ReturnBtnClick(Sender: TObject); -begin - AutocorrFrm.Hide; -end; - -procedure TAutocorrFrm.RowBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - for i := 1 to NoCases do VarList.Items.Add(OS3MainFrm.DataGrid.Cells[0,i]); - GroupBox2.Caption := 'Include Columns:'; - AllCasesBtn.Caption := 'All Variables'; - OnlyCasesBtn.Caption := 'Only Columns From:'; -end; - -procedure TAutocorrFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TAutocorrFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TAutocorrFrm.ComputeBtnClick(Sender: TObject); -var - X, Y, count, alphaval, covzero,mean1,mean2, var1, var2, mean : double; - sd1, sd2, uplimit, lowlimit, varresid, StdErr, alpha, difference : double; - NoPts, DepVar, maxlag, lag, noproj : integer; - i, j, k, ncors, npoints, nvalues, t : integer; - Means, StdDevs, PartCors, residual, betas, rxy, pts, avg : DblDyneVec; - correlations, a : DblDyneMat; - RowLabels, ColLabels : StrDyneVec; - Title : string; - r, vx, vy, sx, sy, mx, my, UCL, LCL, Yhat, Constant : double; - outline, cellstring : string; - ColNoSelected : IntDyneVec; - NoSelected : integer; - negative : boolean; - Msg : string; - zconf, samptrans, z : double; - confidence, StdDevY : double; - upper : array[0..300] of double; - lower : array[0..300] of double; - lagvalue : array[0..300] of integer; - -begin - OutPutFrm.RichEdit.Clear; - SetLength(ColNoSelected,NoVariables); - if ColBtn.Checked = true then - begin - // get column of the selected variable - DepVar := 0; - for i := 1 to NoVariables do - if (OS3MainFrm.DataGrid.Cells[i,0] = DepVarEdit.Text) then DepVar := i; - if (DepVar = 0)then - begin - ShowMessage('No variable selected to analyze.'); - exit; - end; - ColNoSelected[0] := DepVar; - NoSelected := 1; - // get no. of valid points - NoPts := 0; - for i := 1 to NoCases do - if ValidValue(i,DepVar) then NoPts := NoPts + 1; - end - else begin // get row of the selected case - DepVar := 0; - for i := 1 to NoCases do - begin - if NOT GoodRecord(i,NoSelected,ColNoSelected) then continue; - if (OS3MainFrm.DataGrid.Cells[0,i] = DepVarEdit.Text) then DepVar := i; - end; - if (DepVar = 0)then - begin - ShowMessage('No variable selected to analyze.'); - exit; - end; - ColNoSelected[0] := DepVar; - NoSelected := 1; - NoPts := NoVariables; - end; - - // Get the alpha level and the maximum lag values - alpha := 1.0 - StrToFloat(AlphaEdit.Text); - if ProjectChk.Checked then noproj := StrToInt(ProjPtsEdit.Text) else noproj := 0; - maxlag := StrToInt(MaxLagEdit.Text); - if maxlag > NoPts div 2 then maxlag := NoPts div 2; - if StrToInt(MaxLagEdit.Text) > maxlag then MaxLagEdit.Text := IntToStr(maxlag); - npoints := maxlag + 2; - - // allocate space for covariance and correlation matrices, etc. - SetLength(correlations,npoints+1,npoints+1); - SetLength(Means,npoints); - SetLength(StdDevs,npoints); - SetLength(RowLabels,npoints); - SetLength(ColLabels,npoints); - SetLength(PartCors,npoints); - SetLength(a,npoints,npoints); - SetLength(betas,npoints); - SetLength(rxy,npoints); - SetLength(pts,NoPts+noproj+10); - SetLength(avg,NoPts+noproj+10); - SetLength(residual,NoPts+noproj+10); - - // Initialize arrays - for i := 0 to npoints-1 do - begin - for j := 0 to npoints - 1 do - begin - correlations[i,j] := 0.0; - a[i,j] := 0.0; - end; - Means[i] := 0.0; - StdDevs[i] := 0.0; - cellstring := 'Lag '; - cellstring := cellstring + IntToStr(i); - RowLabels[i] := cellstring; - ColLabels[i] := RowLabels[i]; - PartCors[i] := 0.0; - betas[i] := 0.0; - end; - uplimit := 0.0; - lowlimit := 0.0; - covzero := 0.0; - - // Get points to analyze - if ColBtn.Checked = true then - begin - if AllCasesBtn.Checked = true then - begin - for i := 1 to NoPts do - begin - if NOT ValidValue(i,DepVar) then continue; - pts[i-1] := StrToFloat(OS3MainFrm.DataGrid.Cells[DepVar,i]); - end; - end - else begin - NoPts := 0; - for i := StrToInt(FromCaseEdit.Text) to StrToInt(ToCaseEdit.Text) do - begin - if NOT ValidValue(i,DepVar) then continue; - pts[NoPts] := StrToFloat(OS3MainFrm.DataGrid.Cells[DepVar,i]); - NoPts := NoPts + 1; - end; - end; - end - else begin // row button selected - if AllCasesBtn.Checked = true then - begin - for i := 1 to NoPts do - begin - if Not ValidValue(DepVar,i) then continue; - pts[i-1] := StrToFloat(OS3MainFrm.DataGrid.Cells[i,DepVar]); - end; - end - else begin - NoPts := 0; - for i := StrToInt(FromCaseEdit.Text) to StrToInt(ToCaseEdit.Text) do - begin - if Not ValidValue(DepVar,i) then continue; - pts[NoPts] := StrToFloat(OS3MainFrm.DataGrid.Cells[i,DepVar]); - NoPts := NoPts + 1; - end; - end; - end; - - // Calculate mean of all values - mean := 0.0; - count := NoPts; - for i := 1 to NoPts do mean := mean + pts[i-1]; - - correlations[0,0] := 1.0; - mean := mean / count; - - // Remove mean from all observations if elected - if (MeanChk.Checked) then - for i := 1 to NoPts do pts[i-1] := pts[i-1] - mean; - - // Get differences for lag specified - if (DifferenceChk.Checked) then - begin - if (DifferenceFrm.ShowModal = mrOK) then - begin - lag := StrToInt(DifferenceFrm.LagEdit.Text); - for i := 0 to NoPts - 1 do avg[i] := pts[i]; - for j := 1 to StrToInt(DifferenceFrm.OrderEdit.Text) do - begin - for i := NoPts downto lag do - begin - avg[i] := avg[i] - avg[i-lag]; - end; - end; - end; - // plot the original and differenced values - PointsFrm.pts := pts; - PointsFrm.avg := avg; - PointsFrm.NoCases := NoPts; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Differenced'; - Msg := 'No. points = '; - Msg := Msg + IntToStr(NoCases); - PointsFrm.MsgEdit.Text := Msg; - PointsFrm.Title := 'Differencing Smoothed'; - PointsFrm.Caption := 'Difference Smoothing'; - PointsFrm.ShowModal; -// PointsFrm.PtsPlot(self); - if (ResidChk.Checked = true) then // calculate and plot residuals; - begin - varresid := 0.0; - for i := 0 to NoPts - 1 do - begin - residual[i] := pts[i] - avg[i]; - varresid := varresid + (residual[i] * residual[i]); - end; - varresid := varresid / NoPts; - StdErr := sqrt(varresid); - // plot the residuals - PointsFrm.pts := pts; - PointsFrm.avg := residual; - PointsFrm.NoCases := NoPts; - Msg := 'Std. Err. Residuals = '; - Msg := Msg + FloatToStr(StdErr); - PointsFrm.MsgEdit.Text := Msg; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Residuals'; - PointsFrm.Title := 'Residuals from Difference Smoothing'; - PointsFrm.Caption := 'Difference Residuals'; - PointsFrm.ShowModal; -// PointsFrm.PtsPlot(self); - end; - // replace original points with smoothed values - for i := 0 to NoPts - 1 do - pts[i] := avg[i]; - end; - - // Get moving average if checked - if (MoveAvgChk.Checked) then - begin - MoveAvgFrm.ShowModal; - nvalues := MoveAvgFrm.order; - if (nvalues > 0) then - begin - // plot the original points and the smoothed average - for i := nvalues to NoPts - nvalues - 1 do - begin - avg[i] := pts[i] * MoveAvgFrm.W[0]; // middle value - for j := 1 to nvalues do // left values - avg[i] := avg[i] + (pts[i-j] * MoveAvgFrm.W[j]); - for j := 1 to nvalues do // right values - avg[i] := avg[i] + (pts[i+j] * MoveAvgFrm.W[j]); - end; - // fill in unestimable averages with original points - for i := 0 to nvalues - 1 do // left values - begin - avg[i] := pts[i] * MoveAvgFrm.W[0]; - for j := 1 to nvalues do - avg[i] := avg[i] + (pts[i+j] * 2.0 * MoveAvgFrm.W[j]); - end; - for i := NoPts - nvalues to NoPts - 1 do //right values - begin - avg[i] := pts[i] * MoveAvgFrm.W[0]; - for j := 1 to nvalues do - avg[i] := avg[i] + (pts[i-j] * 2.0 * MoveAvgFrm.W[j]); - end; - if ProjectChk.Checked then - begin - for i := 0 to noproj-1 do - begin - avg[NoPts+i] := avg[NoPts-1]; - pts[NoPts+i] := pts[NoPts-1]; - end; - end; - // plot the points - PointsFrm.pts := pts; - PointsFrm.avg := avg; - PointsFrm.NoCases := NoPts+noproj; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Smoothed'; - Msg := 'No. points = '; - Msg := Msg + IntToStr(NoPts); - PointsFrm.MsgEdit.Text := Msg; - PointsFrm.Title := 'Moving Average Smoothed'; - PointsFrm.Caption := 'Moving Average Smoothing'; - PointsFrm.ShowModal; - end; - if (ResidChk.Checked = true) then // calculate and plot residuals; - begin - varresid := 0.0; - for i := 0 to NoPts - 1 do - begin - residual[i] := pts[i] - avg[i]; - varresid := varresid + (residual[i] * residual[i]); - end; - varresid := varresid / NoPts; - StdErr := sqrt(varresid); - // plot the residuals - PointsFrm.pts := pts; - PointsFrm.avg := residual; - PointsFrm.NoCases := NoPts; - Msg := 'Std. Err. Residuals = '; - Msg := Msg + FloatToStr(StdErr); - PointsFrm.MsgEdit.Text := Msg; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Residuals'; - PointsFrm.Title := 'Residuals from Moving Average'; - PointsFrm.Caption := 'Moving Average Residuals'; - PointsFrm.ShowModal; -// PointsFrm.PtsPlot(self); - end; - // replace original points with smoothed values - for i := 0 to (NoPts + noproj - 1) do pts[i] := avg[i]; - end; - - // do exponential smoothing if requested - if (ExpSmoothChk.Checked = true) then - begin - ExpSmoothFrm.ShowModal; - alpha := ExpSmoothFrm.alpha; - avg[0] := pts[0]; // set first value := to observed - for t := 1 to NoPts - 1 do // case pointer - begin - avg[t] := alpha * pts[t]; - avg[t] := avg[t] + (1.0 - alpha) * avg[t-1]; - end; - if ProjectChk.Checked then - begin - for i := 0 to noproj-1 do - begin - avg[NoPts+i] := alpha * pts[NoPts+i-1]; - avg[NoPts+i] := avg[NoPts+i] + ((1.0 - alpha) * avg[NoPts+i-1]); - pts[NoPts+i] := avg[NoPts+i]; - end; - end; - // plot the points - PointsFrm.pts := pts; - PointsFrm.avg := avg; - PointsFrm.NoCases := NoPts+noproj; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Smoothed'; - PointsFrm.Title := 'Exponential Smoothed'; - PointsFrm.Caption := 'Exponential Smoothing'; - PointsFrm.ShowModal; -// PointsFrm.PtsPlot(self); - if (ResidChk.Checked = true) then // calculate and plot residuals; - begin - varresid := 0.0; - for i := 0 to NoPts - 1 do - begin - residual[i] := pts[i] - avg[i]; - varresid := varresid + (residual[i] * residual[i]); - end; - varresid := varresid / NoPts; - StdErr := sqrt(varresid); - // plot the residuals - PointsFrm.pts := pts; - PointsFrm.avg := residual; - PointsFrm.NoCases := NoPts; - Msg := 'Std. Err. Residuals = '; - Msg := Msg + FloatToStr(StdErr); - PointsFrm.MsgEdit.Text := Msg; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Residuals'; - PointsFrm.Title := 'Residuals from Exponential Smoothing'; - PointsFrm.Caption := 'Exponential Residuals'; - PointsFrm.ShowModal; -// PointsFrm.PtsPlot(self); - end; - // replace original points with smoothed values - for i := 0 to (NoPts + noproj - 1) do pts[i] := avg[i]; - end; - - // Fast Fourier smoothing, if requested - if (FourierSmoothChk.Checked = true) then - begin - for i := 0 to NoPts - 1 do avg[i] := pts[i]; - if ProjectChk.Checked then - begin - for i := 0 to noproj - 1 do - begin - avg[i] := pts[NoPts-1-noproj+i]; - pts[i] := avg[i]; - end; - end; - FFTFrm.NptsEdit.Text := IntToStr(NoPts+noproj+1); - FFTFrm.ShowModal; - nvalues := StrToInt(FFTFrm.NptsEdit.Text); - fourier(avg,nvalues,nvalues); - PointsFrm.pts := pts; - PointsFrm.avg := avg; - PointsFrm.NoCases := NoPts+noproj; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Smoothed'; - PointsFrm.Title := 'Fourier Smoothed'; - PointsFrm.Caption := 'Fourier Smoothing'; - PointsFrm.ShowModal; -// PointsFrm.PtsPlot(self); - if (ResidChk.Checked = true) then // calculate and plot residuals; - begin - varresid := 0.0; - for i := 0 to NoPts - 1 do - begin - residual[i] := pts[i] - avg[i]; - varresid := varresid + (residual[i] * residual[i]); - end; - varresid := varresid / NoPts; - StdErr := sqrt(varresid); - // plot the residuals - PointsFrm.pts := pts; - PointsFrm.avg := residual; - PointsFrm.NoCases := NoPts; - Msg := 'Std. Err. Residuals = '; - Msg := Msg + FloatToStr(StdErr); - PointsFrm.MsgEdit.Text := Msg; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Residuals'; - PointsFrm.Title := 'Residuals from Fourier Smoothing'; - PointsFrm.Caption := 'Fourier Residuals'; - PointsFrm.ShowModal; -// PointsFrm.PtsPlot(self); - end; - // replace original points with smoothed values - for i := 0 to (NoPts + noproj - 1) do pts[i] := avg[i]; - end; - - // Get polynomial regression fit if elected - if (PolyChk.Checked) then - begin - if (PolynomialFrm.ShowModal = mrOk) then - begin - if ProjectChk.Checked then - begin - for i := 0 to noproj - 1 do - begin - avg[i] := pts[NoPts-1-noproj+i]; - pts[i] := avg[i]; - end; - end; - PolyFit(pts,avg,NoPts+noproj); - // plot original and smoothed data - PointsFrm.pts := pts; - PointsFrm.avg := avg; - PointsFrm.NoCases := NoPts+noproj; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Smoothed'; - PointsFrm.Title := 'Polynomial Smoothed'; - PointsFrm.Caption := 'Polynomial Smoothing'; - PointsFrm.ShowModal; -// PointsFrm.PtsPlot(self); - // plot residuals if checked - if (ResidChk.Checked) then - begin - varresid := 0.0; - for i := 0 to NoPts - 1 do - begin - residual[i] := pts[i] - avg[i]; - varresid := varresid + (residual[i] * residual[i]); - end; - varresid := varresid / NoPts; - StdErr := sqrt(varresid); - // plot the residuals - PointsFrm.pts := pts; - PointsFrm.avg := residual; - PointsFrm.NoCases := NoPts; - Msg := 'Std. Err. Residuals = '; - Msg := Msg + FloatToStr(StdErr); - PointsFrm.MsgEdit.Text := Msg; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Residuals'; - PointsFrm.Title := 'Residuals from Polynomial Smoothing'; - PointsFrm.Caption := 'Polynomial Residuals'; - PointsFrm.ShowModal; -// PointsFrm.PtsPlot(self); - end; - end; - - // replace original points with smoothed values - for i := 0 to (NoPts + noproj - 1) do pts[i] := avg[i]; - end; - - // get mean and variance of (transformed?) points - mean := 0.0; - for i := 0 to NoPts - 1 do mean := mean + pts[i]; - mean := mean / NoPts; - for i := 1 to NoPts do - begin - X := pts[i-1]; - if (MeanChk.Checked = true) then covzero := covzero + (X * X) - else covzero := covzero + ((X - mean) * (X - mean)); - end; - covzero := covzero / count; - - outline := format('Overall mean = %8.3f, variance = %8.3f',[mean,covzero]); - OutPutFrm.RichEdit.Lines.Add(outline); - - // get correlations for each lag 0 to maxlag - confidence := StrToFloat(AlphaEdit.Text); - ncors := 0; - OutPutFrm.RichEdit.Lines.Add('Lag Rxy MeanX MeanY Std.Dev.X Std.Dev.Y Cases LCL UCL'); - OutPutFrm.RichEdit.Lines.Add(''); - if maxlag > NoPts-3 then - begin - maxlag := NoPts - 3; - maxlagedit.Text := IntToStr(maxlag); - end; - for lag := 0 to maxlag do - begin - r := 0.0; - vx := 0.0; - vy := 0.0; - mx := 0.0; - my := 0.0; - Count := 0.0; - lagvalue[lag] := lag; - for i := 1 to (NoPts - lag) do - begin - X := pts[i-1]; - Y := pts[i-1+lag]; - if (MeanChk.Checked = true) then r := r + (X * Y) - else r := r + ((X - mean) * (Y - mean)); - vx := vx + (X * X); - vy := vy + (Y * Y); - mx := mx + X; - my := my + Y; - Count := Count + 1.0; - end; - r := r / NoPts; - vx := vx - (mx * mx / Count); - vx := vx / (Count - 1.0); - sx := sqrt(vx); - vy := vy - (my * my / Count); - vy := vy / (Count - 1.0); - sy := sqrt(vy); - mx := mx / Count; - my := my / Count; - r := r / covzero; - if (abs(r) < 1.0) then samptrans := ln((1.0 + r) / (1.0 - r)) / 2.0; - // if above failed, r := 1.0 - StdErr := sqrt(1.0 / (NoPts - 3.0)); - zconf := abs(inversez(confidence / 2.0)); - if (abs(r) < 1.0) then - begin - z := samptrans / StdErr; - UCL := samptrans + (zconf * StdErr); - LCL := samptrans - (zconf * StdErr); - UCL := (exp(2.0 * UCL) - 1.0) / (exp(2.0 * UCL) + 1.0); - LCL := (exp(2.0 * LCL) - 1.0) / (exp(2.0 * LCL) + 1.0); - end - else - begin - UCL := 1.0; - LCL := 1.0; - end; - upper[lag] := UCL; - lower[lag] := LCL; - outline := format('%4d %9.4f %9.4f %9.4f %9.4f %9.4f %9.0f %9.4f %9.4f', - [lag, r, mx, my, sx, sy, Count, LCL, UCL]); - OutPutFrm.RichEdit.Lines.Add(outline); - ncors := ncors + 1; - correlations[0,lag] := r; - correlations[lag,0] := r; - end; // next lag - OutPutFrm.ShowModal; - - // build correlation matrix - for i := 0 to maxlag do correlations[i,i] := 1.0; - for i := 1 to maxlag do - begin - for j := i+1 to maxlag do - begin - correlations[i,j] := correlations[0,j-i]; - correlations[j,i] := correlations[i,j]; - end; - end; - - // Print the correlation matrix if elected - if (RmatChk.Checked = true) then - begin - OutPutFrm.RichEdit.Clear; - Title := 'Matrix of Lagged Variable: '; - Title := Title + DepVarEdit.Text; - MAT_PRINT(correlations,maxlag+1,maxlag+1,Title,RowLabels,ColLabels,NoPts); - OutPutFrm.ShowModal; - end; - - // Calculate partial correlations - PartCors[0] := 1.0; - for i := 1 to maxlag do // start at lag 1 - begin - for j := 1 to i do - begin - for k := 1 to i do - begin - a[j-1,k-1] := correlations[j,k]; - end; - rxy[j-1] := correlations[0,j]; - end; - SVDinverse(a, i); - - // get betas as product of inverse times vector - for j := 1 to i do - begin - betas[j-1] := 0.0; - for k := 1 to i do betas[j-1] := betas[j-1] + (a[j-1,k-1] * rxy[k-1]); - end; - - // get regression constant - // Note - since variance of Y and each X is the same, B = beta for an X - Constant := 0; - if MeanChk.Checked = false then - begin - for j := 1 to i do Constant := Constant + betas[j-1] * Mean; - Constant := Mean - Constant; - end; - - // calculate predicted value and residual - // Note - the dependent variable predicted is the next value in the - // time series using each of the previous time period values - Yhat := 0.0; - StdDevY := sqrt(covzero); - for j := 0 to i-1 do Yhat := Yhat + (betas[j] * pts[j]); - Yhat := Yhat + Constant; - avg[i] := Yhat; - residual[i] := pts[i] - Yhat; - - // print betas if elected - if (YuleWalkerChk.Checked) then - begin - OutPutFrm.RichEdit.Clear; - Title := 'Yule-Walker Coefficients for lag ' + IntToStr(i); - DynVectorPrint(betas,i,Title,ColLabels,NoPts); - outline := format('Constant = %10.3f',[Constant]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - end; - - PartCors[i] := betas[i-1]; - end; // next i (lag from 1 to maxlag) - - // print partial correlations if elected - if (PartialsChk.Checked = true) then - begin - OutPutFrm.RichEdit.Clear; - Title := 'Partial Correlation Coefficients'; - DynVectorPrint(PartCors,maxlag,Title,ColLabels,NoPts); - OutPutFrm.ShowModal; - end; - - // plot correlations if elected - uplimit := 1.96 * (1.0 / sqrt(count)); - lowlimit := -1.96 * (1.0 / sqrt(count)); - if (PlotChk.Checked = true) then - begin - for i := 0 to maxlag do rxy[i] := correlations[0][i]; - AutoPlotFrm.PlotPartCors := true; - AutoPlotFrm.PlotLimits := true; - AutoPlotFrm.correlations := rxy; - AutoPlotFrm.partcors := PartCors; - AutoPlotFrm.uplimit := uplimit; - AutoPlotFrm.lowlimit := lowlimit; - AutoPlotFrm.npoints := maxlag+1; - AutoPlotFrm.DepVarEdit := DepVarEdit.Text; -// AutoPlotFrm.AutoPlot; - AutoPlotFrm.ShowModal; - end; - - if MRegSmoothChk.Checked then - begin - // calculate predicted values and residuals for remaining points - // Note - the dependent variable predicted is the next value in - // the time series using each of the previous time period values - // as predictors - for i := maxlag to (NoPts + noproj - 1) do - begin - Yhat := 0.0; - for j := 0 to maxlag do Yhat := Yhat + (betas[j] * pts[i-maxlag+j]); - Yhat := Yhat + Constant; - avg[i] := Yhat; - residual[i] := pts[i] - Yhat; - end; - // plot points smoothed by autoregression - avg[0] := pts[0]; - PointsFrm.pts := pts; - PointsFrm.avg := avg; - PointsFrm.NoCases := NoPts + noproj; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Smoothed'; - PointsFrm.Title := 'Autoregressive Smoothed'; - PointsFrm.Caption := 'Autoregression Smoothing'; - PointsFrm.ShowModal; - - // plot residuals if elected - if (ResidChk.Checked) then - begin - varresid := 0.0; - residual[0] := 0.0; - for i := 1 to maxlag do - begin -// residual[i] := pts[i] - avg[i]; - varresid := varresid + (residual[i] * residual[i]); - end; - varresid := varresid / maxlag; - StdErr := sqrt(varresid); - // plot the residuals - PointsFrm.pts := pts; - PointsFrm.avg := residual; - PointsFrm.NoCases := NoPts; - Msg := 'Std. Err. Residuals = '; - Msg := Msg + FloatToStr(StdErr); - PointsFrm.MsgEdit.Text := Msg; - PointsFrm.LabelOne := 'Original'; - PointsFrm.LabelTwo := 'Residuals'; - PointsFrm.Title := 'Residuals from Autoregression Smoothing'; - PointsFrm.Caption := 'Autoregressive Residuals'; - PointsFrm.ShowModal; - end; - end; - - // clean up the heap - residual := nil; - avg := nil; - pts := nil; - rxy := nil; - betas := nil; - a := nil; - PartCors := nil; - ColLabels := nil; - RowLabels := nil; - StdDevs := nil; - Means := nil; - correlations := nil; - ColNoSelected := nil; - - OutPutFrm.RichEdit.Clear; -end; - -procedure TAutocorrFrm.ColBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - for i := 1 to OS3MainFrm.DataGrid.ColCount - 1 do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - GroupBox2.Caption := 'Include Cases:'; - AllCasesBtn.Caption := 'All Cases'; - OnlyCasesBtn.Caption := 'Only Cases From:'; -end; - -procedure TAutocorrFrm.InBtnClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - DepVarEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - OutBtn.Visible := true; - InBtn.Visible := false; -end; - -procedure TAutocorrFrm.OutBtnClick(Sender: TObject); -begin - VarList.Items.Add(DepVarEdit.Text); - DepVarEdit.Text := ''; - InBtn.Visible := true; - OutBtn.Visible := false; -end; - -procedure TAutocorrFrm.four1(var data: DblDyneVec; nn: longword; isign: integer); -var - n,mmax,m,j,istep, i : longword; - wtemp,wr,wpr,wpi,wi,theta : double; - tempr,tempi : double; - -begin - n := 2 * nn; - j := 1; - i := 1; - while i < n do - begin - if (j > i) then - begin - tempr := data[j]; - tempi := data[j+1]; - data[j] := data[i]; - data[j+1] := data[i+1]; - data[i] := tempr; - data[i+1] := tempi; - end; - m := n div 2; - while (m >= 2) and (j > m) do - begin - j := j - m; - m := m div 2; - end; - j := j + m; - i := i + 2; - end; - mmax := 2; - while (n > mmax) do - begin - istep := 2 * mmax; - theta := isign * (6.28318530717959 / mmax); - wtemp := sin(0.5 * theta); - wpr := -2.0 * wtemp * wtemp; - wpi := sin(theta); - wr := 1.0; - wi := 0.0; - m := 1; - while m < mmax do - begin - i := m; - while i <= n do - begin - j := i + mmax; - tempr := wr * data[j] - wi * data[j+1]; - tempi := wr * data[j+1] + wi * data[j]; - data[j] := data[i] - tempr; - data[j+1] := data[i+1] - tempi; - data[i] := data[i] + tempr; - data[i+1] := data[i+1] + tempi; - i := i + istep; - end; - wtemp := wr; - wr := wr * wpr - wi * wpi + wr; - wi := wi * wpr + wtemp * wpi + wi; - m := m + 2; - end; - mmax := istep; - end; -end; - -procedure TAutocorrFrm.realft(var data: DblDyneVec; n: longword; isign: integer); -var - i,i1,i2,i3,i4,np3 : longword; - c1,c2,h1r,h1i,h2r,h2i : double; - wr,wi,wpr,wpi,wtemp,theta : double; - -begin - c1 := 0.5; - theta := 3.141592653589793 / ( n div 2); - if (isign = 1) then - begin - c2 := -0.5; - four1(data,n div 2,1); - end else - begin - c2 := 0.5; - theta := -theta; - end; - wtemp := sin(0.5 * theta); - wpr := -2.0 * wtemp * wtemp; - wpi := sin(theta); - wr := 1.0 + wpr; - wi := wpi; - np3 := n + 3; - for i := 2 to n div 2 do - begin - i1 := i + i - 1; - i2 := 1 + i1; - i3 := np3 - i2; - i4 := 1 + i3; - h1r := c1 * (data[i1] + data[i3]); - h1i := c1 * (data[i2] - data[i4]); - h2r := -c2 * (data[i2] + data[i4]); - h2i := c2 * (data[i1] - data[i3]); - data[i1] := h1r + wr * h2r - wi * h2i; - data[i2] := h1i + wr * h2i + wi * h2r; - data[i3] := h1r - wr * h2r + wi * h2i; - data[i4] := -h1i + wr * h2i + wi * h2r; - wtemp := wr; - wr := wtemp * wpr - wi * wpi + wr; - wi := wi * wpr + wtemp * wpi + wi; - end; - if (isign = 1) then - begin - h1r := data[1]; - data[1] := h1r + data[2]; - data[2] := h1r - data[2]; - end else - begin - h1r := data[1]; - data[1] := c1 * (h1r + data[2]); - data[2] := c1 * (h1r - data[2]); - four1(data,n div 2,-1); - end; -end; - -procedure TAutocorrFrm.fourier(var data: DblDyneVec; n: integer; npts: integer ); -var - nmin, m, mo2, i, k, j : integer; - yn, y1, rn1, fac, cnst : double; - y : DblDyneVec; - -begin - m := 2; - nmin := n + (2 * npts); - while (m < nmin) do m := m * 2; - cnst := npts / m; - cnst := cnst * cnst; - SetLength(y,m+1); - for i := 0 to n - 1 do y[i+1] := data[i]; - y1 := y[1]; - yn := y[n]; - rn1 := 1.0 / (n - 1); - for j := 1 to n do y[j] := y[j] + (-rn1 * (y1 * (n - j) + y1 * (j - 1))); - for j := n+1 to m do y[j] := 0.0; - mo2 := m div 2; - realft(y,mo2,1); - y[1] := y[1] / mo2; - fac := 1.0; - for j := 1 to mo2 - 1 do - begin - k := 2 * j + 1; - if (fac <> 0) then - begin - fac := (1.0 - cnst * j * j) / mo2; - if ( fac < 0.0) then fac := 0.0; - y[k] := fac * y[k]; - y[k + 1] := fac * y[k + 1]; - end - else y[k + 1] := 0.0; - y[k] := 0.0; - end; - fac := (1.0 - 0.25 * npts * npts) / mo2; - if (fac < 0.0) then fac := 0.0; - y[2] := y[2] * fac; - realft(y,mo2,-1); - for j := 1 to n do y[j] := y[j] + rn1 * (y1 * (n - j) + yn * (j - 1)); - for j := 0 to n - 1 do data[j] := y[j+1]; - y := nil; -end; - -procedure TAutocorrFrm.PolyFit(var pts: DblDyneVec; var avg: DblDyneVec; - NoPts: integer); -var - X : DblDyneMat; - XY : DblDyneVec; - XTX : DblDyneMat; - Beta : DblDyneVec; - t, Yhat : double; - i, j, k, order : integer; - RowLabels, ColLabels : StrDyneVec; - -begin - order := StrToInt(PolynomialFrm.PolyEdit.Text); - SetLength(X,NoPts,order+1); - SetLength(XTX,order+2,order+2); - SetLength(XY,order+1); - SetLength(Beta,order+1); - SetLength(RowLabels,NoPts+1); - SetLength(ColLabels,NoPts+1); - - // initialize - for i := 0 to NoPts - 1 do - begin - for j := 0 to order do - begin - X[i,j] := 0.0; - end; - end; - for i := 0 to order do - begin - XY[i] := 0.0; - Beta[i] := 0.0; - for j := 0 to order do - begin - XTX[i,j] := 0.0; - end; - end; - - for i := 0 to NoPts - 1 do - begin - for j := 0 to order do - begin - t := i+1; - X[i,j] := Power(t,j); - end; - end; - - // print the X matrix as a check - for i := 0 to NoPts - 1 do - begin - RowLabels[i] := 'Case' + IntToStr(i+1); - end; - for i := 0 to order+1 do - begin - ColLabels[i] := 'Order' + IntToStr(i); - end; -{ - OutPutFrm.RichEdit.Clear; - Title := 'X Matrix'; - DynMatPrint(X,NoPts,order+1,Title,RowLabels,ColLabels,NoPts); - OutPutFrm.ShowModal; -} - // Get X transpose times X - for j := 0 to order do - begin - for k := 0 to order do - begin - XTX[j,k] := 0.0; - for i := 0 to NoPts - 1 do - begin - XTX[j,k] := XTX[j,k] + (X[i,j] * X[i,k]); - end; - end; - end; -{ - // print the XTX matrix - OutPutFrm.RichEdit.Clear; - Title := 'XTX Matrix (Offset by 1)'; - DynMatPrint(XTX,order+2,order+2,Title,ColLabels,ColLabels,NoPts); - OutPutFrm.ShowModal; -} - // Get X transpose Y - for j := 0 to order do - begin - for i := 0 to NoPts - 1 do - begin - XY[j] := XY[j] + (X[i,j] * pts[i]); - end; - end; -{ - // print the XY vector - OutPutFrm.RichEdit.Clear; - Title := 'XY vector'; - DynVectorPrint(XY,order+1,Title,ColLabels,NoPts); - OutPutFrm.ShowModal; -} - // get inverse of XTX - SVDinverse(XTX,order+1); -{ - // print the inverse matrix - OutPutFrm.RichEdit.Clear; - Title := 'XTX Inverse Matrix'; - DynMatPrint(XTX,order+2,order+2,Title,ColLabels,ColLabels,NoPts); - OutPutFrm.ShowModal; -} - // get betas - for j := 0 to order do - begin - for k := 0 to order do - begin - Beta[j] := Beta[j] + (XTX[j,k] * XY[k]); - end; - end; -{ - // print the betas - OutPutFrm.RichEdit.Clear; - Title := 'Betas vector'; - DynVectorPrint(Beta,order+1,Title,ColLabels,NoPts); - OutPutFrm.ShowModal; -} - // get predicted values - for i := 0 to NoPts - 1 do - begin - Yhat := 0.0; - t := i; - for j := 0 to order do Yhat := Yhat + (Beta[j] * Power(t,j)); - avg[i] := Yhat; - end; - - //cleanup - ColLabels := nil; - RowLabels := nil; - Beta := nil; - XY := nil; - XTX := nil; - X := nil; -end; - -initialization - {$I autocorunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/AUTOCORUNIT.lfm b/applications/lazstats/source_orig/AUTOCORUNIT.lfm deleted file mode 100644 index 3cae7bfd0..000000000 --- a/applications/lazstats/source_orig/AUTOCORUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/AUTOCORUNIT.lrs b/applications/lazstats/source_orig/AUTOCORUNIT.lrs deleted file mode 100644 index ec7867a63..000000000 --- a/applications/lazstats/source_orig/AUTOCORUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/AUTOPLOTUNIT.PAS b/applications/lazstats/source_orig/AUTOPLOTUNIT.PAS deleted file mode 100644 index 6df365ccc..000000000 --- a/applications/lazstats/source_orig/AUTOPLOTUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/AUTOPLOTUNIT.lfm b/applications/lazstats/source_orig/AUTOPLOTUNIT.lfm deleted file mode 100644 index e72c00cad..000000000 --- a/applications/lazstats/source_orig/AUTOPLOTUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/AUTOPLOTUNIT.lrs b/applications/lazstats/source_orig/AUTOPLOTUNIT.lrs deleted file mode 100644 index 0854ab429..000000000 --- a/applications/lazstats/source_orig/AUTOPLOTUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/AXSANOVAUNIT.PAS b/applications/lazstats/source_orig/AXSANOVAUNIT.PAS deleted file mode 100644 index bb165481b..000000000 --- a/applications/lazstats/source_orig/AXSANOVAUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/AXSANOVAUNIT.lfm b/applications/lazstats/source_orig/AXSANOVAUNIT.lfm deleted file mode 100644 index ef8837e0e..000000000 --- a/applications/lazstats/source_orig/AXSANOVAUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/AXSANOVAUNIT.lrs b/applications/lazstats/source_orig/AXSANOVAUNIT.lrs deleted file mode 100644 index 1e67d8fc4..000000000 --- a/applications/lazstats/source_orig/AXSANOVAUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/AboutUnit.lfm b/applications/lazstats/source_orig/AboutUnit.lfm deleted file mode 100644 index e79cce5ec..000000000 --- a/applications/lazstats/source_orig/AboutUnit.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/AboutUnit.lrs b/applications/lazstats/source_orig/AboutUnit.lrs deleted file mode 100644 index ca16605c5..000000000 --- a/applications/lazstats/source_orig/AboutUnit.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/AboutUnit.pas b/applications/lazstats/source_orig/AboutUnit.pas deleted file mode 100644 index f5e591af5..000000000 --- a/applications/lazstats/source_orig/AboutUnit.pas +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/BACKREGUNIT.PAS b/applications/lazstats/source_orig/BACKREGUNIT.PAS deleted file mode 100644 index a33df3936..000000000 --- a/applications/lazstats/source_orig/BACKREGUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/BACKREGUNIT.lfm b/applications/lazstats/source_orig/BACKREGUNIT.lfm deleted file mode 100644 index 0f15878e7..000000000 --- a/applications/lazstats/source_orig/BACKREGUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/BACKREGUNIT.lrs b/applications/lazstats/source_orig/BACKREGUNIT.lrs deleted file mode 100644 index 8e67c4881..000000000 --- a/applications/lazstats/source_orig/BACKREGUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/BESTREGUNIT.PAS b/applications/lazstats/source_orig/BESTREGUNIT.PAS deleted file mode 100644 index 7df03b34b..000000000 --- a/applications/lazstats/source_orig/BESTREGUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/BESTREGUNIT.lfm b/applications/lazstats/source_orig/BESTREGUNIT.lfm deleted file mode 100644 index 04052b61c..000000000 --- a/applications/lazstats/source_orig/BESTREGUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/BESTREGUNIT.lrs b/applications/lazstats/source_orig/BESTREGUNIT.lrs deleted file mode 100644 index 669d87a0f..000000000 --- a/applications/lazstats/source_orig/BESTREGUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/BINOMIALUNIT.PAS b/applications/lazstats/source_orig/BINOMIALUNIT.PAS deleted file mode 100644 index cb270f784..000000000 --- a/applications/lazstats/source_orig/BINOMIALUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/BINOMIALUNIT.lfm b/applications/lazstats/source_orig/BINOMIALUNIT.lfm deleted file mode 100644 index 6d4a32550..000000000 --- a/applications/lazstats/source_orig/BINOMIALUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/BINOMIALUNIT.lrs b/applications/lazstats/source_orig/BINOMIALUNIT.lrs deleted file mode 100644 index 536650787..000000000 --- a/applications/lazstats/source_orig/BINOMIALUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/BLKANOVAUNIT.PAS b/applications/lazstats/source_orig/BLKANOVAUNIT.PAS deleted file mode 100644 index 14b3a5466..000000000 --- a/applications/lazstats/source_orig/BLKANOVAUNIT.PAS +++ /dev/null @@ -1,2742 +0,0 @@ -unit BlkAnovaUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, ExtCtrls, MainUnit, Globals, FunctionsLib, OutPutUnit, - DataProcs, GraphLib, ANOVATESTSUnit, Math, contexthelpunit; - -type - - { TBlksAnovaFrm } - - TBlksAnovaFrm = class(TForm) - BrownForsythe: TCheckBox; - Label5: TLabel; - Welch: TCheckBox; - DepIn: TBitBtn; - DepOut: TBitBtn; - Fact1In: TBitBtn; - Fact1Out: TBitBtn; - Fact2In: TBitBtn; - Fact2Out: TBitBtn; - Fact3In: TBitBtn; - Fact3Out: TBitBtn; - HelpBtn: TButton; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - Scheffe: TCheckBox; - Plot3DLines: TCheckBox; - TukeyHSD: TCheckBox; - TukeyB: TCheckBox; - TukeyKramer: TCheckBox; - NewmanKeuls: TCheckBox; - Bonferoni: TCheckBox; - OrthoContrasts: TCheckBox; - PlotMeans: TCheckBox; - Plot2DLines: TCheckBox; - DepVar: TEdit; - Factor1: TEdit; - Factor2: TEdit; - Factor3: TEdit; - OverallAlpha: TEdit; - PostAlpha: TEdit; - GroupBox1: TGroupBox; - GroupBox2: TGroupBox; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - VarList: TListBox; - Fact1Grp: TRadioGroup; - Fact2Grp: TRadioGroup; - Fact3Grp: TRadioGroup; - StaticText1: TStaticText; - StaticText2: TStaticText; - StaticText3: TStaticText; - StaticText4: TStaticText; - procedure ComputeBtnClick(Sender: TObject); - procedure DepInClick(Sender: TObject); - procedure DepOutClick(Sender: TObject); - procedure Fact1OutClick(Sender: TObject); - procedure Fact2InClick(Sender: TObject); - procedure Fact2OutClick(Sender: TObject); - procedure Fact3InClick(Sender: TObject); - procedure Fact3OutClick(Sender: TObject); - procedure Fact1InClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure TwoWayContrasts(Sender: TObject); - procedure ThreeWayContrasts(Sender: TObject); - private - { private declarations } - NoSelected, intvalue, N : integer; - ColNoSelected : IntDyneVec; - outline, cellstring : string; - SSDep, SSErr, SSF1, SSF2, SSF3, SSF1F2, SSF1F3, SSF2F3, SSF1F2F3 : double; - MSDep, MSErr, MSF1, MSF2, MSF3, MSF1F2, MSF1F3, MSF2F3, MSF1F2F3 : double; - DFTot, DFErr, DFF1, DFF2, DFF3, DFF1F2, DFF1F3, DFF2F3, DFF1F2F3 : double; - Omega, OmegaF1, OmegaF2, OmegaF3, OmegaF1F2, F, MinSize, MaxSize : double; - OmegaF1F3, OmegaF2F3, OmegaF1F2F3 : double; - FF1, FF2, FF1F2, ProbF1, ProbF2, ProbF3, ProbF1F2, ProbF1F3 : double; - FF3, FF2F3, FF1F3, FF1F2F3, ProbF2F3, ProbF1F2F3 : double; - DepVarCol, F1Col, F2Col, F3Col, Nf1cells, Nf2cells, Nf3cells : integer; - MeanDep, MeanF1, MeanF2, MeanF3, X : double; - minf1, maxf1, minf2, maxf2, minf3, maxf3, nofactors, totcells : integer; - cellcnts : DblDyneVec; // array of cell counts - cellvars : DblDyneVec; // arrray of cell sums of squares then variances - cellsums : DblDyneVec; // array of cell sums then means - equal_grp : boolean; // check for equal groups for post-hoc tests - counts : DblDyneMat; // matrix for 2-way containing cell sizes - sums : DblDyneMat; // matrix for 2-way containing cell sums - vars : DblDyneMat; // matrix for 2-way containing sums of squares - RowSums : DblDyneVec; // 2 way row sums - ColSums : DblDyneVec; // 2 way col sums - RowCount : DblDyneVec; // 2 way row count - ColCount : DblDyneVec; // 2 way col count - SlcSums : DblDyneVec; // 3 way slice sums - SlcCount : DblDyneVec; // 3 way slice counts - NoGrpsA, NoGrpsB, NoGrpsC : integer; - OrdMeansA, OrdMeansB, OrdMeansC : DblDyneVec; // reordered means for f1, f2, f3 - allAlpha, PostHocAlpha : double; // alphas for tests -// wsum : array[1..20,1..20,1..20] of double; // sums for 3 way -// ncnt : array[1..20,1..20,1..20] of integer; // n in 3 way cells -// wx2 : array[1..20,1..20,1..20] of double; // sums of squares for 3 way cells - wsum, wx2 : DblDyneCube; - ncnt : IntDyneCube; - OKterms : array[1..14] of integer; - CompError : boolean; - - procedure getlevels(Sender : TObject); - procedure Calc1Way(Sender: TObject); - procedure OneWayTable(Sender: TObject); - procedure OneWayPlot(Sender: TObject); - procedure Calc2Way(Sender: TObject); - procedure TwoWayTable(Sender: TObject); - procedure TwoWayPlot(Sender: TObject); - procedure Calc3Way(Sender: TObject); - procedure ThreeWayTable(Sender: TObject); - procedure ThreeWayPlot(Sender: TObject); - procedure BrownForsytheOneWay(Sender: TObject); - procedure WelchOneWay(Sender: TObject); - procedure Welchttests(Sender: TObject); - public - { public declarations } - end; - -var - BlksAnovaFrm: TBlksAnovaFrm; - -implementation - -{ TBlksAnovaFrm } - -procedure TBlksAnovaFrm.ResetBtnClick(Sender: TObject); -Var i : integer; -begin - VarList.Clear; - DepIn.Visible := true; - Fact1In.Visible := true; - Fact2In.Visible := true; - Fact3In.Visible := true; - DepOut.Visible := false; - Fact1Out.Visible := false; - Fact2Out.Visible := false; - Fact3Out.Visible := false; - DepVar.Text := ''; - Factor1.Text := ''; - Factor2.Text := ''; - Factor3.Text := ''; - Fact1Grp.ItemIndex := 0; - Fact2Grp.ItemIndex := 0; - Fact3Grp.ItemIndex := 0; - PlotMeans.Checked := false; - Scheffe.Checked := false; - TukeyHSD.Checked := false; - TukeyB.Checked := false; - TukeyKramer.Checked := false; - NewmanKeuls.Checked := false; - Bonferoni.Checked := false; - PostAlpha.Text := '0.05'; - OverAllalpha.Text := '0.05'; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TBlksAnovaFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TBlksAnovaFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TBlksAnovaFrm.DepInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - DepVar.Text := VarList.Items.Strings[index]; - DepIn.Visible := false; - DepOut.Visible := true; - VarList.Items.Delete(index); -end; - -procedure TBlksAnovaFrm.ComputeBtnClick(Sender: TObject); -Var - i : integer; - -Label cleanit; -label nexttwo; -label nextthree; - -begin - OutPutFrm.RichEdit.Clear; - // initialize values - SetLength(ColNoSelected,NoVariables); - DepVarCol := 0; - F1Col := 0; - F2Col := 0; - F3Col := 0; - SSDep := 0.0; - SSF1 := 0.0; - SSF2 := 0.0; - SSF3 := 0.0; - SSF1F2 := 0.0; - SSF1F3 := 0.0; - SSF2F3 := 0.0; - SSF1F2F3 := 0.0; - MeanDep := 0.0; - MeanF1 := 0.0; - MeanF2 := 0.0; - MeanF3 := 0.0; - Nf1cells := 0; - Nf2cells := 0; - Nf3cells := 0; - N := 0; - NoSelected := 0; - minf1 := 0; - maxf1 := 0; - minf2 := 0; - maxf2 := 0; - minf3 := 0; - maxf3 := 0; - - // Get column numbers of dependent variable and factors - for i := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[i,0]; - if cellstring = DepVar.Text then - begin - DepVarCol := i; - NoSelected := NoSelected + 1; - ColNoSelected[NoSelected-1] := DepVarCol; - end; - if cellstring = Factor1.Text then - begin - F1Col := i; - NoSelected := NoSelected + 1; - ColNoSelected[NoSelected-1] := F1Col; - end; - if cellstring = Factor2.Text then - begin - F2Col := i; - NoSelected := NoSelected + 1; - ColNoSelected[NoSelected-1] := F2Col; - end; - if cellstring = Factor3.Text then - begin - F3Col := i; - NoSelected := NoSelected + 1; - ColNoSelected[NoSelected-1] := F3Col; - end; - end; - if F2Col = 0 then nofactors := 1 else nofactors := 2; - if F3Col <> 0 then nofactors := 3; - allAlpha := StrToFloat(OverAllalpha.Text); - PostHocAlpha := StrToFloat(PostAlpha.Text); - // get min and max of each factor code - getlevels(self); - - // allocate space - SetLength(cellcnts,totcells); // array of cell counts - SetLength(cellvars,totcells); // arrray of cell sums of squares then variances - SetLength(cellsums,totcells); // array of cell sums then means - - // initialize array values - for i := 1 to totcells do - begin - cellsums[i-1] := 0.0; - cellvars[i-1] := 0.0; - cellcnts[i-1] := 0; - end; - - // do analysis - case nofactors of - 1 : - begin - Calc1Way(self); // single factor anova - if CompError then goto cleanit; - OneWayTable(self); // output the results - if Scheffe.Checked then - SCHEFFETEST(MSErr,cellsums,cellcnts,minf1,maxf1,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,MinSize,cellsums,cellcnts,minf1,maxf1); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,cellsums,cellcnts,minf1,maxf1,MinSize); - if (TukeyKramer.Checked) then - TUKEY_KRAMER(MSErr,DFErr,MinSize,cellsums,cellcnts,minf1,maxf1); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,MinSize,cellsums,cellcnts,minf1,maxf1); - if Bonferoni.Checked then - Bonferroni(cellsums,cellcnts,cellvars,minf1,maxf1); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,cellsums,cellcnts,minf1,maxf1,0.05); - OutPutFrm.ShowModal; - if (PlotMeans.Checked) or (Plot2DLines.Checked) - or (Plot3DLines.Checked) then OneWayPlot(self); - if BrownForsythe.Checked then BrownForsytheOneWay(self); - if Welch.Checked then WelchOneWay(self); - end; - 2 : // two-way anova - begin - SetLength(counts,Nf1cells,Nf2cells); // matrix for 2-way containing cell sizes - SetLength(sums,Nf1cells,Nf2cells); // matrix for 2-way containing cell sums - SetLength(vars,Nf1cells,Nf2cells); // matrix for 2-way containing sums of squares - SetLength(RowSums,Nf1cells); // 2 way row sums - SetLength(ColSums,Nf2cells); // 2 way col sums - SetLength(RowCount,Nf1cells); // 2 way row count - SetLength(ColCount,Nf2cells); // 2 way col count - SetLength(OrdMeansA,Nf1cells); // ordered means for factor 1 - SetLength(OrdMeansB,Nf2cells); // ordered means for factor 2 - - Calc2Way(self); - if CompError then goto nexttwo; - TwoWayTable(self); - TwoWayContrasts(self); - OutPutFrm.ShowModal; - if (PlotMeans.Checked) or (Plot2DLines.Checked) - or (Plot3DLines.Checked) then TwoWayPlot(self); -nexttwo: OrdMeansB := nil; - OrdMeansA := nil; - ColCount := nil; - RowCount := nil; - ColSums := nil; - RowSums := nil; - vars := nil; - sums := nil; - counts := nil; - end; - 3 : // three way anova - begin - SetLength(RowSums,Nf1cells); // 2 way row sums - SetLength(ColSums,Nf2cells); // 2 way col sums - SetLength(RowCount,Nf1cells); // 2 way row count - SetLength(ColCount,Nf2cells); // 2 way col count - SetLength(SlcSums,Nf3cells); // 3 way slice sums - SetLength(SlcCount,Nf3cells); // 3 way slice counts - SetLength(OrdMeansA,Nf1cells); // ordered means for factor 1 - SetLength(OrdMeansB,Nf2cells); // ordered means for factor 2 - SetLength(OrdMeansC,Nf3cells); // ordered means for factor 3 - SetLength(wsum,Nf1cells,Nf2cells,Nf3cells); - SetLength(wx2,Nf1cells,Nf2cells,Nf3cells); - SetLength(ncnt,Nf1cells,Nf2cells,Nf3cells); - - Calc3Way(self); - if CompError then goto nextthree; - ThreeWayTable(self); - ThreeWayContrasts(self); - OutPutFrm.ShowModal; - if (PlotMeans.Checked) or (Plot2DLines.Checked) - or (Plot3DLines.Checked) then ThreeWayPlot(self); -nextthree: ncnt := nil; - wx2 := nil; - wsum := nil; - OrdMeansC := nil; - OrdMeansB := nil; - OrdMeansA := nil; - SlcCount := nil; - SlcSums := nil; - ColCount := nil; - ColSums := nil; - RowCount := nil; - RowSums := nil; - end; - end; -cleanit: - cellcnts := nil; - cellvars := nil; - cellsums := nil; - ColNoSelected := nil; -end; - -procedure TBlksAnovaFrm.DepOutClick(Sender: TObject); -begin - VarList.Items.Add(DepVar.Text); - DepVar.Text := ''; - DepOut.Visible := false; - DepIn.Visible := true; -end; - -procedure TBlksAnovaFrm.Fact1OutClick(Sender: TObject); -begin - VarList.Items.Add(Factor1.Text); - Factor1.Text := ''; - Fact1Out.Visible := false; - Fact1In.Visible := true; -end; - -procedure TBlksAnovaFrm.Fact2InClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - if index = -1 then exit; - Factor2.Text := VarList.Items.Strings[index]; - Fact2In.Visible := false; - Fact2Out.Visible := true; - VarList.Items.Delete(index); -end; - -procedure TBlksAnovaFrm.Fact2OutClick(Sender: TObject); -begin - VarList.Items.Add(Factor2.Text); - Factor2.Text := ''; - Fact2Out.Visible := false; - Fact2In.Visible := true; -end; - -procedure TBlksAnovaFrm.Fact3InClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - if index = -1 then exit; - Factor3.Text := VarList.Items.Strings[index]; - Fact3In.Visible := false; - Fact3Out.Visible := true; - VarList.Items.Delete(index); -end; - -procedure TBlksAnovaFrm.Fact3OutClick(Sender: TObject); -begin - VarList.Items.Add(Factor3.Text); - Factor3.Text := ''; - Fact3Out.Visible := false; - Fact3In.Visible := true; -end; - -procedure TBlksAnovaFrm.Fact1InClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - if index = -1 then exit; - Factor1.Text := VarList.Items.Strings[index]; - Fact1In.Visible := false; - Fact1Out.Visible := true; - VarList.Items.Delete(index); -end; - -procedure TBlksAnovaFrm.getlevels(Sender: TObject); -VAR i : integer; -begin - minf1 := 10000; - maxf1 := -10000; - for i := 1 to NoCases do - begin - if Not GoodRecord(i,NoSelected,ColNoSelected) then continue; - intvalue := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F1Col,i]))); - if intvalue > maxf1 then maxf1 := intvalue; - if intvalue < minf1 then minf1 := intvalue; - end; - Nf1cells := maxf1 - minf1 + 1; - if nofactors > 1 then - begin - minf2 := 10000; - maxf2 := -10000; - for i := 1 to NoCases do - begin - if Not GoodRecord(i,NoSelected,ColNoSelected) then continue; - intvalue := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F2Col,i]))); - if intvalue > maxf2 then maxf2 := intvalue; - if intvalue < minf2 then minf2 := intvalue; - end; - Nf2cells := maxf2 - minf2 + 1; - end; - if nofactors = 3 then - begin - minf3 := 10000; - maxf3 := -10000; - for i := 1 to NoCases do - begin - if Not GoodRecord(i,NoSelected,ColNoSelected) then continue; - intvalue := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F3Col,i]))); - if intvalue > maxf3 then maxf3 := intvalue; - if intvalue < minf3 then minf3 := intvalue; - end; - Nf3cells := maxf3 - minf3 + 1; - end; - totcells := Nf1cells + Nf2cells + Nf3cells; -end; - -procedure TBlksAnovaFrm.Calc1Way(Sender: TObject); -VAR i : integer; -begin - // get working totals - for i := 1 to NoCases do - begin - if not GoodRecord(i,NoSelected,ColNoSelected) then continue; - intvalue := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F1Col,i]))); - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[DepVarCol,i])); - intvalue := intvalue - minf1 + 1; - cellcnts[intvalue-1] := cellcnts[intvalue-1] + 1; - cellsums[intvalue-1] := cellsums[intvalue-1] + X; - cellvars[intvalue-1] := cellvars[intvalue-1] + (X * X); - MeanDep := MeanDep + X; - SSDep := SSDep + (X * X); - N := N + 1; - end; - DFF1 := 0; - for i := 0 to Nf1cells-1 do - begin - if cellcnts[i] > 0 then - begin - SSF1 := SSF1 + (sqr(cellsums[i]) / cellcnts[i]); - DFF1 := DFF1 + 1; - end; - end; - SSF1 := SSF1 - (sqr(MeanDep) / N); - SSDep := SSDep - (sqr(MeanDep) / N); - SSErr := SSDep - SSF1; - DFTot := N - 1; - DFF1 := DFF1 - 1; - DFErr := DFTot - DFF1; - MSF1 := SSF1 / DFF1; - MSErr := SSErr / DFErr; - MSDep := SSDep / DFTot; - Omega := (SSF1 - DFF1 * MSErr) / (SSDep + MSErr); - F := MSF1 / MSErr; - ProbF1 := probf(F,DFF1, DFErr); - MeanDep := MeanDep / N; -end; - -procedure TBlksAnovaFrm.OneWayTable(Sender: TObject); -var - i, grpsize : integer; - minvar, maxvar, sumvar, sumfreqlogvar, sumDFrecip : double; - c, bartlett, cochran, hartley, chiprob : double; - -begin - OutPutFrm.RichEdit.Lines.Add('ONE WAY ANALYSIS OF VARIANCE RESULTS'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Dependent variable is: %s, Independent variable is: %s', - [DepVar.Text,Factor1.Text]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - OutPutFrm.RichEdit.Lines.Add('SOURCE D.F. SS MS F PROB.>F OMEGA SQR.'); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - outline := format('BETWEEN %4.0f%10.2f%10.2f%10.2f%10.2f%10.2f', - [DFF1,SSF1,MSF1,F,ProbF1,Omega]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('WITHIN %4.0f%10.2f%10.2f',[DFErr,SSErr,MSErr]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('TOTAL %4.0f%10.2f',[DFTot,SSDep]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('MEANS AND VARIABILITY OF THE DEPENDENT VARIABLE FOR LEVELS OF THE INDEPENDENT VARIABLE'); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - OutPutFrm.RichEdit.Lines.Add('GROUP MEAN VARIANCE STD.DEV. N'); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - equal_grp := true; - minvar := 1e20; - maxvar := 0.0; - sumvar := 0.0; - sumDFrecip := 0.0; - sumfreqlogvar := 0.0; - grpsize := round(cellcnts[0]); - MinSize := grpsize; // initialized minimum group size - MaxSize := grpsize; // initialize maximum group size - for i := 0 to NF1cells-1 do - begin - grpsize := round(cellcnts[i]); - if grpsize < MinSize then - begin - MinSize := grpsize; - equal_grp := false; - end; - if grpsize > MaxSize then MaxSize := grpsize; - if cellcnts[i] > 1 then - begin - cellvars[i] := cellvars[i] - (sqr(cellsums[i]) / cellcnts[i]); - cellvars[i] := cellvars[i] / (cellcnts[i] - 1); - if cellvars[i] > maxvar then maxvar := cellvars[i]; - if cellvars[i] < minvar then minvar := cellvars[i]; - sumvar :=sumvar + cellvars[i]; - sumDFrecip := sumDFrecip + (1.0 / (cellcnts[i] - 1.0)); - sumfreqlogvar := sumfreqlogvar + (cellcnts[i] - 1) * Log10(cellvars[i]); - end; - if cellcnts[i] > 0 then - begin - outline := format('%4d %10.2f%10.2f%10.2f%4.0f', - [i+1,cellsums[i] / cellcnts[i], cellvars[i], sqrt(cellvars[i]), cellcnts[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - outline := format('TOTAL%10.2f%10.2f%10.2f%4d',[MeanDep,MSDep,sqrt(MSDep),N]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - OutPutFrm.RichEdit.Lines.Add(''); - c := 1.0 + (1.0 / (3 * DFF1)) * (sumDFrecip - (1.0 / DFErr)); - bartlett := (2.303 / c) * ((DFErr * Log10(MSErr)) - sumfreqlogvar); - chiprob := 1.0 - chisquaredprob(bartlett,round(DFF1)); - cochran := maxvar / sumvar; - hartley := maxvar / minvar; - OutPutFrm.RichEdit.Lines.Add('TESTS FOR HOMOGENEITY OF VARIANCE'); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - outline := format('Hartley Fmax test statistic = %10.2f with deg.s freedom: %d and %5.0f.', - [hartley, NF1cells, MaxSize - 1]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Cochran C statistic = %10.2f with deg.s freedom: %d and %5.0f.', - [cochran, NF1cells, MaxSize - 1]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Bartlett Chi-square = %10.2f with %4.0f D.F. Prob. > Chi-Square = %6.3f', - [bartlett, DFF1, chiprob]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); -end; - -procedure TBlksAnovaFrm.OneWayPlot(Sender: TObject); -var - i : integer; - maxmean : double; - XValue : DblDyneVec; - setstring : string[11]; - plottype : integer; - -begin - plottype := 2; - SetLength(XValue,Nf1cells); - if PlotMeans.Checked then plottype := 2; - if Plot2DLines.Checked then plottype := 5; - if Plot3DLines.Checked then plottype := 6; - maxmean := 0.0; - setstring := 'FACTOR A'; - GraphFrm.SetLabels[1] := setstring; - SetLength(GraphFrm.YPoints,1,NF1cells); - SetLength(GraphFrm.Xpoints,1,NF1cells); - for i := 1 to NF1cells do - begin - cellsums[i-1] := cellsums[i-1] / cellcnts[i-1]; - GraphFrm.Ypoints[0,i-1] := cellsums[i-1]; - if cellsums[i-1] > maxmean then maxmean := cellsums[i-1]; - XValue[i-1] := minF1 + i - 1; - GraphFrm.Xpoints[0,i-1] := XValue[i-1]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NF1cells; - GraphFrm.Heading := Factor1.Text; - GraphFrm.XTitle := 'FACTOR A LEVEL'; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; // 3d Vertical Bar Chart - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - XValue := nil; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; -end; - -procedure TBlksAnovaFrm.Calc2Way(Sender: TObject); -var - i, j : integer; - grpA, grpB : integer; - Constant, RowsTotCnt, ColsTotCnt, SSCells : double; - -begin - CompError := false; - // initialize matrix values - NoGrpsA := maxf1 - minf1 + 1; - NoGrpsB := maxf2 - minf2 + 1; - for i := 1 to NoGrpsA do - begin - RowSums[i-1] := 0.0; - RowCount[i-1] := 0.0; - for j := 1 to NoGrpsB do - begin - counts[i-1,j-1] := 0.0; - sums[i-1,j-1] := 0.0; - vars[i-1,j-1] := 0.0; - end; - end; - for i := 1 to NoGrpsB do - begin - ColCount[i-1] := 0.0; - ColSums[i-1] := 0.0; - end; - N := 0; - MeanDep := 0.0; - SSDep := 0.0; - SSCells := 0.0; - RowsTotCnt := 0.0; - ColsTotCnt := 0.0; - // get working totals - for i := 1 to NoCases do - begin - if not GoodRecord(i,NoSelected,ColNoSelected) then continue; - grpA := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F1Col,i]))); - grpB := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F2Col,i]))); - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[DepVarCol,i])); - grpA := grpA - minf1 + 1; - grpB := grpB - minf2 + 1; - counts[grpA-1,grpB-1] := counts[grpA-1,grpB-1] + 1; - sums[grpA-1,grpB-1] := sums[grpA-1,grpB-1] + X; - vars[grpA-1,grpB-1] := vars[grpA-1,grpB-1] + (X * X); - RowSums[GrpA-1] := RowSums[GrpA-1] + X; - ColSums[GrpB-1] := ColSums[GrpB-1] + X; - RowCount[GrpA-1] := RowCount[GrpA-1] + 1.0; - ColCount[GrpB-1] := ColCount[GrpB-1] + 1.0; - MeanDep := MeanDep + X; - SSDep := SSDep + (X * X); - N := N + 1; - end; - - // Calculate results - for i := 0 to NoGrpsA-1 do - begin - SSF1 := SSF1 + ((RowSums[i] * RowSums[i]) / RowCount[i]); - RowsTotCnt := RowsTotCnt + RowCount[i]; - end; - for j := 0 to NoGrpsB-1 do - begin - SSF2 := SSF2 + ((ColSums[j] * ColSums[j]) / ColCount[j]); - ColsTotCnt := ColsTotCnt + ColCount[j]; - end; - for i := 0 to NoGrpsA-1 do - begin - for j := 0 to NoGrpsB-1 do - if counts[i,j] > 0 then - SSCells := SSCells + ((sums[i,j] * sums[i,j]) / counts[i,j]); - end; - if N > 0 then Constant := (MeanDep * MeanDep) / N else Constant := 0.0; - SSF1 := SSF1 - Constant; - SSF2 := SSF2 - Constant; - SSF1F2 := SSCells - SSF1 - SSF2 - Constant; - SSErr := SSDep - SSCells; - SSDep := SSDep - Constant; - - - if (SSF1F2 < 0) or (SSF1 < 0) or (SSF2 < 0) then - begin - ShowMessage('ERROR! A negative SS found. Unbalanced design? Ending analysis.'); - CompError := true; - exit; - end; - DFTot := N - 1; - DFF1 := NoGrpsA - 1; - DFF2 := NoGrpsB - 1; - DFF1F2 := DFF1 * DFF2; - DFErr := DFTot - DFF1 - DFF2 - DFF1F2; -// DFCells := N - (NoGrpsA * NoGrpsB); - MSF1 := SSF1 / DFF1; - MSF2 := SSF2 / DFF2; - MSF1F2 := SSF1F2 / DFF1F2; - MSErr := SSErr / DFErr; - MSDep := SSDep / DFTot; - OmegaF1 := (SSF1 - DFF1 * MSErr) / (SSDep + MSErr); - OmegaF2 := (SSF2 - DFF2 * MSErr) / (SSDep + MSErr); - OmegaF1F2 := (SSF1F2 - DFF1F2 * MSErr) / (SSDep + MSErr); - Omega := OmegaF1 + OmegaF2 + OmegaF1F2; - MeanDep := MeanDep / N; - // f tests for fixed effects - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 0) then - begin - FF1 := abs(MSF1 / MSErr); - FF2 := abs(MSF2 / MSErr); - FF1F2 := abs(MSF1F2 / MSErr); - ProbF1 := probf(FF1,DFF1,DFErr); - ProbF2 := probf(FF2,DFF2,DFErr); - ProbF1F2 := probf(FF1F2,DFF1F2,DFErr); - end; - // f tests if both factors are random - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 1) then - begin - FF1 := abs(MSF1 / MSF1F2); - FF2 := abs(MSF2 / MSF1F2); - FF1F2 := abs(MSF1F2 / MSErr); - ProbF1 := probf(FF1,DFF1,DFF1F2); - ProbF2 := probf(FF2,DFF2,DFF1F2); - ProbF3 := probf(FF1F2,DFF1F2,DFErr); - end; - // f test if factor A is random - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 0) then - begin - FF1 := abs(MSF1 / MSErr); - FF2 := abs(MSF2 / MSF1F2); - FF1F2 := abs(MSF1F2 / MSErr); - ProbF1 := probf(FF1,DFF1,DFErr); - ProbF2 := probf(FF2,DFF2,DFF1F2); - ProbF3 := probf(FF1F2,DFF1F2,DFErr); - end; - // f test if factor b is random - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 1) then - begin - FF1 := abs(MSF1 / MSF1F2); - FF2 := abs(MSF2 / MSErr); - FF1F2 := abs(MSF1F2 / MSErr); - ProbF1 := probf(FF1,DFF1,DFF1F2); - ProbF2 := probf(FF2,DFF2,DFErr); - ProbF3 := probf(FF1F2,DFF1F2,DFErr); - end; - if (ProbF1 > 1.0) then ProbF1 := 1.0; - if (ProbF2 > 1.0) then ProbF2 := 1.0; - if (ProbF1F2 > 1.0) then ProbF1F2 := 1.0; - - // Obtain omega squared (proportion of dependent variable explained) - if (OmegaF1 < 0.0) then OmegaF1 := 0.0; - if (OmegaF2 < 0.0) then OmegaF2 := 0.0; - if (OmegaF1F2 < 0.0) then OmegaF1F2 := 0.0; - //Omega = ( (SSF1 + SSF2 + SSF1F2) - (DFF1 + DFF2 + DFF1F2) * MSErr) / (SSDep + MSErr); - if (Omega < 0.0) then Omega := 0.0; -end; - -procedure TBlksAnovaFrm.TwoWayTable(Sender: TObject); -var - groupsize : integer; - MinVar, MaxVar, sumvars, sumDFrecip : double; - i, j : integer; - XBar, V, S, RowSS, ColSS : double; - sumfreqlogvar, c, bartlett, cochran, hartley, chiprob : double; - -begin - If CompError then exit; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Two Way Analysis of Variance'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Variable analyzed: %s',[DepVar.Text]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Factor A (rows) variable: %s',[Factor1.Text]); - if Fact1Grp.ItemIndex = 0 then outline := outline + ' (Fixed Levels)' - else outline := outline + ' (Random Levels)'; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Factor B (columns) variable: %s',[Factor2.Text]); - if Fact2Grp.ItemIndex = 0 then outline := outline + ' (Fixed Levels)' - else outline := outline + ' (Random Levels)'; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('SOURCE D.F. SS MS F PROB.> F Omega Squared'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Among Rows %4.0f %8.3f %8.3f %8.3f %6.3f %6.3f', - [DFF1,SSF1,MSF1,FF1,ProbF1,OmegaF1]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Among Columns %4.0f %8.3f %8.3f %8.3f %6.3f %6.3f', - [DFF2,SSF2,MSF2,FF2,ProbF2,OmegaF2]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Interaction %4.0f %8.3f %8.3f %8.3f %6.3f %6.3f', - [DFF1F2,SSF1F2,MSF1F2,FF1F2,ProbF1F2,OmegaF1F2]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Within Groups %4.0f %8.3f %8.3f', - [DFErr,SSErr,MSErr]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Total %4.0f %8.3f %8.3f', - [DFTot,SSDep,MSDep]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Omega squared for combined effects = %8.3f',[Omega]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 0) then - OutPutFrm.RichEdit.Lines.Add('Note: Denominator of F ratio is MSErr'); - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 1) then - OutPutFrm.RichEdit.Lines.Add('Note: Denominator of F ratio is MSAxB'); - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 1) then - begin - OutPutFrm.RichEdit.Lines.Add('Note: Denominator of F ratio for A is MSAxB'); - OutPutFrm.RichEdit.Lines.Add('and denominator for B and AxB is MSErr'); - end; - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 0) then - begin - OutPutFrm.RichEdit.Lines.Add('Note: Denominator of F ratio for B is MSAxB'); - OutPutFrm.RichEdit.Lines.Add('and denominator for A and AxB is MSErr'); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Descriptive Statistics'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('GROUP Row Col. N MEAN VARIANCE STD.DEV.'); - groupsize := round(counts[0,0]); - equal_grp := true; - MaxVar := 0.0; - MinVar := 1e20; - sumvars := 0.0; - sumfreqlogvar := 0.0; - sumDFrecip := 0.0; - - // Display cell means, variances, standard deviations - V := 0.0; - XBar := 0.0; - S := 0.0; - for i := 0 to NoGrpsA-1 do - begin - for j := 0 to NoGrpsB-1 do - begin - if counts[i,j] > 1 then - begin - XBar := sums[i,j] / counts[i,j]; - V := vars[i,j] - ( (sums[i,j] * sums[i,j]) / counts[i,j]); - V := V / (counts[i,j] - 1.0); - S := sqrt(V); - sumvars := sumvars + V; - if V > MaxVar then MaxVar := V; - if V < MinVar then MinVar := V; - sumDFrecip := sumDFrecip + (1.0 / (counts[i,j] - 1.0)); - sumfreqlogvar := sumfreqlogvar + ((counts[i,j] - 1.0) * ln(V)); - if counts[i,j] <> groupsize then equal_grp := false; - end; - outline := format('Cell %3d %3d %3.0f %8.3f %8.3f %8.3f', - [minf1+i,minf2+j,counts[i,j],XBar,V,S]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - - //Display Row means, variances, standard deviations - for i := 0 to NoGrpsA-1 do - begin - XBar := RowSums[i] / RowCount[i]; - OrdMeansA[i] := XBar; - RowSS := 0.0; - for j := 0 to NoGrpsB-1 do RowSS := RowSS + vars[i,j]; - V := RowSS - (RowSums[i] * RowSums[i] / RowCount[i]); - V := V / (RowCount[i] - 1.0); - S := sqrt(V); - outline := format('Row %3d %3.0f %8.3f %8.3f %8.3f', - [minf1+i,RowCount[i],XBar,V,S]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - //Display means, variances and standard deviations for columns - for j := 0 to NoGrpsB-1 do - begin - XBar := ColSums[j] / ColCount[j]; - OrdMeansB[j] := XBar; - ColSS := 0.0; - for i := 0 to NoGrpsA-1 do ColSS := ColSS + vars[i,j]; - if ColCount[j] > 0 then V := ColSS - (ColSums[j] * ColSums[j] / ColCount[j]); - if ColCount[j] > 1 then V := V / (ColCount[j] - 1.0); - if V > 0.0 then S := sqrt(V); - outline := format('Col %3d %3.0f %8.3f %8.3f %8.3f', - [minf2+j,ColCount[j],XBar,V,S]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - outline := format('TOTAL %3d %8.3f %8.3f %8.3f', - [N,MeanDep,MSDep,sqrt(MSDep)]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(''); - c := 1.0 + (1.0 / (3.0 * NoGrpsA * NoGrpsB - 1.0)) * (sumDFrecip - (1.0 / DFErr)); - bartlett := (2.303 / c) * ((DFErr * ln(MSErr)) - sumfreqlogvar); - chiprob := 1.0 - chisquaredprob(bartlett,round(NoGrpsA * NoGrpsB - 1)); - cochran := maxvar / sumvars; - hartley := maxvar / minvar; - OutPutFrm.RichEdit.Lines.Add('TESTS FOR HOMOGENEITY OF VARIANCE'); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - outline := format('Hartley Fmax test statistic = %10.2f with deg.s freedom: %d and %d.', - [hartley, (NoGrpsA*NoGrpsB),(groupsize-1) ]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Cochran C statistic = %10.2f with deg.s freedom: %d and %d.', - [cochran, (NoGrpsA*NoGrpsB), (groupsize - 1)]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Bartlett Chi-square statistic = %10.2f with %4d D.F. Prob. larger value = %6.3f', - [bartlett, (NoGrpsA*NoGrpsB - 1), chiprob]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); -end; - -procedure TBlksAnovaFrm.TwoWayPlot(Sender: TObject); -var - i, j : integer; - maxmean, XBar : double; - XValue : DblDyneVec; - title : string; - plottype : integer; - setstring : string[11]; - -begin - if CompError then exit; - SetLength(XValue,Nf1cells+Nf2cells); - plottype := 2; - if PlotMeans.Checked then plottype := 2; - if Plot2DLines.Checked then plottype := 5; - if Plot3DLines.Checked then plottype := 6; - - // do Factor A first - setstring := 'FACTOR A'; - GraphFrm.SetLabels[1] := setstring; - maxmean := 0.0; - SetLength(GraphFrm.Xpoints,1,NF1cells); - SetLength(GraphFrm.Ypoints,1,NF1cells); - for i := 1 to NF1cells do - begin - RowSums[i-1] := RowSums[i-1] / RowCount[i-1]; - GraphFrm.Ypoints[0,i-1] := RowSums[i-1]; - if RowSums[i-1] > maxmean then maxmean := RowSums[i-1]; - XValue[i-1] := minF1 + i - 1; - GraphFrm.Xpoints[0,i-1] := XValue[i-1]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NF1cells; - GraphFrm.Heading := Factor1.Text; - title := Factor1.Text + ' Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - // do Factor B next - setstring := 'FACTOR B'; - GraphFrm.SetLabels[1] := setstring; - maxmean := 0.0; - SetLength(GraphFrm.Xpoints,1,NF2cells); - SetLength(GraphFrm.Ypoints,1,NF2cells); - for i := 1 to NF2cells do - begin - ColSums[i-1] := ColSums[i-1] / ColCount[i-1]; - GraphFrm.Ypoints[0,i-1] := ColSums[i-1]; - if ColSums[i-1] > maxmean then maxmean := ColSums[i-1]; - XValue[i-1] := minF1 + i - 1; - GraphFrm.Xpoints[0,i-1] := XValue[i-1]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NF2cells; - GraphFrm.Heading := Factor2.Text; - title := Factor2.Text + ' Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - - // do Factor A x B Interaction next - maxmean := 0.0; - SetLength(GraphFrm.Ypoints,NF1cells,NF2cells); - SetLength(GraphFrm.Xpoints,1,NF2cells); - for i := 1 to NF1cells do - begin - setstring := Factor1.Text + ' ' + IntToStr(i); - GraphFrm.SetLabels[i] := setstring; - for j := 1 to NF2cells do - begin - XBar := sums[i-1,j-1] / counts[i-1,j-1]; - if XBar > maxmean then maxmean := XBar; - GraphFrm.Ypoints[i-1,j-1] := XBar; - end; - end; - for j := 1 to NF2cells do - begin - XValue[j-1] := minF2 + j - 1; - GraphFrm.Xpoints[0,j-1] := XValue[j-1]; - end; - - GraphFrm.nosets := NF1cells; - GraphFrm.nbars := NF2cells; - GraphFrm.Heading := 'Factor A x Factor B'; - title := Factor2.Text + ' Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - XValue := nil; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; -end; - -procedure TBlksAnovaFrm.Calc3Way(Sender: TObject); -var - i, j, k : integer; - grpA, grpB, grpC : integer; - Constant, RowsTotCnt, ColsTotCnt, SlcsTotCnt, SSCells : double; - p, n2 : double; - -begin - CompError := false; - // initialize matrix values - NoGrpsA := maxf1 - minf1 + 1; - NoGrpsB := maxf2 - minf2 + 1; - NoGrpsC := maxf3 - minf3 + 1; - for i := 0 to NoGrpsA-1 do - begin - RowSums[i] := 0.0; - RowCount[i] := 0.0; - for j := 0 to NoGrpsB-1 do - begin - for k := 0 to NoGrpsC-1 do - begin - wsum[i,j,k] := 0.0; - ncnt[i,j,k] := 0; - wx2[i,j,k] := 0.0; - end; - end; - end; - for i := 0 to NoGrpsB-1 do - begin - ColCount[i] := 0.0; - ColSums[i] := 0.0; - end; - for i := 0 to NoGrpsC-1 do - begin - SlcCount[i] := 0.0; - SlcSums[i] := 0.0; - end; - N := 0; - MeanDep := 0.0; - SSDep := 0.0; - RowsTotCnt := 0.0; - ColsTotCnt := 0.0; - SlcsTotCnt := 0.0; - SSF1 := 0.0; - SSF2 := 0.0; - SSF3 := 0.0; - SSF1F2 := 0.0; - SSF1F3 := 0.0; - SSF2F3 := 0.0; - SSF1F2F3 := 0.0; - SSCells := 0.0; - - // get working totals - for i := 1 to NoCases do - begin - if not GoodRecord(i,NoSelected,ColNoSelected) then continue; - grpA := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F1Col,i]))); - grpB := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F2Col,i]))); - grpC := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F3Col,i]))); - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[DepVarCol,i])); - grpA := grpA - minf1 + 1; - grpB := grpB - minf2 + 1; - grpC := grpC - minf3 + 1; - ncnt[grpA-1,grpB-1,grpC-1] := ncnt[grpA-1,grpB-1,grpC-1] + 1; - wsum[grpA-1,grpB-1,grpC-1] := wsum[grpA-1,grpB-1,grpc-1] + X; - wx2[grpA-1,grpB-1,grpC-1] := wx2[grpA-1,grpB-1,grpC-1] + (X * X); - RowSums[GrpA-1] := RowSums[GrpA-1] + X; - ColSums[GrpB-1] := ColSums[GrpB-1] + X; - SlcSums[GrpC-1] := SlcSums[GrpC-1] + X; - RowCount[GrpA-1] := RowCount[GrpA-1] + 1.0; - ColCount[GrpB-1] := ColCount[GrpB-1] + 1.0; - SlcCount[GrpC-1] := SlcCount[GrpC-1] + 1.0; - MeanDep := MeanDep + X; - SSDep := SSDep + (X * X); - N := N + 1; - end; - - // Calculate results - Constant := (MeanDep * MeanDep) / N; - // get ss for rows - for i := 0 to NoGrpsA-1 do - begin - SSF1 := SSF1 + ((RowSums[i] * RowSums[i]) / RowCount[i]); - RowsTotCnt := RowsTotCnt + RowCount[i]; - end; - SSF1 := SSF1 - Constant; - - // get ss for columns - for j := 0 to NoGrpsB-1 do - begin - SSF2 := SSF2 + ((ColSums[j] * ColSums[j]) / ColCount[j]); - ColsTotCnt := ColsTotCnt + ColCount[j]; - end; - SSF2 := SSF2 - Constant; - - // get ss for slices - for k := 0 to NoGrpsC-1 do - begin - SSF3 := SSF3 + ((SlcSums[k] * SlcSums[k]) / SlcCount[k]); - SlcsTotCnt := SlcsTotCnt + SlcCount[k]; - end; - SSF3 := SSF3 - Constant; - - // get ss for row x col interaction - p := 0.0; - n2 := 0.0; - for i := 0 to NoGrpsA-1 do - begin - for j := 0 to NoGrpsB-1 do - begin - for k := 0 to NoGrpsC-1 do - begin - p := p + wsum[i,j,k]; - n2 := n2 + ncnt[i,j,k]; - end; - SSF1F2 := SSF1F2 + ((p * p) / n2); - p := 0.0; - n2 := 0.0; - end; - end; - SSF1F2 := SSF1F2 - SSF1 - SSF2 - Constant; - - // get ss for row x slice interaction - for i := 0 to NoGrpsA-1 do - begin - for k := 0 to NoGrpsC-1 do - begin - for j := 0 to NoGrpsB-1 do - begin - p := p + wsum[i,j,k]; - n2 := n2 + ncnt[i,j,k]; - end; - SSF1F3 := SSF1F3 + ((p * p) / n2); - p := 0.0; - n2 := 0.0; - end; - end; - SSF1F3 := SSF1F3 - SSF1 - SSF3 - Constant; - - // get ss for columns x slices interaction - for j := 0 to NoGrpsB-1 do - begin - for k := 0 to NoGrpsC-1 do - begin - for i := 0 to NoGrpsA-1 do - begin - p := p + wsum[i,j,k]; - n2 := n2 + ncnt[i,j,k]; - end; - SSF2F3 := SSF2F3 + ((p * p) / n2); - p := 0.0; - n2 := 0.0; - end; - end; - SSF2F3 := SSF2F3 - SSF2 - SSF3 - Constant; - - // get ss for cells - for i := 0 to NoGrpsA-1 do - for j := 0 to NoGrpsB-1 do - for k := 0 to NoGrpsC-1 do - SSCells := SSCells + ((wsum[i,j,k] * wsum[i,j,k]) / ncnt[i,j,k]); - - SSF1F2F3 := SSCells - SSF1 - SSF2 - SSF3 - SSF1F2 - SSF1F3 - SSF2F3 - Constant; - SSErr := SSDep - SSCells; - SSDep := SSDep - Constant; - - if (SSF1 < 0.0) or (SSF2 < 0.0) or (SSF3 < 0.0) or (SSF1F2 < 0.0) or - (SSF1F3 < 0.0) or (SSF2F3 < 0.0) or (SSF1F2F3 < 0.0) then - begin - ShowMessage('ERROR! A negative SS found. Unbalanced Design? Ending analysis.'); - CompError := true; - exit; - end; - DFTot := N - 1; - DFF1 := NoGrpsA - 1; - DFF2 := NoGrpsB - 1; - DFF3 := NoGrpsC - 1; - DFF1F2 := DFF1 * DFF2; - DFF1F3 := DFF1 * DFF3; - DFF2F3 := DFF2 * DFF3; - DFF1F2F3 := DFF1 * DFF2 * DFF3; - DFErr := DFTot - DFF1 - DFF2 - DFF3 - DFF1F2 - DFF1F3 - DFF2F3 - DFF1F2F3; -// DFCells := N - (NoGrpsA * NoGrpsB * NoGrpsC); - MSF1 := SSF1 / DFF1; - MSF2 := SSF2 / DFF2; - MSF3 := SSF3 / DFF3; - MSF1F2 := SSF1F2 / DFF1F2; - MSF1F3 := SSF1F3 / DFF1F3; - MSF2F3 := SSF2F3 / DFF2F3; - MSF1F2F3 := SSF1F2F3 / DFF1F2F3; - MSErr := SSErr / DFErr; - MSDep := SSDep / DFTot; - OmegaF1 := (SSF1 - DFF1 * MSErr) / (SSDep + MSErr); - OmegaF2 := (SSF2 - DFF2 * MSErr) / (SSDep + MSErr); - OmegaF3 := (SSF3 - DFF3 * MSErr) / (SSDep + MSErr); - OmegaF1F2 := (SSF1F2 - DFF1F2 * MSErr) / (SSDep + MSErr); - OmegaF1F3 := (SSF1F3 - DFF1F3 * MSErr) / (SSDep + MSErr); - OmegaF2F3 := (SSF2F3 - DFF2F3 * MSErr) / (SSDep + MSErr); - OmegaF1F2F3 := (SSF1F2F3 - DFF1F2F3 * MSErr) / (SSDep + MSErr); - Omega := OmegaF1 + OmegaF2 + OmegaF3 + OmegaF1F2 + OmegaF1F3 + - OmegaF2F3 + OmegaF1F2F3; - MeanDep := MeanDep / N; - - // f tests for fixed effects - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 0) and - (Fact3Grp.ItemIndex = 0) then - begin - FF1 := abs(MSF1 / MSErr); - FF2 := abs(MSF2 / MSErr); - FF3 := abs(MSF3 / MSErr); - FF1F2 := abs(MSF1F2 / MSErr); - FF1F3 := abs(MSF1F3 / MSErr); - FF2F3 := abs(MSF2F3 / MSErr); - FF1F2F3 := abs(MSF1F2F3 / MSErr); - ProbF1 := probf(FF1,DFF1,DFErr); - ProbF2 := probf(FF2,DFF2,DFErr); - ProbF3 := probf(FF3,DFF3,DFErr); - ProbF1F2 := probf(FF1F2,DFF1F2,DFErr); - ProbF1F3 := probf(FF1F3,DFF1F3,DFErr); - ProbF2F3 := probf(FF2F3,DFF2F3,DFErr); - ProbF1F2F3 := probf(FF1F2F3,DFF1F2F3,DFErr); - end; - - // f tests if all factors are random - for i := 1 to 14 do OKterms[i] := 1; // initialize as OK - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 1) and - (Fact3Grp.ItemIndex = 1) then - begin - if (MSF1F2 + MSF1F3 - MSF1F2F3) < 0.0 then OKTerms[1] := 0 else - FF1 := abs(MSF1 / (MSF1F2 + MSF1F3 - MSF1F2F3)); - if (MSF1F2 + MSF2F3 - MSF1F2F3) < 0.0 then OKTerms[2] := 0 else - FF2 := abs(MSF2 / (MSF1F2 + MSF2F3 - MSF1F2F3)); - if (MSF1F3 + MSF2F3 - MSF1F2F3) < 0.0 then OKTerms[3] := 0 else - FF3 := abs(MSF3 / (MSF1F3 + MSF2F3 - MSF1F2F3)); - FF1F2 := abs(MSF1F2 / MSF1F2F3); - FF1F3 := abs(MSF1F3 / MSF1F2F3); - FF2F3 := abs(MSF2F3 / MSF1F2F3); - FF1F2F3 := abs(MSF1F2F3 / MSErr); - ProbF1 := probf(FF1,DFF1,DFF1F2F3); - ProbF2 := probf(FF2,DFF2,DFF1F2F3); - ProbF3 := probf(FF3,DFF3,DFF1F2F3); - ProbF1F2 := probf(FF1F2,DFF1F2,DFF1F2F3); - probF1F3 := probf(FF1F3,DFF1F3,DFF1F2F3); - probF2F3 := probf(FF2F3,DFF2F3,DFF1F2F3); - probF1F2F3 := probf(FF1F2F3,DFF1F2F3,DFErr); - end; - - // f test if factor A is random, B and C Fixed - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 0) and - (Fact3Grp.ItemIndex = 0) then - begin - FF1 := abs(MSF1 / MSErr); - FF2 := abs(MSF2 / MSF1F2); - FF3 := abs(MSF3 / MSF1F3); - FF1F2 := abs(MSF1F2 / MSErr); - FF1F3 := abs(MSF1F3 / MSErr); - FF2F3 := abs(MSF2F3 / MSF1F2F3); - FF1F2F3 := abs(MSF1F2F3 / MSErr); - ProbF1 := probf(FF1,DFF1,DFErr); - ProbF2 := probf(FF2,DFF2,DFF1F2); - ProbF3 := probf(FF3,DFF3,DFF1F3); - ProbF1F2 := probf(FF1F2,DFF1F2,DFErr); - ProbF1F3 := probf(FF1F3,DFF1F3,DFErr); - ProbF2F3 := probf(FF2F3,DFF2F3,DFF1F2F3); - ProbF1F2F3 := probf(FF1F2F3,DFF1F2F3,DFErr); - end; - - // f test if factor b is random and A and C are Fixed - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 1) and - (Fact3Grp.ItemIndex = 0) then - begin - FF1 := abs(MSF1 / MSF1F2); - FF2 := abs(MSF2 / MSErr); - FF3 := abs(MSF3 / MSF2F3); - FF1F2 := abs(MSF1F2 / MSErr); - FF1F3 := abs(MSF1F3 / MSF1F2F3); - FF2F3 := abs(MSF2F3 / MSErr); - FF1F2F3 := abs(MSF1F2F3 / MSErr); - ProbF1 := probf(FF1,DFF1,DFF1F2); - ProbF2 := probf(FF2,DFF2,DFErr); - ProbF3 := probf(FF3,DFF3,DFF2F3); - ProbF1F2 := probf(FF1F2,DFF1F2,DFErr); - ProbF1F3 := probf(FF1F3,DFF1F3,DFF1F2F3); - ProbF2F3 := probf(FF2F3,DFF2F3,DFErr); - ProbF1F2F3 := probf(FF1F2F3,DFF1F2F3,DFErr); - end; - - // f test if factor c is random and A and B are Fixed - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 0) and - (Fact3Grp.ItemIndex = 1) then - begin - FF1 := abs(MSF1 / MSF1F3); - FF2 := abs(MSF2 / MSF2F3); - FF3 := abs(MSF3 / MSErr); - FF1F2 := abs(MSF1F2 / MSF1F2F3); - FF1F3 := abs(MSF1F3 / MSErr); - FF2F3 := abs(MSF2F3 / MSErr); - FF1F2F3 := abs(MSF1F2F3 / MSErr); - ProbF1 := probf(FF1,DFF1,DFF1F3); - ProbF2 := probf(FF2,DFF2,DFF2F3); - ProbF3 := probf(FF3,DFF3,DFErr); - ProbF1F2 := probf(FF1F2,DFF1F2,DFF1F2F3); - ProbF1F3 := probf(FF1F3,DFF1F3,DFErr); - ProbF2F3 := probf(FF2F3,DFF2F3,DFErr); - ProbF1F2F3 := probf(FF1F2F3,DFF1F2F3,DFErr); - end; - - // f tests if A is fixed, B and C are random - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 1) and - (Fact3Grp.ItemIndex = 1) then - begin - if (MSF1F3 + MSF1F2 - MSF1F2F3) < 0.0 then OKTerms[1] := 0 else - FF1 := abs(MSF1 / (MSF1F3 + MSF1F2 - MSF1F2F3)); - FF2 := abs(MSF2 / MSF2F3); - FF3 := abs(MSF3 / MSF2F3); - FF1F2 := abs(MSF1F2 / MSF1F2F3); - FF1F3 := abs(MSF1F3 / MSF1F2F3); - FF2F3 := abs(MSF2F3 / MSErr); - FF1F2F3 := abs(MSF1F2F3 / MSErr); - if (DFF1F3 + DFF1F2 - DFF1F2F3) <= 0 then OKTerms[8] := 0 else - ProbF1 := probf(FF1,DFF1,(DFF1F3 + DFF1F2 - DFF1F2F3)); - ProbF2 := probf(FF2,DFF2,DFF2F3); - ProbF3 := probf(FF3,DFF3,DFF2F3); - ProbF1F2 := probf(FF1F2,DFF1F2,DFF1F2F3); - ProbF1F3 := probf(FF1F3,DFF1F3,DFF1F2F3); - ProbF2F3 := probf(FF2F3,DFF2F3,DFErr); - ProbF1F2F3 := probf(FF1F2F3,DFF1F2F3,DFErr); - end; - // f tests if B is fixed, A and C are random - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 0) and - (Fact3Grp.ItemIndex = 1) then - begin - FF1 := abs(MSF2 / MSF1F3); - if (MSF2F3 + MSF1F2 - MSF1F2F3) <= 0.0 then OKTerms[2] := 0 else - FF2 := abs(MSF1 / (MSF2F3 + MSF1F2 - MSF1F2F3)); - FF3 := abs(MSF3 / MSF1F3); - FF1F2 := abs(MSF1F2 / MSF1F2F3); - FF1F3 := abs(MSF1F3 / MSErr); - FF2F3 := abs(MSF2F3 / MSF1F2F3); - FF1F2F3 := abs(MSF1F2F3 / MSErr); - ProbF1 := probf(FF2,DFF2,DFF1F3); - if (DFF2F3 + DFF1F2 - DFF1F2F3) <= 0 then OKTerms[9] := 0 else - ProbF2 := probf(FF1,DFF1,(DFF2F3 + DFF1F2 - DFF1F2F3)); - ProbF3 := probf(FF3,DFF3,DFF1F3); - ProbF1F2 := probf(FF1F2,DFF1F2,DFF1F2F3); - ProbF1F3 := probf(FF1F3,DFF1F3,DFErr); - ProbF2F3 := probf(FF2F3,DFF2F3,DFF1F2F3); - ProbF1F2F3 := probf(FF1F2F3,DFF1F2F3,DFErr); - end; - - // f tests if C is fixed A and B are random - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 1) and - (Fact3Grp.ItemIndex = 0) then - begin - FF1 := abs(MSF1 / MSF1F2); - FF2 := abs(MSF2 / MSF1F2); - if (MSF2F3 + MSF1F3 - MSF1F2F3) <= 0.0 then OKTerms[3] := 0 else - FF3 := abs(MSF3 / (MSF2F3 + MSF1F3 - MSF1F2F3)); - FF1F2 := abs(MSF2F3 / MSErr); - FF1F3 := abs(MSF1F2 / MSF1F2F3); - FF2F3 := abs(MSF1F3 / MSF1F2F3); - FF1F2F3 := abs(MSF1F2F3 / MSErr); - ProbF1 := probf(FF3,DFF3,DFF1F2); - ProbF2 := probf(FF2,DFF2,DFF1F2); - if (DFF2F3 + DFF1F3 - DFF1F2F3) <= 0 then OKTerms[10] := 0 else - ProbF3 := probf(FF1,DFF1,(DFF2F3 + DFF1F3 - DFF1F2F3)); - ProbF1F2 := probf(FF2F3,DFF2F3,DFErr); - ProbF1F3 := probf(FF1F2,DFF1F2,DFF1F2F3); - ProbF2F3 := probf(FF1F3,DFF1F3,DFF1F2F3); - ProbF1F2F3 := probf(FF1F2F3,DFF1F2F3,DFErr); - end; - if (ProbF1 > 1.0) then ProbF1 := 1.0; - if (ProbF2 > 1.0) then ProbF2 := 1.0; - if ProbF3 > 1.0 then ProbF3 := 1.0; - if (ProbF1F2 > 1.0) then ProbF1F2 := 1.0; - if ProbF1F3 > 1.0 then ProbF1F3 := 1.0; - if ProbF2F3 > 1.0 then ProbF2F3 := 1.0; - if ProbF1F2F3 > 1.0 then ProbF1F2F3 := 1.0; - - // Obtain omega squared (proportion of dependent variable explained) - if (OmegaF1 < 0.0) then OmegaF1 := 0.0; - if (OmegaF2 < 0.0) then OmegaF2 := 0.0; - if OmegaF3 < 0.0 then OmegaF3 := 0.0; - if (OmegaF1F2 < 0.0) then OmegaF1F2 := 0.0; - if OmegaF1F3 < 0.0 then OmegaF1F3 := 0.0; - if OmegaF2F3 < 0.0 then OmegaF2F3 := 0.0; - if OmegaF1F2F3 < 0.0 then OmegaF1F2F3 := 0.0; - if (Omega < 0.0) then Omega := 0.0; -end; - -procedure TBlksAnovaFrm.ThreeWayTable(Sender: TObject); -var - groupsize : integer; - MinVar, MaxVar, sumvars, sumDFrecip : double; - i, j, k : integer; - XBar, V, S, RowSS, ColSS, SlcSS : double; - sumfreqlogvar, c, bartlett, cochran, hartley, chiprob : double; - problem : boolean; - -begin - If CompError then exit; - OutPutFrm.RichEdit.Clear; - problem := false; - OutPutFrm.RichEdit.Lines.Add('Three Way Analysis of Variance'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Variable analyzed: %s',[DepVar.Text]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Factor A (rows) variable: %s',[Factor1.Text]); - if Fact1Grp.ItemIndex = 0 then outline := outline + ' (Fixed Levels)' - else outline := outline + ' (Random Levels)'; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Factor B (columns) variable: %s',[Factor2.Text]); - if Fact2Grp.ItemIndex = 0 then outline := outline + ' (Fixed Levels)' - else outline := outline + ' (Random Levels)'; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Factor C (slices) variable: %s',[Factor3.Text]); - if Fact3Grp.ItemIndex = 0 then outline := outline + ' (Fixed Levels)' - else outline := outline + ' (Random Levels)'; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('SOURCE D.F. SS MS F PROB.> F Omega Squared'); - OutPutFrm.RichEdit.Lines.Add(''); - if (OKTerms[1] = 1) and (OKTerms[8] = 1) then - begin - outline := format('Among Rows %4.0f %10.3f %10.3f %10.3f %6.3f %6.3f', - [DFF1,SSF1,MSF1,FF1,ProbF1,OmegaF1]); - OutPutFrm.RichEdit.Lines.Add(outline); - end - else begin - outline := format('Among Rows %4.0f %10.3f %10.3f --- error ---', - [DFF1, SSF1, MSF1 ]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - if (OKTerms[2] = 1) and (OKTerms[9] = 1) then - begin - outline := format('Among Columns %4.0f %10.3f %10.3f %10.3f %6.3f %6.3f', - [DFF2,SSF2,MSF2,FF2,ProbF2,OmegaF2]); - OutPutFrm.RichEdit.Lines.Add(outline); - end - else begin - outline := format('Among Columns %4.0f %10.3f %10.3f --- error ---', - [DFF2,SSF2,MSF2]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - if (OKTerms[3] = 1) and (OKTerms[10] = 1) then - begin - outline := format('Among Slices %4.0f %10.3f %10.3f %10.3f %6.3f %6.3f', - [DFF3,SSF3,MSF3,FF3,ProbF3,OmegaF3]); - OutPutFrm.RichEdit.Lines.Add(outline); - end - else begin - outline := format('Among Slices %4.0f %10.3f %10.3f --- error ---', - [DFF3,SSF3, MSF3]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - outline := format('A x B Inter. %4.0f %10.3f %10.3f %10.3f %6.3f %6.3f', - [DFF1F2,SSF1F2,MSF1F2,FF1F2,ProbF1F2,OmegaF1F2]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('A x C Inter. %4.0f %10.3f %10.3f %10.3f %6.3f %6.3f', - [DFF1F3,SSF1F3,MSF1F3,FF1F3,ProbF1F3,OmegaF1F3]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('B x C Inter. %4.0f %10.3f %10.3f %10.3f %6.3f %6.3f', - [DFF2F3,SSF2F3,MSF2F3,FF2F3,ProbF2F3,OmegaF2F3]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('AxBxC Inter. %4.0f %10.3f %10.3f %10.3f %6.3f %6.3f', - [DFF1F2F3,SSF1F2F3,MSF1F2F3,FF1F2F3,ProbF1F2F3,OmegaF1F2F3]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Within Groups %4.0f %10.3f %10.3f', - [DFErr,SSErr,MSErr]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Total %4.0f %10.3f %10.3f', - [DFTot,SSDep,MSDep]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Omega squared for combined effects = %8.3f',[Omega]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 0) and - (Fact3Grp.ItemIndex = 0) then - OutPutFrm.RichEdit.Lines.Add('Note: MSErr denominator for all F ratios.'); - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 1) and - (Fact3Grp.ItemIndex = 1) then - begin - OutPutFrm.RichEdit.Lines.Add('Note: Error term for A is MSAxB + MSAxC - MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Error term for B is MSAxB + MSBxC - MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Error term for C is MSAxC + MSBxC - MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Error term for AxB, AxC and BxC is MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Error term for AxBxC is MSErr.'); - end; - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 0) and - (Fact3Grp.ItemIndex = 0) then - begin - OutPutFrm.RichEdit.Lines.Add('Note: Error term for A is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for B is MSAxB'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for C is MSAxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxB is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxC is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for BxC is MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxBxC is MSErr'); - end; - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 1) and - (Fact3Grp.ItemIndex = 0) then - begin - OutPutFrm.RichEdit.Lines.Add('Note: Error term for A is MSAxB'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for B is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for C is MSBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxB is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxC is MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for BxC is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxBxC is MSErr'); - end; - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 0) and - (Fact3Grp.ItemIndex = 1) then - begin - OutPutFrm.RichEdit.Lines.Add('Note: Error term for A is MSAxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for B is MSBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for C is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxB is MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxC is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for BxC is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxBxC is MSErr'); - end; - if (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 1) and - (Fact3Grp.ItemIndex = 1) then - begin - OutPutFrm.RichEdit.Lines.Add('Note: Error term for A is MSAxC + MSAxB - MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for B is MSBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for C is MSBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxB is MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxC is MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for BxC is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxBxC is MSErr'); - end; - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 0) and - (Fact3Grp.ItemIndex = 1) then - begin - OutPutFrm.RichEdit.Lines.Add('Note: Error term for A is MSAxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for B is MSBxC + MSAxB - MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for C is MSAxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxB is MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxC is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for BxC is MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxBxC is MSErr'); - end; - if (Fact1Grp.ItemIndex = 1) and (Fact2Grp.ItemIndex = 1) and - (Fact3Grp.ItemIndex = 0) then - begin - OutPutFrm.RichEdit.Lines.Add('Note: Error term for A is MSAxB'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for B is MSAxB'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for C is MSBxC + MSAxC - MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxB is MSErr'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxC is MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for BxC is MSAxBxC'); - OutPutFrm.RichEdit.Lines.Add('Note: Error term for AxBxC is MSErr'); - end; - OutPutFrm.RichEdit.Lines.Add(''); - for i := 1 to 10 do if OKTerms[i] = 0 then problem := true; - if problem then - begin - OutPutFrm.RichEdit.Lines.Add('An error occurred due to either an estimate of MS being negative'); - OutPutFrm.RichEdit.Lines.Add('or the degrees of freedom being zero. This may occur in a design'); - OutPutFrm.RichEdit.Lines.Add('with random factors using the expected values for an exact F-test.'); - OutPutFrm.RichEdit.Lines.Add('Quasi-F statistics may be employed where this problem exists. See'); - OutPutFrm.RichEdit.Lines.Add('Winer, B.J., "Statistical Principles in Experimental Design, 1962'); - OutPutFrm.RichEdit.Lines.Add('Section 5.15, pages 199-202 and Glass, G.V. and Stanley, J.C.,'); - OutPutFrm.RichEdit.Lines.Add('1970, Section 18.10, pages 481-482.'); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Descriptive Statistics'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('GROUP N MEAN VARIANCE STD.DEV.'); - groupsize := ncnt[1,1,1]; - equal_grp := true; - MaxVar := 0.0; - MinVar := 1e20; - sumvars := 0.0; - sumfreqlogvar := 0.0; - sumDFrecip := 0.0; - - // Display cell means, variances, standard deviations - for i := 0 to NoGrpsA-1 do - begin - for j := 0 to NoGrpsB-1 do - begin - for k := 0 to NoGrpsC-1 do - begin - XBar := wsum[i,j,k] / ncnt[i,j,k]; - V := wx2[i,j,k] - ( (wsum[i,j,k] * wsum[i,j,k]) / ncnt[i,j,k]); - V := V / (ncnt[i,j,k] - 1.0); - S := sqrt(V); - sumvars := sumvars + V; - if V > MaxVar then MaxVar := V; - if V < MinVar then MinVar := V; - sumDFrecip := sumDFrecip + (1.0 / (ncnt[i,j,k] - 1.0)); - sumfreqlogvar := sumfreqlogvar + ((ncnt[i,j,k] - 1.0) * ln(V)); - if ncnt[i,j,k] <> groupsize then equal_grp := false; - outline := format('Cell %3d %3d %3d %3d %8.3f %8.3f %8.3f', - [minf1+i,minf2+j,minf3+k,ncnt[i,j,k],XBar,V,S]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - end; - - //Display Row means, variances, standard deviations - for i := 0 to NoGrpsA-1 do - begin - XBar := RowSums[i] / RowCount[i]; - OrdMeansA[i] := XBar; - RowSS := 0.0; - for j := 0 to NoGrpsB-1 do - for k := 0 to NoGrpsC-1 do RowSS := RowSS + wx2[i,j,k]; - V := RowSS - (RowSums[i] * RowSums[i] / RowCount[i]); - V := V / (RowCount[i] - 1.0); - S := sqrt(V); - outline := format('Row %3d %3.0f %8.3f %8.3f %8.3f', - [minf1+i,RowCount[i],XBar,V,S]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - //Display means, variances and standard deviations for columns - for j := 0 to NoGrpsB-1 do - begin - XBar := ColSums[j] / ColCount[j]; - OrdMeansB[j] := XBar; - ColSS := 0.0; - for i := 0 to NoGrpsA-1 do - for k := 0 to NoGrpsC-1 do ColSS := ColSS + wx2[i,j,k]; - V := ColSS - (ColSums[j] * ColSums[j] / ColCount[j]); - V := V / (ColCount[j] - 1.0); - S := sqrt(V); - outline := format('Col %3d %3.0f %8.3f %8.3f %8.3f', - [minf2+j,ColCount[j],XBar,V,S]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - //Display means, variances and standard deviations for slices - for k := 0 to NoGrpsC-1 do - begin - XBar := SlcSums[k] / SlcCount[k]; - OrdMeansC[k] := XBar; - SlcSS := 0.0; - for i := 0 to NoGrpsA-1 do - for j := 0 to NoGrpsB-1 do SlcSS := SlcSS + wx2[i,j,k]; - V := SlcSS - (SlcSums[k] * SlcSums[k] / SlcCount[k]); - V := V / (SlcCount[k] - 1.0); - S := sqrt(V); - outline := format('Slice %3d %3.0f %8.3f %8.3f %8.3f', - [minf3+k,SlcCount[k],XBar,V,S]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - outline := format('TOTAL %3d %8.3f %8.3f %8.3f', - [N,MeanDep,MSDep,sqrt(MSDep)]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(''); - - c := 1.0 + (1.0 / (3.0 * NoGrpsA * NoGrpsB * NoGrpsC - 1.0)) * (sumDFrecip - (1.0 / DFErr)); - bartlett := (2.303 / c) * ((DFErr * ln(MSErr)) - sumfreqlogvar); - chiprob := chisquaredprob(bartlett,round(NoGrpsA * NoGrpsB * NoGrpsC - 1)); - cochran := maxvar / sumvars; - hartley := maxvar / minvar; - OutPutFrm.RichEdit.Lines.Add('TESTS FOR HOMOGENEITY OF VARIANCE'); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - outline := format('Hartley Fmax test statistic = %10.2f with deg.s freedom: %d and %d.', - [hartley, (NoGrpsA*NoGrpsB),(groupsize-1) ]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Cochran C statistic = %10.2f with deg.s freedom: %d and %d.', - [cochran, (NoGrpsA*NoGrpsB), (groupsize - 1)]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Bartlett Chi-square statistic = %10.2f with %4d D.F. Prob. larger = %6.3f', - [bartlett, (NoGrpsA*NoGrpsB - 1), 1.0 - chiprob]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); -end; - -procedure TBlksAnovaFrm.ThreeWayPlot(Sender: TObject); -var - i, j, k : integer; - maxmean, XBar : double; - XValue : DblDyneVec; - title : string; - plottype : integer; - setstring : string[11]; - -begin - if CompError then exit; - SetLength(XValue,totcells); - plottype := 2; - if PlotMeans.Checked then plottype := 2; - if Plot2DLines.Checked then plottype := 5; - if Plot3DLines.Checked then plottype := 6; - - // do Factor A first - setstring := 'FACTOR A'; - GraphFrm.SetLabels[1] := setstring; - maxmean := 0.0; - SetLength(GraphFrm.Xpoints,1,NF1cells); - SetLength(GraphFrm.Ypoints,1,NF1cells); - for i := 0 to NF1cells-1 do - begin - RowSums[i] := RowSums[i] / RowCount[i]; - GraphFrm.Ypoints[0,i] := RowSums[i]; - if RowSums[i] > maxmean then maxmean := RowSums[i]; - XValue[i] := minF1 + i; - GraphFrm.Xpoints[0,i] := XValue[i]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NF1cells; - GraphFrm.Heading := Factor1.Text; - title := Factor1.Text + ' Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - - // do Factor B next - setstring := 'FACTOR B'; - GraphFrm.SetLabels[1] := setstring; - maxmean := 0.0; - SetLength(GraphFrm.Xpoints,1,NF2cells); - SetLength(GraphFrm.Ypoints,1,NF2cells); - for i := 0 to NF2cells-1 do - begin - ColSums[i] := ColSums[i] / ColCount[i]; - GraphFrm.Ypoints[0,i] := ColSums[i]; - if ColSums[i] > maxmean then maxmean := ColSums[i]; - XValue[i] := minF2 + i; - GraphFrm.Xpoints[0,i] := XValue[i]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NF2cells; - GraphFrm.Heading := Factor2.Text; - title := Factor2.Text + ' Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - - // do Factor C next - setstring := 'FACTOR C'; - GraphFrm.SetLabels[1] := setstring; - maxmean := 0.0; - SetLength(GraphFrm.Xpoints,1,NF3cells); - SetLength(GraphFrm.Ypoints,1,NF3cells); - for i := 0 to NF3cells-1 do - begin - SlcSums[i] := SlcSums[i] / SlcCount[i]; - GraphFrm.Ypoints[0,i] := SlcSums[i]; - if SlcSums[i] > maxmean then maxmean := SlcSums[i]; - XValue[i] := minF3 + i; - GraphFrm.Xpoints[0,i] := XValue[i]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NF3cells; - GraphFrm.Heading := Factor3.Text; - title := Factor2.Text + ' Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - - // do Factor A x B Interaction within each slice next - SetLength(GraphFrm.Ypoints,NF1cells,NF2cells); - SetLength(GraphFrm.Xpoints,1,NF2cells); - for k := 1 to NF3cells do - begin - maxmean := 0.0; - for i := 0 to NF1cells-1 do - begin - setstring := Factor1.Text + ' ' + IntToStr(i+1); - GraphFrm.SetLabels[i+1] := setstring; - for j := 0 to NF2cells-1 do - begin - XBar := wsum[i,j,k] / ncnt[i,j,k]; - if XBar > maxmean then maxmean := XBar; - GraphFrm.Ypoints[i,j] := XBar; - end; - end; - for j := 0 to NF2cells-1 do - begin - XValue[j] := minF2 + j ; - GraphFrm.Xpoints[0,j] := XValue[j]; - end; - - GraphFrm.nosets := NF1cells; - GraphFrm.nbars := NF2cells; - GraphFrm.Heading := 'Factor A x Factor B Within Slice' + IntToStr(k); - title := Factor2.Text + ' Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - - // do Factor A x C Interaction within each Column next - SetLength(GraphFrm.Ypoints,NF1cells,NF3cells); - SetLength(GraphFrm.Xpoints,1,NF3cells); - for j := 0 to NF2cells-1 do - begin - maxmean := 0.0; - for i := 0 to NF1cells-1 do - begin - setstring := Factor1.Text + ' ' + IntToStr(i+1); - GraphFrm.SetLabels[i+1] := setstring; - for k := 0 to NF3cells-1 do - begin - XBar := wsum[i,j,k] / ncnt[i,j,k]; - if XBar > maxmean then maxmean := XBar; - GraphFrm.Ypoints[i,k] := XBar; - end; - end; - for k := 0 to NF3cells-1 do - begin - XValue[k] := minF3 + k; - GraphFrm.Xpoints[0,k] := XValue[k]; - end; - - GraphFrm.nosets := NF1cells; - GraphFrm.nbars := NF3cells; - GraphFrm.Heading := 'Factor A x Factor C Within Column ' + IntToStr(j+1); - title := Factor3.Text + ' Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - - // do Factor B x C Interaction within each row next - SetLength(GraphFrm.Ypoints,NF2cells,NF3cells); - SetLength(GraphFrm.Xpoints,1,NF3cells); - for i := 0 to NF1cells-1 do - begin - maxmean := 0.0; - for j := 0 to NF2cells-1 do - begin - setstring := Factor2.Text + ' ' + IntToStr(j+1); - GraphFrm.SetLabels[j+1] := setstring; - for k := 0 to NF3cells-1 do - begin - XBar := wsum[i,j,k] / ncnt[i,j,k]; - if XBar > maxmean then maxmean := XBar; - GraphFrm.Ypoints[j,k] := XBar; - end; - end; - for j := 0 to NF2cells-1 do - begin - XValue[j] := minF2 + j; - GraphFrm.Xpoints[0,j] := XValue[j]; - end; - - GraphFrm.nosets := NF2cells; - GraphFrm.nbars := NF3cells; - GraphFrm.Heading := 'Factor B x Factor C Within Row ' + IntToStr(i+1); - title := Factor3.Text + ' Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; // next row - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; - XValue := nil; -end; -//------------------------------------------------------------------- -procedure TBlksAnovaFrm.TwoWayContrasts(Sender: TObject); -var - i, j : integer; - value : double; - variances : DblDyneVec; - RowSS, ColSS : double; - -begin - If CompError then exit; - SetLength(variances,totcells); - // Do row comparisons - if (NF1cells > 2) then - if ProbF1 < allAlpha then - if Fact2Grp.ItemIndex = 0 then - begin - for i := 0 to NoGrpsA-1 do - begin - RowSS := 0.0; - for j := 0 to NoGrpsB-1 do RowSS := RowSS + vars[i,j]; - variances[i] := RowSS - (RowSums[i] * RowSums[i] / RowCount[i]); - variances[i] := variances[i] / (RowCount[i] - 1.0); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMPARISONS AMONG ROWS'); - // get smallest group size - value := 1e20; - for i := 0 to NF1cells-1 do if RowCount[i] < value then value := RowCount[i]; - if Scheffe.Checked then - SCHEFFETEST(MSErr,RowSums,RowCount,minf1,maxf1,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,value,RowSums,RowCount,minf1,maxf1); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,RowSums,RowCount,minf1,maxf1,value); - if (TukeyKramer.Checked) and (equal_grp) then - TUKEY_KRAMER(MSErr,DFErr,value,RowSums,RowCount,minf1,maxf1); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,value,RowSums,RowCount,minf1,maxf1); - if Bonferoni.Checked then - Bonferroni(RowSums,RowCount,variances,minf1,maxf1); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,RowSums,RowCount,minf1,maxf1,AllAlpha); - end; - // Do column comparisons - if (NF2cells > 2) and (ProbF2 < allAlpha) and (Fact2Grp.ItemIndex = 0) then - begin - for j := 0 to NoGrpsB-1 do - begin - ColSS := 0.0; - for i := 0 to NoGrpsA-1 do ColSS := ColSS + vars[i,j]; - variances[j] := ColSS - (ColSums[j] * ColSums[j] / ColCount[j]); - variances[j] := variances[j] / (ColCount[j] - 1.0); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMPARISONS AMONG COLUMNS'); - value := 1e20; - for i := 0 to NF2cells-1 do if ColCount[i] < value then value := ColCount[i]; - if Scheffe.Checked then - SCHEFFETEST(MSErr,ColSums,ColCount,minf2,maxf2,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,value,ColSums,ColCount,minf2,maxf2); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,ColSums,ColCount,minf2,maxf2,value); - if (TukeyKramer.Checked) and (equal_grp) then - TUKEY_KRAMER(MSErr,DFErr,value,ColSums,ColCount,minf2,maxf2); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,value,ColSums,ColCount,minf2,maxf2); - if Bonferoni.Checked then - Bonferroni(ColSums,ColCount,variances,minf2,maxf2); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,ColSums,ColCount,minf2,maxf2,AllAlpha); - end; - // do simple effects for columns within each row - if (ProbF3 < allAlpha) and - (Fact1Grp.ItemIndex = 0) and - (Fact2Grp.ItemIndex = 0) then - begin - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMPARISONS AMONG COLUMNS WITHIN EACH ROW'); - for i := 0 to NF1cells-1 do - begin - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('ROW %d COMPARISONS',[i+1]); - OutPutFrm.RichEdit.Lines.Add(outline); - // move cell sums and counts to cellsums and cellcnts - for j := 0 to NF2cells-1 do - begin - cellsums[j] := sums[i,j]; - cellcnts[j] := counts[i,j]; - cellvars[j] := vars[i,j]; - end; - value := 1e20; - for j := 0 to NF2cells-1 do if cellcnts[j] < value then value := cellcnts[j]; - if Scheffe.Checked then - SCHEFFETEST(MSErr,cellsums,cellcnts,minf2,maxf2,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,value,cellsums,cellcnts,minf2,maxf2); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,cellsums,cellcnts,minf2,maxf2,value); - if (TukeyKramer.Checked) and (equal_grp) then - TUKEY_KRAMER(MSErr,DFErr,value,cellsums,cellcnts,minf2,maxf2); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,value,cellsums,cellcnts,minf2,maxf2); - if Bonferoni.Checked then - Bonferroni(cellsums,cellcnts,cellvars,minf2,maxf2); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,cellsums,cellcnts,minf2,maxf2,0.05); - end; - end; - // do simple effects for rows within each column - if (ProbF3 < allAlpha) and (Fact1Grp.ItemIndex = 0) and (Fact2Grp.ItemIndex = 0) then - begin - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMPARISONS AMONG ROWS WITHIN EACH COLUMN'); - for j := 0 to NF2cells-1 do - begin - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('COLUMN %d COMPARISONS', [j+1]); - OutPutFrm.RichEdit.Lines.Add(outline); - // move cell sums and counts to cellsums and cellcnts - for i := 0 to NF1cells-1 do - begin - cellsums[i] := sums[i,j]; - cellcnts[i] := counts[i,j]; - cellvars[i] := vars[i,j]; - end; - value := 1e20; - for i := 0 to NF1cells-1 do if cellcnts[j] < value then value := cellcnts[j]; - if Scheffe.Checked then - SCHEFFETEST(MSErr,cellsums,cellcnts,minf1,maxf1,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,value,cellsums,cellcnts,minf1,maxf1); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,cellsums,cellcnts,minf1,maxf1,value); - if (TukeyKramer.Checked) and (equal_grp) then - TUKEY_KRAMER(MSErr,DFErr,value,cellsums,cellcnts,minf1,maxf1); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,value,cellsums,cellcnts,minf1,maxf1); - if Bonferoni.Checked then - Bonferroni(cellsums,cellcnts,cellvars,minf1,maxf1); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,cellsums,cellcnts,minf1,maxf1,0.05); - end; - end; - variances := nil; -end; - -procedure TBlksAnovaFrm.ThreeWayContrasts(Sender: TObject); -var - i, j, k : integer; - value : double; - variances : DblDyneVec; - RowSS, ColSS, SlcSS : double; - -begin - if CompError then exit; - if (Scheffe.Checked = false) and (TukeyHSD.Checked = false) and - (TukeyB.Checked = false) and (TukeyKramer.Checked = false) and - (NewmanKeuls.Checked = false) and (Bonferoni.Checked = false) and - (OrthoContrasts.Checked = false) then exit; - SetLength(variances,totcells); - // Do row comparisons - if (NF1cells > 2) and - (ProbF1 < allAlpha) then - begin - for i := 0 to NoGrpsA-1 do - begin - RowSS := 0.0; - for j := 0 to NoGrpsB-1 do - for k := 0 to NoGrpsC-1 do RowSS := RowSS + wx2[i,j,k]; - variances[i] := RowSS - (RowSums[i] * RowSums[i] / RowCount[i]); - variances[i] := variances[i] / (RowCount[i] - 1.0); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMPARISONS AMONG ROWS'); - // get smallest group size - value := 1e20; - for i := 0 to NF1cells-1 do if RowCount[i] < value then value := RowCount[i]; - if Scheffe.Checked then - SCHEFFETEST(MSErr,RowSums,RowCount,minf1,maxf1,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,value,RowSums,RowCount,minf1,maxf1); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,RowSums,RowCount,minf1,maxf1,value); - if (TukeyKramer.Checked) and (equal_grp) then - TUKEY_KRAMER(MSErr,DFErr,value,RowSums,RowCount,minf1,maxf1); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,value,RowSums,RowCount,minf1,maxf1); - if Bonferoni.Checked then - Bonferroni(RowSums,RowCount,variances,minf1,maxf1); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,RowSums,RowCount,minf1,maxf1,AllAlpha); - end; - - // Do column comparisons - if (NF2cells > 2) and (ProbF2 < allAlpha) then - begin - for j := 0 to NoGrpsB-1 do - begin - ColSS := 0.0; - for i := 0 to NoGrpsA-1 do - for k := 0 to NoGrpsC-1 do ColSS := ColSS + wx2[i,j,k]; - variances[j] := ColSS - (ColSums[j] * ColSums[j] / ColCount[j]); - variances[j] := variances[j] / (ColCount[j] - 1.0); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMPARISONS AMONG COLUMNS'); - value := 1e20; - for i := 0 to NF2cells-1 do if ColCount[i] < value then value := ColCount[i]; - if Scheffe.Checked then - SCHEFFETEST(MSErr,ColSums,ColCount,minf2,maxf2,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,value,ColSums,ColCount,minf2,maxf2); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,ColSums,ColCount,minf2,maxf2,value); - if (TukeyKramer.Checked) and (equal_grp) then - TUKEY_KRAMER(MSErr,DFErr,value,ColSums,ColCount,minf2,maxf2); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,value,ColSums,ColCount,minf2,maxf2); - if Bonferoni.Checked then - Bonferroni(ColSums,ColCount,variances,minf2,maxf2); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,ColSums,ColCount,minf2,maxf2,AllAlpha); - end; - - // Do slice comparisons - if (NF3cells > 2) and (ProbF3 < allAlpha) then - begin - for k := 0 to NoGrpsC-1 do - begin - SlcSS := 0.0; - for i := 0 to NoGrpsA-1 do - for j := 0 to NoGrpsB-1 do SlcSS := SlcSS + wx2[i,j,k]; - variances[k] := SlcSS - (SlcSums[k] * SlcSums[k] / SlcCount[k]); - variances[k] := variances[k] / (SlcCount[k] - 1.0); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMPARISONS AMONG SLICES'); - value := 1e20; - for i := 0 to NF3cells-1 do if SlcCount[i] < value then value := SlcCount[i]; - if Scheffe.Checked then - SCHEFFETEST(MSErr,SlcSums,SlcCount,minf3,maxf3,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,value,SlcSums,SlcCount,minf3,maxf3); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,SlcSums,SlcCount,minf3,maxf3,value); - if (TukeyKramer.Checked) and (equal_grp) then - TUKEY_KRAMER(MSErr,DFErr,value,SlcSums,SlcCount,minf3,maxf3); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,value,SlcSums,SlcCount,minf3,maxf3); - if Bonferoni.Checked then - Bonferroni(SlcSums,SlcCount,variances,minf3,maxf3); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,SlcSums,SlcCount,minf3,maxf3,AllAlpha); - end; - - // do simple effects for columns within each row - if (ProbF1f2 < allAlpha) then - begin - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMPARISONS AMONG COLUMNS WITHIN EACH ROW'); - for i := 0 to NF1cells-1 do - begin - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('ROW %d COMPARISONS',[i+1]); - OutPutFrm.RichEdit.Lines.Add(outline); - // move cell sums and counts to cellsums and cellcnts - for j := 0 to NF2cells-1 do - begin - for k := 0 to NF3cells-1 do - begin - cellsums[j] := wsum[i,j,k]; - cellcnts[j] := ncnt[i,j,k]; - cellvars[j] := wx2[i,j,k]; - end; - end; - value := 1e20; - for j := 0 to NF2cells-1 do if cellcnts[j] < value then value := cellcnts[j]; - if Scheffe.Checked then - SCHEFFETEST(MSErr,cellsums,cellcnts,minf2,maxf2,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,value,cellsums,cellcnts,minf2,maxf2); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,cellsums,cellcnts,minf2,maxf2,value); - if (TukeyKramer.Checked) and (equal_grp) then - TUKEY_KRAMER(MSErr,DFErr,value,cellsums,cellcnts,minf2,maxf2); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,value,cellsums,cellcnts,minf2,maxf2); - if Bonferoni.Checked then - Bonferroni(cellsums,cellcnts,cellvars,minf2,maxf2); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,cellsums,cellcnts,minf2,maxf2,0.05); - end; - end; - - // do simple effects for rows within each column - if (ProbF1f2 < allAlpha) then - begin - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMPARISONS AMONG ROWS WITHIN EACH COLUMN'); - for j := 0 to NF2cells-1 do - begin - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('COLUMN %d COMPARISONS', [j+1]); - OutPutFrm.RichEdit.Lines.Add(outline); - // move cell sums and counts to cellsums and cellcnts - for i := 0 to NF1cells-1 do - begin - for k := 0 to NF3cells-1 do - begin - cellsums[i] := wsum[i,j,k]; - cellcnts[i] := ncnt[i,j,k]; - cellvars[i] := wx2[i,j,k]; - end; - end; - value := 1e20; - for i := 0 to NF1cells-1 do if cellcnts[j] < value then value := cellcnts[j]; - if Scheffe.Checked then - SCHEFFETEST(MSErr,cellsums,cellcnts,minf1,maxf1,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,value,cellsums,cellcnts,minf1,maxf1); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,cellsums,cellcnts,minf1,maxf1,value); - if (TukeyKramer.Checked) and (equal_grp) then - TUKEY_KRAMER(MSErr,DFErr,value,cellsums,cellcnts,minf1,maxf1); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,value,cellsums,cellcnts,minf1,maxf1); - if Bonferoni.Checked then - Bonferroni(cellsums,cellcnts,cellvars,minf1,maxf1); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,cellsums,cellcnts,minf1,maxf1,0.05); - end; - end; - - // do simple effects for columns within each slice - if (ProbF2F3 < allAlpha) then - begin - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMPARISONS AMONG COLUMNS WITHIN EACH SLICE'); - for k := 0 to NF3cells-1 do - begin - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('SLICE %d COMPARISONS',[k+1]); - OutPutFrm.RichEdit.Lines.Add(outline); - // move cell sums and counts to cellsums and cellcnts - for j := 0 to NF2cells-1 do - begin - for i := 0 to NF1cells-1 do - begin - cellsums[j] := wsum[i,j,k]; - cellcnts[j] := ncnt[i,j,k]; - cellvars[j] := wx2[i,j,k]; - end; - end; - value := 1e20; - for j := 1 to NF2cells do if cellcnts[j] < value then value := cellcnts[j]; - if Scheffe.Checked then - SCHEFFETEST(MSErr,cellsums,cellcnts,minf2,maxf2,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,value,cellsums,cellcnts,minf2,maxf2); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,cellsums,cellcnts,minf2,maxf2,value); - if (TukeyKramer.Checked) and (equal_grp) then - TUKEY_KRAMER(MSErr,DFErr,value,cellsums,cellcnts,minf2,maxf2); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,value,cellsums,cellcnts,minf2,maxf2); - if Bonferoni.Checked then - Bonferroni(cellsums,cellcnts,cellvars,minf2,maxf2); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,cellsums,cellcnts,minf2,maxf2,0.05); - end; - end; - - // do simple effects for rows within each slice - if (ProbF1F3 < allAlpha) then - begin - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMPARISONS AMONG ROWS WITHIN EACH SLICE'); - for k := 0 to NF3cells-1 do - begin - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('SLICE %d COMPARISONS',[k+1]); - OutPutFrm.RichEdit.Lines.Add(outline); - // move cell sums and counts to cellsums and cellcnts - for i := 0 to NF1cells-1 do - begin - for j := 0 to NF2cells-1 do - begin - cellsums[j] := wsum[i,j,k]; - cellcnts[j] := ncnt[i,j,k]; - cellvars[j] := wx2[i,j,k]; - end; - end; - value := 1e20; - for i := 0 to NF1cells-1 do if cellcnts[i] < value then value := cellcnts[i]; - if Scheffe.Checked then - SCHEFFETEST(MSErr,cellsums,cellcnts,minf1,maxf1,N); - if (TukeyHSD.Checked) and (equal_grp) then - Tukey(MSErr,DFErr,value,cellsums,cellcnts,minf1,maxf1); - if (TukeyB.Checked) and (equal_grp) then - TUKEYBTEST(MSErr,DFErr,cellsums,cellcnts,minf1,maxf1,value); - if (TukeyKramer.Checked) and (equal_grp) then - TUKEY_KRAMER(MSErr,DFErr,value,cellsums,cellcnts,minf1,maxf1); - if (NewmanKeuls.Checked) and (equal_grp) then - Newman_Keuls(MSErr,DFErr,value,cellsums,cellcnts,minf1,maxf1); - if Bonferoni.Checked then - Bonferroni(cellsums,cellcnts,cellvars,minf1,maxf1); - if OrthoContrasts.Checked then - CONTRASTS(MSErr,DFErr,cellsums,cellcnts,minf1,maxf1,0.05); - end; - end; - variances := nil -end; -//------------------------------------------------------------------- -procedure TBlksAnovaFrm.BrownForsytheOneWay(Sender: TObject); -Var i : integer; - c1 : array[1..50] of double; - cellmeans : array[1..50] of double; - sumc1 : double; - fdegfree : double; - Fnumerator, Fdenominator, NewF : double; - -begin - for i := 1 to 50 do - begin - c1[i] := 0.0; - cellmeans[i] := 0.0; - end; - for i := 1 to NoCases do - begin - if not GoodRecord(i,NoSelected,ColNoSelected) then continue; - intvalue := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F1Col,i]))); - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[DepVarCol,i])); - intvalue := intvalue - minf1 + 1; - cellcnts[intvalue-1] := 0.0; - cellsums[intvalue-1] := 0.0; - cellvars[intvalue-1] := 0.0; - end; - MeanDep := 0.0; - SSDep := 0.0; - SSF1 := 0.0; - MSErr := 0.0; - N := 0; - for i := 1 to NoCases do - begin - if not GoodRecord(i,NoSelected,ColNoSelected) then continue; - intvalue := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F1Col,i]))); - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[DepVarCol,i])); - intvalue := intvalue - minf1 + 1; - cellcnts[intvalue-1] := cellcnts[intvalue-1] + 1; - cellsums[intvalue-1] := cellsums[intvalue-1] + X; - cellvars[intvalue-1] := cellvars[intvalue-1] + (X * X); - MeanDep := MeanDep + X; - SSDep := SSDep + (X * X); - N := N + 1; - end; - DFF1 := 0; - for i := 0 to Nf1cells-1 do - begin - if cellcnts[i] > 0 then - begin - cellvars[i] := cellvars[i] - (cellsums[i] * cellsums[i] /cellcnts[i]); - cellvars[i] := cellvars[i] / (cellcnts[i] - 1.0); - SSF1 := SSF1 + (sqr(cellsums[i]) / cellcnts[i]); - DFF1 := DFF1 + 1; - end; - end; - SSF1 := SSF1 - (sqr(MeanDep) / N); - SSDep := SSDep - (sqr(MeanDep) / N); - SSErr := SSDep - SSF1; - DFTot := N - 1; - DFF1 := DFF1 - 1; - DFErr := DFTot - DFF1; - MSF1 := SSF1 / DFF1; - MSErr := SSErr / DFErr; - MSDep := SSDep / DFTot; - Omega := (SSF1 - DFF1 * MSErr) / (SSDep + MSErr); - F := MSF1 / MSErr; - ProbF1 := probf(F,DFF1,DFErr); - MeanDep := MeanDep / N; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('BROWN-FORSYTHE ONE WAY ANALYSIS OF VARIANCE RESULTS'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Dependent variable is: %s, Independent variable is: %s', - [DepVar.Text,Factor1.Text]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Traditional One-Way ANOVA Results'); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - OutPutFrm.RichEdit.Lines.Add('SOURCE D.F. SS MS F PROB.>F OMEGA SQR.'); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - outline := format('BETWEEN %4.0f%10.2f%10.2f%10.2f%10.2f%10.2f', - [DFF1,SSF1,MSF1,F,ProbF1,Omega]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('WITHIN %4.0f%10.2f%10.2f',[DFErr,SSErr,MSErr]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('TOTAL %4.0f%10.2f',[DFTot,SSDep]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - - sumc1 := 0.0; - MSErr := 0.0; - for i := 0 to Nf1cells-1 do - begin -// MSErr := MSErr + (((1.0 - cellcnts[i] / N) * cellvars[i])); - c1[i+1] := (1.0 - (cellcnts[i] / N)) * cellvars[i]; - sumc1 := sumc1 + c1[i+1]; - end; -// MSErr := MSErr / DFF1; - for i := 1 to Nf1cells do - begin - c1[i] := c1[i] / sumc1; - end; - fdegfree := 0.0; - for i := 1 to Nf1cells do fdegfree := fdegfree + ((c1[i] * c1[i]) / (cellcnts[i-1]-1.0)); - fdegfree := round(1.0 / fdegfree); - - Fnumerator := 0.0; - Fdenominator := 0.0; - for i := 1 to Nf1cells do - begin - cellmeans[i] := cellsums[i-1] / cellcnts[i-1]; - Fnumerator := Fnumerator + (cellcnts[i-1] * (sqr(cellmeans[i] - MeanDep))); - Fdenominator := Fdenominator + ((1.0 - (cellcnts[i-1] / N)) * cellvars[i-1]); - end; - NewF := Fnumerator / Fdenominator; - ProbF1 := probf(NewF,DFF1, fdegfree); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - outline := format('Brown-Forsythe F statistic = %8.3f',[NewF]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Brown-Forsythe denominator degrees of freedom = %3.0f',[fdegfree]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Brown-Forsythe F probability = %5.3f',[probf1]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - OutPutFrm.ShowModal; - Welchttests(self); -end; -procedure TBlksAnovaFrm.WelchOneWay(Sender: TObject); -Var i : integer; - W, v, barx, numerator, denominator : double; - wj : array[1..50] of double; - c1 : array[1..50] of double; - barxj : array[1..50] of double; - sumc1 : double; - fdegfree, term1, term2, term3 : double; -begin - for i := 1 to 50 do - begin - wj[i] := 0.0; - c1[i] := 0.0; - barxj[i] := 0.0; - end; - for i := 1 to NoCases do - begin - if not GoodRecord(i,NoSelected,ColNoSelected) then continue; - intvalue := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F1Col,i]))); - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[DepVarCol,i])); - intvalue := intvalue - minf1 + 1; - cellcnts[intvalue-1] := 0.0; - cellsums[intvalue-1] := 0.0; - cellvars[intvalue-1] := 0.0; - end; - MeanDep := 0.0; - SSDep := 0.0; - SSF1 := 0.0; - MSErr := 0.0; - N := 0; - for i := 1 to NoCases do - begin - if not GoodRecord(i,NoSelected,ColNoSelected) then continue; - intvalue := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[F1Col,i]))); - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[DepVarCol,i])); - intvalue := intvalue - minf1 + 1; - cellcnts[intvalue-1] := cellcnts[intvalue-1] + 1; - cellsums[intvalue-1] := cellsums[intvalue-1] + X; - cellvars[intvalue-1] := cellvars[intvalue-1] + (X * X); - MeanDep := MeanDep + X; - SSDep := SSDep + (X * X); - barxj[intvalue] := barxj[intvalue] + X; - N := N + 1; - end; - DFF1 := 0; - W := 0.0; - barx := 0.0; - v := 0.0; - for i := 0 to Nf1cells-1 do - begin - if cellcnts[i] > 0 then - begin - cellvars[i] := cellvars[i] - (cellsums[i] * cellsums[i] /cellcnts[i]); - cellvars[i] := cellvars[i] / (cellcnts[i] - 1.0); - wj[i+1] := cellcnts[i] / cellvars[i]; - W := W + wj[i+1]; - barxj[i+1] := barxj[i+1] / cellcnts[i]; - SSF1 := SSF1 + (sqr(cellsums[i]) / cellcnts[i]); - DFF1 := DFF1 + 1; - end; - end; - for i := 1 to Nf1cells do barx := barx + (wj[i] * barxj[i]); - barx := barx / W; - numerator := 0.0; - for i := 1 to Nf1cells do - begin - numerator := numerator + (wj[i]* sqr(barxj[i]-barx)); - end; - numerator := numerator / (Nf1cells - 1.0); - denominator := 0.0; - for i := 1 to Nf1cells do - begin - v := v + ( (1.0 /(cellcnts[i-1]-1.0)) * (sqr(1.0 - wj[i]/W)) ); - end; - v := 3.0 * v; - term1 := sqr(Nf1cells) - 1.0; - v := term1 / v; - for i := 1 to Nf1cells do - begin - term1 := 1.0 / (cellcnts[i-1] - 1.0); - term2 := sqr(1.0 - (wj[i] / W)); - denominator := denominator + (term1 * term2); - end; - term1 := sqr(Nf1cells) - 1.0; - term2 := 2.0 * (Nf1cells - 2.0); - term3 := 1.0; - denominator := term3 + ((term2 / term1) * denominator); - F := numerator / denominator; - DFF1 := Nf1cells - 1; - SSF1 := SSF1 - (sqr(MeanDep) / float(N)); - SSDep := SSDep - (sqr(MeanDep) / float(N)); - SSErr := SSDep - SSF1; - DFTot := N - 1; - DFErr := DFTot - DFF1; - MSF1 := SSF1 / DFF1; - MeanDep := MeanDep / float(N); - sumc1 := 0.0; - for i := 0 to Nf1cells-1 do - begin - MSErr := MSErr + (((1.0 - cellcnts[i] / N) * cellvars[i])/ DFF1); - c1[i+1] := (1.0 - (cellcnts[i] / N)) * cellvars[i]; - sumc1 := sumc1 + c1[i+1]; - end; - for i := 1 to Nf1cells do - begin - c1[i] := c1[i] / sumc1; - end; - fdegfree := 0.0; - for i := 1 to Nf1cells do fdegfree := fdegfree + (c1[i] * c1[i]) / (cellcnts[i-1]-1.0); - fdegfree := round(1.0 / fdegfree); - MSDep := SSDep / DFTot; - Omega := (SSF1 - DFF1 * MSErr) / (SSDep + MSErr); -// F := MSF1 / MSErr; -// ProbF1 := probf(F,DFF1, DFErr); - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('WELCH ONE WAY ANALYSIS OF VARIANCE RESULTS'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Dependent variable is: %s, Independent variable is: %s', - [DepVar.Text,Factor1.Text]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); -{ OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - OutPutFrm.RichEdit.Lines.Add('SOURCE D.F. SS MS F PROB.>F OMEGA SQR.'); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - outline := format('BETWEEN %4.0f%10.2f%10.2f%10.2f%10.2f%10.2f', - [DFF1,SSF1,MSF1,F,ProbF1,Omega]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('WITHIN %4.0f%10.2f%10.2f',[DFErr,SSErr,MSErr]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('TOTAL %4.0f%10.2f',[DFTot,SSDep]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - OutPutFrm.RichEdit.Lines.Add(''); } - outline := format('Welch F statistic = %8.4f',[F]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Welch denominator degrees of freedom = %3.0f',[v]); - OutPutFrm.RichEdit.Lines.Add(outline); - probF1 := probf(F,DFF1,v); - outline := format('Welch F probability = %5.3f',[probf1]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - Welchttests(self); -end; - -procedure TBlksAnovaFrm.Welchttests(Sender: TObject); -VAR i, j, NoCompares : integer; - t : double; // Welch t value - gnu : double; // degrees of freedom - var1, var2 : double; // variance estimates for two variables - mean1, mean2 : double; // means for two variables - probability : double; // t probability - numerator, denominator, term1, term2 : double; // work values - v : integer; // rounded degrees of freedom -begin - NoCompares := Nf1cells; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - OutPutFrm.RichEdit.Lines.Add('Welch t-tests among groups'); - OutPutFrm.RichEdit.Lines.Add('---------------------------------------------------------------------'); - for i := 1 to NoCompares - 1 do - begin - for j := i + 1 to NoCompares do - begin - outline := format('Comparison of group %d with group %d',[i,j]); - OutPutFrm.RichEdit.Lines.Add(outline); - mean1 := cellsums[i-1] / cellcnts[i-1]; - mean2 := cellsums[j-1] / cellcnts[j-1]; - var1 := cellvars[i-1]; - var2 := cellvars[j-1]; - denominator := sqrt((var1 / cellcnts[i-1]) + (var2 / cellcnts[j-1])); - numerator := mean1 - mean2; - t := numerator / denominator; - outline := format('Mean %d = %8.3f, Mean %d = %8.3f',[i,mean1,j,mean2]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Welch t = %8.3f',[t]); - OutPutFrm.RichEdit.Lines.Add(outline); - numerator := sqr((var1 /cellcnts[i-1]) + (var2 / cellcnts[j-1])); - term1 := sqr(var1) / (sqr(cellcnts[i-1]) * (cellcnts[i-1]-1.0)); - term2 := sqr(var2) / (sqr(cellcnts[j-1]) * (cellcnts[j-1]-1.0)); - denominator := term1 + term2; - numerator := sqr((var1 / cellcnts[i-1]) + (var2 / cellcnts[j-1])); - gnu := numerator / denominator; - outline := format('degrees of freedom = %8.3f',[gnu]); - OutPutFrm.RichEdit.Lines.Add(outline); - v := round(gnu); - outline := format('Rounded degrees of freedom = %d',[v]); - OutPutFrm.RichEdit.Lines.Add(outline); - probability := probt(t,gnu); - outline := format('Probability > t = %8.3f',[probability]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.ShowModal; -end; - -initialization - {$I blkanovaunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/BLKANOVAUNIT.lfm b/applications/lazstats/source_orig/BLKANOVAUNIT.lfm deleted file mode 100644 index 8b14d8f6d..000000000 --- a/applications/lazstats/source_orig/BLKANOVAUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/BLKANOVAUNIT.lrs b/applications/lazstats/source_orig/BLKANOVAUNIT.lrs deleted file mode 100644 index cd8b8cb27..000000000 --- a/applications/lazstats/source_orig/BLKANOVAUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/BLKMREGUNIT.PAS b/applications/lazstats/source_orig/BLKMREGUNIT.PAS deleted file mode 100644 index 4d28b9522..000000000 --- a/applications/lazstats/source_orig/BLKMREGUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/BLKMREGUNIT.lfm b/applications/lazstats/source_orig/BLKMREGUNIT.lfm deleted file mode 100644 index 088ac8f8f..000000000 --- a/applications/lazstats/source_orig/BLKMREGUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/BLKMREGUNIT.lrs b/applications/lazstats/source_orig/BLKMREGUNIT.lrs deleted file mode 100644 index 9fc2c44d9..000000000 --- a/applications/lazstats/source_orig/BLKMREGUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/BlankUnit.lfm b/applications/lazstats/source_orig/BlankUnit.lfm deleted file mode 100644 index 3ba2118a3..000000000 --- a/applications/lazstats/source_orig/BlankUnit.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/BlankUnit.pas b/applications/lazstats/source_orig/BlankUnit.pas deleted file mode 100644 index b88c5c196..000000000 --- a/applications/lazstats/source_orig/BlankUnit.pas +++ /dev/null @@ -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. diff --git a/applications/lazstats/source_orig/CANONUNIT.PAS b/applications/lazstats/source_orig/CANONUNIT.PAS deleted file mode 100644 index cb06669eb..000000000 --- a/applications/lazstats/source_orig/CANONUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/CANONUNIT.lfm b/applications/lazstats/source_orig/CANONUNIT.lfm deleted file mode 100644 index 747936e5f..000000000 --- a/applications/lazstats/source_orig/CANONUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/CANONUNIT.lrs b/applications/lazstats/source_orig/CANONUNIT.lrs deleted file mode 100644 index e8d0478c9..000000000 --- a/applications/lazstats/source_orig/CANONUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/CCHARTUNIT.lfm b/applications/lazstats/source_orig/CCHARTUNIT.lfm deleted file mode 100644 index 023a79ae5..000000000 --- a/applications/lazstats/source_orig/CCHARTUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/CCHARTUNIT.lrs b/applications/lazstats/source_orig/CCHARTUNIT.lrs deleted file mode 100644 index d98d118f0..000000000 --- a/applications/lazstats/source_orig/CCHARTUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/CHISQRUNIT.PAS b/applications/lazstats/source_orig/CHISQRUNIT.PAS deleted file mode 100644 index f1070929b..000000000 --- a/applications/lazstats/source_orig/CHISQRUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/CHISQRUNIT.lfm b/applications/lazstats/source_orig/CHISQRUNIT.lfm deleted file mode 100644 index f233951e0..000000000 --- a/applications/lazstats/source_orig/CHISQRUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/CHISQRUNIT.lrs b/applications/lazstats/source_orig/CHISQRUNIT.lrs deleted file mode 100644 index 2551e9204..000000000 --- a/applications/lazstats/source_orig/CHISQRUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/COCHRANQUNIT.PAS b/applications/lazstats/source_orig/COCHRANQUNIT.PAS deleted file mode 100644 index 5e4e4b87a..000000000 --- a/applications/lazstats/source_orig/COCHRANQUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/COCHRANQUNIT.lfm b/applications/lazstats/source_orig/COCHRANQUNIT.lfm deleted file mode 100644 index 20583058f..000000000 --- a/applications/lazstats/source_orig/COCHRANQUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/COCHRANQUNIT.lrs b/applications/lazstats/source_orig/COCHRANQUNIT.lrs deleted file mode 100644 index 4499f44b4..000000000 --- a/applications/lazstats/source_orig/COCHRANQUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/COMPRELUNIT.PAS b/applications/lazstats/source_orig/COMPRELUNIT.PAS deleted file mode 100644 index a36c2c008..000000000 --- a/applications/lazstats/source_orig/COMPRELUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/COMPRELUNIT.lfm b/applications/lazstats/source_orig/COMPRELUNIT.lfm deleted file mode 100644 index 298ccd291..000000000 --- a/applications/lazstats/source_orig/COMPRELUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/COMPRELUNIT.lrs b/applications/lazstats/source_orig/COMPRELUNIT.lrs deleted file mode 100644 index 636e3fa1d..000000000 --- a/applications/lazstats/source_orig/COMPRELUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/CONCORDANCE.PAS b/applications/lazstats/source_orig/CONCORDANCE.PAS deleted file mode 100644 index 952cee24b..000000000 --- a/applications/lazstats/source_orig/CONCORDANCE.PAS +++ /dev/null @@ -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. diff --git a/applications/lazstats/source_orig/CONCORDANCE.lfm b/applications/lazstats/source_orig/CONCORDANCE.lfm deleted file mode 100644 index 77109e562..000000000 --- a/applications/lazstats/source_orig/CONCORDANCE.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/CONCORDANCE.lrs b/applications/lazstats/source_orig/CONCORDANCE.lrs deleted file mode 100644 index 4556a2aea..000000000 --- a/applications/lazstats/source_orig/CONCORDANCE.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/CORSIMUNIT.lfm b/applications/lazstats/source_orig/CORSIMUNIT.lfm deleted file mode 100644 index d35b18544..000000000 --- a/applications/lazstats/source_orig/CORSIMUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/CORSIMUNIT.lrs b/applications/lazstats/source_orig/CORSIMUNIT.lrs deleted file mode 100644 index 329075d8c..000000000 --- a/applications/lazstats/source_orig/CORSIMUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/COXREGUNIT.PAS b/applications/lazstats/source_orig/COXREGUNIT.PAS deleted file mode 100644 index fde8127b0..000000000 --- a/applications/lazstats/source_orig/COXREGUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/COXREGUNIT.lfm b/applications/lazstats/source_orig/COXREGUNIT.lfm deleted file mode 100644 index e739969b4..000000000 --- a/applications/lazstats/source_orig/COXREGUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/COXREGUNIT.lrs b/applications/lazstats/source_orig/COXREGUNIT.lrs deleted file mode 100644 index 971f6eadc..000000000 --- a/applications/lazstats/source_orig/COXREGUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/CROSSTAB.PAS b/applications/lazstats/source_orig/CROSSTAB.PAS deleted file mode 100644 index 973310519..000000000 --- a/applications/lazstats/source_orig/CROSSTAB.PAS +++ /dev/null @@ -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. diff --git a/applications/lazstats/source_orig/CROSSTAB.lfm b/applications/lazstats/source_orig/CROSSTAB.lfm deleted file mode 100644 index f4f3996f9..000000000 --- a/applications/lazstats/source_orig/CROSSTAB.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/CROSSTAB.lrs b/applications/lazstats/source_orig/CROSSTAB.lrs deleted file mode 100644 index 9f7ff947d..000000000 --- a/applications/lazstats/source_orig/CROSSTAB.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/CUMSUMUNIT.lfm b/applications/lazstats/source_orig/CUMSUMUNIT.lfm deleted file mode 100644 index 543a1ecb8..000000000 --- a/applications/lazstats/source_orig/CUMSUMUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/CUMSUMUNIT.lrs b/applications/lazstats/source_orig/CUMSUMUNIT.lrs deleted file mode 100644 index 10c6bde0e..000000000 --- a/applications/lazstats/source_orig/CUMSUMUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/CompTestUnit.lfm b/applications/lazstats/source_orig/CompTestUnit.lfm deleted file mode 100644 index 26d96610f..000000000 --- a/applications/lazstats/source_orig/CompTestUnit.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/CompletionItemUnit.lfm b/applications/lazstats/source_orig/CompletionItemUnit.lfm deleted file mode 100644 index 604b06a1e..000000000 --- a/applications/lazstats/source_orig/CompletionItemUnit.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/CompletionItemUnit.pas b/applications/lazstats/source_orig/CompletionItemUnit.pas deleted file mode 100644 index bd4c97b3d..000000000 --- a/applications/lazstats/source_orig/CompletionItemUnit.pas +++ /dev/null @@ -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. diff --git a/applications/lazstats/source_orig/DATAUNIT.PAS b/applications/lazstats/source_orig/DATAUNIT.PAS deleted file mode 100644 index d000b5aa3..000000000 --- a/applications/lazstats/source_orig/DATAUNIT.PAS +++ /dev/null @@ -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. diff --git a/applications/lazstats/source_orig/DIF.PAS b/applications/lazstats/source_orig/DIF.PAS deleted file mode 100644 index 8d7001632..000000000 --- a/applications/lazstats/source_orig/DIF.PAS +++ /dev/null @@ -1,1008 +0,0 @@ -unit DIF; - -{$MODE Delphi} - -interface - -uses - LCLIntf, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - StdCtrls, Buttons, OS3MainUnit, GLOBALS, Math, OUTPUTUNIT, MATRIXLIB, - DATAPROCS, FUNCTIONSLIB, GRAPHLib, LResources; - -type DynamicCharArray = array of char; - -type - TDIFfrm = class(TForm) - Memo1: TMemo; - Label1: TLabel; - VarList: TListBox; - ItemInBtn: TBitBtn; - ItemOutBtn: TBitBtn; - AllBtn: TBitBtn; - GrpInBtn: TBitBtn; - GrpOutBtn: TBitBtn; - Label2: TLabel; - Label3: TLabel; - GroupVarEdit: TEdit; - ItemsList: TListBox; - Label4: TLabel; - Label5: TLabel; - RefGrpEdit: TEdit; - TrgtGrpEdit: TEdit; - ResetBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - GroupBox1: TGroupBox; - ItemStatsChk: TCheckBox; - TestStatsChk: TCheckBox; - ItemCorrsChk: TCheckBox; - ItemTestChk: TCheckBox; - AlphaChk: TCheckBox; - LogisticChk: TCheckBox; - MHChk: TCheckBox; - Label6: TLabel; - LevelsEdit: TEdit; - Label7: TLabel; - LevelNoEdit: TEdit; - Label8: TLabel; - Label9: TLabel; - LowBoundEdit: TEdit; - UpBoundEdit: TEdit; - LevelScroll: TScrollBar; - Label10: TLabel; - Label11: TLabel; - Label12: TLabel; - CurvesChk: TCheckBox; - CountsChk: TCheckBox; - procedure ResetBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure ReturnBtnClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure ItemInBtnClick(Sender: TObject); - procedure ItemOutBtnClick(Sender: TObject); - procedure AllBtnClick(Sender: TObject); - procedure GrpInBtnClick(Sender: TObject); - procedure LowBoundEditExit(Sender: TObject); - procedure UpBoundEditExit(Sender: TObject); - procedure LevelsEditExit(Sender: TObject); - procedure LevelScrollScroll(Sender: TObject; ScrollCode: TScrollCode; - var ScrollPos: Integer); - private - { Private declarations } - NoItems : integer; - nolevels : integer; - tmean, tvar, tsd : double; - ColNoSelected : IntDyneVec; - ColLabels, RowLabels : StrDyneVec; - Means, Variances, StdDevs : DblDyneVec; - CorMat : DblDyneMat; // correlations among items and total score - Data : IntDyneMat; //store item scores and total score - Ubounds : IntDyneVec; // upper and lower bounds of score groups - Lbounds : IntdyneVec; - Code : DynamicCharArray; // blank, A, B or C ETS codes - Level10OK : IntdyneMat; // check that each item category >= 10 - RMHRight : IntDyneMat; // no. right for items by score group in reference group - RMHWrong : IntDyneMat; // no. wrong for items by score group in reference group - FMHRight : IntDyneMat; // no. right for items by score group in focus group - FMHWrong : IntDyneMat; // no. wrong for items by score group in focus group - RScrGrpCnt : IntDyneMat; // total responses for score groups in reference group - FScrGrpCnt : IntDyneMat; // total responses for score groups in focus group - NT : IntDyneMat; // total right and wrong in each category of each item - Alpha : DblDyneVec; - AlphaNum : DblDyneVec; - AlphaDen : DblDyneVec; - MHDiff : DblDyneVec; - ExpA : DblDyneMat; - VarA : DblDyneMat; - SumA : DblDyneVec; - SumExpA : DblDyneVec; - SumVarA : DblDyneVec; - ChiSqr : DblDyneVec; - Prob : DblDyneVec; - SEMHDDif : DblDyneVec; - Aster : StrDyneVec; - C : DblDyneVec; - CodeRF : DynamicCharArray; - Tot : IntDyneVec; - procedure AlphaRel(Sender: TObject); - procedure ItemCorrs(Sender: TObject); - procedure ItemTestCorrs(Sender: TObject); - procedure ItemCurves(Sender: TObject); - -public - { Public declarations } - end; - -var - DIFfrm: TDIFfrm; - -implementation - - -procedure TDIFfrm.ResetBtnClick(Sender: TObject); -var i : integer; -begin - VarList.Clear; - ItemsList.Clear; - GroupVarEdit.Text := ''; - ItemInBtn.Visible := true; - ItemOutBtn.Visible := false; - AllBtn.Visible := true; - GrpInBtn.Visible := true; - GrpOutBtn.Visible := false; - ItemStatsChk.Checked := true; - TestStatsChk.Checked := false; - ItemCorrsChk.Checked := false; - ItemTestChk.Checked := false; - MHChk.Checked := true; - LogisticChk.Checked := false; - RefGrpEdit.Text := ''; - TrgtGrpEdit.Text := ''; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - if NoVariables > 0 then LevelScroll.Max := NoVariables; - LevelNoEdit.Text := '1'; - LowBoundEdit.Text := '0'; - UpBoundEdit.Text := '2'; - //allocate space on heap - SetLength(ColLabels,NoVariables+1); - SetLength(RowLabels,NoVariables+1); - SetLength(Means,NoVariables); - SetLength(Variances,NoVariables); - SetLength(StdDevs,NoVariables); - SetLength(CorMat,NoVariables,NoVariables); - SetLength(Data,NoCases,NoVariables+3); //group, items, total, flag - SetLength(Lbounds,NoVariables); - SetLength(Ubounds,NoVariables); - SetLength(Tot,NoCases); - SetLength(ColNoSelected,NoVariables); -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.FormShow(Sender: TObject); -begin - ResetBtnClick(Self); -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.ReturnBtnClick(Sender: TObject); -begin - ColNoSelected := nil; - C := nil; - SEMHDDif := nil; - Aster := nil; - Prob := nil; - ChiSqr := nil; - SumVarA := nil; - SumExpA := nil; - SumA := nil; - VarA := nil; - ExpA := nil; - CodeRF := nil; - MHDiff := nil; - AlphaDen := nil; - AlphaNum := nil; - Alpha := nil; - NT := nil; - Level10OK := nil; - Code := nil; - FScrGrpCnt := nil; - RScrGrpCnt := nil; - FMHWrong := nil; - FMHRight := nil; - RMHWrong := nil; - RMHRight := nil; - Tot := nil; - Ubounds := nil; - Lbounds := nil; - Data := nil; - CorMat := nil; - StdDevs := nil; - Variances := nil; - Means := nil; - RowLabels := nil; - ColLabels := nil; - DIFfrm.Hide; -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.ComputeBtnClick(Sender: TObject); -Label LoopStart; -var - i, j, k : integer; - itm : integer; - grpvar : integer; - subjgrp : integer; - value : integer; - subjscore : integer; - scrgrpsize : integer; - lower, upper : integer; - sum : integer; - cellstring : string; - title : string; - nsize : array [1..2] of integer; - Rtm, Wtm : double; - TotPurge : integer; - LoopIt : integer; - RItem, FItem : integer; -begin - LoopIt := 0; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Mantel-Haenszel DIF Analysis adapted by Bill Miller from'); - OutPutFrm.RichEdit.Lines.Add('EZDIF written by Niels G. Waller'); - OutPutFrm.RichEdit.Lines.Add(''); - - NoItems := ItemsList.Items.Count; - for k := 1 to 2 do nsize[k] := 0; - - // get items to analyze and their labels - for i := 1 to NoItems do // items to analyze - begin - for j := 1 to NoVariables do // variables in grid - begin - cellstring := OS3MainFrm.DataGrid.Cells[j,0]; - if cellstring = ItemsList.Items.Strings[i-1] then - begin // matched - save info - ColNoSelected[i-1] := j; - ColLabels[i-1] := cellstring; - RowLabels[i-1] := cellstring; - end; // end match - end; // next j - end; // next i - ColLabels[NoItems] := 'TOTAL'; - RowLabels[NoItems] := 'TOTAL'; - - // get the variable number of the grouping code - grpvar := 0; - for i := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[i,0]; - if cellstring = GroupVarEdit.Text then grpvar := i; - end; - if grpvar = 0 then - begin - ShowMessage('Error - No group variable found.'); - exit; - end; - - // get number of test score levels - nolevels := StrToInt(LevelsEdit.Text); - - // read data (score group and items) - for i := 1 to NoCases do - begin - subjscore := 0; - value := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[grpvar,i]))); - subjgrp := 0; - if value = StrToInt(RefGrpEdit.Text) then subjgrp := 1; // reference grp - if value = StrToInt(TrgtGrpEdit.Text) then subjgrp := 2; // target group - if subjgrp = 0 then - begin - ShowMessage('Error - Bad group code for a subject.'); - exit; - end; - Data[i-1,0] := subjgrp; - nsize[subjgrp] := nsize[subjgrp] + 1; - for j := 1 to NoItems do - begin - itm := ColNoSelected[j-1]; - value := Round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[itm,i]))); - if value = 1 then subjscore := subjscore + 1; - Data[i-1,j] := value; - end; - Tot[i-1] := subjscore; - end; - - // obtain item means, variances, standard deviations for total subjects - for i := 0 to NoItems-1 do - begin - Means[i] := 0.0; - Variances[i] := 0.0; - StdDevs[i] := 0.0; - for j := 0 to NoCases - 1 do - begin - Means[i] := Means[i] + Data[j,i+1]; - Variances[i] := Variances[i] + (Data[j,i+1] * Data[j,i+1]); - end; - Variances[i] := (Variances[i] - (Means[i] * Means[i] / NoCases)) / (NoCases - 1); - if Variances[i] <= 0 then - begin - cellstring := format('Item %d has zero variance. Unselect the item.', - [i+1]); - ShowMessage(cellstring); - ResetBtnClick(Self); - exit; - end; - StdDevs[i] := sqrt(Variances[i]); - Means[i] := Means[i] / NoCases; - end; - - // obtain total score mean, variance and stddev - tmean := 0.0; - tvar := 0.0; - tsd := 0.0; - for i := 0 to NoCases - 1 do - begin - tmean := tmean + Tot[i]; - tvar := tvar + (Tot[i] * Tot[i]); - end; - tvar := (tvar - (tmean * tmean / NoCases)) / (NoCases - 1); - tsd := sqrt(tvar); - tmean := tmean / NoCases; - - // print descriptives if checked - if ItemStatsChk.Checked then - begin - title := 'Total Means'; - DynVectorPrint(Means,NoItems,title,ColLabels,NoCases); - title := 'Total Variances'; - DynVectorPrint(Variances,NoItems,title,ColLabels,NoCases); - title := 'Total Standard Deviations'; - DynVectorPrint(StdDevs,NoItems,title,ColLabels,NoCases); - end; - - // Show total test score statistics if checked - if TestStatsChk.Checked then - begin - cellstring := format('Total Score: Mean = %10.3f, Variance = %10.3f, Std.Dev. = %10.3f', - [tmean, tvar, tsd]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - cellstring := format('Reference group size = %d, Focus group size = %d', - [nsize[1],nsize[2]]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - // get Cronbach alpha for total group if checked - if AlphaChk.Checked then AlphaRel(Self); - - // Get item intercorrelations for total group if checked - if ItemCorrsChk.Checked then - begin - ItemCorrs(Self); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - // Get item-total score correlations for total group if checked - if ItemTestChk.Checked then - begin - ItemTestCorrs(Self); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - // Show upper and lower bounds for score group bins - OutPutFrm.RichEdit.Lines.Add('Conditioning Levels'); - OutPutFrm.RichEdit.Lines.Add('Lower Upper'); - for i := 0 to nolevels-1 do - begin - cellstring := format('%5d %5d',[Lbounds[i],Ubounds[i]]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - - // check for zero variance in each group - for k := 1 to 2 do // group - begin - for i := 0 to NoItems-1 do // item - begin - sum := 0; - for j := 0 to NoCases-1 do // subject - begin - if Data[j,0] = k then // group match ? - begin - sum := sum + Data[j,i+1]; - end; - end; - end; - if ((sum = 0) or (sum = NoVariables)) then - begin - cellstring := format('Item %d in group %d has zero variance.', - [i+1,k]); - ShowMessage(cellstring); - exit; - end; - end; - - // Get count of no. right and wrong for each item in each group - SetLength(RMHRight,nolevels,NoItems); - SetLength(RMHWrong,nolevels,NoItems); - SetLength(FMHRight,nolevels,NoItems); - SetLength(FMHWrong,nolevels,NoItems); - SetLength(RScrGrpCnt,nolevels,NoItems); - SetLength(FScrGrpCnt,nolevels,NoItems); - SetLength(Code,NoItems); - SetLength(Level10OK,nolevels,NoItems); - SetLength(NT,nolevels,NoItems); - SetLength(Alpha,NoItems); - SetLength(AlphaNum,NoItems); - SetLength(AlphaDen,NoItems); - SetLength(MHDiff,NoItems); - SetLength(CodeRF,NoItems); - SetLength(ExpA,nolevels,NoItems); - SetLength(VarA,nolevels,NoItems); - SetLength(SumA,NoItems); - SetLength(SumExpA,NoItems); - SetLength(SumVarA,NoItems); - SetLength(ChiSqr,NoItems); - SetLength(Prob,NoItems); - SetLength(Aster,NoItems); - SetLength(SEMHDDif,NoItems); - SetLength(C,NoItems); - -LoopStart: - // clear arrays - for j := 0 to NoItems-1 do - begin - for k := 0 to nolevels-1 do - begin - RMHRight[k,j] := 0; - RMHWrong[k,j] := 0; - RScrGrpCnt[k,j] := 0; - FMHRight[k,j] := 0; - FMHWrong[k,j] := 0; - FScrGrpCnt[k,j] := 0; - Level10OK[k,j] := 1; - NT[k,j] := 0; - ExpA[k,j] := 0.0; - VarA[k,j] := 0.0; - end; - Alpha[j] := 0.0; - AlphaNum[j] := 0.0; - AlphaDen[j] := 0.0; - MHDiff[j] := 0.0; - CodeRF[j] := ' '; - Prob[j] := 0.0; - end; - - LoopIt := LoopIt + 1; - OutPutFrm.RichEdit.Clear; - cellstring := format('COMPUTING M-H CHI-SQUARE, PASS # %d',[LoopIt]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - for k := 0 to nolevels-1 do - begin - for i := 0 to NoCases-1 do - begin - subjgrp := Data[i,0]; - for j := 0 to NoItems-1 do - begin - RItem := 0; - value := Data[i,j+1]; - if ((LoopIt = 2) and (Code[j] = 'C')) then RItem := value; - if value = 1 then - begin - if ((Tot[i]+RItem >= Lbounds[k]) and - (Tot[i]+RItem <= Ubounds[k])) then - begin - if subjgrp = 1 then - begin - RMHRight[k,j] := RMHRight[k,j] + 1; - RScrGrpCnt[k,j] := RScrGrpCnt[k,j] + 1; - end; // if reference group - if subjgrp = 2 then - begin - FMHRight[k,j] := FMHRight[k,j] + 1; - FScrGrpCnt[k,j] := FScrGrpCnt[k,j] + 1; - end; // if focus group - end; // end if () and () - end; // value = 1 - if value = 0 then - begin - if ((Tot[i]+RItem >= Lbounds[k]) and - (Tot[i]+RItem <= Ubounds[k])) then - begin - if subjgrp = 1 then - begin - RMHWrong[k,j] := RMHWrong[k,j] + 1; - RScrGrpCnt[k,j] := RScrGrpCnt[k,j] + 1; - end; - if subjgrp = 2 then - begin - FMHWrong[k,j] := FMHWrong[k,j] + 1; - FScrGrpCnt[k,j] := FScrGrpCnt[k,j] + 1; - end; - end; - end; // if value = 0 - end; // next j - end; // next i - end; // next k - for j := 0 to NoItems-1 do Code[j] := 'Z'; // clean out ETS code - - // print score group counts for Reference and focus subjects - if CountsChk.Checked then - begin - for i := 0 to nolevels-1 do - RowLabels[i] := format('%3d-%3d',[Lbounds[i],Ubounds[i]]); - DynIntMatPrint(RScrGrpCnt,nolevels,NoItems,'Score Level Counts by Item',RowLabels,ColLabels, - 'Cases in Reference Group'); - DynIntMatPrint(FScrGrpCnt,nolevels,NoItems,'Score Level Counts by Item',RowLabels,ColLabels, - 'Cases in Focus Group'); - end; - - // Plot Item curves if checked - if ((CurvesChk.Checked) and (LoopIt = 1)) then ItemCurves(Self); - - // check for minimum of 10 per category in each item - // compute NT - for j := 0 to NoItems-1 do - begin - for k := 0 to nolevels-1 do - begin - if ((RScrGrpCnt[k,j] < 10) or (FScrGrpCnt[k,j] < 10)) then - Level10OK[k,j] := 0 // insufficient n - else Level10OK[k,j] := 1; // 10 or more - OK - NT[k,j] := RScrGrpCnt[k,j] + FScrGrpCnt[k,j]; - end; - end; - - for k := 0 to nolevels-1 do - begin - if Level10OK[k,0] = 0 then - begin - cellstring := format('Insufficient data found in level: %d - %d', - [Lbounds[k],Ubounds[k]]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - end; - end; - - // compute alpha - for j := 0 to NoItems - 1 do - begin - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - begin - AlphaNum[j] := AlphaNum[j] + (RMHRight[k,j] * FMHWrong[k,j]) / NT[k,j]; - AlphaDen[j] := AlphaDen[j] + (RMHWrong[k,j] * FMHRight[k,j]) / NT[k,j]; - end; - end; - end; - - for j := 0 to NoItems-1 do - begin - if AlphaDen[j] = 0.0 then - begin - cellstring := format('Window too small at item %d level %d', - [j+1,k+1]); - ShowMessage(cellstring); - exit; - end - else begin - Alpha[j] := AlphaNum[j] / AlphaDen[j]; - MHDiff[j] := -2.35 * ln(Alpha[j]); - end; - end; - - // compute expected values - for j := 0 to NoItems-1 do - begin - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - begin - ExpA[k,j] := (RScrGrpCnt[k,j] * (RMHRight[k,j] + FMHRight[k,j] )) / - NT[k,j]; - end; - end; - end; - - // compute variances - for j := 0 to NoItems-1 do - begin - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - begin - Rtm := RMHRight[k,j] + FMHRight[k,j]; - Wtm := RMHWrong[k,j] + FMHWrong[k,j]; - VarA[k,j] := (RScrGrpCnt[k,j] * FScrGrpCnt[k,j] * Rtm * Wtm) / - ( NT[k,j] * NT[k,j] * (NT[k,j]-1) ); - end; - end; - end; - - // compute chi-squares - for j := 0 to NoItems-1 do - begin - SumA[j] := 0.0; - SumExpA[j] := 0.0; - SumVarA[j] := 0.0; - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - begin - SumA[j] := SumA[j] + RMHRight[k,j]; - SumExpA[j] := SumExpA[j] + ExpA[k,j]; - SumVarA[j] := SumVarA[j] + VarA[k,j]; - end; - end; - end; - - for j := 0 to NoItems-1 do - begin - ChiSqr[j] := (sqr((Abs(SumA[j] - SumExpA[j]) - 0.5))) / SumVarA[j]; - Prob[j] := 1.0 - chisquaredprob(ChiSqr[j],1); - if Prob[j] > 0.05 then Aster[j] := ''; - if Prob[j] <= 0.05 then Aster[j] := '*'; - if Prob[j] <= 0.01 then Aster[j] := '**'; - if Prob[j] <= 0.005 then Aster[j] := '***'; - end; - - // compute std. errors - for j := 0 to NoItems-1 do - begin - C[j] := 0.0; - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - C[j] := C[j] + ((RMHRight[k,j] * FMHWrong[k,j]) / NT[k,j]); - end; - end; - - for j := 0 to NoItems - 1 do - begin - SEMHDDif[j] := 0.0; - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - begin - SEMHDDif[j] := SEMHDDif[j] + ( (RMHRight[k,j] * FMHWrong[k,j] ) - + ( Alpha[j] * RMHWrong[k,j] * FMHRight[k,j])) * - ( RMHRight[k,j] + FMHWrong[k,j] + Alpha[j] * - ( RMHWrong[k,j] + FMHRight[k,j] )) / ( 2.0 * NT[k,j] * NT[k,j]); - end; - end; - end; - - for j := 0 to NoItems-1 do - SEMHDDif[j] := (2.35 / C[j]) * sqrt(SEMHDDif[j]); - - // code results with ETS codes - for j := 0 to NoItems-1 do - begin - if ( (abs(MHDiff[j]) > 1.5) and ((abs(MHDiff[j]) - (1.96 * SEMHDDif[j]) - > 1.0))) then Code[j] := 'C'; - if ((abs(MHDiff[j]) - (1.96 * SEMHDDif[j]) <= 0.0) or - (abs(MHDiff[j]) <= 1.0)) then code[j] := 'A'; - if ((code[j] <> 'A') and (code[j] <> 'C')) then code[j] := 'B'; - end; - - // purge - TotPurge := 0; - for j := 0 to NoItems-1 do - begin - if (code[j] = 'C') then - begin - TotPurge := TotPurge + 1; - for i := 0 to NoCases - 1 do Tot[i] := Tot[i] - Data[i,j+1]; - if Alpha[j] > 1.0 then CodeRF[j] := 'R'; - if Alpha[j] < 1.0 then CodeRF[j] := 'F'; - end; - end; - - // show results -// OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add( - 'CODES ITEM SIG. ALPHA CHI2 P-VALUE MH D-DIF S.E. MH D-DIF'); - for j := 0 to noitems-1 do - begin - cellstring := format('%1s %1s %4d %3s %6.3f %7.3f %6.3f %6.3f %6.3f', - [code[j],CodeRF[j], j+1, Aster[j],Alpha[j],ChiSqr[j],Prob[j],MHDiff[j], - SEMHDDif[j]]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - end; - OutPutFrm.RichEdit.Lines.Add(''); - if LoopIt = 1 then - begin - cellstring := format('No. of items purged in pass 1 = %d',[TotPurge]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - OutPutFrm.RichEdit.Lines.Add('Item Numbers:'); - for j := 0 to NoItems-1 do - begin - if Code[j] = 'C' then - begin - cellstring := format('%d',[j+1]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - end; - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - if LoopIt < 2 then goto LoopStart; -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.ItemInBtnClick(Sender: TObject); -var - index, i : integer; - -begin - if VarList.ItemIndex < 0 then - begin - ItemInBtn.Visible := false; - exit; - end; - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - ItemsList.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - ItemOutBtn.Visible := true; -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.ItemOutBtnClick(Sender: TObject); -var - index: integer; - -begin - index := ItemsList.ItemIndex; - if index < 0 then - begin - ItemOutBtn.Visible := false; - exit; - end; - VarList.Items.Add(ItemsList.Items.Strings[index]); - ItemsList.Items.Delete(index); - ItemInBtn.Visible := true; -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.AllBtnClick(Sender: TObject); -var - i : integer; -begin - if VarList.Items.Count < 1 then exit; - for i := 0 to VarList.Items.Count - 1 do - ItemsList.Items.Add(VarList.Items.Strings[i]); - VarList.Clear; - ItemInBtn.Visible := false; - ItemOutBtn.Visible := true; -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.GrpInBtnClick(Sender: TObject); -var index : integer; -begin - if VarList.ItemIndex < 0 then - begin - GrpInBtn.Visible := false; - exit; - end; - index := VarList.ItemIndex; - GroupVarEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - GrpInBtn.Visible := false; - GrpOutBtn.Visible := true; -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.LowBoundEditExit(Sender: TObject); -var i : integer; -begin - i := StrToInt(LevelNoEdit.Text); - Lbounds[i-1] := StrToInt(LowBoundEdit.Text); - UpBoundEdit.SetFocus; -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.UpBoundEditExit(Sender: TObject); -var i : integer; -begin - i := StrToInt(LevelNoEdit.Text); - Ubounds[i-1] := StrToInt(UpBoundEdit.Text); - if i = StrToInt(LevelsEdit.Text) then - begin - ComputeBtn.SetFocus; - exit; - end; - LowBoundEdit.Text := IntToStr(Ubounds[i-1] + 1); - LowBoundEdit.SetFocus; -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.LevelsEditExit(Sender: TObject); -begin - LevelScroll.Max := StrToInt(LevelsEdit.Text); - LowBoundEdit.SetFocus; -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.LevelScrollScroll(Sender: TObject; - ScrollCode: TScrollCode; var ScrollPos: Integer); -var - scrlpos : integer; - level : integer; -begin - level := StrToInt(LevelNoEdit.Text); - scrlpos := LevelScroll.Position; - if ((scrlpos > level) and (level <= StrToInt(LevelsEdit.Text))) then - begin - LevelNoEdit.Text := IntToStr(scrlpos); - LowBoundEdit.SetFocus; - exit; - end; - if scrlpos < level then - begin - level := scrlpos; - if level > 0 then - begin - LevelNoEdit.Text := IntToStr(level); - LowBoundEdit.Text := IntToStr(Lbounds[level-1]); - UpBoundEdit.Text := IntToStr(Ubounds[level-1]); - end; - LowBoundEdit.SetFocus; - end; -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.AlphaRel(Sender: TObject); -var - i : integer; - AlphaRel, SEMeas : double; - outline : string; - -begin - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add(''); - AlphaRel := 0.0; - - for i := 0 to NoItems-1 do - AlphaRel := AlphaRel + variances[i]; // sum of item variances - AlphaRel := AlphaRel / tvar; - AlphaRel := 1.0 - AlphaRel; - AlphaRel := (NoItems / (NoItems - 1.0)) * AlphaRel; - SEMeas := tsd * sqrt(1.0 - AlphaRel); - outline := format('Alpha Reliability Estimate for Test = %6.4f S.E. of Measurement = %8.3f', - [AlphaRel,SEMeas]); - OutPutFrm.RichEdit.Lines.Add(outline); -// OutPutFrm.ShowModal; -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.ItemCorrs(Sender: TObject); -var - i, j, k : integer; - title : string; -begin - // cross-products - for i := 0 to NoItems-1 do - for j := 0 to NoItems-1 do - for k := 0 to NoCases-1 do - CorMat[i,j] := CorMat[i,j] + (Data[k,i+1] * Data[k,j+1]); - // covariances - for i := 0 to NoItems-1 do - for j := 0 to NoItems-1 do - CorMat[i,j] := (CorMat[i,j] - (NoCases * Means[i] * Means[j])) / - (NoCases-1); - - // correlations - for i := 0 to NoItems-1 do - for j := 0 to NoItems-1 do - CorMat[i,j] := CorMat[i,j] / (StdDevs[i] * StdDevs[j]); - - // show results - OutPutFrm.RichEdit.Clear; - title := 'Correlations Among Items'; - MAT_PRINT(CorMat,NoItems,NoItems,title,RowLabels,ColLabels,NoCases); -end; -//------------------------------------------------------------------- - -procedure TDIFfrm.ItemTestCorrs(Sender: TObject); -var - i, j : integer; - Cors : DblDyneVec; - title : string; -begin - SetLength(Cors,NoItems); - // cross-products - for i := 0 to NoItems-1 do - for j := 0 to NoCases-1 do - Cors[i] := Cors[i] + (Data[j,i+1] * Tot[j]); - // covariances - for i := 0 to NoItems-1 do - Cors[i] := (Cors[i] - (NoCases * Means[i] * tmean)) / (NoCases-1); - // correlations - for i := 0 to NoItems-1 do - Cors[i] := Cors[i] / (StdDevs[i] * tsd); - // show results -// OutPutFrm.RichEdit.Clear; - title := 'Item-Total Correlations'; - DynVectorPrint(Cors,NoItems,title,ColLabels,NoCases); - // release memory - Cors := nil; -end; -//------------------------------------------------------------------- -procedure TDIFfrm.ItemCurves(Sender: TObject); -var - i, ii, j : integer; - XPlotPts : DblDyneMat; - YPlotPts : DblDyneMat; - LabelStr, outline, xTitle, yTitle : string; - max : integer; - -begin - SetLength(YPlotPts,2,nolevels); - SetLength(XPlotPts,1,nolevels); - - // get maximum no. of scores in either groups bins - for i := 0 to NoItems-1 do - begin - max := 0; - for j := 0 to nolevels-1 do - begin - if RMHRight[j,i] > max then max := RMHRight[j,i]; - if FMHRight[j,i] > max then max := FMHRight[j,i]; - end; - - // Plot reference group in blue, focus group in red - for ii := 1 to 2 do // possible group curves - begin - for j := 0 to nolevels-1 do //get points to plot - begin - XPlotPts[0,j] := Lbounds[j]; - if ii = 1 then YPlotPts[ii-1,j] := RMHRight[j,i]; - if ii = 2 then YPlotPts[ii-1,j] := FMHRight[j,i]; - end; - end; // next group - - // Plot the points - GraphFrm.BackColor := clWhite; - GraphFrm.ShowLeftWall := true; - GraphFrm.ShowRightWall := true; - GraphFrm.ShowBottomWall := true; - GraphFrm.ShowBackWall := true; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlue; - GraphFrm.FloorColor := clBlue; - outline := format('Blue = Reference, Red = Focus for item %d',[i+1]); - GraphFrm.Heading := outline; - xTitle := 'Lower bounds of levels'; - GraphFrm.XTitle := xTitle; - yTitle := 'Frequencies'; - GraphFrm.YTitle := yTitle; - GraphFrm.nosets := 2; - GraphFrm.nbars := nolevels; - GraphFrm.barwideprop := 0.5; - GraphFrm.miny := 0.0; - GraphFrm.maxy := max; - GraphFrm.AutoScale := false; - GraphFrm.GraphType := 5; // 2d line charts - GraphFrm.PtLabels := false; - for ii := 1 to 2 do - begin - if ii = 1 then LabelStr := 'Reference'; - if ii = 2 then LabelStr := 'Focus'; - GraphFrm.SetLabels[ii] := LabelStr; - end; - GraphFrm.Ypoints := YPlotPts; - GraphFrm.Xpoints := XPlotPts; - GraphFrm.ShowModal; - end; // next item - - XPlotPts := nil; - YPlotPts := nil; - -end; -//------------------------------------------------------------------- - -initialization - {$i DIF.lrs} - {$i DIF.lrs} - -end. diff --git a/applications/lazstats/source_orig/DIF.lfm b/applications/lazstats/source_orig/DIF.lfm deleted file mode 100644 index 2f2582286..000000000 --- a/applications/lazstats/source_orig/DIF.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/DIF.lrs b/applications/lazstats/source_orig/DIF.lrs deleted file mode 100644 index fe521de37..000000000 --- a/applications/lazstats/source_orig/DIF.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/DIFFERENCEUNIT.PAS b/applications/lazstats/source_orig/DIFFERENCEUNIT.PAS deleted file mode 100644 index 9ca9a4bd7..000000000 --- a/applications/lazstats/source_orig/DIFFERENCEUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/DIFFERENCEUNIT.lfm b/applications/lazstats/source_orig/DIFFERENCEUNIT.lfm deleted file mode 100644 index d307944b0..000000000 --- a/applications/lazstats/source_orig/DIFFERENCEUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/DIFFERENCEUNIT.lrs b/applications/lazstats/source_orig/DIFFERENCEUNIT.lrs deleted file mode 100644 index 184c88e90..000000000 --- a/applications/lazstats/source_orig/DIFFERENCEUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/DISCRIMUNIT.PAS b/applications/lazstats/source_orig/DISCRIMUNIT.PAS deleted file mode 100644 index 123b77fcc..000000000 --- a/applications/lazstats/source_orig/DISCRIMUNIT.PAS +++ /dev/null @@ -1,1208 +0,0 @@ -unit DiscrimUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, ExtCtrls, MainUnit,OutPutUnit, FunctionsLib, - GraphLib, Globals, DataProcs, MatrixLib, DictionaryUnit, Math; - -type - - { TDiscrimFrm } - - TDiscrimFrm = class(TForm) - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - DescChk: TCheckBox; - PCovChk: TCheckBox; - CentroidsChk: TCheckBox; - ScoresChk: TCheckBox; - CorrsChk: TCheckBox; - InvChk: TCheckBox; - PlotChk: TCheckBox; - ClassChk: TCheckBox; - AnovaChk: TCheckBox; - CrossChk: TCheckBox; - DevCPChk: TCheckBox; - EigensChk: TCheckBox; - DepIn: TBitBtn; - DepOut: TBitBtn; - GroupBox1: TGroupBox; - PredIn: TBitBtn; - PredOut: TBitBtn; - GroupVar: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - PredList: TListBox; - ClassSize: TRadioGroup; - VarList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure DepInClick(Sender: TObject); - procedure DepOutClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure PredInClick(Sender: TObject); - procedure PredOutClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - MaxGrp : integer; - MinGrp : integer; - procedure PlotPts(Sender: TObject; RawCMat : DblDyneMat; - Constants : DblDyneVec; - ColNoSelected : IntDyneVec; - NoSelected : integer; - noroots : integer; - NoCases : integer; - GrpVar : integer; - NoGrps : integer; - NoInGrp : IntDyneVec); - - procedure Classify(Sender: TObject; PooledW : DblDyneMat; - GrpMeans : DblDyneMat; - ColNoSelected : IntDyneVec; - NoSelected : integer; - NoCases : integer; - GrpVar : integer; - NoGrps : integer; - NoInGrp : IntDyneVec; - VarLabels : StrDyneVec); - - procedure ClassIt(Sender: TObject; PooledW : DblDyneMat; - ColNoSelected : IntDyneVec; - GrpMeans : DblDyneMat; - Roots : DblDyneVec; - noroots : integer; - GrpVar : integer; - NoGrps : integer; - NoInGrp : IntDyneVec; - NoSelected : integer; - NoCases : integer; - RawCmat : DblDyneMat; - Constants : DblDyneVec); - public - { public declarations } - end; - -var - DiscrimFrm: TDiscrimFrm; - -implementation - -{ TDiscrimFrm } - -procedure TDiscrimFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - PredList.Clear; - PredOut.Visible := false; - PredIn.Visible := true; - DepOut.Visible := false; - DepIn.Visible := true; - GroupVar.Text := ''; - DescChk.Checked := false; - CorrsChk.Checked := false; - InvChk.Checked := false; - PlotChk.Checked := false; - ClassChk.Checked := false; - AnovaChk.Checked := false; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TDiscrimFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TDiscrimFrm.DepInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - GroupVar.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - DepOut.Visible := true; - DepIn.Visible := false; -end; - -procedure TDiscrimFrm.ComputeBtnClick(Sender: TObject); -var - i, j, k, grp, grpvalue, matrow, matcol, noroots, dfchi, n2, k2 : integer; - NoSelected : integer; - outline, GroupLabel, ColHead : string; - Title : string; - GrpVar, NoGrps, nowithin, TotalCases, value, grpno : integer; - ColNoSelected : IntDyneVec; - CaseNo, NoInGrp : IntDyneVec; - VarLabels, ColLabels, GrpNos : StrDyneVec; - X, Y, GroupSS, ErrorSS, GroupMS, ErrorMS, TotalSS, num, s, v2, den : double; - Lambda, ChiSquare, Pillia, TotChi, p, Rc, chi, chiprob, m, L2, F, Fprob : double; - DFGroup, DFError, DFTotal, Fratio, prob, minroot, trace, pcnttrace : double; - probchi : double; - WithinMat, WithinInv, WinvB, v, PooledW, TotalMat, BetweenMat : DblDyneMat; - EigenVectors, EigenTrans, TempMat, Theta, DiagMat, CoefMat : DblDyneMat; - RawCMat, GrpMeans, GrpSDevs, Centroids, Structure : DblDyneMat; - Constants, ScoreVar, Roots, Pcnts, TotalMeans, TotalVariances : DblDyneVec; - TotalStdDevs, WithinMeans, WithinVariances, WithinStdDevs, w : DblDyneVec; - errorcode : boolean; -begin - TotalCases := 0; - OutPutFrm.RichEdit.Clear(); - OutPutFrm.RichEdit.Lines.Add('MULTIVARIATE ANOVA / DISCRIMINANT FUNCTION'); - OutPutFrm.RichEdit.Lines.Add('Reference: Multiple Regression in Behavioral Research'); - OutPutFrm.RichEdit.Lines.Add('Elazar J. Pedhazur, 1997, Chapters 20-21'); - OutPutFrm.RichEdit.Lines.Add('Harcourt Brace College Publishers'); - NoSelected := PredList.Items.Count + 1; - SetLength(ColNoSelected,NoVariables); - SetLength(VarLabels,NoVariables); - SetLength(ColLabels,NoVariables); - SetLength(CaseNo,NoVariables); - - // Get items selected - for i := 1 to NoSelected - 1 do - begin - for j := 1 to NoVariables do - begin - if (PredList.Items.Strings[i-1] = OS3MainFrm.DataGrid.Cells[j,0]) then - begin - ColNoSelected[i-1] := j; - VarLabels[i-1] := OS3MainFrm.DataGrid.Cells[j,0]; - end; - if GroupVar.Text = OS3MainFrm.DataGrid.Cells[j,0] then - begin - GrpVar := j; - GroupLabel := OS3MainFrm.DataGrid.Cells[j,0]; - ColNoSelected[NoSelected-1] := j; - end; - end; // next j variable - end; // next i predictor - - //Allocate memory for analyses - SetLength(WithinMat,NoVariables,NoVariables); - SetLength(WithinInv,NoVariables,NoVariables); - SetLength(WinvB,NoVariables,NoVariables); - SetLength(v,NoVariables,NoVariables); - SetLength(PooledW,NoVariables,NoVariables); - SetLength(TotalMat,NoVariables,NoVariables); - SetLength(BetweenMat,NoVariables,NoVariables); - SetLength(EigenVectors,NoVariables,NoVariables); - SetLength(EigenTrans,NoVariables,NoVariables); - SetLength(TempMat,NoVariables,NoVariables); - SetLength(Theta,NoVariables,NoVariables); - SetLength(DiagMat,NoVariables,NoVariables); - SetLength(CoefMat,NoVariables,NoVariables); - SetLength(RawCMat,NoVariables,NoVariables); - SetLength(Structure,NoVariables,NoVariables); - SetLength(Constants,NoVariables); - SetLength(ScoreVar,NoVariables); - SetLength(Roots,NoVariables); - SetLength(Pcnts,NoVariables); - SetLength(TotalMeans,NoVariables); - SetLength(TotalVariances,NoVariables); - SetLength(TotalStdDevs,NoVariables); - SetLength(WithinMeans,NoVariables); - SetLength(WithinVariances,NoVariables); - SetLength(WithinStdDevs,NoVariables); - SetLength(w,NoVariables); - - // Initialize arrays - for i := 0 to NoSelected-1 do - begin - TotalMeans[i] := 0.0; - TotalVariances[i] := 0.0; - WithinMeans[i] := 0.0; - WithinVariances[i] := 0.0; - for j := 0 to NoSelected-1 do - begin - TotalMat[i,j] := 0.0; - WithinMat[i,j] := 0.0; - PooledW[i,j] := 0.0; - end; - end; - - //Get minimum and maximum group numbers (and no. of groups) - MinGrp := 1000; - MaxGrp := 0; - for i := 1 to NoCases do - begin - if (GoodRecord(i,NoSelected,ColNoSelected)) then - begin - value := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GrpVar,i]))); - if (value < MinGrp) then MinGrp := value; - if (value > MaxGrp) then MaxGrp := value; - end; - end; // next case - NoGrps := MaxGrp - MinGrp + 1; - - //Allocate space for group means, standard deviations and centroids - SetLength(GrpMeans,NoGrps,NoSelected); - SetLength(GrpSDevs,NoGrps,NoSelected); - SetLength(Centroids,NoGrps,NoSelected); - SetLength(GrpNos,NoGrps); - SetLength(NoInGrp,NoGrps); - - //Initialize group variables - for i := 0 to NoGrps-1 do - begin - for j := 0 to NoSelected-1 do - begin - Centroids[i,j] := 0.0; - GrpMeans[i,j] := 0.0; - GrpSDevs[i,j] := 0.0; - end; - end; - - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Total Cases := %d, Number of Groups := %d', - [NoCases, NoGrps]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - - //Read the data for each group, accumulating cross-products and sums - for grp := 1 to NoGrps do - begin - nowithin := 0; - grpvalue := grp; - for i := 1 to NoCases do - begin - if (GoodRecord(i,NoSelected,ColNoSelected)) then - begin - grpno := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GrpVar,i]))); - grpno := NoGrps - (MaxGrp - grpno); - if (grpno = grpvalue) then // case belongs to this group - begin - GrpNos[grp-1] := IntToStr(grpno); - nowithin := nowithin + 1; - TotalCases := TotalCases + 1; - for j := 1 to NoSelected - 1 do // matrix row - begin - matrow := ColNoSelected[j-1]; - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[matrow,i])); - for k := 1 to NoSelected - 1 do // matrix col. - begin - matcol := ColNoSelected[k-1]; - Y := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[matcol,i])); - WithinMat[j-1,k-1] := WithinMat[j-1,k-1] + (X * Y); - TotalMat[j-1,k-1] := TotalMat[j-1,k-1] + (X * Y); - end; - WithinMeans[j-1] := WithinMeans[j-1] + X; - WithinVariances[j-1] := WithinVariances[j-1] + (X * X); - TotalMeans[j-1] := TotalMeans[j-1] + X; - TotalVariances[j-1] := TotalVariances[j-1] + (X * X); - end; // next variable j - end; // if group number match - end; // end if valid record - end; // next case - - // Does user want cross-products matrices ? - if (CrossChk.Checked = true) then - begin - // print within matrix - ColHead := format('Group %d, N = %d',[grp,nowithin]); - Title := 'SUM OF CROSS-PRODUCTS for ' + ColHead; - MAT_PRINT(WithinMat,NoSelected-1,NoSelected-1,Title,VarLabels,VarLabels,nowithin); - end; - - // Convert to deviation cross-products and pool - for j := 1 to NoSelected - 1 do - begin - for k := 1 to NoSelected - 1 do - begin - WithinMat[j-1,k-1] := WithinMat[j-1,k-1] - - (WithinMeans[j-1] * WithinMeans[k-1] / nowithin); - PooledW[j-1,k-1] := PooledW[j-1,k-1] + WithinMat[j-1,k-1]; - end; - end; - - // Does user want deviation cross-products? - if (DevCPChk.Checked = true) then - begin - // print within matrix - ColHead := format('Group %d, N := %d',[grpvalue,nowithin]); - Title := 'WITHIN GROUP SUM OF DEVIATION CROSS-PRODUCTS ' + ColHead; - MAT_PRINT(WithinMat,NoSelected-1,NoSelected-1,Title,VarLabels, - VarLabels,nowithin); - end; - - // Compute descriptives from sums and sums of squares - for j := 1 to NoSelected - 1 do - begin - WithinVariances[j-1] := WithinVariances[j-1] - - (WithinMeans[j-1] * WithinMeans[j-1] / nowithin); - WithinVariances[j-1] := WithinVariances[j-1] / (nowithin-1); - WithinStdDevs[j-1] := sqrt(WithinVariances[j-1]); - WithinMeans[j-1] := WithinMeans[j-1] / nowithin; - end; - - // Does user want descriptives ? - if DescChk.Checked then - begin - // print mean, variance and std. dev.s for variables - outline := format('MEANS FOR GROUP %d, N := %d',[grp,nowithin]); - DynVectorPrint(WithinMeans,NoSelected-1,outline,VarLabels,nowithin); - outline := format('VARIANCES FOR GROUP %d',[grp]); - DynVectorPrint(WithinVariances,NoSelected-1,outline,VarLabels,nowithin); - outline := format('STANDARD DEVIATIONS FOR GROUP %d',[grp]); - DynVectorPrint(WithinStdDevs,NoSelected-1,outline,VarLabels,nowithin); - end; - if (DescChk.Checked) or (DevCPChk.Checked) or (CrossChk.Checked) then - begin - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - end; - - // Now initialize for the next group and save descriptives - for j := 1 to NoSelected - 1 do - begin - GrpMeans[grp-1,j-1] := WithinMeans[j-1]; - WithinMeans[j-1] := 0.0; - GrpSDevs[grp-1,j-1] := WithinStdDevs[j-1]; - WithinVariances[j-1] := 0.0; - for k := 1 to NoSelected - 1 do WithinMat[j-1,k-1] := 0.0; - end; - NoInGrp[grp-1] := nowithin; - end; // next group - - // Does user want cross-products matrices ? - if CrossChk.Checked then - begin - // print Total cross-products matrix - Title := 'TOTAL SUM OF CROSS-PRODUCTS'; - MAT_PRINT(TotalMat,NoSelected-1,NoSelected-1,Title,VarLabels,VarLabels,TotalCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - end; - - //Obtain Total deviation cross-products - for j := 1 to NoSelected - 1 do - for k := 1 to NoSelected - 1 do - TotalMat[j-1,k-1] := TotalMat[j-1,k-1] - - (TotalMeans[j-1] * TotalMeans[k-1] / TotalCases); - - // Does user want deviation cross-products? - if DevCPChk.Checked then - begin - // print total deviation cross-products matrix - Title := 'TOTAL SUM OF DEVIATION CROSS-PRODUCTS'; - MAT_PRINT(TotalMat,NoSelected-1,NoSelected-1,Title,VarLabels,VarLabels,TotalCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - end; - for j := 1 to NoSelected - 1 do - begin - TotalVariances[j-1] := TotalVariances[j-1] - - (TotalMeans[j-1] * TotalMeans[j-1] / TotalCases); - TotalVariances[j-1] := TotalVariances[j-1] / (TotalCases - 1); - TotalStdDevs[j-1] := sqrt(TotalVariances[j-1]); - TotalMeans[j-1] := TotalMeans[j-1] / TotalCases; - end; - - // Does user want descriptives ? - if DescChk.Checked then - begin - // print mean, variance and std. dev.s for variables - Title := 'MEANS'; - DynVectorPrint(TotalMeans,NoSelected-1,Title,VarLabels,TotalCases); - Title := 'VARIANCES'; - DynVectorPrint(TotalVariances,NoSelected-1,Title,VarLabels,TotalCases); - Title := 'STANDARD DEVIATIONS'; - DynVectorPrint(TotalStdDevs,NoSelected-1,Title,VarLabels,TotalCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - end; - - // Obtain between groups deviation cross-products matrix - MATSUB(BetweenMat,TotalMat,PooledW,NoSelected-1,NoSelected-1, - NoSelected-1,NoSelected-1,errorcode); - - // Does user want deviation cross-products? - if DevCPChk.Checked then - begin - // print between groups deviation cross-products matrix - Title := 'BETWEEN GROUPS SUM OF DEV. CPs'; - MAT_PRINT(BetweenMat,NoSelected-1,NoSelected-1,Title,VarLabels, - VarLabels,TotalCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - end; - - // Do univariate ANOVA's for each variable - if AnovaChk.Checked then - begin - for j := 1 to NoSelected - 1 do - begin - outline := format('UNIVARIATE ANOVA FOR VARIABLE %s', - [VarLabels[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('SOURCE DF SS MS F PROB > F'); - GroupSS := BetweenMat[j-1,j-1]; - ErrorSS := PooledW[j-1,j-1]; - TotalSS := TotalMat[j-1,j-1]; - DFGroup := NoGrps - 1; - DFError := TotalCases - NoGrps; - DFTotal := TotalCases - 1; - GroupMS := GroupSS / DFGroup; - ErrorMS := ErrorSS / DFError; - Fratio := GroupMS / ErrorMS; - prob := probf(Fratio,DFGroup,DFError); - outline := format('BETWEEN %3.0f%10.3f%10.3f%10.3f%10.3f', - [DFGroup,GroupSS,GroupMS,Fratio,prob]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('ERROR %3.0f%10.3f%10.3f', - [DFError,ErrorSS,ErrorMS]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('TOTAL %3.0f%10.3f',[DFTotal,TotalSS]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - end; - - // Get roots of the product of the within group inverse times between - // Inverse routine starts at 1, not 0. Setup temps for inverse - for i := 1 to NoSelected - 1 do - for j := 1 to NoSelected - 1 do - WithinInv[i-1,j-1] := PooledW[i-1,j-1]; - SVDinverse(WithinInv,NoSelected-1); - - // Does user want inverse of pooled within deviation cross-products? - if InvChk.Checked then - begin - Title := 'Inv. of Pooled Within Dev. CPs Matrix'; - MAT_PRINT(WithinInv,NoSelected-1,NoSelected-1,Title,VarLabels,VarLabels,TotalCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - end; - - // Get roots of the W inverse times Betweeen matrices - MATAxB(WinvB,WithinInv,BetweenMat,NoSelected-1,NoSelected-1,NoSelected-1,NoSelected-1,errorcode); - minroot := 0.0; - noroots := 0; - if (NoGrps <= NoSelected-1) then noroots := NoGrps-1 else noroots := NoSelected-1; - trace := 0.0; - pcnttrace := 0.0; - nonsymroots(WinvB,NoSelected-1,noroots,minroot,EigenVectors,Roots,Pcnts,trace,pcnttrace); - outline := format('Number of roots extracted := %d',[noroots]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Percent of trace extracted := %10.4f',[pcnttrace]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := 'Roots of the W inverse time B Matrix'; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'No. Root Proportion Canonical R Chi-Squared D.F. Prob.'; - OutPutFrm.RichEdit.Lines.Add(outline); - Lambda := 1.0; - ChiSquare := 0.0; - Pillia := 0.0; - for i := 1 to noroots do - begin - Lambda := Lambda * (1.0 / (1.0 + Roots[i-1])); - ChiSquare := ChiSquare + ln(1.0 + Roots[i-1]); - Pillia := Pillia + (Roots[i-1] / (1.0 + Roots[i-1])); - end; - TotChi := ChiSquare; - for i := 1 to noroots do - begin - p := Roots[i-1] / trace; - Rc := sqrt(Roots[i-1] / (1.0 + Roots[i-1])); - dfchi := (NoSelected - i) * (NoGrps - i ); - chi := TotChi * (TotalCases - 1.0 - 0.5 * (NoSelected + NoGrps)); - chiprob := 1.0 - chisquaredprob(chi,dfchi); - outline := format('%2d %10.4f %6.4f %6.4f %10.4f %3d %6.3f', - [i,Roots[i-1],p,Rc,chi,dfchi,chiprob]); - OutPutFrm.RichEdit.Lines.Add(outline); - TotChi := TotChi - ln(1.0 + Roots[i-1]); - end; - ChiSquare := ChiSquare * ((TotalCases - 1) - (0.5 * (NoSelected - 1 + NoGrps))); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - - for i := 1 to noroots do ColLabels[i-1] := IntToStr(i); - if EigensChk.Checked then - begin - Title := 'Eigenvectors of the W inverse x B Matrix'; - MAT_PRINT(EigenVectors,NoSelected-1,noroots,Title,VarLabels,ColLabels,TotalCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - end; - - // Now get covariance matrices for the total and within - for i := 1 to NoSelected - 1 do - begin - for j := 1 to NoSelected - 1 do - begin - TotalMat[i-1,j-1] := TotalMat[i-1,j-1] / (TotalCases - 1); - PooledW[i-1,j-1] := PooledW[i-1,j-1] / (TotalCases - NoGrps); - end; - end; - - if PCovChk.Checked then - begin - Title := 'Pooled Within-Groups Covariance Matrix'; - MAT_PRINT(PooledW,NoSelected-1,NoSelected-1,Title,VarLabels,VarLabels,TotalCases); - Title := 'Total Covariance Matrix'; - MAT_PRINT(TotalMat,NoSelected-1,NoSelected-1,Title,VarLabels,VarLabels,TotalCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - end; - - //Get the pooled within groups variance-covariance of disc. scores matrix v'C v - MATTRN(EigenTrans,EigenVectors, NoSelected-1,noroots); // v' - MATAxB(TempMat,EigenTrans,PooledW,noroots,NoSelected-1,NoSelected-1, - NoSelected-1,errorcode);//v'C - MATAxB(Theta,TempMat,EigenVectors,noroots,NoSelected-1,NoSelected-1, - noroots, errorcode); //v'C v - - //Create a diagonal matrix with square roots of the diagonal of the Within - for i := 1 to NoSelected - 1 do - begin - for j := 1 to NoSelected - 1 do - begin - if (i <> j) then DiagMat[i-1,j-1] := 0.0 - else DiagMat[i-1,j-1] := sqrt(PooledW[i-1,j-1]); - end; - end; - - // Get recipricol of standard deviations of each function - for i := 1 to noroots do - ScoreVar[i-1] := 1.0 / sqrt(Theta[i-1,i-1]); - - // Divide coefficients by their standard deviations - for i := 1 to NoSelected - 1 do - begin - for j := 1 to noroots do - begin - RawCMat[i-1,j-1] := EigenVectors[i-1,j-1] * ScoreVar[j-1]; // raw coeff. - CoefMat[i-1,j-1] := RawCMat[i-1,j-1] * sqrt(PooledW[i-1,i-1]); - end; - end; - - // Get constants for raw score equations - for i := 1 to noroots do - begin - Constants[i-1] := 0.0; - for j := 1 to NoSelected - 1 do - begin - Constants[i-1] := Constants[i-1] - (RawCMat[j-1,i-1] * TotalMeans[j-1]); - end; - end; - - // Plot discriminant scores? - if PlotChk.Checked then - begin - PlotPts(self,RawCMat,Constants,ColNoSelected,NoSelected, - noroots,NoCases,GrpVar,NoGrps,NoInGrp); - end; - - // print discrim functions - Title := 'Raw Function Coeff.s from Pooled Cov.'; - MAT_PRINT(RawCMat,NoSelected-1,noroots,Title,VarLabels,ColLabels,TotalCases); - Title := 'Raw Discriminant Function Constants'; - DynVectorPrint(Constants,noroots,Title,ColLabels,TotalCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - - //Does user want to classify cases using canonical functions? - if ClassChk.Checked then - begin - Classify(self,PooledW, GrpMeans, ColNoSelected, NoSelected-1, NoCases, - GrpVar, NoGrps, NoInGrp, VarLabels); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - ClassIt(self,PooledW,ColNoSelected,GrpMeans,Roots,noroots, GrpVar, - NoGrps,NoInGrp,NoSelected-1,NoCases,RawCMat,Constants); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - // print standardized discrim function coefficients - Title := 'Standardized Coeff. from Pooled Cov.'; - MAT_PRINT(CoefMat,NoSelected-1,noroots,Title,VarLabels,ColLabels,TotalCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - - // Calculate centroids - for k := 1 to NoGrps do - begin - for i := 1 to noroots do - begin - for j := 1 to NoSelected - 1 do - begin - Centroids[k-1,i-1] := Centroids[k-1,i-1] + (RawCMat[j-1,i-1] * GrpMeans[k-1,j-1]); - end; - Centroids[k-1,i-1] := Centroids[k-1,i-1] + Constants[i-1]; - end; - end; - - if CentroidsChk.Checked then - begin - Title := 'Centroids'; - MAT_PRINT(Centroids,NoGrps,noroots,Title,GrpNos,ColLabels,TotalCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - end; - - // Get variance-covariance matrix of functions (theta) - MATTRN(EigenTrans,EigenVectors,NoSelected-1,noroots); - MATAxB(TempMat,EigenTrans,TotalMat,noroots,NoSelected-1,NoSelected-1, - NoSelected-1,errorcode); - MATAxB(Theta,TempMat,EigenVectors,noroots,NoSelected-1,NoSelected-1, - noroots,errorcode); - - // Create a diagonal matrix with square roots of the Total covariance diagonal - for i := 1 to NoSelected - 1 do - begin - for j := 1 to NoSelected - 1 do - begin - if (i <> j) then DiagMat[i-1,j-1] := 0.0 - else DiagMat[i-1,j-1] := sqrt(TotalMat[i-1,j-1]); - end; - end; - - // Get recipricol of standard deviations of each function - for i := 1 to noroots do ScoreVar[i-1] := 1.0 / sqrt(Theta[i-1,i-1]); - - // Divide coefficients by score standard deviations - for i := 1 to NoSelected - 1 do - begin - for j := 1 to noroots do - begin - RawCMat[i-1,j-1] := EigenVectors[i-1,j-1] * ScoreVar[j-1]; - CoefMat[i-1,j-1] := RawCMat[i-1,j-1] * sqrt(TotalMat[i-1,i-1]); - end; - end; - - // print functions obtained from total matrix - Title := 'Raw Coefficients from Total Cov.'; - MAT_PRINT(RawCMat,NoSelected-1,noroots,Title,VarLabels,ColLabels,TotalCases); - Title := 'Raw Discriminant Function Constants'; - DynVectorPrint(Constants,noroots,Title,ColLabels,TotalCases); -// OutPutFrm.ShowModal; -// OutPutFrm.RichEdit.Clear(); - - // print std. disc coefficients from total matrix - Title := 'Standardized Coeff.s from Total Cov.'; - MAT_PRINT(CoefMat,NoSelected-1,noroots,Title,VarLabels,ColLabels,TotalCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - - // Get correlations from Total covariance matrix - for i := 1 to NoSelected - 1 do - for j := 1 to NoSelected - 1 do - TempMat[i-1,j-1] := TotalMat[i-1,j-1] / - (TotalStdDevs[i-1] * TotalStdDevs[j-1]); - - if CorrsChk.Checked then - begin - Title := 'Total Correlation Matrix'; - MAT_PRINT(TempMat,NoSelected-1,NoSelected-1,Title,VarLabels,VarLabels,TotalCases); -// OutPutFrm.ShowModal; -// OutPutFrm.RichEdit.Clear(); - end; - - // Obtain structure coefficients - MATAxB(Structure,TempMat,CoefMat,NoSelected-1,NoSelected-1,NoSelected-1,noroots,errorcode); - Title := 'Corr.s Between Variables and Functions'; - MAT_PRINT(Structure,NoSelected-1,noroots,Title,VarLabels,ColLabels,TotalCases); - - //Compute and print overall statistics for equal group centroids - n2 := (NoSelected-1) * (NoSelected-1); - k2 := (NoGrps-1) * (NoGrps-1); - num := (NoSelected-1) * (NoGrps - 1); - s := sqrt((n2 * k2 - 4) / (n2 + k2 - 5)); - v2 := (num - 2.0) / 2.0; - m := ((2 * TotalCases) - (NoSelected - 1) - NoGrps - 2) / 2.0; - den := m * s - v2; - L2 := Power(Lambda,1.0 / s); - F := ((1.0 - L2)/ L2) * (den / num); - Fprob := probf(F,num,den); - outline := format('Wilk''s Lambda = %10.4f.',[Lambda]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('F = %10.4f with D.F. %5.0f and %5.0f . Prob > F = %6.4f', - [F,num,den,Fprob]); - OutPutFrm.RichEdit.Lines.Add(outline); - dfchi := (NoSelected - 1) * noroots; - probchi := 1.0 - chisquaredprob(ChiSquare,dfchi); - outline := format('Bartlett Chi-Squared = %10.4f with %d D.F. and prob. = %6.4f', - [ChiSquare,dfchi,probchi]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Pillai Trace = %10.4f',[Pillia]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear(); - - // Clean up heap - ColNoSelected := nil; - NoInGrp := nil; - GrpNos := nil; - Centroids := nil; - GrpSDevs := nil; - GrpMeans := nil; - w := nil; - WithinStdDevs := nil; - WithinVariances := nil; - WithinMeans := nil; - TotalStdDevs := nil; - TotalVariances := nil; - TotalMeans := nil; - Pcnts := nil; - Roots := nil; - ScoreVar := nil; - Constants := nil; - Structure := nil; - RawCMat := nil; - CoefMat := nil; - DiagMat := nil; - Theta := nil; - TempMat := nil; - EigenTrans := nil; - EigenVectors := nil; - BetweenMat := nil; - TotalMat := nil; - PooledW := nil; - v := nil; - WinvB := nil; - WithinInv := nil; - WithinMat := nil; - CaseNo := nil; - ColLabels := nil; - VarLabels := nil; -end; - -procedure TDiscrimFrm.DepOutClick(Sender: TObject); -begin - VarList.Items.Add(GroupVar.Text); - GroupVar.Text := ''; - DepOut.Visible := false; - DepIn.Visible := true; -end; - -procedure TDiscrimFrm.PredInClick(Sender: TObject); -VAR i, index : integer; -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - PredList.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - PredOut.Visible := true; -end; - -procedure TDiscrimFrm.PredOutClick(Sender: TObject); -VAR index : integer; -begin - index := PredList.ItemIndex; - if index < 0 then - begin - PredOut.Visible := false; - exit; - end; - VarList.Items.Add(PredList.Items.Strings[index]); - PredList.Items.Delete(index); -end; - -procedure TDiscrimFrm.PlotPts(Sender: TObject; RawCMat: DblDyneMat; - Constants: DblDyneVec; ColNoSelected: IntDyneVec; NoSelected: integer; - noroots: integer; NoCases: integer; GrpVar: integer; NoGrps: integer; - NoInGrp: IntDyneVec); -var - i, j, k, m, grp, matrow, group : integer; - X, Y, XScore, YScore, temp : double; - Title, xTitle, yTitle : string; - xpts : DblDyneVec; - ypts : DblDyneVec; - -begin - SetLength(xpts,NoCases); - SetLength(ypts,NoCases); - SetLength(GraphFrm.Ypoints,1,NoCases); - SetLength(GraphFrm.Xpoints,1,NoCases); - if (noroots > 1) then - begin - for i := 1 to noroots - 1 do - begin - for j := i + 1 to noroots do - begin - for k := 1 to NoCases do - begin - XScore := 0.0; - YScore := 0.0; - for grp := 1 to NoGrps do - begin - if not GoodRecord(i,NoSelected,ColNoSelected) then continue; - group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GrpVar,k]))); - group := NoGrps - (MaxGrp - group); - if group = grp then - begin - XScore := Constants[i-1]; - YScore := Constants[j-1]; - for m := 1 to NoSelected do - begin - matrow := ColNoSelected[m-1]; - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[matrow,k])); - X := X * RawCMat[m-1,i-1]; - XScore := XScore + X; - end; - for m := 1 to NoSelected do - begin - matrow := ColNoSelected[m-1]; - Y := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[matrow,k])); - Y := Y * RawCMat[m-1,j-1]; - YScore := YScore + Y; - end; - GraphFrm.PointLabels[k] := IntToStr(grp); - end; // if group = grp - end; // next group - xpts[k-1] := XScore; - ypts[k-1] := YScore; - end; // next case k - // sort into ascending X order - for k := 1 to NoCases - 1 do - begin - for m := k + 1 to NoCases do - begin - if xpts[k-1] > xpts[m-1] then - begin - temp := xpts[k-1]; - xpts[k-1] := xpts[m-1]; - xpts[m-1] := temp; - temp := ypts[k-1]; - ypts[k-1] := ypts[m-1]; - ypts[m-1] := temp; - end; - end; - end; - for k := 1 to NoCases do - begin - GraphFrm.Ypoints[0,k-1] := ypts[k-1]; - GraphFrm.Xpoints[0,k-1] := xpts[k-1]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NoCases; - GraphFrm.Heading := 'CASES IN THE DISCRIMINANT SPACE'; - GraphFrm.XTitle := 'Function ' + IntToStr(i); - GraphFrm.YTitle := 'Function ' + IntToStr(j); -// GraphFrm.Ypoints[1] := ypts; -// GraphFrm.Xpoints[1] := xpts; - GraphFrm.AutoScale := true; - GraphFrm.PtLabels := true; - GraphFrm.GraphType := 7; // 2d points - GraphFrm.BackColor := clYellow; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; // next i - end; // next j - end; // if noroots > 1 - ypts := nil; - xpts := nil; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; -end; - -procedure TDiscrimFrm.Classify(Sender: TObject; PooledW: DblDyneMat; - GrpMeans: DblDyneMat; ColNoSelected: IntDyneVec; NoSelected: integer; - NoCases: integer; GrpVar: integer; NoGrps: integer; NoInGrp: IntDyneVec; - VarLabels: StrDyneVec); -var - i, j, k, grp : integer; - outline : string; - Constant, T : DblDyneVec; - S : double; - Coeff, WithinInv : DblDyneMat; - -begin -// SetLength(NoInGrp,NoGrps); - SetLength(T,NoSelected); - SetLength(Coeff,NoGrps,NoSelected); - SetLength(WithinInv,NoSelected,NoSelected); - SetLength(Constant,NoGrps); - - // Get inverse of pooled within variance-covariance matrix - for i := 0 to NoSelected-1 do - for j := 0 to NoSelected-1 do - WithinInv[i,j] := PooledW[i,j]; - SVDinverse(WithinInv,NoSelected); - - // Get Fisher Discrim Functions and probabilities - OutPutFrm.RichEdit.Lines.Add('Fisher Discriminant Functions'); - for grp := 0 to NoGrps-1 do - begin - Constant[grp] := 0.0; - S := 0.0; - for j := 0 to NoSelected-1 do - for k := 0 to NoSelected-1 do - S := S + WithinInv[j,k] * GrpMeans[grp,j] * GrpMeans[grp,k]; - Constant[grp] := -S / 2.0; - for j := 0 to NoSelected-1 do - begin - T[j] := 0.0; - for k := 0 to NoSelected-1 do - T[j] := T[j] + WithinInv[j,k] * GrpMeans[grp,k]; - end; - for j := 0 to NoSelected-1 do Coeff[grp,j] := T[j]; - outline := format('Group %3d Constant := %6.3f',[grp+1,Constant[grp]]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('Variable Coefficient'); - for i := 0 to NoSelected-1 do - begin - outline := format(' %3d %6.3f',[i+1,T[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - end; // next group - - // clean up the heap - Constant := nil; - WithinInv := nil; - Coeff := nil; - T := nil; -// NoInGrp := nil; -end; - -procedure TDiscrimFrm.ClassIt(Sender: TObject; PooledW: DblDyneMat; - ColNoSelected: IntDyneVec; GrpMeans: DblDyneMat; Roots: DblDyneVec; - noroots: integer; GrpVar : integer; NoGrps: integer; NoInGrp: IntDyneVec; - NoSelected: integer; NoCases: integer; RawCmat: DblDyneMat; - Constants: DblDyneVec); -var - i, j, k, grp, j1, InGrp, Largest, SecdLarge, oldcolcnt, linecount : integer; - numberstr, prompt, outline, cellname : string; - Table : IntDyneMat; - ProdVec, Dev, D2, Density, ProbGrp, Apriori, Discrim : DblDyneVec; - SumD2, Determinant, LargestProb, SecdProb, X : double; - RowLabels, ColLabels : StrDyneVec; - WithinInv : DblDyneMat; - col : integer; - -begin - SumD2 := 0.0; - oldcolcnt := NoVariables; - SetLength(Table,NoGrps+1,NoGrps+1); - SetLength(ProdVec,NoSelected); - SetLength(Dev,NoSelected); - SetLength(D2,NoGrps); - SetLength(Density,NoGrps); - SetLength(ProbGrp,NoGrps); - SetLength(Apriori,NoGrps); - SetLength(Discrim,noroots); - SetLength(RowLabels,NoGrps+1); - SetLength(ColLabels,NoGrps+1); - SetLength(WithinInv,NoSelected,NoSelected); - - // Does user want to save scores? If yes, add columns to grid - if ScoresChk.Checked then - begin - //Add grid headings for discrim scores - for j := 1 to noroots do - begin - cellname := 'Disc '; - cellname := cellname + IntToStr(j); - col := oldcolcnt + j; - DictionaryFrm.newvar(col); - DictionaryFrm.DictGrid.Cells[1,col] := cellname; - OS3MainFrm.DataGrid.Cells[col,0] := cellname; -// NoVariables := NoVariables + 1; - end; - end; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - - // Initialize arrays that need it - for i := 1 to NoSelected do ProdVec[i-1] := 0.0; - for i := 1 to NoGrps do D2[i-1] := 0.0; - for i := 1 to NoGrps + 1 do - for j := 1 to NoGrps + 1 do Table[i-1,j-1] := 0; - - // Get inverse of pooled within variance-covariance matrix - for i := 1 to NoSelected do - for j := 1 to NoSelected do - WithinInv[i-1,j-1] := PooledW[i-1,j-1]; - SVDinverse(WithinInv,NoSelected); - - // Calculate determinant (product of roots) - Determinant := 1.0; - for i := 1 to noroots do Determinant := Determinant * Roots[i-1]; - - linecount := 0; - // Print Heading - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'CLASSIFICATION OF CASES'; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := 'SUBJECT ACTUAL HIGH PROBABILITY SEC.D HIGH DISCRIM'; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := 'ID NO. GROUP IN GROUP P(G/D) GROUP P(G/D) SCORE'; - OutPutFrm.RichEdit.Lines.Add(outline); - linecount := linecount + 4; - - //Get selected priors - // Default priors are equal proportions - for j := 1 to NoGrps do Apriori[j-1] := 1.0 / NoGrps; - if ClassSize.ItemIndex = 1 then - begin - // Get apriori probabilities - for j := 1 to NoGrps do - Apriori[j-1] := NoInGrp[j-1] / NoCases; - end; - if ClassSize.ItemIndex = 2 then // get apriori sizes - begin - for j := 1 to NoGrps do - begin - prompt := 'Group ' + IntToStr(j); - outline := FloatToStr(Apriori[j-1]); - numberstr := InputBox('GROUP PROPORTION:',prompt,outline); - Apriori[j-1] := StrToFloat(numberstr); - end; - end; - - // Calculate group probabilities for each case - for i := 1 to NoCases do - begin - if (linecount >= 59) then - begin - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - linecount := 0; - end; - if (not GoodRecord(i,NoSelected,ColNoSelected))then continue; - InGrp := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GrpVar,i]))); - InGrp := NoGrps - (MaxGrp - InGrp); - for grp := 1 to NoGrps do // group loop - begin - for j := 1 to NoSelected do ProdVec[j-1] := 0.0; - D2[grp-1] := 0.0; - for j := 1 to NoSelected do // variables loop - begin - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ColNoSelected[j-1],i])); - Dev[j-1] := X - GrpMeans[grp-1,j-1]; - end; - // Get squared distance as [X - M]' * inv[S] * [X - M] - for j := 1 to NoSelected do // deviation * S inverse - for k := 1 to NoSelected do - ProdVec[j-1] := ProdVec[j-1] + (Dev[k-1] * WithinInv[k-1,j-1]); - for j := 1 to NoSelected do // Product * deviation - D2[grp-1] := D2[grp-1] + Dev[j-1] * ProdVec[j-1]; // distance from group - D2[grp-1] := D2[grp-1] - 2.0 * ln(Apriori[grp-1]); ///generalized distance - SumD2 := SumD2 + exp(-0.5 * D2[grp-1]); - end; // end of group loop - for j := 1 to NoGrps do - ProbGrp[j-1] := exp(-0.5 * D2[j-1]) / SumD2; - - // Get Discrim functions - for j := 1 to noroots do Discrim[j-1] := 0.0; - for j := 1 to NoSelected do // variables loop - begin - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ColNoSelected[j-1],i])); - for j1 := 1 to noroots do - Discrim[j1-1] := Discrim[j1-1] + (X * RawCmat[j-1,j1-1]); - end; - for j := 1 to noroots do Discrim[j-1] := Discrim[j-1] + Constants[j-1]; - - // Does user want to save Discrim scores in grid? - if ScoresChk.Checked then - begin - for j := 1 to noroots do - begin - numberstr := format('%8.3f',[Discrim[j-1]]); - OS3MainFrm.DataGrid.Cells[oldcolcnt+j,i] := numberstr; - end; - end; - - // Get largest and next largest group probabilities - Largest := 1; - LargestProb := ProbGrp[0]; - for grp := 2 to NoGrps do - begin - if (ProbGrp[grp-1] > LargestProb) then - begin - Largest := grp; - LargestProb := ProbGrp[grp-1]; - end; - end; - - ProbGrp[Largest-1] := 0.0; - SecdLarge := 1; - SecdProb := ProbGrp[0]; - for grp := 2 to NoGrps do - begin - if (ProbGrp[grp-1] > SecdProb) then - begin - SecdLarge := grp; - SecdProb := ProbGrp[grp-1]; - end; - end; - - // Print results for this case i - outline := format('%3d %3d %3d %6.4f %3d %6.4f %7.4f', - [i,InGrp,Largest,LargestProb,SecdLarge,SecdProb, - Discrim[0]]); - OutPutFrm.RichEdit.Lines.Add(outline); - linecount := linecount + 1; - for j := 2 to noroots do - begin - outline := format(' %7.4f', - [Discrim[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - linecount := linecount + 1; - end; - Table[InGrp-1,Largest-1] := Table[InGrp-1,Largest-1] + 1; - // initialize variables for next case - SumD2 := 0.0; - end; // end of case loop i - - // Get table column and row totals - for i := 1 to NoGrps do // table rows - for j := 1 to NoGrps do Table[i-1,NoGrps] := Table[i-1,NoGrps] + Table[i-1,j-1]; - for j := 1 to NoGrps do // table columns - for i := 1 to NoGrps do Table[NoGrps,j-1] := Table[NoGrps,j-1] + Table[i-1,j-1]; - Table[NoGrps,NoGrps] := NoCases; - - if (linecount > 0) then - begin - OutPutFrm.ShowModal(); - OutPutFrm.RichEdit.Clear; - end; - // Print table of classifications - for i := 1 to NoGrps + 1 do - begin - RowLabels[i-1] := IntToStr(i); - ColLabels[i-1] := IntToStr(i); - end; - RowLabels[NoGrps] := 'TOTAL'; - ColLabels[NoGrps] := 'TOTAL'; - IntArrayPrint(Table, NoGrps+1,NoGrps+1, 'PREDICTED GROUP', - RowLabels, ColLabels, 'CLASSIFICATION TABLE'); - - // Clean up the heap - WithinInv := nil; - ColLabels := nil; - RowLabels := nil; - Discrim := nil; - Apriori := nil; - ProbGrp := nil; - Density := nil; - D2 := nil; - Dev := nil; - ProdVec := nil; - Table := nil; -end; - -initialization - {$I discrimunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/DISCRIMUNIT.lfm b/applications/lazstats/source_orig/DISCRIMUNIT.lfm deleted file mode 100644 index 4d87dc5e3..000000000 --- a/applications/lazstats/source_orig/DISCRIMUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/DISCRIMUNIT.lrs b/applications/lazstats/source_orig/DISCRIMUNIT.lrs deleted file mode 100644 index d6b38d57a..000000000 --- a/applications/lazstats/source_orig/DISCRIMUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/DISTRIBUNIT.lfm b/applications/lazstats/source_orig/DISTRIBUNIT.lfm deleted file mode 100644 index 105dc782b..000000000 --- a/applications/lazstats/source_orig/DISTRIBUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/DISTRIBUNIT.lrs b/applications/lazstats/source_orig/DISTRIBUNIT.lrs deleted file mode 100644 index 5b6d835a3..000000000 --- a/applications/lazstats/source_orig/DISTRIBUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/ERRORCURVESUNIT.lfm b/applications/lazstats/source_orig/ERRORCURVESUNIT.lfm deleted file mode 100644 index cd03354a7..000000000 --- a/applications/lazstats/source_orig/ERRORCURVESUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/ERRORCURVESUNIT.lrs b/applications/lazstats/source_orig/ERRORCURVESUNIT.lrs deleted file mode 100644 index 98b06e4ae..000000000 --- a/applications/lazstats/source_orig/ERRORCURVESUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/ESSAYUNIT.PAS b/applications/lazstats/source_orig/ESSAYUNIT.PAS deleted file mode 100644 index 0c3b1a662..000000000 --- a/applications/lazstats/source_orig/ESSAYUNIT.PAS +++ /dev/null @@ -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. diff --git a/applications/lazstats/source_orig/ESSAYUNIT.lfm b/applications/lazstats/source_orig/ESSAYUNIT.lfm deleted file mode 100644 index b33034cd7..000000000 --- a/applications/lazstats/source_orig/ESSAYUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/EXACTUNIT.PAS b/applications/lazstats/source_orig/EXACTUNIT.PAS deleted file mode 100644 index 7b119f5d8..000000000 --- a/applications/lazstats/source_orig/EXACTUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/EXACTUNIT.lfm b/applications/lazstats/source_orig/EXACTUNIT.lfm deleted file mode 100644 index aee597e38..000000000 --- a/applications/lazstats/source_orig/EXACTUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/EXACTUNIT.lrs b/applications/lazstats/source_orig/EXACTUNIT.lrs deleted file mode 100644 index ebe82da05..000000000 --- a/applications/lazstats/source_orig/EXACTUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/EXPSMOOTHUNIT.PAS b/applications/lazstats/source_orig/EXPSMOOTHUNIT.PAS deleted file mode 100644 index 7e7839cf5..000000000 --- a/applications/lazstats/source_orig/EXPSMOOTHUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/EXPSMOOTHUNIT.lfm b/applications/lazstats/source_orig/EXPSMOOTHUNIT.lfm deleted file mode 100644 index 3cf7e979e..000000000 --- a/applications/lazstats/source_orig/EXPSMOOTHUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/EXPSMOOTHUNIT.lrs b/applications/lazstats/source_orig/EXPSMOOTHUNIT.lrs deleted file mode 100644 index 1a2530fcd..000000000 --- a/applications/lazstats/source_orig/EXPSMOOTHUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/FACTORUNIT.PAS b/applications/lazstats/source_orig/FACTORUNIT.PAS deleted file mode 100644 index 7b5a34865..000000000 --- a/applications/lazstats/source_orig/FACTORUNIT.PAS +++ /dev/null @@ -1,1536 +0,0 @@ -unit FactorUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, ExtCtrls, MainUnit, OutPutUnit, FunctionsLib, - GraphLib, Globals, MatrixLib, DataProcs, Math, DictionaryUnit; - -type - - { TFactorFrm } - - TFactorFrm = class(TForm) - OpenDialog1: TOpenDialog; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - MinRootEdit: TEdit; - MaxItersEdit: TEdit; - MaxFactorsEdit: TEdit; - Label3: TLabel; - Label4: TLabel; - Label5: TLabel; - SaveCorsBtn: TCheckBox; - SaveDialog1: TSaveDialog; - SaveFactBtn: TCheckBox; - SortBtn: TCheckBox; - ScreeBtn: TCheckBox; - ComUnBtn: TCheckBox; - PlotBtn: TCheckBox; - ScoresBtn: TCheckBox; - DescBtn: TCheckBox; - RMatBtn: TCheckBox; - UnrotBtn: TCheckBox; - PcntTrBtn: TCheckBox; - GroupBox1: TGroupBox; - InBtn: TBitBtn; - OutBtn: TBitBtn; - Label1: TLabel; - Label2: TLabel; - FactorList: TListBox; - RotateGroup: TRadioGroup; - TypeGroup: TRadioGroup; - VarList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure InBtnClick(Sender: TObject); - procedure OutBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - procedure FACTORS(VAR eigenvalues : DblDyneVec; - VAR d2 : DblDyneVec; - VAR A : DblDyneMat; - N : integer; - factorchoice : integer); - - procedure factREORDER(VAR d : DblDyneVec; - VAR A : DblDyneMat; - VAR var_label : StrDyneVec; - N : integer); - - procedure SORT_LOADINGS(VAR v : DblDyneMat; - n1, n2 : integer; - VAR High_Factor : IntDyneVec; - VAR A : DblDyneVec; - VAR b : DblDyneVec; - VAR var_label : StrDyneVec; - order : IntDyneVec); - - procedure VARIMAX(VAR v : DblDyneMat; - n1, n2 : integer; - VAR RowLabels : StrDyneVec; - VAR ColLabels : StrDyneVec; - VAR order : IntDyneVec); - - procedure PROCRUST(VAR b : DblDyneMat; - nv, nb : integer; - VAR RowLabels : StrDyneVec; - VAR ColLabels : StrDyneVec); - - procedure LSFactScores(VAR F : DblDyneMat; - NoVars, NoFacts, NCases : integer; - VAR ColNoSelected : IntDyneVec; - VAR RowLabels : StrDyneVec); - - procedure QUARTIMAX(VAR v : DblDyneMat; - n1, n2 : integer; - VAR RowLabels : StrDyneVec; - VAR ColLabels : StrDyneVec; - VAR order : IntDyneVec); - - procedure ManualRotate(VAR v : DblDyneMat; - n1, n2 : integer; - VAR RowLabels : StrDyneVec; - VAR ColLabels : StrDyneVec; - VAR order : IntDyneVec; - Sender : TObject); - - public - { public declarations } - end; - -var - FactorFrm: TFactorFrm; - -implementation -uses RotateUnit; - -{ TFactorFrm } - -procedure TFactorFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - FactorList.Clear; - OutBtn.Visible := false; - InBtn.Visible := true; - TypeGroup.ItemIndex := 0; - RotateGroup.ItemIndex := 0; - DescBtn.Checked := false; - RMatBtn.Checked := false; - UnrotBtn.Checked := false; - PcntTrBtn.Checked := false; - ScreeBtn.Checked := false; - ComUnBtn.Checked := false; - PlotBtn.Checked := false; - ScoresBtn.Checked := false; - SaveCorsBtn.Checked := false; - SaveFactBtn.Checked := false; - SortBtn.Checked := false; - MinRootEdit.Text := '1'; - MaxItersEdit.Text := '25'; - MaxFactorsEdit.Text := ''; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TFactorFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TFactorFrm.ComputeBtnClick(Sender: TObject); -label again; -var - i, j, k, L, cols, rows, Nroots, noiterations, NoSelected, factorchoice : integer; - maxiters, IER, N, prtopts, maxnoroots, count : integer; - TempMat, V, corrmat, ainverse, A, Loadings : DblDyneMat; - Eigenvector, pcnttrace, b, communality, xvector, yvector, d2 : DblDyneVec; - means, variances, stddevs, W : DblDyneVec; - MaxRoot, criterion, Difference, minroot, maxk, trace : double; - cellstring, outline, xtitle, ytitle : string; - ColNoSelected : IntDyneVec; - RowLabels, ColLabels : StrDyneVec; - MatInput : boolean; - Title : string; - filename : string; - Save_Cursor : TCursor; - errorcode : boolean; -begin - MaxRoot := 0.0; - noiterations := 0; - maxnoroots := 0; - prtopts := 0; - - criterion := 0.0001; //Convergence of communality estimates - factorchoice := 1; // assume principal component - if (TypeGroup.ItemIndex = 1) then factorchoice := 2; - if (TypeGroup.ItemIndex = 2) then factorchoice := 3; - if (TypeGroup.ItemIndex = 3) then factorchoice := 4; - if (TypeGroup.ItemIndex = 4) then factorchoice := 5; - if (TypeGroup.ItemIndex = 5) then factorchoice := 6; - if (TypeGroup.ItemIndex = 6) then factorchoice := 7; - if (RMatBtn.Checked) then prtopts := 3; - if (RMatBtn.Checked) then prtopts := 2; - if ((RMatBtn.Checked) and (DescBtn.Checked)) then prtopts := 1; - maxiters := StrToInt(MaxItersEdit.Text); - if (MaxFactorsEdit.Text <> '') then - maxnoroots := StrToInt(MaxFactorsEdit.Text); - - // Setup the output - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Factor Analysis'); - OutPutFrm.RichEdit.Lines.Add('See Rummel, R.J., Applied Factor Analysis'); - OutPutFrm.RichEdit.Lines.Add('Northwestern University Press, 1970'); - OutPutFrm.RichEdit.Lines.Add(''); - - if FactorList.Items.Count = 0 then MatInput := true - else begin - NoSelected := FactorList.Items.Count; - MatInput := false; - end; - - // Allocate space on heap - SetLength(corrmat,NoVariables+1,NoVariables+1); - SetLength(TempMat,NoVariables,NoVariables); - SetLength(ainverse,NoVariables,NoVariables); - SetLength(V,NoVariables,NoVariables); - SetLength(W,NoVariables); - SetLength(Loadings,NoVariables,NoVariables); - SetLength(Eigenvector,NoVariables); - SetLength(communality,NoVariables); - SetLength(pcnttrace,NoVariables); - SetLength(b,NoVariables); - SetLength(d2,NoVariables); - SetLength(xvector,NoVariables); - SetLength(yvector,NoVariables); - SetLength(means,NoVariables); - SetLength(variances,NoVariables); - SetLength(stddevs,NoVariables); - SetLength(RowLabels,NoVariables); - SetLength(ColLabels,NoVariables); - SetLength(ColNoSelected,NoVariables); - - if MatInput then // matrix input - begin - OpenDialog1.Filter := 'Matrix files (*.MAT)|*.MAT|All files (*.*)|*.*'; - OpenDialog1.FilterIndex := 1; - OpenDialog1.Title := 'INPUT MATRIX:'; - OpenDialog1.Execute; - filename := OpenDialog1.FileName; - MATREAD(corrmat,NoSelected,NoSelected,means,stddevs,count,RowLabels, - ColLabels,filename); - for i := 1 to NoSelected do - begin - variances[i-1] := sqr(stddevs[i-1]); - FactorList.Items.Add(RowLabels[i-1]); - ColNoSelected[i-1] := i; - end; - NoCases := count; - end - - else - begin - for i := 1 to NoSelected do - begin - cellstring := FactorList.Items.Strings[i-1]; - for j := 1 to NoVariables do - begin - if (cellstring = OS3MainFrm.DataGrid.Cells[j,0]) then - begin - ColNoSelected[i-1] := j; - ColLabels[i-1] := cellstring; - RowLabels[i-1] := cellstring; - end; - end; - end; - end; - - count := NoCases; - //Obtain correlation matrix and, if required simultaneous Multiple Correlations - if (MatInput = false) then -// Correlate(NoSelected,NoCases,ColNoSelected,means,variances, -// stddevs,corrmat,3,IER,count); - Correlations(NoSelected,ColNoSelected,corrmat,means,variances, - stddevs,errorcode,count); - if RmatBtn.Checked then // print correlation matrix - begin - Title := 'Total Correlation Matrix'; - MAT_PRINT(corrmat,NoSelected,NoSelected,Title,RowLabels, - ColLabels,count); - end; - if DescBtn.Checked then // print descriptives - begin - // print mean, variance and std. dev.s for variables - outline := 'MEANS'; - DynVectorPrint(Means,NoSelected,outline,RowLabels,count); - outline := 'VARIANCES'; - DynVectorPrint(Variances,NoSelected,outline,RowLabels,count); - outline := 'STANDARD DEVIATIONS'; - DynVectorPrint(StdDevs,NoSelected,outline,RowLabels,count); - end; - k := NoSelected; - - // Save correlation matrix if checked - if (SaveCorsBtn.Checked) then - begin - SaveDialog1.Filter := 'Matrix files (*.MAT)|(*.MAT)|All files (*.*)|(*.*)'; - SaveDialog1.FilterIndex := 1; - SaveDialog1.Title := 'SAVE MATRIX:'; - SaveDialog1.Execute; - filename := SaveDialog1.FileName; - MATSAVE(corrmat,NoSelected,NoSelected,means,stddevs,count,RowLabels, - ColLabels,filename); - end; - maxk := k; - Nroots := k; - - if ( factorchoice <> 1) then //not a principal component analysis - begin - //get matrix inverse, squared Multiple Correlations - //Uniqueness (1-squared multiple Correlations, and - //variance of residuals (D squared) - for i := 1 to NoSelected do - for j := 1 to NoSelected do - ainverse[i-1,j-1] := corrmat[i-1,j-1]; - SVDinverse(ainverse,k); - for i := 1 to k do - begin - d2[i-1] := 1.0 / ainverse[i-1,i-1]; - communality[i-1] := 1.0 - d2[i-1]; - end; - - case factorchoice of - 2: begin - outline := 'Partial Image Analysis'; - OutPutFrm.RichEdit.Lines.Add(outline); - // Save corrmat in TempMat for temporary use - for i := 1 to k do - for j := 1 to k do TempMat[i-1,j-1] := corrmat[i-1,j-1]; - for i := 1 to k do corrmat[i-1,i-1] := communality[i-1]; - if RmatBtn.Checked then - begin - OutPutFrm.RichEdit.Lines.Add('Communality Estimates are Squared Multiple Correlations.'); - Title := 'Partial Image Matrix'; - MAT_PRINT(corrmat,k,k,Title,RowLabels,ColLabels,count); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - end; - 3: begin - outline := 'Guttman Image Analysis'; - OutPutFrm.RichEdit.Lines.Add(outline); - //pre and post multiply inverse of R by D2 to obtain anti-image matrix - for i := 1 to k do - for j := 1 to k do - ainverse[i-1,j-1] := d2[i-1] * ainverse[i-1,j-1] * d2[j-1]; - if RmatBtn.Checked then - begin - Title := 'Anti-image covariance matrix'; - MAT_PRINT(ainverse,k,k,Title,RowLabels,ColLabels,count); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - for i := 1 to k do - for j := 1 to k do - corrmat[i-1,j-1] := corrmat[i-1,j-1] + ainverse[i-1,j-1]; - for i := 1 to k do - corrmat[i-1,i-1] := corrmat[i-1,i-1] - (2.0 * d2[i-1]); - if RmatBtn.Checked then - begin - Title := 'Image Covariance Matrix Analyzed'; - MAT_PRINT(corrmat,k,k,Title,RowLabels,ColLabels,count); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - end; - 4: begin - //pre and post multiply inverse of R by D2 to obtain anti-image matrix - for i := 1 to k do - for j := 1 to k do - ainverse[i-1,j-1] := d2[i-1] * ainverse[i-1,j-1] * d2[j-1]; - for i := 1 to k do - for j := 1 to k do - corrmat[i-1,j-1] := corrmat[i-1,j-1] + ainverse[i-1,j-1]; - for i := 1 to k do - corrmat[i-1,i-1] := corrmat[i-1,i-1] - (2.0 * d2[i-1]); - outline := 'Harris Scaled Image Analysis'; - for i := 1 to k do - for j := 1 to k do - corrmat[i-1,j-1] := (1.0 / sqrt(d2[i-1]) * - corrmat[i-1,j-1] * (1.0 / sqrt(d2[j-1]))); - if RmatBtn.Checked then - begin - Title := 'Harris Scaled Image Covariance Matrix'; - MAT_PRINT(corrmat,k,k,Title,RowLabels,ColLabels,count); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - end; - 5: begin - outline := 'Canonical Factor Analysis'; - OutPutFrm.RichEdit.Lines.Add(outline); - for i := 1 to k do corrmat[i-1,i-1] := communality[i-1]; - for i := 1 to k do - for j := 1 to k do - corrmat[i-1,j-1] := (1.0 / sqrt(d2[i-1])) * - corrmat[i-1,j-1] * (1.0 / sqrt(d2[j-1])); - if RmatBtn.Checked then - begin - Title := 'Canonical Covariance Matrix'; - MAT_PRINT(corrmat,k,k,Title,RowLabels,ColLabels,count); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - end; - 6: begin - outline := 'Alpha Factor Analysis'; - OutPutFrm.RichEdit.Lines.Add(outline); - // Save corrmat in TempMat for temporary use - for i := 1 to k do - for j := 1 to k do TempMat[i-1,j-1] := corrmat[i-1,j-1]; - for i := 1 to k do corrmat[i-1,i-1] := communality[i-1]; - for i := 1 to k do - for j := 1 to k do - corrmat[i-1,j-1] := (1.0 / sqrt(communality[i-1])) * - corrmat[i-1,j-1] * (1.0 / sqrt(communality[j-1])); - if RmatBtn.Checked then - begin - Title := 'Initial Alpha Factor Matrix'; - MAT_PRINT(corrmat,k,k,Title,RowLabels,ColLabels,count); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - end; - 7: begin // Principal Axis Factor Analysis - // Save corrmat in TempMat for temporary use - for i := 1 to k do - for j := 1 to k do TempMat[i-1,j-1] := corrmat[i-1,j-1]; - for i := 1 to k do corrmat[i-1,i-1] := communality[i-1]; - if RmatBtn.Checked then - begin - OutPutFrm.RichEdit.Lines.Add('Initial Communality Estimates are Squared Multiple Correlations.'); - Title := 'Principals Axis Factor Analysis Matrix'; - MAT_PRINT(corrmat,k,k,Title,RowLabels,ColLabels,count); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - end; - end; // end case - end // end if factor choice not equal to 1 (Principals Components) - - else - begin - outline := 'Principal Components Analysis'; - OutPutFrm.RichEdit.Lines.Add(outline); - if RmatBtn.Checked then - begin - Title := 'Correlation Matrix Factor Analyzed'; - MAT_PRINT(corrmat,k,k,Title,RowLabels,ColLabels,count); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - end; - - //Calculate trace of the matrix to be analyzed - trace := 0.0; - for i := 1 to k do trace := trace + corrmat[i-1,i-1]; - outline := format('Original matrix trace = %6.2f',[trace]); - OutPutFrm.RichEdit.Lines.Add(outline); - -again: - for i := 1 to k do - for j := 1 to k do ainverse[i-1,j-1] := corrmat[i-1,j-1]; - eigens(ainverse,Eigenvector,k); - if ((factorchoice = 6)or (factorchoice = 7))then //iteratively solve for communalities - begin - //denormalize eigenvectors - for i := 1 to k do - begin - for j := 1 to k do - begin - if ( Eigenvector[j-1] > 0.0) then - ainverse[i-1,j-1] := ainverse[i-1,j-1] * sqrt(Eigenvector[j-1]) - else - begin - ainverse[i-1,j-1] := 0.0; - Eigenvector[j-1] := 0.0; - end; - end; - b[i-1] := 0.0; - end; - - //get communality estimate from sum of squared loadings in TempMat - for j := 1 to k do - for i := 1 to k do - b[i-1] := b[i-1] + (ainverse[i-1,j-1] * ainverse[i-1,j-1]); - for i := 1 to k do - begin - if (b[i-1] > 1.0) then - begin - b[i-1] := 1.0; - outline := 'WARNING! A communality estimate greater than 1.0 found.'; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := 'Value replaced by 1.0. View results with skepticism.'; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - Difference := 0.0; - for i := 1 to k do Difference := Difference + abs(b[i-1] - communality[i-1]); - if ((Difference > criterion) and (noiterations < maxiters)) then - begin - for i := 1 to k do // restore original r matrix - for j := 1 to k do corrmat[i-1,j-1] := TempMat[i-1,j-1]; - // Place new communalities in the diagonal - for i := 1 to k do corrmat[i-1,i-1] := b[i-1]; - // scale for alpha analysis - if (factorchoice = 6) then - begin - for i := 1 to k do - for j := 1 to k do - corrmat[i-1,j-1] := (1.0 / sqrt(b[i-1])) * - corrmat[i-1,j-1] * (1.0 / sqrt(b[j-1])); - end; - // Save new communality estimates - for i := 1 to k do communality[i-1] := b[i-1]; - noiterations := noiterations + 1; - goto again; - end - - else - begin - if (noiterations >= maxiters) then - begin - outline := format('Factor Analysis failed to converge in %d iterations.',[maxiters]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - factREORDER(Eigenvector,ainverse,RowLabels,k); - end; - end - - else //principal components - begin - FACTORS(Eigenvector, d2, ainverse, k, factorchoice); - factREORDER(Eigenvector, ainverse, RowLabels, k); - end; - Screen.Cursor := Save_Cursor; // restore regular cursor - - for i := 1 to k do - for j := 1 to k do - Loadings[i-1,j-1] := ainverse[i-1,j-1]; - - if (ScreeBtn.Checked) then - begin - SetLength(GraphFrm.Ypoints,1,k); - SetLength(GraphFrm.Xpoints,1,k); - for i := 1 to k do - begin - xvector[i-1] := i; - GraphFrm.Xpoints[0,i-1] := i; - GraphFrm.Ypoints[0,i-1] := Eigenvector[i-1]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := k; - GraphFrm.Heading := 'PLOT OF EIGENVALUES EXTRACTED'; - GraphFrm.XTitle := 'ROOT NUMBER'; - GraphFrm.YTitle := 'EIGENVALUE'; -// GraphFrm.Ypoints[1] := Eigenvector; -// GraphFrm.Xpoints[1] := xvector; - GraphFrm.AutoScale := true; - GraphFrm.PtLabels := false; - GraphFrm.GraphType := 7; // 2d points - GraphFrm.BackColor := clYellow; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - - // Setup labels for factors - for i := 1 to k do - begin - outline := format('Factor %d',[i]); - ColLabels[i-1] := outline; - end; - - //print results if requested - if (UnrotBtn.Checked) then - begin - OutPutFrm.RichEdit.Lines.Add('Roots (Eigenvalues) Extracted:'); - for i := 1 to Nroots do - begin - outline := format('%4d %6.3f',[i, Eigenvector[i-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'Unrotated Factor Loadings'; - OutPutFrm.RichEdit.Lines.Add(outline); - Title := 'FACTORS'; - MAT_PRINT(Loadings,k,Nroots,Title,RowLabels,ColLabels,count); - OutPutFrm.RichEdit.Lines.Add('Percent of Trace In Each Root:'); - for i := 1 to Nroots do - begin - outline := format('%4d Root := %6.3f Trace := %6.3f Percent := %7.3f', - [i, Eigenvector[i-1], trace, (Eigenvector[i-1]/ trace) * 100.0]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - // final communality estimates - trace := 0.0; - for i := 1 to k do - begin - b[i-1] := 0.0; - for j := 1 to Nroots do b[i-1] := b[i-1] + (Loadings[i-1,j-1] * Loadings[i-1,j-1]); - trace := trace + b[i-1]; - end; - - if (ComUnBtn.Checked) then - begin - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('COMMUNALITY ESTIMATES'); - for i := 1 to k do - begin - outline := format('%3d %-10s %6.3f',[i,RowLabels[i-1],b[i-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - if ( Nroots > 1) then - begin - minroot := StrToFloat(MinRootEdit.Text); - Nroots := 0; - for i := 1 to k do - if ( Eigenvector[i-1] > minroot) then Nroots := Nroots + 1; - if (maxnoroots = 0) then maxnoroots := Nroots; - if (Nroots > maxnoroots) then Nroots := maxnoroots; - if (RotateGroup.ItemIndex = 0) then - VARIMAX(Loadings, k, Nroots, RowLabels, ColLabels, ColNoSelected); - if (RotateGroup.ItemIndex = 1) then - ShowMessage('Oblimax not available - sorry!'); - if (RotateGroup.ItemIndex = 2) then - QUARTIMAX(Loadings, k, Nroots, RowLabels, ColLabels, ColNoSelected); - if (RotateGroup.ItemIndex = 3) then // graphical (manual) rotation - ManualRotate(Loadings, k, Nroots, RowLabels, ColLabels, ColNoSelected,self); - if (RotateGroup.ItemIndex = 4) then // Procrustean rotation to target - begin // procrustean rotation - PROCRUST(Loadings,k,Nroots,RowLabels,ColLabels); - end; - end; - if (( factorchoice = 6) or (factorchoice = 7)) then - begin - outline := format('No. of iterations := %d',[noiterations]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - if (( Nroots > 1) and (PlotBtn.Checked)) then - begin - for i := 1 to Nroots - 1 do - begin - for j := i + 1 to Nroots do - begin - for L := 1 to k do - begin - xvector[L-1] := Loadings[L-1,i-1]; - yvector[L-1] := Loadings[L-1,j-1]; - end; - xtitle := format('Factor %d',[i]); - ytitle := format('Factor %d',[j]); - scatplot(xvector, yvector, k, 'FACTOR PLOT', xtitle, - ytitle, -1.0, 1.0, -1.0, 1.0, RowLabels); - end; //Next j - end; //Next i - end; - - // Compute factor scores if checked - if (ScoresBtn.Checked) then - begin - if (MatInput = true) then - ShowMessage('Original subject scores unavailable (matrix input.)') - else LSFactScores(Loadings,k,Nroots,NoCases,ColNoSelected,RowLabels); - end; - - // Save loadings if checked - if (SaveFactBtn.Checked) then - begin - SaveDialog1.Filter := 'Matrix File (*.MAT)|*.MAT|Any File (*.*)|*.*'; - SaveDialog1.FilterIndex := 1; - SaveDialog1.Title := 'Save Factor Loadings'; - SaveDialog1.Execute; - filename := SaveDialog1.FileName; - MATSAVE(Loadings,k,Nroots,means,stddevs,count,RowLabels,ColLabels,filename); - end; - - // Clean up the heap - ColNoSelected := nil; - ColLabels := nil; - RowLabels := nil; - stddevs := nil; - variances := nil; - means := nil; - yvector := nil; - xvector := nil; - d2 := nil; - b := nil; - pcnttrace := nil; - communality := nil; - Eigenvector := nil; - Loadings := nil; - W := nil; - V := nil; - ainverse := nil; - TempMat := nil; - corrmat := nil; - GraphFrm.Ypoints := nil; - GraphFrm.Xpoints := nil; -end; - -procedure TFactorFrm.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 - FactorList.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 TFactorFrm.OutBtnClick(Sender: TObject); -VAR index : integer; -begin - index := FactorList.ItemIndex; - if index < 0 then - begin - OutBtn.Visible := false; - exit; - end; - VarList.Items.Add(FactorList.Items.Strings[index]); - FactorList.Items.Delete(index); -end; - -procedure TFactorFrm.FACTORS(var eigenvalues: DblDyneVec; var d2: DblDyneVec; - var A: DblDyneMat; N: integer; factorchoice: integer); -var i, j : integer; - -begin - //eigenvalues is the vector of N roots, a is the matrix of column eigenvectors, n is the order of the vector - //and matrix, factorchoice is an integer indicating the type of factor analysis, and d2 is - //a scaling weight for scaled factor analysis types - //The results are the normalized factor loadings returned in a. - - for i := 1 to N do - begin - for j := 1 to N do - begin - if ( eigenvalues[j-1] > 0) then A[i-1,j-1] := A[i-1,j-1] * sqrt(eigenvalues[j-1]) - else A[i-1,j-1] := 0.0; - end; - end; - if ((factorchoice = 4) or (factorchoice = 5)) then - begin - for i := 1 to N do - begin - for j := 1 to N do - begin - if (d2[i-1] > 0) then A[i-1,j-1] := A[i-1,j-1] * sqrt(d2[i-1]) - else A[i-1,j-1] := 0.0; - end; - end; - end; - if ( factorchoice = 6) then //alpha factor analysis - begin - for i := 1 to N do - begin - for j := 1 to N do - begin - if ( eigenvalues[j-1] > 0 ) then A[i-1,j-1] := A[i-1,j-1] * sqrt(1.0 - d2[i-1]) - else A[i-1,j-1] := 0.0; - end; - end; - end; -end; - -procedure TFactorFrm.factREORDER(var d: DblDyneVec; var A: DblDyneMat; - var var_label: StrDyneVec; N: integer); -var - i, j, k : integer; - Temp : double; -begin - // d is the vector of eigenvalues, A is the eigenvalues matrix, - // var_label is the array of variable labels and - // n is the vector and matrix order. - - for i := 1 to N - 1 do - begin - for j := i + 1 to N do - begin - if ( d[i-1] < d[j-1]) then - begin - Temp := d[i-1]; // swap eigenvectors - d[i-1] := d[j-1]; - d[j-1] := Temp; - for k := 1 to N do // swap columns in iegenvector matrix - begin - Temp := A[k-1,i-1]; - A[k-1,i-1] := A[k-1,j-1]; - A[k-1,j-1] := Temp; - end; - end; - end; - end; -end; - -procedure TFactorFrm.SORT_LOADINGS(var v: DblDyneMat; n1, n2: integer; - var High_Factor: IntDyneVec; var A: DblDyneVec; var b: DblDyneVec; - var var_label: StrDyneVec; order: IntDyneVec); -var - i, j, k, itemp : integer; - NoInFact : IntDyneVec; - maxval, Temp : double; - tempstr : string; - -begin - SetLength(NoInFact,NoVariables); - - // Reorder factors in descending sequence ( left to right ) - for j := 1 to n2 - 1 do - begin // factor j - for k := j + 1 to n2 do - begin // factor k - if ( A[j-1] < A[k-1]) then - begin // variance and factors need swapping - for i := 1 to n1 do - begin // swap factors - Temp := v[i-1,j-1]; - v[i-1,j-1] := v[i-1,k-1]; - v[i-1,k-1] := Temp; - end; - Temp := A[j-1]; // variance swap - A[j-1] := A[k-1]; - A[k-1] := Temp; - end; - end; - end; - // Now select largest loading in each variable - for j := 1 to n2 do NoInFact[j-1] := 0; - for i := 1 to n1 do - begin - High_Factor[i-1] := 0; - maxval := 0.0; - for j := 1 to n2 do - begin - if ( abs(v[i-1,j-1]) > abs(maxval)) then - begin - maxval := abs(v[i-1,j-1]); - High_Factor[i-1] := j; - end; - end; - end; - // Now sort matrix loadings - for i := 1 to n1 - 1 do - begin - for j := i + 1 to n1 do - begin - if ( High_Factor[i-1] > High_Factor[j-1]) then - begin - itemp := High_Factor[i-1]; - High_Factor[i-1] := High_Factor[j-1]; - High_Factor[j-1] := itemp; - for k := 1 to n2 do - begin // loading swap - Temp := v[i-1,k-1]; - v[i-1,k-1] := v[j-1,k-1]; - v[j-1,k-1] := Temp; - end; - tempstr := var_label[i-1]; // label swap - var_label[i-1] := var_label[j-1]; - var_label[j-1] := tempstr; - Temp := b[i-1]; // communality swap - b[i-1] := b[j-1]; - b[j-1] := Temp; - itemp := order[i-1]; - order[i-1] := order[j-1]; - order[j-1] := itemp; - end; - end; - end; - NoInFact := nil; -end; - -procedure TFactorFrm.VARIMAX(var v: DblDyneMat; n1, n2: integer; - var RowLabels: StrDyneVec; var ColLabels: StrDyneVec; var order: IntDyneVec); -label nextone; -var - pi : double; - A, b, C : DblDyneVec; - i, j, k, M, N, minuscount : integer; - High_Factor : IntDyneVec; - a1, b1, c1, c2, c3, c4, d1, x1, x2, Y, s1, Q, TotalPercent, t : double; - outline : string; - Title : string; -begin - pi := 3.14159265358979; - t := n1; - SetLength(A,NoVariables); - SetLength(b,NoVariables); - SetLength(C,NoVariables); - SetLength(High_Factor,NoVariables); - // calculate proportion of variance accounted for by each factor - //before rotation - for j := 1 to n2 do - begin - A[j-1] := 0.0; - for i := 1 to n1 do A[j-1] := A[j-1] + (v[i-1,j-1] * v[i-1,j-1]); - A[j-1] := A[j-1] / t * 100.0; - end; - if (FactorFrm.PcntTrBtn.Checked) then - begin - OutPutFrm.RichEdit.Lines.Add('Proportion of variance in unrotated factors'); - OutPutFrm.RichEdit.Lines.Add(''); - for j := 1 to n2 do - begin - outline := format('%3d %6.3f',[j, A[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - end; - for i := 1 to n1 do - begin - b[i-1] := 0.0; - High_Factor[i-1] := 0; - end; - // Reflect factors 180 degrees if more negative than positive loadings - for j := 1 to n2 do - begin - minuscount := 0; - for i := 1 to n1 do - begin - if ( v[i-1,j-1] < 0) then minuscount := minuscount + 1; - end; - if ( minuscount > (n1 / 2)) then - begin - for i := 1 to n1 do v[i-1,j-1] := v[i-1,j-1] * -1.0; - end; - end; - - // normalize rows of v - for i := 1 to n1 do - begin - for j := 1 to n2 do - begin - b[i-1] := b[i-1] + (v[i-1,j-1] * v[i-1,j-1]); - end; - b[i-1] := sqrt(b[i-1]); - for j := 1 to n2 do v[i-1,j-1] := v[i-1,j-1] / b[i-1]; - end; - -nextone: - k := 0; - for M := 1 to n2 do - begin - for N := M to n2 do - begin - if ( M <> N) then // compute angle of rotation - begin - for i := 1 to n1 do - begin - A[i-1] := (v[i-1,M-1] * v[i-1,M-1]) - (v[i-1,N-1] * v[i-1,N-1]); - C[i-1] := 2.0 * v[i-1,M-1] * v[i-1,N-1]; - end; - a1 := 0.0; - for i := 1 to n1 do a1 := a1 + A[i-1]; - b1 := 0.0; - for i := 1 to n1 do b1 := b1 + C[i-1]; - c1 := 0.0; - for i := 1 to n1 do c1 := c1 + (A[i-1] * A[i-1]); - c2 := 0.0; - for i := 1 to n1 do c2 := c2 + (C[i-1] * C[i-1]); - c3 := c1 - c2; - d1 := 0.0; - for i := 1 to n1 do d1 := d1 + A[i-1] * C[i-1]; - d1 := 2 * d1; - x1 := d1 - 2.0 * a1 * b1 / t; - x2 := c3 - ((a1 * a1) - (b1 * b1)) / t; - Y := ArcTan(x1 / x2); - if ( x2 < 0) then - begin - if ( x1 >= 0.0) then Y := Y + 2.0 * pi; - Y := Y - pi; - end; - Y := Y / 4.0; - //if (fabs(Y) >= 0.0175) // rotate pair of axes - if ( abs(Y) >= 0.000001) then - begin - c4 := cos(Y); - s1 := sin(Y); - k := 1; - for i := 1 to n1 do - begin - Q := v[i-1,M-1] * c4 + v[i-1,N-1] * s1; - v[i-1,N-1] := v[i-1,N-1] * c4 - v[i-1,M-1] * s1; - v[i-1,M-1] := Q; - end; - end; // if y - end; // if m <> n - end; // next n - end; // next m - if ( k > 0) then goto nextone; - // denormalize rows of v - for j := 1 to n2 do - begin - for i := 1 to n1 do v[i-1,j-1] := v[i-1,j-1] * b[i-1]; - A[j-1] := 0.0; - for i := 1 to n1 do A[j-1] := A[j-1] + (v[i-1,j-1] * v[i-1,j-1]); - A[j-1] := A[j-1] / t * 100.0; - end; - for i := 1 to n1 do b[i-1] := (b[i-1] * b[i-1]) * 100.0; - if (FactorFrm.ComUnBtn.Checked) then - begin - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Communality Estimates as percentages:'); - for i := 1 to n1 do - begin - outline := format('%3d %6.3f',[i,b[i-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - end; - if (FactorFrm.SortBtn.Checked)then - SORT_LOADINGS(v, n1, n2, High_Factor, A, b, RowLabels, order); - // Reflect factors 180 degrees if more negative than positive loadings - for j := 1 to n2 do - begin - minuscount := 0; - for i := 1 to n1 do - begin - if ( v[i-1,j-1] < 0) then minuscount := minuscount + 1; - end; - if ( minuscount > (n1 / 2)) then - begin - for i := 1 to n1 do v[i-1,j-1] := v[i-1,j-1] * -1.0; - end; - end; - // recalculate proportion of variance accounted for by each factor - for j := 1 to n2 do - begin - A[j-1] := 0.0; - for i := 1 to n1 do A[j-1] := A[j-1] + (v[i-1,j-1] * v[i-1,j-1]); - A[j-1] := A[j-1] / t * 100.0; - end; - // print results - Title := 'Varimax Rotated Loadings'; - MAT_PRINT(v,n1,n2,Title,RowLabels,ColLabels,NoCases); - TotalPercent := 0.0; - OutPutFrm.RichEdit.Lines.Add('Percent of Variation in Rotated Factors'); - for j := 1 to n2 do - begin - outline := format('Factor %3d %6.3f', [j,A[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - TotalPercent := TotalPercent + A[j-1]; - end; - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Total Percent of Variance in Factors : %6.3f',[TotalPercent]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('Communalities as Percentages'); - for i := 1 to n1 do - begin - outline := format('%3d for %15s %6.3f',[i, RowLabels[i-1], b[i-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - // clean up heap - High_Factor := nil; - C := nil; - b := nil; - A := nil; -end; - -procedure TFactorFrm.PROCRUST(var b: DblDyneMat; nv, nb: integer; - var RowLabels: StrDyneVec; var ColLabels: StrDyneVec); -label cleanup; -var - i, j, k, na, nf, nd, nv2, count : integer; - ee, p, sum : double; - A, C, d, v, trans : DblDyneMat; - e, f, g, means, stddevs : DblDyneVec; - outline : string; - Title : string; - ColALabels : StrDyneVec ; - filename : string; - errorcode : boolean; -begin - // nv is the no. of variables, nb the number of factors in the loadings - // matrix. - // na is the number of factors in target matrix - // nf is the no. of roots and vectors extracted from routine sevs - // b is the obtained factor matrix - // A is the target factor matrix - // ColLabels is the set of labels for the obtained factors - // ColALabels is the set of labels for the target factor matrix - Title := 'Source Factor Loadings'; - MAT_PRINT(b,nv,nb,title,RowLabels,ColLabels,NoCases); - nd := nv; - SetLength(A,NoVariables,NoVariables); - SetLength(C,NoVariables,NoVariables); - SetLength(d,NoVariables,NoVariables); - SetLength(v,NoVariables,NoVariables); - SetLength(trans,NoVariables,NoVariables); - SetLength(e,NoVariables); - SetLength(f,NoVariables); - SetLength(g,NoVariables); - SetLength(means,NoVariables); - SetLength(stddevs,NoVariables); - SetLength(ColALabels,NoVariables); - - // read target matrix into A - FactorFrm.OpenDialog1.Filter := 'Matrix File (*.MAT)|*.MAT|Any File (*.*)|*.*'; - FactorFrm.OpenDialog1.FilterIndex := 1; - FactorFrm.OpenDialog1.Title := 'Target Matrix'; - FactorFrm.OpenDialog1.DefaultExt := 'MAT'; - FactorFrm.OpenDialog1.Execute; - filename := FactorFrm.OpenDialog1.FileName; - MATREAD(A,nv2,na,means,stddevs,count,RowLabels,ColALabels,filename); - Title := 'Target Factor Loadings'; - MAT_PRINT(A,nv2,na,Title,RowLabels,ColALabels,count); - if nv2 <> nv then - begin - ShowMessage('ERROR! No. of variables do not match.'); - goto cleanup; - end; - - // normalize matrix A by rows. - for i := 1 to nv do - begin - sum := 0.0; - for j := 1 to na do sum := sum + (A[i-1,j-1] * A[i-1,j-1]); - p := 1.0 / sqrt(sum); - for j := 1 to na do A[i-1,j-1] := A[i-1,j-1] * p; - end; - for i := 1 to nv do // normalize matrix b by rows. Save lengths in g. - begin - sum := 0.0; - for j := 1 to nb do sum := sum + (b[i-1,j-1] * b[i-1,j-1]); - g[i-1] := sqrt(sum); - for j := 1 to nb do b[i-1,j-1] := b[i-1,j-1] / g[i-1]; - end; - // compute cosines between factor axes and print results - // get A transpose x B into C - MATTRN(trans,A,nv,na); - MatAxB(C,trans,b,na,nv,nv,nb,errorcode); - // get D := C x C transpose - MATTRN(trans,C,na,nb); - MatAxB(d,C,trans,na,nb,nb,na,errorcode); - // get roots and vectors of D. - nf := SEVS(na, na, 0.0, d, v, e, f, nd); //nf is new no. of factors returned in na - nb := nf; - // get d := C transpose x V end; - MATTRN(trans,C,na,nb); - MatAxB(d,trans,v,nb,na,na,nb,errorcode); - for j := 1 to nb do - begin - ee := Power(e[j-1],-1.5); - for i := 1 to nb do d[i-1,j-1] := d[i-1,j-1] * ee; - end; - // get D x V' end; - MATTRN(trans,v,na,nb); - MatAxB(C,d,trans,nb,nb,nb,na,errorcode); - OutPutFrm.RichEdit.Lines.Add('Factor Pattern Comparison:'); - Title := 'Cosines Among Factor Axis'; - MAT_PRINT(C,na,nb,Title,ColALabels,ColLabels,NoCases); - // get B x C - for i := 1 to nv do - begin - for j := 1 to na do - begin - d[i-1,j-1] := 0.0; - for k := 1 to nb do d[i-1,j-1] := d[i-1,j-1] + (b[i-1,k-1] * C[j-1,k-1]); - end; - end; - for i := 1 to nv do - for j := 1 to na do - v[i-1,j-1] := d[i-1,j-1] * g[i-1]; - Title := 'Factors Rotated to Conguence With Target'; - MAT_PRINT(v,nv,na,Title,RowLabels,ColALabels,NoCases); - for i := 1 to nv do - begin - sum := 0.0; // Get column products of the two matrices - for j := 1 to na do sum := sum + (A[i-1,j-1] * d[i-1,j-1]); - g[i-1] := sum; - end; - OutPutFrm.RichEdit.Lines.Add('Cosines (Correlations) Between Corresponding Variables'); - OutPutFrm.RichEdit.Lines.Add(''); - for i := 1 to nv do - begin - outline := format('%-10s %8.6f',[RowLabels[i-1],g[i-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - // cleanup -cleanup: - ColALabels := nil; - stddevs := nil; - means := nil; - g := nil; - f := nil; - e := nil; - trans := nil; - v := nil; - d := nil; - C := nil; - A := nil; -end; - -procedure TFactorFrm.LSFactScores(var F: DblDyneMat; NoVars, NoFacts, - NCases: integer; var ColNoSelected: IntDyneVec; var RowLabels: StrDyneVec); -var - R, Rinv, Beta : DblDyneMat; - Means, Variances, StdDevs : DblDyneVec; - Score, Sigma, x, z : double; - i, j, k, m, col, colno, errorcode, oldnovars : integer; - ColLabels : StrDyneVec; - outline : string; - Title : string; - errcode : boolean; - -begin - SetLength(R,NoVariables+1,NoVariables+1); - SetLength(Rinv,NoVariables+1,NoVariables+1); - SetLength(Beta,NoVariables,NoVariables); - SetLength(Means,NoVariables); - SetLength(Variances,NoVariables); - SetLength(StdDevs,NoVariables); - SetLength(ColLabels,NoVariables); - - // setup labels and print routine - for i := 1 to NoFacts do - begin - outline := format('Factor %d',[i]); - ColLabels[i-1] := outline; - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('SUBJECT FACTOR SCORE RESULTS:'); - - // Obtain correlations -// Correlate(NoVars,NoCases,ColNoSelected,Means,Variances,StdDevs,R,3,errorcode,NCases); - Correlations(NoVars,ColNoSelected,R,Means,Variances,StdDevs,errcode,NCases); - for i := 1 to NoVars do - for j := 1 to NoVars do - Rinv[i-1,j-1] := R[i-1,j-1]; - - // Get inverse of the correlation matrix - // Note - offset by one for inverse routine - SVDinverse(Rinv, NoVars); - - // Multiply the inverse matrix times the factor loadings matrix - MatAxB(Beta,Rinv,F,NoVars,NoVars,NoVars,NoFacts,errcode); - Title := 'Regression Coefficients'; - MAT_PRINT(Beta,NoVars,NoFacts,Title,RowLabels,ColLabels,NCases); - - // Calculate standard errors of factor scores - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Standard Error of Factor Scores:'); - for i := 1 to NoFacts do - begin - Sigma := 0.0; - for j := 1 to NoVars do - begin - Sigma := Sigma + (Beta[j-1,i-1] * F[j-1,i-1]); - end; - Sigma := sqrt(Sigma); - outline := format('%-10s %6.3f',[ColLabels[i-1],Sigma]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - - //Calculate subject factor scores and place in the data grid - // place labels in new grid columns and define - oldnovars := NoVariables; - for i := 1 to NoFacts do - begin - col := NoVariables + 1; - outline := format('Fact.%d Scr.',[i]); -// MakeVar(col,outline); - DictionaryFrm.NewVar(col); - DictionaryFrm.DictGrid.Cells[1,col] := outline; - OS3MainFrm.DataGrid.Cells[col,0] := outline; -// NoVariables := NoVariables + 1; - end; - for i := 1 to NoCases do // subject - begin - if (not GoodRecord(i,NoVars,ColNoSelected)) then continue; - for j := 1 to NoFacts do // variables - begin - Score := 0.0; - for k := 1 to NoVars do - begin - m := ColNoSelected[k-1]; - x := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[m,i])); - z := (x - Means[k-1]) / StdDevs[k-1]; - Score := Score + (z * Beta[k-1,j-1]); - end; - colno := oldnovars + j; - outline := format('%6.4f',[Score]); - OS3MainFrm.DataGrid.Cells[colno,i] := outline; - end; - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - // clean up the heap - ColLabels := nil; - StdDevs := nil; - Variances := nil; - Means := nil; - Beta := nil; - Rinv := nil; - R := nil; -end; - -procedure TFactorFrm.QUARTIMAX(var v: DblDyneMat; n1, n2: integer; - var RowLabels: StrDyneVec; var ColLabels: StrDyneVec; var order: IntDyneVec); -var - i, j, M, N, minuscount, NoIters : integer; - A, b, C : DblDyneVec; - High_Factor : IntDyneVec; - c4, s1, Q, NewQ, TotalPercent, t : double; - theta, tan4theta, ssqrp, ssqrj, prodjp, numerator, denominator : double; - outline : string; - done : boolean; - Title : string; -begin - SetLength(A,NoVariables); - SetLength(b,NoVariables); - SetLength(C,NoVariables); - SetLength(High_Factor,NoVariables); - NoIters := 0; - - // calculate proportion of variance accounted for by each factor - //before rotation - t := n1; - for j := 1 to n2 do - begin - A[j-1] := 0.0; - for i := 1 to n1 do A[j-1] := A[j-1] + (v[i-1,j-1] * v[i-1,j-1]); - A[j-1] := A[j-1] / t * 100.0; - end; - if FactorFrm.PcntTrBtn.Checked then - begin - OutPutFrm.RichEdit.Lines.Add('Proportion of variance in unrotated factors'); - OutPutFrm.RichEdit.Lines.Add(''); - for j := 1 to n2 do - begin - outline := format('%3d %6.3f',[j, A[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - end; - for i := 0 to n1-1 do - begin - b[i] := 0.0; - High_Factor[i] := 0; - end; - - // Reflect factors 180 degrees if more negative than positive loadings - for j := 0 to n2-1 do - begin - minuscount := 0; - for i := 0 to n1-1 do - begin - if v[i,j] < 0 then minuscount := minuscount + 1; - end; - if minuscount > (n1 / 2) then - begin - for i := 0 to n1-1 do v[i,j] := v[i,j] * -1.0; - end; - end; - - t := n1; - // normalize rows of v - for i := 0 to n1-1 do - begin - for j := 0 to n2-1 do - begin - b[i] := b[i] + (v[i,j] * v[i,j]); - end; - b[i] := sqrt(b[i]); - end; - - done := false; - Q := 0.0; - for i := 1 to n1 do - for j := 1 to n2 do - Q := Q + Power(v[i-1,j-1],4.0); - while (not done) do - begin - for M := 1 to n2-1 do - begin - for N := M + 1 to n2 do - begin - // compute angle of rotation for this pair of factors - numerator := 0.0; - denominator := 0.0; - for i := 1 to n1 do - begin - ssqrp := v[i-1,M-1] * v[i-1,M-1]; - ssqrj := v[i-1,N-1] * v[i-1,N-1]; - prodjp := 2.0 * v[i-1,M-1] * v[i-1,N-1]; - numerator := numerator + prodjp * (ssqrp - ssqrj); - denominator := denominator + (Power(ssqrp - ssqrj,2.0) - Power(prodjp,2)); - end; - tan4theta := (2.0 * numerator) / denominator; - theta := ArcTan(tan4theta) / 4.0; - c4 := cos(theta); - s1 := sin(theta); - // transform factor loadings - for i := 1 to n1 do - begin - v[i-1,M-1] := v[i-1,M-1] * c4 + v[i-1,N-1] * s1; - v[i-1,N-1] := v[i-1,N-1] * c4 - v[i-1,M-1] * s1; - end; - end; // next n - end; // next m - NewQ := 0.0; - for i := 1 to n1 do - for j := 1 to n2 do - NewQ := NewQ + Power(v[i-1,j-1],4.0); - if (abs(Q - NewQ) < 0.00001) then done := true; - if (n2 < 3) then done := true; - if (not done) then - begin - NoIters := NoIters + 1; - if (NoIters > 25) then - begin - outline := 'Quartimax failed to converge in 25 iterations.'; - OutPutFrm.RichEdit.Lines.Add(outline); - done := true; - end; - Q := NewQ; - end; - end; // while not done -{ - // denormalize rows of v - for ( j := 0; j < n2; j++) - begin - for ( i := 0; i < n1; i++) v[i,j] *= b[i]; - A[j] := 0.0; - for ( i := 0; i < n1; i++) A[j] += (v[i,j] * v[i,j]); - A[j] := A[j] / t * 100.0; - end; -} - for i := 1 to n1 do b[i-1] := (b[i-1] * b[i-1]) * 100.0; - if (FactorFrm.SortBtn.Checked) then - SORT_LOADINGS(v, n1, n2, High_Factor, A, b, RowLabels, order); - // Reflect factors 180 degrees if more negative than positive loadings - for j := 1 to n2 do - begin - minuscount := 0; - for i := 1 to n1 do - begin - if ( v[i-1,j-1] < 0) then minuscount := minuscount + 1; - end; - if ( minuscount > (n1 / 2)) then - begin - for i := 1 to n1 do v[i-1,j-1] := v[i-1,j-1] * -1.0; - end; - end; - // recalculate proportion of variance accounted for by each factor - for j := 0 to n2-1 do - begin - A[j] := 0.0; - for i := 0 to n1-1 do A[j] := A[j] + (v[i,j] * v[i,j]); - A[j] := A[j] / t * 100.0; - end; - // print results - TotalPercent := 0.0; - Title := 'Quartimax Rotated Loadings'; - MAT_PRINT(v,n1,n2,Title,RowLabels,ColLabels,NoCases); - OutPutFrm.RichEdit.Lines.Add('Percent of Variation in Rotated Factors'); - for j := 0 to n2-1 do - begin - outline := format('Factor %3d %6.3f',[j+1,A[j]]); - OutPutFrm.RichEdit.Lines.Add(outline); - TotalPercent := TotalPercent + A[j]; - end; - if (FactorFrm.ComUnBtn.Checked) then - begin - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Total Percent of Variance in Factors : %6.3f',[TotalPercent]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('Communalities as Percentages'); - for i := 1 to n1 do - begin - outline := format('%3d for %s %6.3f',[i, RowLabels[i-1], b[i-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - // clean up heap - High_Factor := nil; - C := nil; - b := nil; - A := nil; -end; - -procedure TFactorFrm.ManualRotate(var v: DblDyneMat; n1, n2: integer; - var RowLabels: StrDyneVec; var ColLabels: StrDyneVec; var order: IntDyneVec; - Sender: TObject); -var - cols, rows : integer; - outline : string; - Title : string; - i, j : integer; -begin -// Passed: Loadings, k, Nroots, RowLabels, ColLabels, ColNoSelected,self - SetLength(RotateFrm.Loadings,NoVariables,NoVariables); - RotateFrm.Loadings := v; - RotateFrm.NoVars := n1; - RotateFrm.NoRoots := n2; - RotateFrm.RowLabels := RowLabels; - RotateFrm.ColLabels := ColLabels; - RotateFrm.Order := order; - RotateFrm.ShowModal; - - for i := 1 to n1 do - for j := 1 to n2 do v[i-1,j-1] := RotateFrm.Loadings[i-1,j-1]; - RotateFrm.Loadings := nil; - cols := n2; // no. of roots - rows := n1; // no. of variables - outline := 'Rotated Factor Loadings'; - OutPutFrm.RichEdit.Lines.Add(outline); - Title := 'FACTORS'; - MAT_PRINT(v,rows,cols,Title,RowLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; -end; - -initialization - {$I factorunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/FACTORUNIT.lfm b/applications/lazstats/source_orig/FACTORUNIT.lfm deleted file mode 100644 index a921132d9..000000000 --- a/applications/lazstats/source_orig/FACTORUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/FACTORUNIT.lrs b/applications/lazstats/source_orig/FACTORUNIT.lrs deleted file mode 100644 index d3b14d5e2..000000000 --- a/applications/lazstats/source_orig/FACTORUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/FFTUNIT.PAS b/applications/lazstats/source_orig/FFTUNIT.PAS deleted file mode 100644 index 076937908..000000000 --- a/applications/lazstats/source_orig/FFTUNIT.PAS +++ /dev/null @@ -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. - diff --git a/applications/lazstats/source_orig/FFTUNIT.lfm b/applications/lazstats/source_orig/FFTUNIT.lfm deleted file mode 100644 index 61d323839..000000000 --- a/applications/lazstats/source_orig/FFTUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/FFTUNIT.lrs b/applications/lazstats/source_orig/FFTUNIT.lrs deleted file mode 100644 index 8b1f3caf7..000000000 --- a/applications/lazstats/source_orig/FFTUNIT.lrs +++ /dev/null @@ -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 -]); diff --git a/applications/lazstats/source_orig/FILEEXTRACTUNIT.PAS b/applications/lazstats/source_orig/FILEEXTRACTUNIT.PAS deleted file mode 100644 index 3cf2e935b..000000000 --- a/applications/lazstats/source_orig/FILEEXTRACTUNIT.PAS +++ /dev/null @@ -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. diff --git a/applications/lazstats/source_orig/FILEEXTRACTUNIT.lfm b/applications/lazstats/source_orig/FILEEXTRACTUNIT.lfm deleted file mode 100644 index 3843101ca..000000000 --- a/applications/lazstats/source_orig/FILEEXTRACTUNIT.lfm +++ /dev/null @@ -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 diff --git a/applications/lazstats/source_orig/FILEEXTRACTUNIT.lrs b/applications/lazstats/source_orig/FILEEXTRACTUNIT.lrs deleted file mode 100644 index 332bbb519..000000000 --- a/applications/lazstats/source_orig/FILEEXTRACTUNIT.lrs +++ /dev/null @@ -1,80 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TFileExtractFrm','FORMDATA',[ - 'TPF0'#15'TFileExtractFrm'#14'FileExtractFrm'#4'Left'#3#160#0#6'Height'#3#253 - +#1#3'Top'#3#201#2#5'Width'#3#179#1#11'HelpContext'#3#150#1#18'HorzScrollBar.' - +'Page'#3#178#1#18'VertScrollBar.Page'#3#252#1#13'ActiveControl'#7#12'NoField' - +'sEdit'#7'Caption'#6#25'File Extraction Procedure'#11'Font.Height'#2#245#9'F' - +'ont.Name'#6#13'MS Sans Serif'#8'HelpFile'#6#11'OS2Help.hlp'#6'OnShow'#7#8'F' - +'ormShow'#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#14#3'Top'#3#152#0#5 - +'Width'#3#132#0#7'Caption'#6#27'Number of lines per record:'#5'Color'#7#6'cl' - +'None'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#224#0#6'Height'#2 - +#14#3'Top'#3#152#0#5'Width'#3#170#0#7'Caption'#6'%No. of fields (variables) ' - +'per record:'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4' - +#4'Left'#2#8#6'Height'#2#14#3'Top'#3#176#0#5'Width'#3#192#0#7'Caption'#6'''S' - +'equence number of key selection field:'#5'Color'#7#6'clNone'#11'ParentColor' - +#8#0#0#6'TLabel'#6'Label5'#4'Left'#2#8#6'Height'#2'('#3'Top'#3#200#0#5'Width' - +#2'L'#7'Caption'#6'*Selection Value (Including Dec. Fraction):'#5'Color'#7#6 - +'clNone'#11'ParentColor'#8#8'WordWrap'#9#0#0#6'TLabel'#6'Label1'#4'Left'#3#16 - +#1#6'Height'#2#14#3'Top'#3#168#1#5'Width'#2'^'#7'Caption'#6#18'Records Retri' - +'eved:'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0#6'TLabel'#6'Label6'#4'Lef' - +'t'#2#8#6'Height'#2#14#3'Top'#3#168#1#5'Width'#2'`'#7'Caption'#6#18'Records ' - +'Processed:'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0#5'TMemo'#5'Memo1'#4 - +'Left'#2#24#6'Height'#2'q'#5'Width'#3'y'#1#13'Lines.Strings'#1#6'PThis proce' - +'dure is used to extract records from files too large to read directly '#6'P' - +'into the data grid. The data grid can hold about 100,000 records. If your' - +' file'#6'Pis larger but you will not be processing all records, you may ext' - +'ract sub-groups'#6'Pof records using a "key" field, e.g. a group identifica' - +'tion number. The records'#6'Nextracted will be placed into the data grid a' - +'s if you had entered them via the'#6'Rkeyboard. You may then save the sub-' - +'file, process it, etc. as any other file. If'#6'Qyou have multiple groups ' - +'to extract, repeat pressing the Extract button until all'#6'Lsub-files you ' - +'need are placed into the data grid. Press return to continue.'#0#8'TabOrde' - +'r'#2#4#0#0#5'TEdit'#11'NoLinesEdit'#4'Left'#3#144#0#6'Height'#2#21#3'Top'#3 - +#152#0#5'Width'#2#25#8'TabOrder'#2#5#0#0#5'TEdit'#12'NoFieldsEdit'#4'Left'#3 - +#136#1#6'Height'#2#21#3'Top'#3#152#0#5'Width'#2#25#8'TabOrder'#2#0#0#0#11'TR' - +'adioGroup'#9'FormatGrp'#4'Left'#3#16#1#6'Height'#2'Q'#3'Top'#3#176#0#5'Widt' - +'h'#3#145#0#8'AutoFill'#9#7'Caption'#6#14'Record Format:'#28'ChildSizing.Lef' - +'tRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.Enla' - +'rgeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertica' - +'l'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crs' - +'ScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSi' - +'zing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPer' - +'Line'#2#1#13'Items.Strings'#1#6#20'Tab seperated fields'#6#22'comma seperat' - +'ed fields'#6#22'space seperated fields'#6#21'User specified format'#0#7'OnC' - +'lick'#7#14'FormatGrpClick'#8'TabOrder'#2#3#0#0#5'TEdit'#12'KeyVarNoEdit'#4 - +'Left'#3#200#0#6'Height'#2#21#3'Top'#3#176#0#5'Width'#2#25#8'TabOrder'#2#1#0 - +#0#5'TEdit'#9'ValueEdit'#4'Left'#2'p'#6'Height'#2#21#3'Top'#3#208#0#5'Width' - +#2'q'#8'TabOrder'#2#2#0#0#9'TCheckBox'#9'LabelsChk'#4'Left'#2#8#6'Height'#2 - +#13#3'Top'#3#248#0#5'Width'#3#207#0#7'Caption'#6'*The first record contains ' - +'variable labels.'#8'TabOrder'#2#6#0#0#11'TStringGrid'#7'FmtGrid'#4'Left'#2#8 - +#6'Height'#2'y'#3'Top'#3'('#1#5'Width'#3#153#1#8'ColCount'#2#6#10'FixedColor' - +#7#9'clBtnFace'#9'FixedCols'#2#0#9'FixedRows'#2#0#13'GridLineWidth'#2#0#7'Op' - +'tions'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzL' - +'ine'#11'goColMoving'#9'goEditing'#6'goTabs'#0#8'RowCount'#2#5#10'ScrollBars' - +#7#10'ssAutoBoth'#8'TabOrder'#2#7#7'TabStop'#9#0#0#7'TButton'#9'CancelBtn'#4 - +'Left'#3#160#0#6'Height'#2#25#3'Top'#3#192#1#5'Width'#2'9'#25'BorderSpacing.' - +'InnerBorder'#2#4#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#7'OnClick'#7#14 - +'CancelBtnClick'#8'TabOrder'#2#8#0#0#7'TButton'#5'OKBtn'#4'Left'#3'h'#1#6'He' - +'ight'#2#25#3'Top'#3#192#1#5'Width'#2'9'#25'BorderSpacing.InnerBorder'#2#4#7 - +'Caption'#6#6'Return'#11'ModalResult'#2#1#7'OnClick'#7#10'OKBtnClick'#8'TabO' - +'rder'#2#9#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#224#0#6'Height'#2#25#3'Top'#3 - +#192#1#5'Width'#2'9'#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#5'Reset' - +#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#10#0#0#7'TButton'#10'ExtractBt' - +'n'#4'Left'#3' '#1#6'Height'#2#25#3'Top'#3#192#1#5'Width'#2'A'#25'BorderSpac' - +'ing.InnerBorder'#2#4#7'Caption'#6#7'Extract'#7'OnClick'#7#15'ExtractBtnClic' - +'k'#8'TabOrder'#2#11#0#0#7'TButton'#10'FileSelBtn'#4'Left'#2#8#6'Height'#2#25 - +#3'Top'#2'x'#5'Width'#3#201#0#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6 - ,'*Press to Select a Huge File for Extraction'#7'OnClick'#7#15'FileSelBtnClic' - +'k'#8'TabOrder'#2#12#0#0#5'TEdit'#9'NoGotEdit'#4'Left'#3'p'#1#6'Height'#2#21 - +#3'Top'#3#168#1#5'Width'#2'1'#8'TabOrder'#2#13#4'Text'#6#9'NoGotEdit'#0#0#5 - +'TEdit'#12'RecdReadEdit'#4'Left'#2'h'#6'Height'#2#21#3'Top'#3#168#1#5'Width' - +#2'A'#8'TabOrder'#2#14#4'Text'#6#12'RecdReadEdit'#0#0#9'TComboBox'#7'TypeBox' - +#4'Left'#3#208#0#6'Height'#2#21#3'Top'#3#16#1#5'Width'#2'9'#16'AutoCompleteT' - +'ext'#11#22'cbactEndOfLineComplete'#20'cbactSearchAscending'#0#10'ItemHeight' - +#2#13#13'Items.Strings'#1#6#9'(I)nteger'#6#16'(F)loating point'#6#8'(S)tring' - +#6#7'(M)oney'#6#6'(D)ate'#0#9'MaxLength'#2#0#8'OnChange'#7#13'TypeBoxChange' - +#8'TabOrder'#2#15#4'Text'#6#4'Type'#0#0#11'TOpenDialog'#11'OpenDialog1'#5'Ti' - +'tle'#6#18'Open existing file'#11'FilterIndex'#2#0#4'left'#3#240#0#3'top'#3 - +#192#0#0#0#0 -]); diff --git a/applications/lazstats/source_orig/FRIEDMANUNIT.PAS b/applications/lazstats/source_orig/FRIEDMANUNIT.PAS deleted file mode 100644 index 57eaa472d..000000000 --- a/applications/lazstats/source_orig/FRIEDMANUNIT.PAS +++ /dev/null @@ -1,348 +0,0 @@ -unit FriedmanUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, Globals, OutPutUnit, DataProcs, Math, - FunctionsLib, MatrixLib, contexthelpunit; - -type - - { TFriedmanFrm } - - TFriedmanFrm = class(TForm) - HelpBtn: TButton; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - GrpVar: TEdit; - GrpIn: TBitBtn; - GrpOut: TBitBtn; - Label2: TLabel; - Label3: TLabel; - TreatVars: TListBox; - TrtIn: TBitBtn; - TrtOut: TBitBtn; - Label1: TLabel; - VarList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure GrpInClick(Sender: TObject); - procedure GrpOutClick(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure TrtInClick(Sender: TObject); - procedure TrtOutClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - FriedmanFrm: TFriedmanFrm; - -implementation - -{ TFriedmanFrm } - -procedure TFriedmanFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Items.Clear; - TreatVars.Items.Clear; - GrpVar.Text := ''; - for i := 1 to NoVariables do - begin - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - end; - GrpIn.Visible := true; - GrpOut.Visible := false; - TrtIn.Visible := true; - TrtOut.Visible := false; -end; - -procedure TFriedmanFrm.TrtInClick(Sender: TObject); -VAR i, index : integer; -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - TreatVars.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - TrtOut.Visible := true; -end; - -procedure TFriedmanFrm.TrtOutClick(Sender: TObject); -VAR index : integer; -begin - index := TreatVars.ItemIndex; - if index < 0 then - begin - TrtOut.Visible := false; - TrtIn.Visible := true; - exit; - end; - VarList.Items.Add(TreatVars.Items.Strings[index]); - TreatVars.Items.Delete(index); - TrtIn.Visible := true; -end; - -procedure TFriedmanFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TFriedmanFrm.ComputeBtnClick(Sender: TObject); -Var - i, j, k, L, col, itemp, GrpCol, CondVar, mingrp, maxgrp : integer; - tiestart, tieend, NoSelected, NCases, group, nogrps : integer; - s, t, TotRanks, chisqr, probchi, score : double; - X, ColRanks : DblDyneVec; - Ranks, means : DblDyneMat; - RowLabels, ColLabels : StrDyneVec; - index : IntDyneVec; - GrpNo : IntdyneMat; - cellstring, outline: string; - title : string; - ties : boolean; - ColNoSelected : IntDyneVec; -begin - k := TreatVars.Items.Count; - NoSelected := k + 1; - SetLength(ColNoSelected,NoVariables); - SetLength(ColLabels,NoVariables); - - // get group variable and treatment variables - GrpCol := 0; - for i := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[i,0]; - if cellstring = GrpVar.Text then - begin - ColNoSelected[0] := i; - GrpCol := i; - end; - for j := 1 to k do - begin - if cellstring = TreatVars.Items.Strings[j-1] then - begin - ColNoSelected[j] := i; - ColLabels[j-1] := cellstring; - end; - end; - end; - - // get minimum and maximum group codes - NCases := 0; - mingrp := 10000; - maxgrp := -10000; - for i := 1 to NoCases do - begin - if not GoodRecord(i,NoSelected,ColNoSelected) then continue; - NCases := NCases + 1; - group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GrpCol,i]))); - if group > maxgrp then maxgrp := group; - if group < mingrp then mingrp := group; - end; - nogrps := maxgrp - mingrp + 1; - - // Initialize arrays - SetLength(RowLabels,nogrps); - SetLength(index,k); - SetLength(GrpNo,nogrps,k); - SetLength(Ranks,nogrps,k); - SetLength(means,nogrps,k); - SetLength(X,k); - SetLength(ColRanks,k); - for j := 0 to k-1 do - begin - for i := 0 to nogrps-1 do - begin - means[i,j] := 0.0; - Ranks[i,j] := 0.0; - GrpNo[i,j] := 0; - end; - ColRanks[j] := 0.0; - X[j] := 0.0; - index[j] := j+1; - end; - - // Initialize labels - for i := 1 to nogrps do - begin - cellstring := format('Group %d',[mingrp + i - 1]); - RowLabels[i-1] := cellstring; - end; - - // Setup for printing results - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('FRIEDMAN TWO-WAY ANOVA ON RANKS'); - OutPutFrm.RichEdit.Lines.Add('See pages 166-173 in S. Siegel''s Nonparametric Statistics'); - OutPutFrm.RichEdit.Lines.Add('for the Behavioral Sciences, McGraw-Hill Book Co., New York, 1956'); - OutPutFrm.RichEdit.Lines.Add(''); - - // Obtain mean score for each cell - for i := 1 to NoCases do - begin - if ( not GoodRecord(i,NoSelected,ColNoSelected)) then continue; - group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GrpCol,i]))); - group := group - mingrp + 1; - for j := 1 to k do // treatment values - begin - col := ColNoSelected[j]; - score := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,i])); - means[group-1,j-1] := means[group-1,j-1] + score; - GrpNo[group-1,j-1] := GrpNo[group-1,j-1] + 1; - end; - end; - for i := 1 to nogrps do - for j := 1 to k do - means[i-1,j-1] := means[i-1,j-1] / GrpNo[i-1,j-1]; - - // Print means and group size arrays - title := 'Treatment means - values to be ranked.'; - MAT_PRINT(means,nogrps,k,title,RowLabels,ColLabels,NCases); - title := 'Number in each group''s treatment.'; - IntArrayPrint(GrpNo,nogrps,k,'GROUP',RowLabels,ColLabels,title); - - // Gather row data in X array and rank within rows - for i := 0 to nogrps-1 do - begin - for j := 0 to k-1 do - begin - X[j] := means[i,j]; - index[j] := j+1; - end; - - //rank scores in this row i - for j := 1 to k - 1 do - begin - for L := j + 1 to k do - begin - if (X[j-1] > X[L-1]) then - begin - t := X[j-1]; - X[j-1] := X[L-1]; - X[L-1] := t; - itemp := index[j-1]; - index[j-1] := index[L-1]; - index[L-1] := itemp; - end; - end; - end; - for j := 1 to k do - begin - Ranks[i,index[j-1]-1] := j; - end; - - //Check for tied ranks and use average if desired here - tiestart := 0; - tieend := 0; - ties := false; - j := 1; - while j < k do - begin - for L := j + 1 to k do - begin - if (means[i,j-1] = means[i,L-1]) then - begin - ties := true; - tiestart := j; - tieend := L; - end; - end; - if (ties = true) then - begin - s := 0.0; - for L := tiestart to tieend do s := s + Ranks[i,L-1]; - for L := tiestart to tieend do - Ranks[i,L-1] := s / (tieend - tiestart + 1); - j := tieend; - ties := false; - end; - j := j + 1; - end; // next j - end; // next group i - - //Get sum of ranks in columns - for i := 1 to nogrps do - for j := 1 to k do - ColRanks[j-1] := ColRanks[j-1] + Ranks[i-1,j-1]; - - //Calculate Statistics - TotRanks := 0; - for j := 1 to k do TotRanks := TotRanks + (ColRanks[j-1] * ColRanks[j-1]); - chisqr := TotRanks * 12.0 / (nogrps * k * (k + 1)); - chisqr := chisqr - (3 * nogrps * (k + 1)); - probchi := 1.0 - chisquaredprob(chisqr, k - 1); - - //Now, show results - title := 'Score Rankings Within Groups'; - MAT_PRINT(Ranks,nogrps,k,title,RowLabels,ColLabels,NCases); - title := 'TOTAL RANKS'; - DynVectorPrint(ColRanks,k,title,ColLabels,NCases); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Chi-square with %d D.F. := %8.3f with probability := %6.4f', - [k-1, chisqr, probchi]); - OutPutFrm.RichEdit.Lines.Add(outline); - if ((k < 5) and (nogrps < 10)) then - begin - OutPutFrm.RichEdit.Lines.Add('Chi-square too approximate-use exact table (TABLE N)'); - OutPutFrm.RichEdit.Lines.Add('page 280-281 in Siegel'); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - // clean up the heap - ColRanks := nil; - X := nil; - means := nil; - Ranks := nil; - GrpNo := nil; - index := nil; - RowLabels := nil; - ColLabels := nil; - ColNoSelected := nil; -end; - -procedure TFriedmanFrm.GrpInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - GrpVar.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - GrpIn.Visible := false; - GrpOut.Visible := true; -end; - -procedure TFriedmanFrm.GrpOutClick(Sender: TObject); -begin - VarList.Items.Add(GrpVar.Text); - GrpVar.Text := ''; - GrpIn.Visible := true; - GrpOut.Visible := false; -end; - -procedure TFriedmanFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -initialization - {$I friedmanunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/FRIEDMANUNIT.lfm b/applications/lazstats/source_orig/FRIEDMANUNIT.lfm deleted file mode 100644 index ff131f4c7..000000000 --- a/applications/lazstats/source_orig/FRIEDMANUNIT.lfm +++ /dev/null @@ -1,286 +0,0 @@ -object FriedmanFrm: TFriedmanFrm - Left = 121 - Height = 299 - Top = 109 - Width = 498 - Caption = 'The Friedman Two Way ANOVA on Ranks' - ClientHeight = 299 - ClientWidth = 498 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 8 - Height = 14 - Top = 6 - Width = 90 - Caption = 'Available Variables' - ParentColor = False - end - object Label2: TLabel - Left = 217 - Height = 14 - Top = 15 - Width = 71 - Caption = 'Group Variable' - ParentColor = False - end - object Label3: TLabel - Left = 216 - Height = 14 - Top = 102 - Width = 97 - Caption = 'Treatment Variables' - ParentColor = False - end - object VarList: TListBox - Left = 8 - Height = 259 - Top = 22 - Width = 157 - ItemHeight = 0 - MultiSelect = True - TabOrder = 0 - end - object GrpIn: TBitBtn - Left = 176 - Height = 31 - Top = 23 - 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 = GrpInClick - TabOrder = 1 - end - object GrpOut: TBitBtn - Left = 176 - Height = 31 - 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 = GrpOutClick - TabOrder = 2 - end - object TrtIn: TBitBtn - Left = 176 - Height = 31 - Top = 104 - 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 = TrtInClick - TabOrder = 3 - end - object TrtOut: TBitBtn - Left = 176 - Height = 31 - Top = 136 - 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 = TrtOutClick - TabOrder = 4 - end - object GrpVar: TEdit - Left = 216 - Height = 21 - Top = 33 - Width = 152 - TabOrder = 5 - Text = 'GrpVar' - end - object TreatVars: TListBox - Left = 217 - Height = 161 - Top = 120 - Width = 153 - ItemHeight = 0 - TabOrder = 6 - end - object ResetBtn: TButton - Left = 400 - Height = 34 - Top = 112 - Width = 80 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 7 - end - object CancelBtn: TButton - Left = 400 - Height = 33 - Top = 56 - Width = 82 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 8 - end - object ComputeBtn: TButton - Left = 400 - Height = 32 - Top = 168 - Width = 80 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 9 - end - object ReturnBtn: TButton - Left = 400 - Height = 34 - Top = 224 - Width = 80 - Caption = 'Return' - ModalResult = 1 - TabOrder = 10 - end - object HelpBtn: TButton - Tag = 124 - Left = 400 - Height = 32 - Top = 8 - Width = 82 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 11 - end -end diff --git a/applications/lazstats/source_orig/FRIEDMANUNIT.lrs b/applications/lazstats/source_orig/FRIEDMANUNIT.lrs deleted file mode 100644 index 8c7cfb529..000000000 --- a/applications/lazstats/source_orig/FRIEDMANUNIT.lrs +++ /dev/null @@ -1,234 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TFriedmanFrm','FORMDATA',[ - 'TPF0'#12'TFriedmanFrm'#11'FriedmanFrm'#4'Left'#2'y'#6'Height'#3'+'#1#3'Top'#2 - +'m'#5'Width'#3#242#1#7'Caption'#6'#The Friedman Two Way ANOVA on Ranks'#12'C' - +'lientHeight'#3'+'#1#11'ClientWidth'#3#242#1#6'OnShow'#7#8'FormShow'#10'LCLV' - +'ersion'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'#2#14#3'To' - +'p'#2#6#5'Width'#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#15#5'Width' - +#2'G'#7'Caption'#6#14'Group Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Labe' - +'l3'#4'Left'#3#216#0#6'Height'#2#14#3'Top'#2'f'#5'Width'#2'a'#7'Caption'#6#19 - +'Treatment Variables'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2 - +#8#6'Height'#3#3#1#3'Top'#2#22#5'Width'#3#157#0#10'ItemHeight'#2#0#11'MultiS' - +'elect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#5'GrpIn'#4'Left'#3#176#0#6'Height'#2 - +#31#3'Top'#2#23#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'GrpInClick'#8'TabOrder'#2#1#0#0#7'TBitBtn' - +#6'GrpOut'#4'Left'#3#176#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'NumGlyphs'#2#0#7'OnClick'#7#11'GrpOutClick'#8 - +'TabOrder'#2#2#0#0#7'TBitBtn'#5'TrtIn'#4'Left'#3#176#0#6'Height'#2#31#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#255#255#255#0#255 - +#255#255#0#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'TrtInClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#6'TrtOut'#4'Left'#3 - +#176#0#6'Height'#2#31#3'Top'#3#136#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'TrtOutClick'#8'TabOrde' - +'r'#2#4#0#0#5'TEdit'#6'GrpVar'#4'Left'#3#216#0#6'Height'#2#21#3'Top'#2'!'#5 - +'Width'#3#152#0#8'TabOrder'#2#5#4'Text'#6#6'GrpVar'#0#0#8'TListBox'#9'TreatV' - +'ars'#4'Left'#3#217#0#6'Height'#3#161#0#3'Top'#2'x'#5'Width'#3#153#0#10'Item' - +'Height'#2#0#8'TabOrder'#2#6#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#144#1#6'He' - +'ight'#2'"'#3'Top'#2'p'#5'Width'#2'P'#7'Caption'#6#5'Reset'#7'OnClick'#7#13 - +'ResetBtnClick'#8'TabOrder'#2#7#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#144#1#6 - +'Height'#2'!'#3'Top'#2'8'#5'Width'#2'R'#7'Caption'#6#6'Cancel'#11'ModalResul' - +'t'#2#2#8'TabOrder'#2#8#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#144#1#6'Heig' - +'ht'#2' '#3'Top'#3#168#0#5'Width'#2'P'#7'Caption'#6#7'Compute'#7'OnClick'#7 - +#15'ComputeBtnClick'#8'TabOrder'#2#9#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3 - +#144#1#6'Height'#2'"'#3'Top'#3#224#0#5'Width'#2'P'#7'Caption'#6#6'Return'#11 - +'ModalResult'#2#1#8'TabOrder'#2#10#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2'|'#4'L' - +'eft'#3#144#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#11#0#0#0 -]); diff --git a/applications/lazstats/source_orig/FunctionsUnit.pas b/applications/lazstats/source_orig/FunctionsUnit.pas deleted file mode 100644 index 2aebdc491..000000000 --- a/applications/lazstats/source_orig/FunctionsUnit.pas +++ /dev/null @@ -1,217 +0,0 @@ -unit FunctionsUnit; - -{$MODE Delphi} - -interface - -uses SysUtils, ItemBankGlobals; - -function ReadMCItem(item : integer; VAR R3 : MCItemRcd) : boolean; -function ReadTFItem(item : integer; VAR R5 : TFItemRcd) : boolean; -function ReadMAItem(item : integer; VAR R1 : MatchItemsRcd) : boolean; -function ReadCOItem(item : integer; VAR R2 : BlankItemRcd) : boolean; -function ReadESItem(item : integer; VAR R4 : EssayItemRcd) : boolean; -procedure WriteMCItem(item : integer; VAR R3 : MCItemRcd); -procedure WriteTFItem(item : integer; VAR R5 : TFItemRcd); -procedure WriteMAItem(item : integer; VAR R1 : MatchItemsRcd); -procedure WriteCOItem(item : integer; VAR R2 : BlankItemRcd); -procedure WriteESItem(item : integer; VAR R4 : EssayItemRcd); - -implementation - -function ReadMCItem(item : integer; VAR R3 : MCItemRcd) : boolean; -var - found : boolean; - F3 : File of MCItemRcd; - filename : string; - -begin - found := false; - if FileExists(MCFName) { *Converted from FileExists* } then // multiple choice items - begin - filename := MCFName; - AssignFile(F3,filename); - Reset(F3); - Seek(F3,item-1); - Read(F3,R3); - found := true; - end; - CloseFile(F3); - Result := found; -end; -//------------------------------------------------------------------- - -function ReadTFItem(item : integer; VAR R5 : TFItemRcd) : boolean; -var - found : boolean; - F5 : File of TFItemRcd; - filename : string; - -begin - found := false; - if FileExists(TFFName) { *Converted from FileExists* } then // true-false items - begin - filename := TFFName; - AssignFile(F5,filename); - Reset(F5); - Seek(F5,item-1); - Read(F5,R5); - found := true; - end; - CloseFile(F5); - Result := found; -end; -//------------------------------------------------------------------- - -function ReadMAItem(item : integer; VAR R1 : MatchItemsRcd) : boolean; -var - found : boolean; - F1 : File of MatchItemsRcd; - filename : string; - -begin - found := false; - if FileExists(MatchFName) { *Converted from FileExists* } then // matching items - begin - filename := MatchFName; - AssignFile(F1,filename); - Reset(F1); - Seek(F1,item-1); - Read(F1,R1); - found := true; - end; - CloseFile(F1); - Result := found; -end; -//------------------------------------------------------------------- - -function ReadCOItem(item : integer; VAR R2 : BlankItemRcd) : boolean; -var - found : boolean; - F2 : File of BlankItemRcd; - filename : string; - -begin - found := false; - if FileExists(BlankFName) { *Converted from FileExists* } then // completion items - begin - filename := BlankFName; - AssignFile(F2,filename); - Reset(F2); - Seek(F2,item-1); - Read(F2,R2); - found := true; - end; - CloseFile(F2); - Result := found; -end; -//------------------------------------------------------------------- - -function ReadESItem(item : integer; VAR R4 : EssayItemRcd) : boolean; -var - found : boolean; - F4 : File of EssayItemRcd; - filename : string; - -begin - found := false; - if FileExists(EssayFName) { *Converted from FileExists* } then // essay items - begin - filename := EssayFName; - AssignFile(F4,filename); - Reset(F4); - Seek(F4,item-1); - Read(F4,R4); - found := true; - end; - CloseFile(F4); - Result := found; -end; -//------------------------------------------------------------------- - -procedure WriteMCItem(item : integer; VAR R3 : MCItemRcd); -var - F3 : File of MCItemRcd; - filename : string; -begin - if FileExists(MCFName) { *Converted from FileExists* } then // multiple choice items - begin - filename := MCFName; - AssignFile(F3,filename); - Reset(F3); - Seek(F3,item-1); - write(F3,R3); - end; - CloseFile(F3); -end; -//------------------------------------------------------------------- - -procedure WriteTFItem(item : integer; VAR R5 : TFItemRcd); -var - F5 : File of TFItemRcd; - filename : string; -begin - if FileExists(TFFName) { *Converted from FileExists* } then // true-false items - begin - filename := TFFName; - AssignFile(F5,filename); - Reset(F5); - Seek(F5,item-1); - write(F5,R5); - end; - CloseFile(F5); -end; -//------------------------------------------------------------------- - -procedure WriteMAItem(item : integer; VAR R1 : MatchItemsRcd); -var - F1 : File of MatchItemsRcd; - filename : string; -begin - if FileExists(MatchFName) { *Converted from FileExists* } then // matching items - begin - filename := MatchFName; - AssignFile(F1,filename); - Reset(F1); - Seek(F1,item-1); - write(F1,R1); - end; - CloseFile(F1); -end; -//------------------------------------------------------------------- - -procedure WriteCOItem(item : integer; VAR R2 : BlankItemRcd); -var - F2 : File of BlankItemRcd; - filename : string; -begin - if FileExists(BlankFName) { *Converted from FileExists* } then // completion items - begin - filename := BlankFName; - AssignFile(F2,filename); - Reset(F2); - Seek(F2,item-1); - write(F2,R2); - end; - CloseFile(F2); -end; -//------------------------------------------------------------------- - -procedure WriteESItem(item : integer; VAR R4 : EssayItemRcd); -var - F4 : File of EssayItemRcd; - filename : string; -begin - if FileExists(EssayFName) { *Converted from FileExists* } then // essay items - begin - filename := EssayFName; - AssignFile(F4,filename); - Reset(F4); - Seek(F4,item-1); - write(F4,R4); - end; - CloseFile(F4); -end; -//------------------------------------------------------------------- - -end. diff --git a/applications/lazstats/source_orig/abcnestedunit.lfm b/applications/lazstats/source_orig/abcnestedunit.lfm deleted file mode 100644 index 0151fe300..000000000 --- a/applications/lazstats/source_orig/abcnestedunit.lfm +++ /dev/null @@ -1,542 +0,0 @@ -object ABCNestedForm: TABCNestedForm - Left = 288 - Height = 504 - Top = 161 - Width = 726 - Caption = 'ABCNestedForm' - ClientHeight = 504 - ClientWidth = 726 - OnShow = ResetBtnClick - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 16 - Height = 16 - Top = 8 - Width = 102 - Caption = 'Available Variables:' - ParentColor = False - end - object Label2: TLabel - Left = 255 - Height = 16 - Top = 24 - Width = 90 - Caption = 'Factor A Variable' - ParentColor = False - end - object Label3: TLabel - Left = 255 - Height = 16 - Top = 96 - Width = 116 - Caption = 'Factor B (Nested in A)' - ParentColor = False - end - object Label4: TLabel - Left = 248 - Height = 16 - Top = 240 - Width = 104 - Caption = 'Dependent Variable' - ParentColor = False - end - object VarList: TListBox - Left = 16 - Height = 344 - 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 DepInBtn: TBitBtn - Left = 211 - Height = 26 - Top = 240 - 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 = DepInBtnClick - TabOrder = 5 - end - object DepOutBtn: TBitBtn - Left = 211 - Height = 26 - Top = 272 - 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 = DepOutBtnClick - TabOrder = 6 - end - object FactorAEdit: TEdit - Left = 255 - Height = 23 - Top = 40 - Width = 139 - TabOrder = 7 - Text = 'FactorAEdit' - end - object FactorBEdit: TEdit - Left = 255 - Height = 23 - Top = 112 - Width = 138 - TabOrder = 8 - Text = 'FactorBEdit' - end - object ResetBtn: TButton - Left = 24 - Height = 27 - Top = 392 - Width = 89 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 9 - end - object CancelBtn: TButton - Left = 24 - Height = 27 - Top = 440 - Width = 89 - Cancel = True - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 10 - end - object ComputeBtn: TButton - Left = 200 - Height = 27 - Top = 392 - Width = 89 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 11 - end - object ReturnBtn: TButton - Left = 200 - Height = 27 - Top = 440 - Width = 89 - Caption = 'Return' - ModalResult = 1 - TabOrder = 12 - end - object DepEdit: TEdit - Left = 248 - Height = 23 - Top = 256 - Width = 132 - TabOrder = 13 - Text = 'DepEdit' - end - object OptionsBox: TRadioGroup - Left = 423 - Height = 131 - Top = 344 - Width = 273 - AutoFill = True - Caption = 'OptionsBox' - 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 = 113 - ClientWidth = 269 - Items.Strings = ( - 'Plot means using 2D Horizontal Bars' - 'Plot means using 3D Horizontal Bars' - 'Plot means using 2D Vertical Bars' - 'Plot means using 3D Vertical Bars' - ) - TabOrder = 14 - end - object Memo1: TMemo - Left = 424 - Height = 320 - Top = 8 - Width = 272 - Lines.Strings = ( - 'Directions: This analysis assumes that levels of ' - 'Factor B are Nested within levels of Factor A.' - 'It is assumed that all factors are fixed level ' - 'factors.' - '' - 'The variables for the group coding should be' - 'defined as integers. The dependent variable ' - 'should be defined as a floating point variable.' - 'The number of cases for each ABC group should' - 'be equal and the number of B treatments in in ' - 'each A level should be equal. The number of C' - 'treatment levels should be the same for each AB' - 'combination.' - '' - 'Click the variable for each factor variable and the' - 'corresponding arrow to enter it in the edit box' - 'for that variable. Select the type of plot desired' - 'for the means (if any.) Click the Compute button' - 'to continue.' - ) - TabOrder = 15 - end - object CInBtn: TBitBtn - Left = 210 - 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 = 16 - 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 = 17 - end - object FactorCEdit: TEdit - Left = 253 - Height = 23 - Top = 186 - Width = 139 - TabOrder = 18 - Text = 'FactorCEdit' - end - object Label5: TLabel - Left = 253 - Height = 16 - Top = 168 - Width = 90 - Caption = 'Factor C Variable' - ParentColor = False - end -end diff --git a/applications/lazstats/source_orig/abcnestedunit.lrs b/applications/lazstats/source_orig/abcnestedunit.lrs deleted file mode 100644 index cd638cc40..000000000 --- a/applications/lazstats/source_orig/abcnestedunit.lrs +++ /dev/null @@ -1,468 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TABCNestedForm','FORMDATA',[ - 'TPF0'#14'TABCNestedForm'#13'ABCNestedForm'#4'Left'#3' '#1#6'Height'#3#248#1#3 - +'Top'#3#161#0#5'Width'#3#214#2#7'Caption'#6#13'ABCNestedForm'#12'ClientHeigh' - +'t'#3#248#1#11'ClientWidth'#3#214#2#6'OnShow'#7#13'ResetBtnClick'#10'LCLVers' - +'ion'#6#6'0.9.30'#0#6'TLabel'#6'Label1'#4'Left'#2#16#6'Height'#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't'#7'Caption'#6#22'Fa' - +'ctor B (Nested in A)'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#3 - +#248#0#6'Height'#2#16#3'Top'#3#240#0#5'Width'#2'h'#7'Caption'#6#18'Dependent' - +' Variable'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#16#6'Heig' - +'ht'#3'X'#1#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'T' - +'op'#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'NumGlyp' - +'hs'#2#0#7'OnClick'#7#11'AInBtnClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#7'AOutB' - ,'tn'#4'Left'#3#211#0#6'Height'#2#26#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'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'TabOrder'#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'NumGlyphs'#2#0#7'OnClick'#7#12'BOutBtnClick'#8'TabOrd' - +'er'#2#4#0#0#7'TBitBtn'#8'DepInBtn'#4'Left'#3#211#0#6'Height'#2#26#3'Top'#3 - +#240#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'NumGlyp' - +'hs'#2#0#7'OnClick'#7#13'DepInBtnClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'#9'Dep' - +'OutBtn'#4'Left'#3#211#0#6'Height'#2#26#3'Top'#3#16#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'NumGlyphs'#2#0#7'OnClick'#7#14'DepOutBtnClick' - +#8'TabOrder'#2#6#0#0#5'TEdit'#11'FactorAEdit'#4'Left'#3#255#0#6'Height'#2#23 - +#3'Top'#2'('#5'Width'#3#139#0#8'TabOrder'#2#7#4'Text'#6#11'FactorAEdit'#0#0#5 - +'TEdit'#11'FactorBEdit'#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#11'FactorBEdit'#0#0#7'TButton'#8'ResetBtn'#4 - +'Left'#2#24#6'Height'#2#27#3'Top'#3#136#1#5'Width'#2'Y'#7'Caption'#6#5'Reset' - +#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#9#0#0#7'TButton'#9'CancelBtn'#4 - +'Left'#2#24#6'Height'#2#27#3'Top'#3#184#1#5'Width'#2'Y'#6'Cancel'#9#7'Captio' - +'n'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#10#0#0#7'TButton'#10'Compu' - +'teBtn'#4'Left'#3#200#0#6'Height'#2#27#3'Top'#3#136#1#5'Width'#2'Y'#7'Captio' - +'n'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#11#0#0#7'TBu' - +'tton'#9'ReturnBtn'#4'Left'#3#200#0#6'Height'#2#27#3'Top'#3#184#1#5'Width'#2 - +'Y'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#12#0#0#5'TEdit' - +#7'DepEdit'#4'Left'#3#248#0#6'Height'#2#23#3'Top'#3#0#1#5'Width'#3#132#0#8'T' - +'abOrder'#2#13#4'Text'#6#7'DepEdit'#0#0#11'TRadioGroup'#10'OptionsBox'#4'Lef' - +'t'#3#167#1#6'Height'#3#131#0#3'Top'#3'X'#1#5'Width'#3#17#1#8'AutoFill'#9#7 - +'Caption'#6#10'OptionsBox'#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'q' - +#11'ClientWidth'#3#13#1#13'Items.Strings'#1#6'#Plot means using 2D Horizonta' - +'l Bars'#6'#Plot means using 3D Horizontal Bars'#6'!Plot means using 2D Vert' - +'ical Bars'#6'!Plot means using 3D Vertical Bars'#0#8'TabOrder'#2#14#0#0#5'T' - +'Memo'#5'Memo1'#4'Left'#3#168#1#6'Height'#3'@'#1#3'Top'#2#8#5'Width'#3#16#1 - +#13'Lines.Strings'#1#6'2Directions: This analysis assumes that levels of '#6 - +'.Factor B are Nested within levels of Factor A.'#6'/It is assumed that all ' - +'factors are fixed level '#6#8'factors.'#6#0#6',The variables for the group ' - +'coding should be'#6'-defined as integers. The dependent variable '#6'/shou' - +'ld be defined as a floating point variable.'#6'-The number of cases for eac' - +'h ABC group should'#6'.be equal and the number of B treatments in in '#6'.e' - +'ach A level should be equal. The number of C'#6'/treatment levels should b' - +'e the same for each AB'#6#12'combination.'#6#0#6'3Click the variable for ea' - +'ch factor variable and the'#6'/corresponding arrow to enter it in the edit ' - +'box'#6'3for that variable. Select the type of plot desired'#6'1for the mea' - +'ns (if any.) Click the Compute button'#6#12'to continue.'#0#8'TabOrder'#2 - +#15#0#0#7'TBitBtn'#6'CInBtn'#4'Left'#3#210#0#6'Height'#2#26#3'Top'#3#168#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'OnCl' - +'ick'#7#11'CInBtnClick'#8'TabOrder'#2#16#0#0#7'TBitBtn'#7'COutBtn'#4'Left'#3 - +#210#0#6'Height'#2#26#3'Top'#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'NumGlyphs'#2#0#7'OnClick'#7#12'COutBtnClick'#8'TabOrd' - +'er'#2#17#0#0#5'TEdit'#11'FactorCEdit'#4'Left'#3#253#0#6'Height'#2#23#3'Top' - +#3#186#0#5'Width'#3#139#0#8'TabOrder'#2#18#4'Text'#6#11'FactorCEdit'#0#0#6'T' - +'Label'#6'Label5'#4'Left'#3#253#0#6'Height'#2#16#3'Top'#3#168#0#5'Width'#2'Z' - +#7'Caption'#6#17'Factor C Variable'#11'ParentColor'#8#0#0#0 -]); diff --git a/applications/lazstats/source_orig/abcnestedunit.pas b/applications/lazstats/source_orig/abcnestedunit.pas deleted file mode 100644 index 806a5bb26..000000000 --- a/applications/lazstats/source_orig/abcnestedunit.pas +++ /dev/null @@ -1,952 +0,0 @@ -unit ABCNestedUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, ExtCtrls, MainUnit, OutPutUnit, FunctionsLib, GraphLib, - Globals, DataProcs, MatrixLib; - -type - - { TABCNestedForm } - - TABCNestedForm = class(TForm) - FactorCEdit: TEdit; - FactorAEdit: TEdit; - AInBtn: TBitBtn; - AOutBtn: TBitBtn; - FactorBEdit: TEdit; - BInBtn: TBitBtn; - BOutBtn: TBitBtn; - CancelBtn: TButton; - ComputeBtn: TButton; - DepEdit: TEdit; - DepInBtn: TBitBtn; - CInBtn: TBitBtn; - DepOutBtn: TBitBtn; - COutBtn: TBitBtn; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - Label5: TLabel; - Memo1: TMemo; - OptionsBox: TRadioGroup; - ResetBtn: TButton; - ReturnBtn: TButton; - 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 DepInBtnClick(Sender: TObject); - procedure DepOutBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - CellCount : IntDyneCube; - ASS, BSS, CSS, ASumSqr, BSumSqr, CSumSqr, AMeans, BMeans, ASDs : DblDyneVec; - CMeans, BSDs, CSDs : DblDyneVec; - ACSS,ACSumSqr, ACMeans, ACSDs, ABSS, ABSumSqr, ABMeans, ABSDs : DblDyneMat; - ACount, BCount, CCount : IntDyneVec; - ACCount, ABCount : IntDyneMat; - CellSDs, SS, SumSqr, CellMeans : DblDyneCube; - MinA, MinB, MaxA, MaxB, NoALevels, NoBLevels, ACol, BCol, YCol : integer; - CCol, MinC, MaxC, NoCLevels : integer; - DepVar, FactorA, FactorB, FactorC : string; - SSTot, SumSqrTot, TotMean, MSTot, SSA, MSA, SSB, MSB, SSW, MSW : double; - SSC, MSC, SSAC, MSAC, SSBwAC, SSAB, MSBwAC : double; - TotN, dfA, dfBwA, dfwcell, dftotal, dfC, dfAC, dfBwAC : integer; - ColNoSelected : IntDyneVec; - - procedure GetVars(Sender: TObject); - procedure GetMemory(Sender: TOBject); - procedure GetSums(Sender: TObject); - procedure ShowMeans(Sender: TObject); - procedure GetResults(Sender: TObject); - procedure ShowResults(Sender: TObject); - procedure ReleaseMemory(Sender: TObject); - procedure TwoWayPlot(Sender: TObject); - - public - { public declarations } - end; - -var - ABCNestedForm: TABCNestedForm; - -implementation - -{ TABCNestedForm } - -procedure TABCNestedForm.ResetBtnClick(Sender: TObject); -VAR - i : integer; -begin - VarList.Items.Clear; - FactorAEdit.Text := ''; - FactorBEdit.Text := ''; - FactorCEdit.Text := ''; - DepEdit.Text := ''; - AInBtn.Visible := true; - AOutBtn.Visible := false; - BInBtn.Visible := true; - BOutBtn.Visible := false; - CInBtn.Visible := true; - COutBtn.Visible := false; - DepInBtn.Visible := true; - DepoutBtn.Visible := false; - OptionsBox.ItemIndex := 3; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - OptionsBox.ItemIndex := 3; -end; - -procedure TABCNestedForm.AInBtnClick(Sender: TObject); -VAR - index : integer; -begin - index := VarList.ItemIndex; - FactorAEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - AinBtn.Visible := false; - AOutBtn.Visible := true; -end; - -procedure TABCNestedForm.AOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(FactorAEdit.Text); - FactorAEdit.Text := ''; - AinBtn.Visible := true; - AOutBtn.Visible := false; -end; - -procedure TABCNestedForm.BInBtnClick(Sender: TObject); -VAR - index : integer; -begin - index := VarList.ItemIndex; - FactorBEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - BInBtn.Visible := false; - BOutBtn.Visible := true; -end; - -procedure TABCNestedForm.BOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(FactorBEdit.Text); - FactorBEdit.Text := ''; - BInBtn.Visible := true; - BOutBtn.Visible := false; -end; - -procedure TABCNestedForm.CInBtnClick(Sender: TObject); -VAR - index : integer; -begin - index := VarList.ItemIndex; - FactorCEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - BInBtn.Visible := false; - BOutBtn.Visible := true; -end; - -procedure TABCNestedForm.ComputeBtnClick(Sender: TObject); -begin - GetVars(self); - GetMemory(self); - GetSums(self); - ShowMeans(self); - GetResults(self); - ShowResults(self); - TwoWayPlot(self); - ReleaseMemory(self); -end; - -procedure TABCNestedForm.COutBtnClick(Sender: TObject); -begin - VarList.Items.Add(FactorCEdit.Text); - FactorCEdit.Text := ''; - BInBtn.Visible := true; - BOutBtn.Visible := false; -end; - -procedure TABCNestedForm.DepInBtnClick(Sender: TObject); -VAR - index : integer; -begin - index := VarList.ItemIndex; - DepEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - DepOutBtn.Visible := true; - DepInBtn.Visible := false; -end; - -procedure TABCNestedForm.DepOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(DepEdit.Text); - DepEdit.Text := ''; - DepInBtn.Visible := true; - DepOutBtn.Visible := false; -end; - -procedure TABCNestedForm.GetVars(Sender: TObject); -VAR - result, intvalue, i, group : integer; - AValue, BValue, CValue, dblvalue : double; - strvalue, cellstring : string; -begin - SetLength(ColNoSelected,4); - DepVar := DepEdit.Text; - FactorA := FactorAEdit.Text; - FactorB := FactorBEdit.Text; - FactorC := FactorCEdit.Text; - ACol := 0; - BCol := 0; - CCol := 0; - YCol := 0; - MinA := 1000; - MaxA := -1000; - MinB := 1000; - MaxB := -1000; - MinC := 1000; - MaxC := -1000; - for i := 1 to NoVariables do - begin - strvalue := Trim(OS3MainFrm.DataGrid.Cells[i,0]); - if FactorA = strvalue then - begin - ACol := i; - ColNoSelected[0] := i; - end; - if FactorB = strvalue then - begin - BCol := i; - ColNoSelected[1] := i; - end; - if FactorC = strvalue then - begin - CCol := i; - ColNoSelected[2] := i; - end; - if DepVar = strvalue then - begin - YCol := i; - ColNoSelected[3] := i; - end; - end; - if (ACol = 0) or (BCol = 0) or (CCol = 0) or (YCol = 0) then - begin - ShowMessage('ERROR! Select a variable for each entry box.'); - exit; - end; - // get number of levels for Factors - for i := 1 to NoCases do - begin - 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]); - group := round(StrToFLoat(cellstring)); - if (group > MaxB) then MaxB := group; - if (group < MinB) then MinB := group; - cellstring := Trim(OS3MainFrm.DataGrid.Cells[CCol,i]); - group := round(StrToFLoat(cellstring)); - if (group > MaxC) then MaxC := group; - if (group < MinC) then MinC := group; - end; - NoALevels := MaxA - MinA + 1; - NoBLevels := MaxB - MinB + 1; - NoCLevels := MaxC - MinC + 1; -end; - -procedure TABCNestedForm.GetMemory(Sender: TOBject); -begin - SetLength(SS,NoBLevels,NoALevels,NoCLevels); - SetLength(SumSqr,NoBLevels,NoALevels,NoCLevels); - SetLength(CellCount,NoBLevels,NoALevels,NoCLevels); - SetLength(CellMeans,NoBLevels,NoALevels,NoCLevels); - SetLength(CellSDs,NoBLevels,NoALevels,NoCLevels); - SetLength(ASS,NoALevels); - SetLength(BSS,NoBLevels); - SetLength(CSS,NoCLevels); - SetLength(ASumSqr,NoALevels); - SetLength(BSumSqr,NoBLevels); - SetLength(CSumSqr,NoCLevels); - SetLength(AMeans,NoALevels); - SetLength(BMeans,NoBLevels); - SetLength(CMeans,NoCLevels); - SetLength(ACount,NoALevels); - SetLength(BCount,NoBLevels); - SetLength(CCount,NoCLevels); - SetLength(ASDs,NoALevels); - SetLength(BSDs,NoBLevels); - SetLength(CSDs,NoCLevels); - SetLength(ACSS,NoALevels,NoCLevels); - SetLength(ACSumSqr,NoALevels,NoCLevels); - SetLength(ACCount,NoALevels,NoCLevels); - SetLength(ACMeans,NoALevels,NoCLevels); - SetLength(ACSDs,NoALevels,NoCLevels); - SetLength(ABSS,NoALevels,NoBLevels); - SetLength(ABSumSqr,NoALevels,NoBLevels); - SetLength(ABMeans,NoALevels,NoBLevels); - SetLength(ABCount,NoALevels,NoBLevels); - SetLength(ABSDs,NoALevels,NoBLevels); -end; - -procedure TABCNestedForm.GetSums(Sender: TObject); -VAR - Aindex, Bindex, Cindex, result, intvalue, i, j, k : integer; - dblvalue, YValue : double; - strvalue : string; -begin - // clear memory - SSTot := 0.0; - SumSqrTot := 0.0; - for i := 0 to NoBLevels-1 do - begin - for j := 0 to NoALevels-1 do - begin - for k := 0 to NoCLevels-1 do - begin - SS[i,j,k] := 0.0; - SumSqr[i,j,k] := 0.0; - CellCount[i,j,k] := 0; - CellMeans[i,j,k] := 0.0; - end; - end; - end; - - for i := 0 to NoALevels-1 do - begin - ACount[i] := 0; - AMeans[i] := 0.0; - ASS[i] := 0.0; - ASumSqr[i] := 0.0; - end; - for j := 0 to NoBLevels-1 do - begin - BCount[j] := 0; - BMeans[j] := 0.0; - BSS[j] := 0.0; - BSumSqr[j] := 0.0; - end; - for k := 0 to NoCLevels-1 do - begin - CCount[k] := 0; - CMeans[k] := 0.0; - CSS[k] := 0.0; - CSumSqr[k] := 0.0; - end; - - for i := 0 to NoALevels-1 do - begin - for j := 0 to NoBLevels-1 do - begin - ABSS[i,j] := 0.0; - ABSumSqr[i,j] := 0.0; - ABCount[i,j] := 0; - ABSDs[i,j] := 0.0; - end; - end; - for i := 0 to NoALevels-1 do - begin - for k := 0 to NoCLevels-1 do - begin - ACSS[i,k] := 0.0; - ACSumSqr[i,k] := 0.0; - ACCount[i,k] := 0; - ACSDs[i,k] := 0.0; - end; - end; - - // accumulate sums and sums of squared values - for i := 1 to NoCases do - begin - strvalue := Trim(OS3MainFrm.DataGrid.Cells[ACol,i]); - Aindex := round(StrToFloat(strvalue)); - strvalue := Trim(OS3MainFrm.DataGrid.Cells[BCol,i]); - Bindex := round(StrToFloat(strvalue)); - strvalue := Trim(OS3MainFrm.DataGrid.Cells[CCol,i]); - Cindex := round(StrToFloat(strvalue)); - strvalue := Trim(OS3MainFrm.DataGrid.Cells[YCol,i]); - YValue := StrToFloat(strvalue); - Aindex := Aindex - MinA; - Bindex := Bindex - MinB; - Cindex := Cindex - MinC; - SS[Bindex,Aindex,Cindex] := SS[Bindex,Aindex,Cindex] + YValue * YValue; - SumSqr[Bindex,Aindex,Cindex] := SumSqr[Bindex,Aindex,Cindex] + YValue; - CellCount[Bindex,Aindex,Cindex] := CellCount[Bindex,Aindex,Cindex] + 1; - ACount[Aindex] := ACount[Aindex] + 1; - BCount[Bindex] := BCount[Bindex] + 1; - CCount[Cindex] := CCount[Cindex] + 1; - ASS[Aindex] := ASS[Aindex] + YValue * YValue; - BSS[Bindex] := BSS[Bindex] + YValue * YValue; - CSS[Cindex] := CSS[Cindex] + YValue * YValue; - ASumSqr[Aindex] := ASumSqr[Aindex] + YValue; - BSumSqr[Bindex] := BSumSqr[Bindex] + YValue; - CSumSqr[Cindex] := CSumSqr[Cindex] + YValue; - ACSS[Aindex,Cindex] := ACSS[Aindex,Cindex] + YValue * YValue; - ACSumSqr[Aindex,Cindex] := ACSumSqr[Aindex,Cindex] + YValue; - ACCount[Aindex,Cindex] := ACCount[Aindex,Cindex] + 1; - ABSS[Aindex,Bindex] := ABSS[Aindex,Bindex] + YValue * YValue; - ABSumSqr[Aindex,Bindex] := ABSumSqr[Aindex,Bindex] + YValue; - ABCount[Aindex,Bindex] := ABCount[Aindex,Bindex] + 1; - SSTot := SSTot + YValue * YValue; - SumSqrTot := SumSqrTot + YValue; - TotN := TotN + 1; - end; - - // get cell means and marginal means plus square of sums - for i := 0 to NoBLevels-1 do - begin - for j := 0 to NoALevels-1 do - begin - for k := 0 to NoCLevels-1 do - begin - if CellCount[i,j,k] > 0 then - begin - CellMeans[i,j,k] := SumSqr[i,j,k] / CellCount[i,j,k]; - SumSqr[i,j,k] := SumSqr[i,j,k] * SumSqr[i,j,k]; - CellSDs[i,j,k] := SS[i,j,k] - (SumSqr[i,j,k] / CellCount[i,j,k]); - CellSDs[i,j,k] := CellSDs[i,j,k] / (CellCount[i,j,k] - 1); - CellSDs[i,j,k] := sqrt(CellSDs[i,j,k]); - end; - end; - end; - end; - for i := 0 to NoBLevels-1 do - begin - if BCount[i] > 0 then - begin - BMeans[i] := BSumSqr[i] / BCount[i]; - BSumSqr[i] := BSumSqr[i] * BSumSqr[i]; - BSDs[i] := BSS[i] - (BSumSqr[i] / BCount[i]); - BSDs[i] := BSDs[i] / (BCount[i] - 1); - BSDs[i] := sqrt(BSDs[i]); - end; - end; - for i := 0 to NoALevels-1 do - begin - AMeans[i] := ASumSqr[i] / ACount[i]; - ASumSqr[i] := ASumSqr[i] * ASumSqr[i]; - ASDs[i] := ASS[i] - (ASumSqr[i] / ACount[i]); - ASDs[i] := ASDs[i] / (ACount[i] - 1); - ASDs[i] := Sqrt(ASDs[i]); - end; - for i := 0 to NoCLevels-1 do - begin - CMeans[i] := CSumSqr[i] / CCount[i]; - CSumSqr[i] := CSumSqr[i] * CSumSqr[i]; - CSDs[i] := CSS[i] - (CSumSqr[i] / CCount[i]); - CSDs[i] := CSDs[i] / (CCount[i] - 1); - CSDs[i] := sqrt(CSDs[i]); - end; - for i := 0 to NoALevels-1 do - begin - for k := 0 to NoCLevels-1 do - begin - ACMeans[i,k] := ACMeans[i,k] / ACCount[i,k]; - ACSumSqr[i,k] := ACSumSqr[i,k] * ACSumSqr[i,k]; - ACSDs[i,k] := ACSS[i,k] - (ACSumSqr[i,k] / ACCount[i,k]); - ACSDs[i,k] := ACSDs[i,k] / (ACCount[i,k] - 1); - ACSDs[i,k] := sqrt(ACSDs[i,k]); - end; - end; - for i := 0 to NoALevels-1 do - begin - for j := 0 to NoBLevels-1 do - begin - if ABCount[i,j] > 0 then - begin - ABMeans[i,j] := ABSumSqr[i,j] / ABCount[i,j]; - ABSumSqr[i,j] := ABSumSqr[i,j] * ABSumSqr[i,j]; - ABSDs[i,j] :=ABSS[i,j] - (ABSumSqr[i,j] / ABCount[i,j]); - ABSDs[i,j] := ABSDs[i,j] / (ABCount[i,j] - 1); - ABSDs[i,j] := sqrt(ABSDs[i,j]); - end; - end; - end; - TotMean := SumSqrTot / TotN; - SumSqrTot := SumSqrTot * SumSqrTot; -end; - -procedure TABCNestedForm.ShowMeans(Sender: TObject); -VAR - outvalue : string; - i, j, k : integer; -begin - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Nested ANOVA by Bill Miller'); - outvalue := format('File Analyzed = %s',[OS3MainFrm.FileNameEdit.Text]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('CELL MEANS'); - OutPutFrm.RichEdit.Lines.Add('A LEVEL BLEVEL CLEVEL MEAN STD.DEV.'); - for i := 0 to NoALevels-1 do - begin - for j := 0 to NoBLevels-1 do - begin - for k := 0 to NoCLevels-1 do - begin - if CellCount[j,i,k] > 0 then - begin - outvalue := format('%5D %5D %5D %10.4f %10.4f', - [i+MinA,j+MinB,k+MinC,CellMeans[j,i,k],CellSDs[j,i,k]]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - end; - end; - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('A MARGIN MEANS'); - OutPutFrm.RichEdit.Lines.Add('A LEVEL MEAN STD.DEV.'); - for i := 0 to NoALevels-1 do - begin - outvalue := format('%5d %10.3f %10.3f',[i+MinA,AMeans[i],ASDs[i]]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('B MARGIN MEANS'); - OutPutFrm.RichEdit.Lines.Add('B LEVEL MEAN STD.DEV.'); - for i := 0 to NoBLevels-1 do - begin - if BCount[i] > 0 then - begin - outvalue := format('%5d %10.3f %10.3f',[i+MinB,BMeans[i],BSDs[i]]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('C MARGIN MEANS'); - OutPutFrm.RichEdit.Lines.Add('C LEVEL MEAN STD.DEV.'); - for i := 0 to NoCLevels-1 do - begin - if CCount[i] > 0 then - begin - outvalue := format('%5d %10.3f %10.3f',[i+MinC,CMeans[i],CSDs[i]]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - end; - end; - - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('AB MARGIN MEANS'); - OutPutFrm.RichEdit.Lines.Add('A LEVEL B LEVEL MEAN STD.DEV.'); - for i := 0 to NoALevels-1 do - begin - for j := 0 to NoBLevels-1 do - begin - if ABCount[i,j] > 0 then - begin - outvalue := format('%5d %5D %10.3f %10.3f',[i+MinA,j+MinB,ABMeans[i,j],ABSDs[i,j]]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - end; - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('AC MARGIN MEANS'); - OutPutFrm.RichEdit.Lines.Add('A LEVEL C LEVEL MEAN STD.DEV.'); - for i := 0 to NoALevels-1 do - begin - for j := 0 to NoCLevels-1 do - begin - if ACCount[i,j] > 0 then - begin - outvalue := format('%5d %5D %10.3f %10.3f',[i+MinA,j+MinC,ACMeans[i,j],ACSDs[i,j]]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - end; - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - outvalue := format('GRAND MEAN = %10.3f',[TotMean]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - OutPutFrm.RichEdit.Lines.Add(''); -// OutPutFrm.ShowModal; -end; - -procedure TABCNestedForm.GetResults(Sender: TObject); -VAR - temp, temp2, temp3, temp4, constant : double; - NoBLevelsInA, BLevCount, i, j, k, celln : integer; - strvalue : string; - -begin - celln := 0; - for i := 0 to NoALevels-1 do - begin - for j := 0 to NoBLevels-1 do - begin - for k := 0 to NoCLevels-1 do - begin - if CellCount[j,i,k] > celln then celln := CellCount[j,i,k]; - end; - end; - end; - // assume all cells have same n size - // get no. of levels in A - BLevCount := 0; - for i := 0 to NoALevels-1 do - begin - NoBLevelsInA := 0; - for j := 0 to NoBLevels-1 do - begin - if CellCount[j,i,0] > 0 then NoBLevelsInA := NoBLevelsInA + 1; - end; - if NoBLevelsInA > BLevCount then BLevCount := NoBLevelsInA; - end; - dfA := NoALevels - 1; - dfBwA := NoALevels * (BLevCount - 1); - dfC := NoCLevels - 1; - dfAC := (NoALevels-1) * (NoCLevels-1); - dfBwAC := NoALevels * (BLevCount-1) * (NoCLevels -1); - dfwcell := NoALevels * BLevCount * NoCLevels * (celln - 1); - dftotal := TotN - 1; - - constant := SumSqrTot / TotN; - SSTot := SSTot - constant; - MSTot := SSTot / dftotal; - - // get A Effects - SSA := 0.0; - for i := 0 to NoALevels-1 do SSA := SSA + (ASumSqr[i] / ACount[i]); - temp := SSA; - SSA := SSA - constant; - MSA := SSA / dfA; - - //Get C Effects - SSC := 0.0; - for i := 0 to NoCLevels-1 do SSC := SSC + (CSumSqr[i] / CCount[i]); - temp2 := SSC; - SSC := SSC - constant; - MSC := SSC / dfC; - - // get B within A - SSB := 0.0; - for i := 0 to NoALevels - 1 do - begin - for j := 0 to NoBLevels-1 do - begin - if ABCount[i,j] > 0 then SSB := SSB + (ABSumSqr[i,j] / ABCount[i,j]); - end; - end; - temp3 := SSB; - SSB := SSB - temp; - MSB := SSB / dfBwA; - - // get AC interaction - SSAC := 0.0; - for i := 0 to NoALevels-1 do - begin - for j := 0 to NoCLevels-1 do SSAC := SSAC + ACSumSqr[i,j] / ACCount[i,j] - end; - temp4 := SSAC; - SSAC := SSAC - temp - temp2 + constant; - MSAC := SSAC / dfAC; - - // get B within A x C interaction - SSBwAC := 0.0; - for i := 0 to NoALevels-1 do - begin - for j := 0 to NoBLevels-1 do - begin - for k := 0 to NoCLevels-1 do - begin - if CellCount[j,i,k] > 0 then SSBwAC := SSBwAC + - (SumSqr[j,i,k] / CellCount[j,i,k]); - end; - end; - end; - SSBwAC := SSBwAC - temp3 - temp4 + temp; - MSBwAC := SSBwAC / dfBwAC; - - SSW := SSTot - SSA - SSB - SSAB - SSAC - SSBwAC; - MSW := SSW / dfwcell; -end; - -procedure TABCNestedForm.ShowResults(Sender: TObject); -VAR - outvalue : string; - F, PF : double; -begin - OutPutFrm.RichEdit.Lines.Add('ANOVA TABLE'); - OutPutFrm.RichEdit.Lines.Add('SOURCE D.F. SS MS F PROB.'); - F := MSA / MSW; - PF := probf(F,dfA,dfwcell); - outvalue := format('A %4D %10.3f%10.3f%10.3f%10.3f',[dfA,SSA,MSA,F,PF]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - F := MSB / MSW; - PF := probf(F,dfBwA,dfwcell); - outvalue := format('B(A) %4D %10.3f%10.3f%10.3f%10.3f',[dfBwA,SSB,MSB,F,PF]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - F := MSC / MSW; - PF := probf(F,dfC,dfwcell); - outvalue := format('C %4D %10.3f%10.3f%10.3f%10.3f',[dfC,SSC,MSC,F,PF]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - F := MSAC / MSW; - PF := probf(F,dfAC,dfwcell); - outvalue := format('AxC %4D %10.3f%10.3f%10.3f%10.3f',[dfAC,SSAC,MSAC,F,PF]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - F := MSBwAC / MSW; - PF := probf(F,dfBwAC,dfwcell); - outvalue := format('B(A)xC %4D %10.3f%10.3f%10.3f%10.3f',[dfBwAC,SSBwAC,MSBwAC,F,PF]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - outvalue := format('w.cells %4D %10.3f%10.3f',[dfwcell,SSW,MSW]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - outvalue := format('Total %4D %10.3f',[dftotal,SSTot]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - OutPutFrm.ShowModal; -end; - -procedure TABCNestedForm.ReleaseMemory(Sender: TObject); -begin - ColNoSelected := nil; - ABSDs := nil; - ABCount := nil; - ABMeans := nil; - ABSumSqr := nil; - ABSS := nil; - ACSDs := nil; - ACMeans := nil; - ACCount := nil; - ACSumSqr := nil; - ACSS := nil; - CSDs := nil; - BSDs := nil; - ASDs := nil; - CCount := nil; - BCount := nil; - ACount := nil; - CMeans := nil; - BMeans := nil; - AMeans := nil; - CSumSqr := nil; - BSumSqr := nil; - ASumSqr := nil; - CSS := nil; - BSS := nil; - ASS := nil; - CellSDs := nil; - CellMeans := nil; - CellCount := nil; - SumSqr := nil; - SS := nil; -end; - -procedure TABCNestedForm.TwoWayPlot(Sender: TObject); -VAR - plottype, i, j, k : integer; - maxmean, XBar : double; - title, setstring : string; - XValue : DblDyneVec; -begin - plottype := OptionsBox.ItemIndex + 1; - if plottype = 3 then plottype := 1 - else if plottype = 4 then plottype := 2 - else if plottype = 1 then plottype := 9 - else if plottype = 2 then plottype := 10; - - // Factor A first - maxmean := -1000.0; - SetLength(XValue,NoALevels); - setstring := 'FACTOR A'; - GraphFrm.SetLabels[1] := setstring; - SetLength(GraphFrm.Xpoints,1,NoALevels); - SetLength(GraphFrm.Ypoints,1,NoALevels); - for i := 1 to NoALevels do - begin - GraphFrm.Ypoints[0,i-1] := AMeans[i-1]; - if AMeans[i-1] > maxmean then maxmean := AMeans[i-1]; - XValue[i-1] := MinA + i -1; - GraphFrm.Xpoints[0,i-1] := XValue[i-1]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NoALevels; - GraphFrm.Heading := FactorA; - title := FactorA + ' Group Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; - XValue := nil; - - // Factor B next - SetLength(XValue,NoBLevels); - setstring := 'FACTOR B'; - GraphFrm.SetLabels[1] := setstring; - maxmean := -1000.0; - SetLength(GraphFrm.Xpoints,1,NoBLevels); - SetLength(GraphFrm.Ypoints,1,NoBLevels); - for i := 1 to NoBLevels do - begin - GraphFrm.Ypoints[0,i-1] := BMeans[i-1]; - if BMeans[i-1] > maxmean then maxmean := BMeans[i-1]; - XValue[i-1] := MinB + i - 1; - GraphFrm.Xpoints[0,i-1] := XValue[i-1]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NoBLevels; - GraphFrm.Heading := 'FACTOR B'; - title := FactorB + ' Group Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; - XValue := nil; - - // Factor C next - SetLength(XValue,NoCLevels); - setstring := 'FACTOR C'; - GraphFrm.SetLabels[1] := setstring; - maxmean := -1000.0; - SetLength(GraphFrm.Xpoints,1,NoCLevels); - SetLength(GraphFrm.Ypoints,1,NoCLevels); - for i := 0 to NoCLevels-1 do - begin - GraphFrm.Ypoints[0,i] := CMeans[i]; - if CMeans[i] > maxmean then maxmean := CMeans[i]; - XValue[i] := MinC + i - 1; - GraphFrm.Xpoints[0,i] := XValue[i]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NoCLevels; - GraphFrm.Heading := 'FACTOR C'; - title := FactorB + ' Group Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; - XValue := nil; - - // Factor A x B interaction within each slice next - SetLength(XValue,NoALevels + NoBLevels); - SetLength(GraphFrm.Ypoints,NoALevels,NoBLevels); - SetLength(GraphFrm.Xpoints,1,NoBLevels); - for k := 0 to NoCLevels-1 do - begin - maxmean := -1000.0; - for i := 0 to NoALevels-1 do - begin - setstring := 'FACTOR A ' + IntToStr(i+1); - GraphFrm.SetLabels[i+1] := setstring; - for j := 0 to NoBLevels-1 do - begin - if ABCount[i,j] > 0 then - begin - if ABMeans[i,j] > maxmean then maxmean := ABMeans[i,j]; - GraphFrm.Ypoints[i,j] := ABMeans[i,j]; - end; - end; - end; - for j := 0 to NoBLevels-1 do - begin - XValue[j] := MinB + j - 1; - GraphFrm.Xpoints[0,j] := XValue[j]; - end; - GraphFrm.nosets := NoALevels; - GraphFrm.nbars := NoBLevels; - GraphFrm.Heading := 'FACTOR A x Factor B within C' + IntToStr(k+1); - title := FactorB + ' Group Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; - XValue := nil; - - //Factor A x C Interaction within each column next - setLength(XValue,NoALevels+NoCLevels); - SetLength(GraphFrm.Xpoints,1,NoCLevels); - SetLength(GraphFrm.Ypoints,NoALevels,NoCLevels); - for j := 0 to NoBLevels-1 do - begin - maxmean := 0.0; - for i := 0 to NoALevels-1 do - begin - setstring := 'Factor A ' + IntToStr(i+1); - GraphFrm.SetLabels[i+1] := setstring; - for k := 0 to NoCLevels-1 do - begin - XBar := ACMeans[i,k]; - if XBar > maxmean then maxmean := XBar; - GraphFrm.Ypoints[i,k] := XBar; - end; - end; - for k := 0 to NoCLevels-1 do - begin - XValue[k] := MinC + k - 1; - GraphFrm.Xpoints[0,k] := XValue[k]; - end; - GraphFrm.nosets := NoALevels; - GraphFrm.nbars := NoCLevels; - GraphFrm.Heading := 'FACTOR A x Factor C within B ' + IntToStr(j+1); - title := FactorC + ' Group Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; -// GraphFrm.ShowModal; - end; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; - XValue := nil; - end; - -initialization - {$I abcnestedunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/anovatestsunit.pas b/applications/lazstats/source_orig/anovatestsunit.pas deleted file mode 100644 index 294ccb623..000000000 --- a/applications/lazstats/source_orig/anovatestsunit.pas +++ /dev/null @@ -1,653 +0,0 @@ -unit ANOVATESTSUnit; - -{$mode objfpc}{$H+} - -interface - -uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, - FunctionsLib, OutPutUnit, Globals, MainUnit, DataProcs; - -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) - -procedure HomogeneityTest(GroupCol : integer; - VarColumn : integer; - NoCases : integer); - -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; -procedure HomogeneityTest(GroupCol : integer; - VarColumn : integer; - NoCases : integer); -Var - i, j, k, N, intvalue, intvalue2, Nf1cells, tempi : integer; - min, max : integer; - zscores : DblDyneMat; - medians : DblDyneVec; - cellcnts : IntDyneVec; - cellvars : DblDyneVec; - cellsums : DblDyneVec; - X, X2, temp : double; - DFF1, DFErr, DFTot : integer; - SSF1, SSDep, SSErr : double; - MSF1, MSDep, MSErr : double; - Omega, F, ProbF1, MeanDep : double; - outline : string; -begin - // complete a one-way anova on z scores obtained as the absolute difference - // between between the observed score and the median of a group. - - // get min and max group codes - min := 100000; - max := 0; - N := 0; - - for i := 1 to NoCases do - begin - intvalue := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GroupCol,i]))); - if intvalue < min then min := intvalue; - if intvalue > max then max := intvalue; - end; - Nf1cells := max - min + 1; - - setlength(zscores,Nf1cells,NoCases); - setlength(medians,Nf1cells); - setlength(cellcnts,Nf1cells); - setlength(cellvars,Nf1cells); - setlength(cellsums,Nf1cells); - - // Get cell counts - for i := 1 to NoCases do - begin - intvalue := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GroupCol,i]))); - intvalue := intvalue - min + 1; - cellcnts[intvalue-1] := cellcnts[intvalue-1] + 1; - end; - - // get working totals - for j := 0 to Nf1cells do - begin - k := 0; - for i := 1 to NoCases do - begin - if not ValidValue(i,VarColumn) then continue; - intvalue := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GroupCol,i]))); - intvalue := intvalue - min; - if intvalue <> j then continue; - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[VarColumn,i])); - zscores[intvalue,k] := X; - k := k + 1; - end; - end; - - //sort on z scores and obtain the median for each group - for i := 0 to Nf1cells-1 do // sort scores in each group - begin - for j := 0 to cellcnts[i]-2 do - begin - for k := j+1 to cellcnts[i]-1 do - begin - X := zscores[i,j]; - X2 := zscores[i,k]; - if X2 < X then // swap - begin - temp := X; - X := X2; - X2 := temp; - end; - end; - end; - end; - - for i := 0 to Nf1cells-1 do - begin - medians[i] := zscores[i,cellcnts[i] div 2]; - end; - - // Get deviations from the medians - for i := 0 to Nf1cells-1 do - begin - for j := 0 to cellcnts[i]-1 do - zscores[i,j] := zscores[i,j] - medians[i]; - end; - - // place group membership and z deviation scores in columns and - // do a regular one-way ANOVA - k := 0; - for i := 0 to Nf1cells-1 do - begin - for j := 0 to cellcnts[i]-1 do - begin - k := k +1; - OS3MainFrm.DataGrid.Cells[GroupCol,k] := IntToStr(i+1); - OS3MainFrm.DataGrid.Cells[VarColumn,k] := FloatToStr(abs(zscores[i,j])); - end; - end; - outline := 'Data have been placed in the grid. Do a one-way ANOVA'; - ShowMessage(outline); -end; - -end. - diff --git a/applications/lazstats/source_orig/avglinkunit.lfm b/applications/lazstats/source_orig/avglinkunit.lfm deleted file mode 100644 index 4b489f953..000000000 --- a/applications/lazstats/source_orig/avglinkunit.lfm +++ /dev/null @@ -1,71 +0,0 @@ -object AvgLinkFrm: TAvgLinkFrm - Left = 241 - Height = 112 - Top = 105 - Width = 328 - Caption = 'Average Linkage Hierarchical Clustering' - ClientHeight = 112 - ClientWidth = 328 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object RadioGroup1: TRadioGroup - Left = 8 - Height = 67 - Top = 8 - Width = 116 - AutoFill = True - Caption = 'Matrix Type Is:' - 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 = 112 - Items.Strings = ( - 'Similarities' - 'Dissimilarities' - ) - TabOrder = 0 - end - object CancelBtn: TButton - Left = 136 - Height = 33 - Top = 16 - Width = 78 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 1 - end - object ComputeBtn: TButton - Left = 136 - Height = 33 - Top = 64 - Width = 78 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 2 - end - object ReturnBtn: TButton - Left = 224 - Height = 33 - Top = 64 - Width = 78 - Caption = 'Return' - ModalResult = 1 - TabOrder = 3 - end - object HelpBtn: TButton - Tag = 105 - Left = 224 - Height = 32 - Top = 16 - Width = 78 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 4 - end -end diff --git a/applications/lazstats/source_orig/avglinkunit.lrs b/applications/lazstats/source_orig/avglinkunit.lrs deleted file mode 100644 index b5f7c7cc6..000000000 --- a/applications/lazstats/source_orig/avglinkunit.lrs +++ /dev/null @@ -1,25 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TAvgLinkFrm','FORMDATA',[ - 'TPF0'#11'TAvgLinkFrm'#10'AvgLinkFrm'#4'Left'#3#241#0#6'Height'#2'p'#3'Top'#2 - +'i'#5'Width'#3'H'#1#7'Caption'#6'''Average Linkage Hierarchical Clustering' - +#12'ClientHeight'#2'p'#11'ClientWidth'#3'H'#1#6'OnShow'#7#8'FormShow'#10'LCL' - +'Version'#6#8'0.9.28.2'#0#11'TRadioGroup'#11'RadioGroup1'#4'Left'#2#8#6'Heig' - +'ht'#2'C'#3'Top'#2#8#5'Width'#2't'#8'AutoFill'#9#7'Caption'#6#15'Matrix Type' - +' Is:'#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'1'#11'ClientWidth'#2'p' - +#13'Items.Strings'#1#6#12'Similarities'#6#15'Dissimilarities'#0#8'TabOrder'#2 - +#0#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#136#0#6'Height'#2'!'#3'Top'#2#16#5 - +'Width'#2'N'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#1#0#0#7 - +'TButton'#10'ComputeBtn'#4'Left'#3#136#0#6'Height'#2'!'#3'Top'#2'@'#5'Width' - +#2'N'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2 - +#2#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#224#0#6'Height'#2'!'#3'Top'#2'@'#5 - +'Width'#2'N'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#3#0#0#7 - +'TButton'#7'HelpBtn'#3'Tag'#2'i'#4'Left'#3#224#0#6'Height'#2' '#3'Top'#2#16#5 - +'Width'#2'N'#7'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2 - +#4#0#0#0 -]); diff --git a/applications/lazstats/source_orig/avglinkunit.pas b/applications/lazstats/source_orig/avglinkunit.pas deleted file mode 100644 index 15cd40a61..000000000 --- a/applications/lazstats/source_orig/avglinkunit.pas +++ /dev/null @@ -1,504 +0,0 @@ -unit AvgLinkUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, ExtCtrls, MainUnit, functionslib, Globals, matrixlib, dataprocs, - outputunit, strutils, contexthelpunit; - -type - - { TAvgLinkFrm } - - TAvgLinkFrm = class(TForm) - CancelBtn: TButton; - ComputeBtn: TButton; - HelpBtn: TButton; - ReturnBtn: TButton; - RadioGroup1: TRadioGroup; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure TreePlot(Clusters : IntDyneMat; Lst : IntDyneVec; NoPoints : integer); - procedure PreTree(NN, CRIT : integer; LST : IntDyneVec; KLUS : IntDyneMat); - - private - { private declarations } - public - { public declarations } - end; - -var - AvgLinkFrm: TAvgLinkFrm; - -implementation - -{ TAvgLinkFrm } - -procedure TAvgLinkFrm.FormShow(Sender: TObject); -begin - RadioGroup1.ItemIndex := 0; -end; - -procedure TAvgLinkFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TAvgLinkFrm.ComputeBtnClick(Sender: TObject); -VAR - X : DblDyneMat; // similarity or dissimilarity matrix - KLUS : IntDyneMat; - LST : IntDyneVec; - RX, SAV, SAV2, RRRMIN : double; - NIN, NVAR : IntDyneVec; - I, J, NI, NJ, Ina, ICOL, K, L, M, MN, N, CRIT, ITR, LIMIT : integer; - INEND, JCOL, JPRE, JEND, NHOLD, MSH, KSH, NLINES, INDX : integer; -// ROWS : StrDyneVec; - DIS, Title : string; - outline : string; - nvalues : integer; -label label300, label60, label70; - -begin - // Reference: Anderberg, M. R. (1973). Cluster analysis for - // applications. New York: Academic press. - // - // Almost any text on cluster analysis should have a good - // description of the average-linkage hierarchical clustering - // algorithm. The algorithm begins with an initial similarity - // or dissimilarity matrix between pairs of objects. The - // algorithm proceeds in an iterative way. At each iteration - // the two most similar (we assume similarities for explanation) - // objects are combined into one group. At each successive - // iteration, the two most similar objects or groups of objects are - // merged. Similarity between groups is defined as the average - // similarity between objects in one group with objects in the other. - // - // INPUT: A correlation matrix (or some other similarity or - // dissimilarity matrix) in a file named MATRIX.DAT - // This must contain all the elements of a full - // (n x n), symmetrical matrix. Any format is - // allowable, as long as numbers are separated by - // blanks. - // - // OUTPUT: Output consists of a cluster history and a tree - // diagram (dendogram). The cluster history - // indicates, for each iteration, the objects - // or clusters merged, and the average pairwise - // similarity or dissimilarity in the resulting - // cluster. - // - // Author: John Uebersax - - nvalues := NoVariables; - if (NoVariables <= 0) then - begin - ShowMessage('ERROR! You must first load a matrix into the grid.'); - exit; - end; - - SetLength(X,nvalues+1,nvalues+1); - SetLength(KLUS,nvalues+1,3); - SetLength(LST,nvalues+1); - SetLength(NIN,nvalues+1); - SetLength(NVAR,nvalues+1); - - Title := 'Average Linkage Cluster Analysis. Adopted from ClusBas by John S. Uebersax'; - - // This section does the cluster analysis, taking data from the Main Form. - // Parameters controlling the analysis are obtained from the dialog form. - DIS := 'DIS'; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add(Title); - OutPutFrm.RichEdit.Lines.Add(''); - M := nvalues; - CRIT := RadioGroup1.ItemIndex; // 0 := Similarity, 1 := dissimilarity - - // get matrix of data from OS3MainFrm - for i := 1 to NoVariables do - begin - for j := 1 to NoVariables do - X[i,j] := StrToFloat(OS3MainFrm.DataGrid.Cells[i,j]); - end; - - LIMIT := M - 1; - for i := 1 to M do - begin - NVAR[i] := i; - NIN[i] := 1; - end; - - // cluster analysis - ITR := 0; - -label300: - ITR := ITR + 1; - // - // determine groups to be merged this iteration - // - if (CRIT = 1) then // (BSCAN) dissimilarity matrix - begin - // This section looks for the minimum dissimilarity. It finds - // element (K, L), where K and L are the most dissimilar objects - // or groups. - // - N := 1; - RRRMIN := 1000000.0; - MN := M - 1; - for i := 1 to MN do - begin - N := N + 1; - for j := N to M do - begin - if (RRRMIN < 0.0) then continue; - K := i; - L := j; - RRRMIN := X[i,j]; - end; - end; - RX := RRRMIN; - end else // SCAN procedure - begin - // This section looks for the maximum similarity. It finds - // element (K, L), where K and L are the most similar objects or - // groups. - // - N := 1; - RX := -10000.0; - for i := 1 to M do - begin - N := N + 1; - for j := N to M do - begin - if (RX - X[i,j] > 0.0) then continue; - K := i; - L := j; - RX := X[i,j]; - end; - end; - end; - - // ARRANGE - // - // This section updates the similarity or dissimilarity matrix. - // If two objects/groups K and L are merged, it calculates the - // similarity or dissimilarity of the new group with all other objects - // or groups. It does this by averaging the elements in row K of - // X() with those in row L, and similarly for columns K and L. - // The new elements are put in row K and column L (K < L). Row K - // and column L are deleted. Columns and rows greater than L are - // shifted up one column or row to fill in the gap. The resulting - // matrix X() thus has one less column and row then at the beginning - // of the subroutine. - - MN := M - 1; - SAV := X[K,L]; - SAV2 := X[K,K]; - // Calculate similarity or dissimilarity of group formed by merging I - // and J to all other groups by averaging the similarities or - // dissimilarities of I and J with other groups - for I := 1 to M do - begin - X[I,K] := (X[I,K] * NIN[K] + X[I,L] * NIN[L]) / (NIN[K] + NIN[L]); - X[K,I] := X[I,K]; - end; - X[K,K] := SAV2 * NIN[K] * (NIN[K] - 1) + X[L,L] * NIN[L] * (NIN[L] - 1); - X[K,K] := X[K,K] + SAV * 2 * NIN[K] * NIN[L]; - X[K,K] := X[K,K] / ((NIN[K] + NIN[L]) * (NIN[K] + NIN[L] - 1)); - if (L = M) then goto label60; - for I := 1 to M do - begin - // Shift columns after J up one place - for J := L to MN do X[I,J] := X[I,J+1]; - end; - for I := L to MN do - begin - // Shift rows after J up one place - for J := 1 to M do X[I,J] := X[I+1,J]; - end; - NIN[K] := NIN[K] + NIN[L]; - for I := L to MN do NIN[I] := NIN[I+1]; - goto label70; -label60: - // Update number of objects in each cluster - NIN[K] := NIN[K] + NIN[L]; -label70: // end of ARRANGE procedure - - // continuation of CLUSV1 procedure - // OUTPUT - if (CRIT = 0) then - begin - outline := format('Group %3d is joined by group %3d. N is %3d ITER := %3d SIM := %10.3f', - [NVAR[K], NVAR[L],NIN[K],ITR,RX]); - OutPutFrm.RichEdit.Lines.Add(outline); - end else - begin - outline := format('Group %3d is joined by group %3d. N is %3d ITER := %3d DIS := %10.3f', - [NVAR[K], NVAR[L],NIN[K],ITR,RX]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - KLUS[ITR,1] := NVAR[K]; // save in KLUS rather than write out to file as in - KLUS[ITR,2] := NVAR[L]; // original program - if not(L = M) then - begin - MN := M - 1; - for i := L to MN do NVAR[i] := NVAR[i+1]; - end; - M := M - 1; - if (ITR < LIMIT) then goto label300; - OutPutFrm.RichEdit.Lines.Add(''); -// OutPutFrm.ShowModal; - // End of CLUSV1 procedure - - // do pre-tree processing - PreTree(nvalues, CRIT, LST, KLUS); - OutPutFrm.ShowModal; - // do TREE procedure - TreePlot(KLUS,LST,nvalues); - OutPutFrm.ShowModal; - - // cleanup - NVAR := nil; - NIN := nil; - LST := nil; - KLUS := nil; - X := nil; -end; - - procedure TAvgLinkFrm.TreePlot(Clusters : IntDyneMat; Lst : IntDyneVec; NoPoints : integer); -VAR - outline : array[0..501] of char; - aline : array[0..82] of char; - valstr : string; - tempstr : string; - plotline : string; - star : char; - blank : char; - endit : char; - col1, col2, colpos1, colpos2 : integer; - noparts, startcol, endcol : integer; - Results : StrDyneVec; - ColPos : IntDyneVec; - i, j, k, L, linecount, newcol, howlong, count, strlong : integer; - done : boolean; -begin - linecount := 1; - star := '*'; - blank := ' '; - SetLength(ColPos,NoPoints+2); - SetLength(Results,NoPoints*2+3); - OutPutFrm.RichEdit.Lines.Add(''); - done := false; - // store initial column positions of vertical linkages - for i := 1 to NoPoints do ColPos[Lst[i]] := 4 + (i * 5); - - // create column heading indented 10 spaces - tempstr := 'UNIT '; - for i := 1 to NoPoints do - begin - valstr := format('%5d',[Lst[i]]); - tempstr := tempstr + valstr; - end; - Results[linecount] := tempstr; - linecount := linecount + 1; - - // create beginning of vertical linkages - plotline := 'STEP '; - for i := 1 to NoPoints do plotline := plotline + ' *'; - Results[linecount] := plotline; - linecount := linecount + 1; - - // start dendoplot - for i := 1 to NoPoints - 1 do - begin - outline := ''; - valstr := format('%5d',[i]); // put step no. first - outline := valstr; - // clear remainder of outline - for j := 5 to (5 + NoPoints * 5) do outline[j] := ' '; - outline[6 + NoPoints * 5] := #0; - col1 := Clusters[i,1]; - col2 := Clusters[i,2]; - // find column positions for each variable - colpos1 := ColPos[col1]; - colpos2 := ColPos[col2]; - - for k := colpos1 to colpos2 do outline[k] := star; - // change column positions 1/2 way between the matched ones - newcol := colpos1 + ((colpos2 - colpos1) div 2); - for k := 1 to NoPoints do - if ((ColPos[k] = colpos1) or (ColPos[k] = colpos2)) then ColPos[k] := newcol; - for k := 1 to NoPoints do - begin - L := ColPos[k]; - if ((L <> colpos1) and (L <> colpos2)) then outline[L] := star; - end; - Results[linecount] := outline; - linecount := linecount + 1; - - // add a line of connectors to next grouping - outline := ' '; - for j := 5 to (5 + NoPoints * 5) do outline[j] := blank; - for j := 1 to NoPoints do - begin - colpos1 := ColPos[j]; - outline[colpos1] := star; - end; - Results[linecount] := outline; - linecount := linecount + 1; - end; - - // output the Results in parts - // determine number of pages needed for whole plot - noparts := 0; - howlong := Length(Results[1]); - noparts := round(howlong / 80.0); - if (noparts <= 0) then noparts := 1; - - if (noparts = 1) then // simply print the list - begin - for i := 0 to linecount - 1 do - begin - OutPutFrm.RichEdit.Lines.Add(Results[i]); - end; - end - else // break lines into strings of 15 units - begin - startcol := 0; - endcol := 80; - for i := 1 to noparts do - begin - outline := format('PART %d OUTPUT',[i]); - OutPutFrm.RichEdit.Lines.Add(outline); - for j := 0 to 80 do aline[j] := blank; - - for j := 0 to linecount - 1 do - begin - count := 0; - outline := Results[j]; - for k := startcol to endcol do - begin - aline[count] := outline[k]; - count := count + 1; - end; - aline[count+1] := #0; - OutPutFrm.RichEdit.Lines.Add(aline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - startcol := endcol + 1; - endcol := endcol + 80; - if (endcol > howlong) then endcol := howlong; - end; - end; - Results := nil; - ColPos := nil; -end; - - procedure TAvgLinkFrm.PreTree(NN, CRIT : integer; LST : IntDyneVec; KLUS : IntDyneMat); -VAR - I, II, J, NI, NJ, L, M, N, Ina, INEND, NHOLD, NLINES, INDX, ICOL, JCOL : integer; - KSH, JEND, MSH : integer; - JHOLD, NIN1 : IntDyneVec; - outline, outvalue : string; -label label2015, label2020, label2030, label2040, label2055, label2060; - -begin - // PRETRE procedure - SetLength(JHOLD,NN+1); - SetLength(NIN1,NN+1); -// int NN := nvalues; - N := NN - 1; - outline := format('No. of objects := %3d',[NN]); - OutPutFrm.RichEdit.Lines.Add(outline); - if (CRIT = 0) then outline := 'Matrix defined similarities among objects.' - else outline := 'Matrix defined dissimilarities among objects.'; - OutPutFrm.RichEdit.Lines.Add(outline); - - for I := 1 to NN do - begin - LST[I] := I; - NIN1[I] := 1; - end; - - for II := 1 to N do - begin - // name tabs - I := KLUS[II][1]; - J := KLUS[II][2]; - NI := NIN1[I]; - NJ := NIN1[J]; - L := 1; -label2015: - if (LST[L] = I) then goto label2020; - L := L + 1; - if (L <= NN) then goto label2015; -label2020: - ICOL := L; - Ina := ICOL + NI; - INEND := Ina + NJ - 1; - L := L + 1; -label2030: - if (LST[L] = J) then goto label2040; - L := L + 1; - if (L <= NN) then goto label2030; -label2040: - JCOL := L; - JEND := JCOL + NJ - 1; - NHOLD := 1; - - // remove J vector and store in HOLD - for M := JCOL to JEND do - begin - JHOLD[NHOLD] := LST[M]; - NHOLD := NHOLD + 1; - end; - - // shift - MSH := JEND; -label2055: - if (MSH = INEND) then goto label2060; - KSH := MSH - NJ; - LST[MSH] := LST[KSH]; - MSH := MSH - 1; - goto label2055; - - // insert hold vector -label2060: - NHOLD := 1; - for M := Ina to INEND do - begin - LST[M] := JHOLD[NHOLD]; - NHOLD := NHOLD + 1; - end; - NIN1[I] := NI + NJ; - end; - - NLINES := (NN div 20) + 1; - INDX := 0; - for I := 1 to NLINES do - begin - outline := ' '; - for J := 1 to 20 do - begin - INDX := INDX + 1; - if (INDX <= NN) then - begin - outvalue := format(' %3d',[LST[INDX]]); - outline := outline + outvalue; - end; - end; - end; - NIN1 := nil; - JHOLD := nil; - // End of PRETRE procedure -end; - -initialization - {$I avglinkunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/bartletttestunit.lfm b/applications/lazstats/source_orig/bartletttestunit.lfm deleted file mode 100644 index 863b6ca14..000000000 --- a/applications/lazstats/source_orig/bartletttestunit.lfm +++ /dev/null @@ -1,253 +0,0 @@ -object BartlettTestForm: TBartlettTestForm - Left = 229 - Height = 308 - Top = 141 - Width = 668 - Caption = 'Bartlett Test of Sphericity' - ClientHeight = 308 - ClientWidth = 668 - OnShow = ResetBtnClick - LCLVersion = '0.9.30' - object Label2: TLabel - Left = 8 - Height = 16 - Top = 8 - Width = 48 - Caption = 'Variables' - ParentColor = False - end - object Label3: TLabel - Left = 239 - Height = 16 - Top = 8 - Width = 45 - Caption = 'Selected' - ParentColor = False - end - object VarList: TListBox - Left = 8 - Height = 225 - Top = 24 - Width = 166 - ItemHeight = 0 - MultiSelect = True - TabOrder = 0 - end - object SelList: TListBox - Left = 239 - Height = 225 - Top = 24 - Width = 161 - ItemHeight = 0 - TabOrder = 1 - end - object ResetBtn: TButton - Left = 564 - Height = 32 - Top = 136 - Width = 80 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 2 - end - object CancelBtn: TButton - Left = 425 - Height = 30 - Top = 176 - Width = 82 - Cancel = True - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 3 - end - object ComputeBtn: TButton - Left = 564 - Height = 30 - Top = 176 - Width = 80 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 4 - end - object InBtn: TBitBtn - Left = 184 - Height = 39 - Top = 24 - Width = 38 - 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 = 184 - Height = 39 - Top = 72 - Width = 38 - 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 AllBtn: TBitBtn - Left = 184 - Height = 39 - Top = 136 - Width = 38 - Caption = 'ALL' - NumGlyphs = 0 - OnClick = AllBtnClick - TabOrder = 7 - end - object HelpBtn: TButton - Tag = 119 - Left = 425 - Height = 32 - Top = 136 - Width = 82 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 8 - end - object Memo1: TMemo - Left = 425 - Height = 109 - Top = 13 - Width = 219 - Lines.Strings = ( - 'This is the Bartlett test of sphericity for' - ' three or more variables. Enter three or' - ' more of the variables listed in the left' - ' box and press the compute button to' - ' obtain the results.' - ) - TabOrder = 9 - end - object Label1: TLabel - Left = 9 - Height = 16 - Top = 270 - Width = 68 - Caption = 'Chisquare = ' - ParentColor = False - end - object ChiSqrEdit: TEdit - Left = 80 - Height = 23 - Top = 265 - Width = 92 - TabOrder = 10 - Text = 'ChiSqrEdit' - end - object Label4: TLabel - Left = 239 - Height = 16 - Top = 270 - Width = 72 - Caption = 'Probability = ' - ParentColor = False - end - object ProbEdit: TEdit - Left = 316 - Height = 23 - Top = 263 - Width = 84 - TabOrder = 11 - Text = 'ProbEdit' - end - object Label5: TLabel - Left = 425 - Height = 16 - Top = 270 - Width = 89 - Caption = 'Deg. Freedom = ' - ParentColor = False - end - object DFEdit: TEdit - Left = 521 - Height = 23 - Top = 265 - Width = 40 - TabOrder = 12 - Text = 'DFEdit' - end - object ReturnBtn: TButton - Left = 488 - Height = 35 - Top = 216 - Width = 88 - Caption = 'Return' - ModalResult = 1 - TabOrder = 13 - end -end diff --git a/applications/lazstats/source_orig/bartletttestunit.lrs b/applications/lazstats/source_orig/bartletttestunit.lrs deleted file mode 100644 index 0fa316f4d..000000000 --- a/applications/lazstats/source_orig/bartletttestunit.lrs +++ /dev/null @@ -1,145 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TBartlettTestForm','FORMDATA',[ - 'TPF0'#17'TBartlettTestForm'#16'BartlettTestForm'#4'Left'#3#229#0#6'Height'#3 - +'4'#1#3'Top'#3#141#0#5'Width'#3#156#2#7'Caption'#6#27'Bartlett Test of Spher' - +'icity'#12'ClientHeight'#3'4'#1#11'ClientWidth'#3#156#2#6'OnShow'#7#13'Reset' - +'BtnClick'#10'LCLVersion'#6#6'0.9.30'#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'He' - +'ight'#2#16#3'Top'#2#8#5'Width'#2'0'#7'Caption'#6#9'Variables'#11'ParentColo' - +'r'#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#239#0#6'Height'#2#16#3'Top'#2#8#5'Wi' - +'dth'#2'-'#7'Caption'#6#8'Selected'#11'ParentColor'#8#0#0#8'TListBox'#7'VarL' - +'ist'#4'Left'#2#8#6'Height'#3#225#0#3'Top'#2#24#5'Width'#3#166#0#10'ItemHeig' - +'ht'#2#0#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#8'TListBox'#7'SelList'#4'Left' - +#3#239#0#6'Height'#3#225#0#3'Top'#2#24#5'Width'#3#161#0#10'ItemHeight'#2#0#8 - +'TabOrder'#2#1#0#0#7'TButton'#8'ResetBtn'#4'Left'#3'4'#2#6'Height'#2' '#3'To' - +'p'#3#136#0#5'Width'#2'P'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClic' - +'k'#8'TabOrder'#2#2#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#169#1#6'Height'#2 - +#30#3'Top'#3#176#0#5'Width'#2'R'#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'Modal' - +'Result'#2#2#8'TabOrder'#2#3#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3'4'#2#6 - +'Height'#2#30#3'Top'#3#176#0#5'Width'#2'P'#7'Caption'#6#7'Compute'#7'OnClick' - +#7#15'ComputeBtnClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#184 - +#0#6'Height'#2''''#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#10'InBtnClick'#8'TabOrder'#2#5#0 - +#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#184#0#6'Height'#2''''#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#11 - +'OutBtnClick'#8'TabOrder'#2#6#0#0#7'TBitBtn'#6'AllBtn'#4'Left'#3#184#0#6'Hei' - +'ght'#2''''#3'Top'#3#136#0#5'Width'#2'&'#7'Caption'#6#3'ALL'#9'NumGlyphs'#2#0 - +#7'OnClick'#7#11'AllBtnClick'#8'TabOrder'#2#7#0#0#7'TButton'#7'HelpBtn'#3'Ta' - +'g'#2'w'#4'Left'#3#169#1#6'Height'#2' '#3'Top'#3#136#0#5'Width'#2'R'#7'Capti' - +'on'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#8#0#0#5'TMemo'#5 - +'Memo1'#4'Left'#3#169#1#6'Height'#2'm'#3'Top'#2#13#5'Width'#3#219#0#13'Lines' - +'.Strings'#1#6'+This is the Bartlett test of sphericity for'#6') three or mo' - +'re variables. Enter three or'#6') more of the variables listed in the left' - +#6'$ box and press the compute button to'#6#20' obtain the results.'#0#8'Tab' - ,'Order'#2#9#0#0#6'TLabel'#6'Label1'#4'Left'#2#9#6'Height'#2#16#3'Top'#3#14#1 - +#5'Width'#2'D'#7'Caption'#6#12'Chisquare = '#11'ParentColor'#8#0#0#5'TEdit' - +#10'ChiSqrEdit'#4'Left'#2'P'#6'Height'#2#23#3'Top'#3#9#1#5'Width'#2'\'#8'Tab' - +'Order'#2#10#4'Text'#6#10'ChiSqrEdit'#0#0#6'TLabel'#6'Label4'#4'Left'#3#239#0 - +#6'Height'#2#16#3'Top'#3#14#1#5'Width'#2'H'#7'Caption'#6#14'Probability = ' - +#11'ParentColor'#8#0#0#5'TEdit'#8'ProbEdit'#4'Left'#3'<'#1#6'Height'#2#23#3 - +'Top'#3#7#1#5'Width'#2'T'#8'TabOrder'#2#11#4'Text'#6#8'ProbEdit'#0#0#6'TLabe' - +'l'#6'Label5'#4'Left'#3#169#1#6'Height'#2#16#3'Top'#3#14#1#5'Width'#2'Y'#7'C' - +'aption'#6#15'Deg. Freedom = '#11'ParentColor'#8#0#0#5'TEdit'#6'DFEdit'#4'Le' - +'ft'#3#9#2#6'Height'#2#23#3'Top'#3#9#1#5'Width'#2'('#8'TabOrder'#2#12#4'Text' - +#6#6'DFEdit'#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#232#1#6'Height'#2'#'#3'To' - +'p'#3#216#0#5'Width'#2'X'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOr' - +'der'#2#13#0#0#0 -]); diff --git a/applications/lazstats/source_orig/bartletttestunit.pas b/applications/lazstats/source_orig/bartletttestunit.pas deleted file mode 100644 index fe3b1875e..000000000 --- a/applications/lazstats/source_orig/bartletttestunit.pas +++ /dev/null @@ -1,208 +0,0 @@ -unit BartlettTestUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, Globals, functionsLib, OutPutUnit, DataProcs, - DictionaryUnit, MatrixLib, contexthelpunit, matmanunit; - -type - - { TBartlettTestForm } - - TBartlettTestForm = class(TForm) - AllBtn: TBitBtn; - ReturnBtn: TButton; - CancelBtn: TButton; - ChiSqrEdit: TEdit; - DFEdit: TEdit; - Label5: TLabel; - ProbEdit: TEdit; - HelpBtn: TButton; - InBtn: TBitBtn; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - Memo1: TMemo; - ComputeBtn: TButton; - OutBtn: TBitBtn; - ResetBtn: TButton; - SelList: TListBox; - VarList: TListBox; - procedure AllBtnClick(Sender: TObject); - procedure ComputeBtnClick(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 - BartlettTestForm: TBartlettTestForm; - -implementation - -{ TBartlettTestForm } - -procedure TBartlettTestForm.ResetBtnClick(Sender: TObject); -VAR i :integer; -begin - ChiSqrEdit.Text := ''; - ProbEdit.Text := ''; - DFEdit.Text := ''; - InBtn.Visible := true; - OutBtn.Visible := false; - VarList.Clear; - SelList.Clear; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TBartlettTestForm.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 - SelList.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 TBartlettTestForm.AllBtnClick(Sender: TObject); -VAR i : integer; -begin - for i := 0 to VarList.Items.Count-1 do - SelList.Items.Add(VarList.Items.Strings[i]); - VarList.Clear; - OutBtn.Enabled := true; - InBtn.Enabled := false; -end; - -procedure TBartlettTestForm.ComputeBtnClick(Sender: TObject); -VAR - matrix, temp, eigenvectors : DblDyneMat; - eigenvalues, means, variances, stddevs : DblDyneVec; - sumroots, determinant, chisquare, probability, natlogdet, natlogp : double; - i, j, k, df, p, result, intvalue, ncases, colno : integer; - aline, strvalue, ytitle, title, probvalue, chivalue : string; - ColNoSelected : IntDyneVec; - dblvalue : double; - DataGrid : DblDyneMat; - RowLabels, ColLabels : StrDyneVec; - errorcode : boolean; -begin - p := SelList.Count; - SetLength(matrix,p+1,p+1); - SetLength(temp,p+1,p+1); - SetLength(eigenvectors,p,p); - SetLength(eigenvalues,p); - SetLength(means,p+1); - SetLength(stddevs,p+1); - SetLength(variances,p+1); - SetLength(ColNoSelected,p+1); - SetLength(DataGrid,NoCases,p+1); - SetLength(RowLabels,p+1); - SetLength(ColLabels,p+1); - - for j := 0 to p-1 do - begin - for i := 1 to NoVariables do - begin - if SelList.Items.Strings[j] = OS3MainFrm.DataGrid.Cells[i,0] then - begin - ColNoSelected[j] := i; - RowLabels[j] := OS3MainFrm.DataGrid.Cells[i,0]; - ColLabels[j] := OS3MainFrm.DataGrid.Cells[i,0]; - end; - end; - end; - ncases := 0; - ytitle := 'Variable'; - errorcode := false; - - // get data into the datagrid - for j := 0 to p-1 do - begin - for i := 1 to NoCases do - begin - if not GoodRecord(i,p,ColNoSelected) then continue; - colno := ColNoSelected[j]; - dblvalue := StrToFloat(OS3MainFrm.DataGrid.Cells[colno,i]); - DataGrid[i-1,j] := dblvalue; - ncases := ncases + 1; - end; - end; - OutPutFrm.RichEdit.Clear; - ncases := 0; - Correlations(p,ColNoSelected,matrix,means,variances,stddevs,errorcode,ncases); - title := 'CORRELATION MATRIX'; - MAT_PRINT(matrix,p,p,title,RowLabels,ColLabels,ncases); - OutPutFrm.RichEdit.Lines.Add(''); - DETERM(matrix,p,p,determinant,errorcode); - strvalue := format('Determinant of matrix = %8.3f',[determinant]); - OutPutFrm.RichEdit.Lines.Add(strvalue); - OutPutFrm.RichEdit.Lines.Add(''); - natlogp := ln(1.0 / p); - chisquare := -((ncases-1) - (2.0*p-5)/6) * ln(determinant); - df := ((p * p) - p) div 2; - probability := chisquaredprob(chisquare,df); - chivalue := format('%8.3f',[chisquare]); - probvalue := format('%8.3f',[1.0-probability]); - chisqrEdit.Text := chivalue; - ProbEdit.Text := probvalue; - DFEdit.Text := IntToStr(df); - aline := format('chisquare = %s, D.F. = %D, Proabability greater value = %s', - [chivalue,df,probvalue]); - OutPutFrm.RichEdit.Lines.Add(aline); - ColLabels := nil; - RowLabels := nil; - DataGrid := nil; - ColNoSelected := nil; - variances := nil; - stddevs := nil; - means := nil; - eigenvalues := nil; - eigenvectors := nil; - temp := nil; - matrix := nil; - OutPutFrm.ShowModal; -end; - -procedure TBartlettTestForm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TBartlettTestForm.OutBtnClick(Sender: TObject); -VAR index : integer; -begin - index := SelList.ItemIndex; - VarList.Items.Add(SelList.Items.Strings[index]); - SelList.Items.Delete(index); - InBtn.Enabled := true; - if SelList.Items.Count = 0 then OutBtn.Enabled := false; - -end; - -initialization - {$I bartletttestunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/blankfrmunit.lfm b/applications/lazstats/source_orig/blankfrmunit.lfm deleted file mode 100644 index 8ed652227..000000000 --- a/applications/lazstats/source_orig/blankfrmunit.lfm +++ /dev/null @@ -1,65 +0,0 @@ -object BlankFrm: TBlankFrm - Left = 41 - Height = 557 - Top = 96 - Width = 751 - BorderStyle = bsSingle - Caption = 'BlankFrm' - ClientHeight = 557 - ClientWidth = 751 - OnShow = FormShow - LCLVersion = '0.9.30' - object Image1: TImage - Left = 0 - Height = 496 - Top = 0 - Width = 751 - Align = alClient - end - object Panel1: TPanel - Left = 0 - Height = 61 - Top = 496 - Width = 751 - Align = alBottom - ClientHeight = 61 - ClientWidth = 751 - TabOrder = 0 - object PrintBtn: TButton - Left = 439 - Height = 28 - Top = 17 - Width = 97 - Caption = 'Print' - OnClick = PrintBtnClick - TabOrder = 0 - end - object SaveBtn: TButton - Left = 296 - Height = 27 - Top = 17 - Width = 92 - Caption = 'Save Image' - OnClick = SaveBtnClick - TabOrder = 1 - end - end - object CloseBtn: TButton - Left = 592 - Height = 30 - Top = 512 - Width = 97 - Caption = 'Close' - OnClick = CloseBtnClick - TabOrder = 1 - end - object SavePictureDialog1: TSavePictureDialog - Title = 'Save file as' - left = 47 - top = 508 - end - object OpenPictureDialog1: TOpenPictureDialog - left = 91 - top = 508 - end -end diff --git a/applications/lazstats/source_orig/blankfrmunit.lrs b/applications/lazstats/source_orig/blankfrmunit.lrs deleted file mode 100644 index 6ebb24c20..000000000 --- a/applications/lazstats/source_orig/blankfrmunit.lrs +++ /dev/null @@ -1,20 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TBlankFrm','FORMDATA',[ - 'TPF0'#9'TBlankFrm'#8'BlankFrm'#4'Left'#2')'#6'Height'#3'-'#2#3'Top'#2'`'#5'W' - +'idth'#3#239#2#11'BorderStyle'#7#8'bsSingle'#7'Caption'#6#8'BlankFrm'#12'Cli' - +'entHeight'#3'-'#2#11'ClientWidth'#3#239#2#6'OnShow'#7#8'FormShow'#10'LCLVer' - +'sion'#6#6'0.9.30'#0#6'TImage'#6'Image1'#4'Left'#2#0#6'Height'#3#240#1#3'Top' - +#2#0#5'Width'#3#239#2#5'Align'#7#8'alClient'#0#0#6'TPanel'#6'Panel1'#4'Left' - +#2#0#6'Height'#2'='#3'Top'#3#240#1#5'Width'#3#239#2#5'Align'#7#8'alBottom'#12 - +'ClientHeight'#2'='#11'ClientWidth'#3#239#2#8'TabOrder'#2#0#0#7'TButton'#8'P' - +'rintBtn'#4'Left'#3#183#1#6'Height'#2#28#3'Top'#2#17#5'Width'#2'a'#7'Caption' - +#6#5'Print'#7'OnClick'#7#13'PrintBtnClick'#8'TabOrder'#2#0#0#0#7'TButton'#7 - +'SaveBtn'#4'Left'#3'('#1#6'Height'#2#27#3'Top'#2#17#5'Width'#2'\'#7'Caption' - +#6#10'Save Image'#7'OnClick'#7#12'SaveBtnClick'#8'TabOrder'#2#1#0#0#0#7'TBut' - +'ton'#8'CloseBtn'#4'Left'#3'P'#2#6'Height'#2#30#3'Top'#3#0#2#5'Width'#2'a'#7 - +'Caption'#6#5'Close'#7'OnClick'#7#13'CloseBtnClick'#8'TabOrder'#2#1#0#0#18'T' - +'SavePictureDialog'#18'SavePictureDialog1'#5'Title'#6#12'Save file as'#4'lef' - +'t'#2'/'#3'top'#3#252#1#0#0#18'TOpenPictureDialog'#18'OpenPictureDialog1'#4 - +'left'#2'['#3'top'#3#252#1#0#0#0 -]); diff --git a/applications/lazstats/source_orig/blankfrmunit.pas b/applications/lazstats/source_orig/blankfrmunit.pas deleted file mode 100644 index d838b03ae..000000000 --- a/applications/lazstats/source_orig/blankfrmunit.pas +++ /dev/null @@ -1,84 +0,0 @@ -unit BlankFrmUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - ExtCtrls, StdCtrls, ExtDlgs, Clipbrd, printers; - -type - - { TBlankFrm } - - TBlankFrm = class(TForm) - SaveBtn: TButton; - PrintBtn: TButton; - CloseBtn: TButton; - OpenPictureDialog1: TOpenPictureDialog; - Image1: TImage; - Panel1: TPanel; - SavePictureDialog1: TSavePictureDialog; - procedure CloseBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure PrintBtnClick(Sender: TObject); - procedure SaveBtnClick(Sender: TObject); - private - Bitmap : TBitMap; - jp: TJpegImage; //Requires the "jpeg" unit added to "uses" clause. - - { private declarations } - public - { public declarations } - end; - -var - BlankFrm: TBlankFrm; - -implementation - -{ TBlankFrm } - -procedure TBlankFrm.CloseBtnClick(Sender: TObject); -begin -// Bitmap.FreeImage; - BlankFrm.Hide; -end; - -procedure TBlankFrm.FormShow(Sender: TObject); -begin -// Image1.Canvas.Clear; -// Bitmap := GetFormImage; -// Clipboard.Assign(Bitmap); -// Image1.Picture.Assign(Clipboard); -end; - -procedure TBlankFrm.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 TBlankFrm.SaveBtnClick(Sender: TObject); -begin - if SavePictureDialog1.Execute then - begin - Image1.Picture.SaveToFile(SavePictureDialog1.FileName); - end; -end; - -initialization - {$I blankfrmunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/bnestaunit.lfm b/applications/lazstats/source_orig/bnestaunit.lfm deleted file mode 100644 index d9e1a6772..000000000 --- a/applications/lazstats/source_orig/bnestaunit.lfm +++ /dev/null @@ -1,435 +0,0 @@ -object BNestedAForm: TBNestedAForm - Left = 288 - Height = 402 - Top = 161 - Width = 686 - Caption = 'Factor B Nested in Factor A Analysis of Variance' - ClientHeight = 402 - ClientWidth = 686 - OnShow = ResetBtnClick - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 16 - Height = 16 - Top = 8 - Width = 102 - Caption = 'Available Variables:' - ParentColor = False - end - object Label2: TLabel - Left = 255 - Height = 16 - Top = 24 - Width = 90 - Caption = 'Factor A Variable' - ParentColor = False - end - object Label3: TLabel - Left = 255 - Height = 16 - Top = 96 - Width = 116 - Caption = 'Factor B (Nested in A)' - ParentColor = False - end - object Label4: TLabel - Left = 256 - Height = 16 - Top = 197 - Width = 104 - Caption = 'Dependent Variable' - 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 DepInBtn: TBitBtn - Left = 211 - Height = 26 - Top = 200 - 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 = DepInBtnClick - TabOrder = 5 - end - object DepOutBtn: TBitBtn - Left = 211 - Height = 26 - Top = 232 - 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 = DepOutBtnClick - TabOrder = 6 - end - object ACodes: TEdit - Left = 255 - Height = 23 - Top = 40 - Width = 139 - TabOrder = 7 - Text = 'ACodes' - end - object BCodes: TEdit - Left = 255 - Height = 23 - Top = 112 - Width = 138 - TabOrder = 8 - Text = 'BCodes' - end - object ResetBtn: TButton - Left = 24 - Height = 27 - Top = 296 - Width = 89 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 9 - end - object CancelBtn: TButton - Left = 24 - Height = 27 - Top = 344 - Width = 89 - Cancel = True - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 10 - end - object ComputeBtn: TButton - Left = 240 - Height = 27 - Top = 296 - Width = 89 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 11 - end - object ReturnBtn: TButton - Left = 240 - Height = 27 - Top = 344 - Width = 89 - Caption = 'Return' - ModalResult = 1 - TabOrder = 12 - end - object DepEdit: TEdit - Left = 255 - Height = 23 - Top = 216 - Width = 132 - TabOrder = 13 - Text = 'DepEdit' - end - object OptionsBox: TRadioGroup - Left = 400 - Height = 131 - Top = 240 - Width = 273 - AutoFill = True - Caption = 'OptionsBox' - 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 = 113 - ClientWidth = 269 - Items.Strings = ( - 'Plot means using 2D Horizontal Bars' - 'Plot means using 3D Horizontal Bars' - 'Plot means using 2D Vertical Bars' - 'Plot means using 3D Vertical Bars' - ) - TabOrder = 14 - end - object Memo1: TMemo - Left = 400 - Height = 197 - Top = 16 - Width = 272 - Lines.Strings = ( - 'Directions: This analysis assumes that levels of ' - 'Factor B are Nested within levels of Factor A.' - 'Unless otherwise specified, it is assumed that' - 'Factors A and B are fixed level factors. If Factor B' - 'is a random variable, check the provided box to' - 'indicate this.' - '' - 'The number of cases for each B group should be' - 'equal and the number of B treatements in each ' - 'A level should be equal.' - ) - TabOrder = 15 - end - object RandomBChk: TCheckBox - Left = 211 - Height = 19 - Top = 168 - Width = 135 - Caption = 'B is random, not fixed' - TabOrder = 16 - end -end diff --git a/applications/lazstats/source_orig/bnestaunit.lrs b/applications/lazstats/source_orig/bnestaunit.lrs deleted file mode 100644 index 500828f4e..000000000 --- a/applications/lazstats/source_orig/bnestaunit.lrs +++ /dev/null @@ -1,359 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TBNestedAForm','FORMDATA',[ - 'TPF0'#13'TBNestedAForm'#12'BNestedAForm'#4'Left'#3' '#1#6'Height'#3#146#1#3 - +'Top'#3#161#0#5'Width'#3#174#2#7'Caption'#6'0Factor B Nested in Factor A Ana' - +'lysis of Variance'#12'ClientHeight'#3#146#1#11'ClientWidth'#3#174#2#6'OnSho' - +'w'#7#13'ResetBtnClick'#10'LCLVersion'#6#6'0.9.30'#0#6'TLabel'#6'Label1'#4'L' - +'eft'#2#16#6'Height'#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'He' - +'ight'#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't'#7'Caption'#6#22'Factor B (Nested in A)'#11'ParentColor'#8 - +#0#0#6'TLabel'#6'Label4'#4'Left'#3#0#1#6'Height'#2#16#3'Top'#3#197#0#5'Width' - +#2'h'#7'Caption'#6#18'Dependent Variable'#11'ParentColor'#8#0#0#8'TListBox'#7 - +'VarList'#4'Left'#2#16#6'Height'#3#239#0#3'Top'#2#24#5'Width'#3#181#0#10'Ite' - +'mHeight'#2#0#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#6'AInBtn'#4'L' - +'eft'#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'TabOrde' - ,'r'#2#1#0#0#7'TBitBtn'#7'AOutBtn'#4'Left'#3#211#0#6'Height'#2#26#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'NumGlyp' - +'hs'#2#0#7'OnClick'#7#12'AOutBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#6'BInB' - +'tn'#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 - +'TabOrder'#2#3#0#0#7'TBitBtn'#7'BOutBtn'#4'Left'#3#210#0#6'Height'#2#26#3'To' - +'p'#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'Num' - +'Glyphs'#2#0#7'OnClick'#7#12'BOutBtnClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#8 - +'DepInBtn'#4'Left'#3#211#0#6'Height'#2#26#3'Top'#3#200#0#5'Width'#2#30#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#13'DepInBtnClick' - +#8'TabOrder'#2#5#0#0#7'TBitBtn'#9'DepOutBtn'#4'Left'#3#211#0#6'Height'#2#26#3 - +'Top'#3#232#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'NumGlyphs'#2#0#7'OnClick'#7#14'DepOutBtnClick'#8'TabOrder'#2#6#0#0#5 - +'TEdit'#6'ACodes'#4'Left'#3#255#0#6'Height'#2#23#3'Top'#2'('#5'Width'#3#139#0 - +#8'TabOrder'#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'BCode' - +'s'#0#0#7'TButton'#8'ResetBtn'#4'Left'#2#24#6'Height'#2#27#3'Top'#3'('#1#5'W' - +'idth'#2'Y'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder' - +#2#9#0#0#7'TButton'#9'CancelBtn'#4'Left'#2#24#6'Height'#2#27#3'Top'#3'X'#1#5 - +'Width'#2'Y'#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrd' - +'er'#2#10#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#240#0#6'Height'#2#27#3'Top' - +#3'('#1#5'Width'#2'Y'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClic' - +'k'#8'TabOrder'#2#11#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#240#0#6'Height'#2 - +#27#3'Top'#3'X'#1#5'Width'#2'Y'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8 - +'TabOrder'#2#12#0#0#5'TEdit'#7'DepEdit'#4'Left'#3#255#0#6'Height'#2#23#3'Top' - +#3#216#0#5'Width'#3#132#0#8'TabOrder'#2#13#4'Text'#6#7'DepEdit'#0#0#11'TRadi' - +'oGroup'#10'OptionsBox'#4'Left'#3#144#1#6'Height'#3#131#0#3'Top'#3#240#0#5'W' - +'idth'#3#17#1#8'AutoFill'#9#7'Caption'#6#10'OptionsBox'#28'ChildSizing.LeftR' - +'ightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.Enlarg' - +'eHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical' - +#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsSca' - +'leChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizin' - +'g.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLin' - +'e'#2#1#12'ClientHeight'#2'q'#11'ClientWidth'#3#13#1#13'Items.Strings'#1#6'#' - +'Plot means using 2D Horizontal Bars'#6'#Plot means using 3D Horizontal Bars' - +#6'!Plot means using 2D Vertical Bars'#6'!Plot means using 3D Vertical Bars' - +#0#8'TabOrder'#2#14#0#0#5'TMemo'#5'Memo1'#4'Left'#3#144#1#6'Height'#3#197#0#3 - +'Top'#2#16#5'Width'#3#16#1#13'Lines.Strings'#1#6'2Directions: This analysis' - +' assumes that levels of '#6'.Factor B are Nested within levels of Factor A.' - +#6'.Unless otherwise specified, it is assumed that'#6'5Factors A and B are f' - +'ixed level factors. If Factor B'#6'/is a random variable, check the provid' - +'ed box to'#6#14'indicate this.'#6#0#6'.The number of cases for each B group' - +' should be'#6'.equal and the number of B treatements in each '#6#24'A level' - +' should be equal.'#0#8'TabOrder'#2#15#0#0#9'TCheckBox'#10'RandomBChk'#4'Lef' - +'t'#3#211#0#6'Height'#2#19#3'Top'#3#168#0#5'Width'#3#135#0#7'Caption'#6#22'B' - +' is random, not fixed'#8'TabOrder'#2#16#0#0#0 -]); diff --git a/applications/lazstats/source_orig/bnestaunit.pas b/applications/lazstats/source_orig/bnestaunit.pas deleted file mode 100644 index 9ed87b971..000000000 --- a/applications/lazstats/source_orig/bnestaunit.pas +++ /dev/null @@ -1,540 +0,0 @@ -unit BNestAUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, ExtCtrls, MainUnit, OutPutUnit, FunctionsLib, GraphLib, - Globals, DataProcs, MatrixLib; - -type - - { TBNestedAForm } - - TBNestedAForm = class(TForm) - ACodes: TEdit; - AInBtn: TBitBtn; - AOutBtn: TBitBtn; - BCodes: TEdit; - BInBtn: TBitBtn; - BOutBtn: TBitBtn; - CancelBtn: TButton; - RandomBChk: TCheckBox; - DepInBtn: TBitBtn; - ComputeBtn: TButton; - DepOutBtn: TBitBtn; - DepEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - Memo1: TMemo; - OptionsBox: TRadioGroup; - ResetBtn: TButton; - ReturnBtn: TButton; - VarList: TListBox; - procedure AInBtnClick(Sender: TObject); - procedure AOutBtnClick(Sender: TObject); - procedure BInBtnClick(Sender: TObject); - procedure BOutBtnClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure DepInBtnClick(Sender: TObject); - procedure DepOutBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - SS, SumSqr, CellMeans, CellSDs : DblDyneMat; - CellCount : IntDyneMat; - ASS, BSS, ASumSqr, BSumSqr, AMeans, BMeans, ASDs : DblDyneVec; - ACount, BCount : IntDyneVec; - MinA, MinB, MaxA, MaxB, NoALevels, NoBLevels, ACol, BCol, YCol : integer; - DepVar, FactorA, FactorB : string; - SSTot, SumSqrTot, TotMean, MSTot, SSA, MSA, SSB, MSB, SSW, MSW : double; - TotN, dfA, dfBwA, dfwcell, dftotal : integer; - - procedure GetVars(Sender: TObject); - procedure GetMemory(Sender: TOBject); - procedure GetSums(Sender: TObject); - procedure ShowMeans(Sender: TObject); - procedure GetResults(Sender: TObject); - procedure ShowResults(Sender: TObject); - procedure ReleaseMemory(Sender: TObject); - procedure TwoWayPlot(Sender: TObject); - - public - { public declarations } - end; - -var - BNestedAForm: TBNestedAForm; - -implementation - -{ TBNestedAForm } - -procedure TBNestedAForm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Items.Clear; - ACodes.Text := ''; - BCodes.Text := ''; - DepEdit.Text := ''; - AInBtn.Visible := true; - AOutBtn.Visible := false; - BInBtn.Visible := true; - BOutBtn.Visible := false; - DepInBtn.Visible := true; - DepoutBtn.Visible := false; - OptionsBox.ItemIndex := 0; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - OptionsBox.ItemIndex := 3; -end; - -procedure TBNestedAForm.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 TBNestedAForm.AOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(ACodes.Text); - ACodes.Text := ''; - AinBtn.Visible := true; - AOutBtn.Visible := false; -end; - -procedure TBNestedAForm.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 TBNestedAForm.BOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(BCodes.Text); - BCodes.Text := ''; - BInBtn.Visible := true; - BOutBtn.Visible := false; -end; - -procedure TBNestedAForm.ComputeBtnClick(Sender: TObject); -begin - GetVars(self); - GetMemory(self); - GetSums(self); - ShowMeans(self); - GetResults(self); - ShowResults(self); - TwoWayPlot(self); - ReleaseMemory(self); -end; - -procedure TBNestedAForm.DepInBtnClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - DepEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - DepOutBtn.Visible := true; - DepInBtn.Visible := false; -end; - -procedure TBNestedAForm.DepOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(DepEdit.Text); - DepEdit.Text := ''; - DepInBtn.Visible := true; - DepOutBtn.Visible := false; -end; - -procedure TBNestedAForm.GetVars(Sender: TObject); -VAR - result, intvalue, i, group : integer; - AValue, BValue : integer; - strvalue, cellstring : string; -begin - DepVar := DepEdit.Text; - FactorA := ACodes.Text; - FactorB := BCodes.Text; - ACol := 0; - BCol := 0; - YCol := 0; - MinA := 1000; - MaxA := -1000; - MinB := 1000; - MaxB := -1000; - for i := 1 to NoVariables do - begin - strvalue := Trim(OS3MainFrm.DataGrid.Cells[i,0]); - if FactorA = strvalue then ACol := i; - if FactorB = strvalue then BCol := i; - if DepVar = strvalue then YCol := i; - end; - if (ACol = 0) or (BCol = 0) or (YCol = 0) then - begin - ShowMessage('ERROR! Select a variable for each entry box.'); - exit; - end; - // get number of levels for Factors - for i := 1 to NoCases do - begin - 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]); - group := round(StrToFLoat(cellstring)); - if (group > MaxB) then MaxB := group; - if (group < MinB) then MinB := group; - end; - NoALevels := MaxA - MinA + 1; - NoBLevels := MaxB - MinB + 1; - -end; - -procedure TBNestedAForm.GetMemory(Sender: TOBject); -begin - SetLength(SS,NoBLevels,NoALevels); - SetLength(SumSqr,NoBLevels,NoALevels); - SetLength(CellCount,NoBLevels,NoALevels); - SetLength(CellMeans,NoBLevels,NoALevels); - SetLength(CellSDs,NoBLevels,NoALevels); - SetLength(ASS,NoALevels); - SetLength(BSS,NoBLevels); - SetLength(ASumSqr,NoALevels); - SetLength(BSumSqr,NoBLevels); - SetLength(AMeans,NoALevels); - SetLength(BMeans,NoBLevels); - SetLength(ACount,NoALevels); - SetLength(BCount,NoBLevels); - SetLength(ASDs,NoALevels); -end; - -procedure TBNestedAForm.GetSums(Sender: TObject); -VAR - Aindex, Bindex, result, intvalue, i, j : integer; - YValue : double; - strvalue : string; -begin - // initialize memory - for i := 0 to NoBLevels-1 do - begin - for j := 0 to NoALevels-1 do - begin - SS[i,j] := 0.0; - SumSqr[i,j] := 0.0; - CellCount[i,j] := 0; - end; - end; - for i := 0 to NoALevels-1 do - begin - ACount[i] := 0; - AMeans[i] := 0.0; - ASS[i] := 0.0; - ASumSqr[i] := 0.0; - end; - for j := 0 to NoBLevels-1 do - begin - BCount[i] := 0; - BMeans[i] := 0.0; - BSS[i] := 0.0; - BSumSqr[i] := 0.0; - end; - // Accumulate sums and sums of squared values - for i := 1 to NoCases do - begin - strvalue := Trim(OS3MainFrm.DataGrid.Cells[ACol,i]); - Aindex := round(StrToFloat(strvalue)); - strvalue := Trim(OS3MainFrm.DataGrid.Cells[BCol,i]); - Bindex := round(StrToFloat(strvalue)); - strvalue := Trim(OS3MainFrm.DataGrid.Cells[YCol,i]); - YValue := StrToFloat(strvalue); - Aindex := Aindex - MinA; - Bindex := Bindex - MinB; - SS[Bindex,Aindex] := SS[Bindex,Aindex] + YValue * YValue; - SumSqr[Bindex,Aindex] := SumSqr[Bindex,Aindex] + YValue; - CellCount[Bindex,Aindex] := CellCount[Bindex,Aindex] + 1; - ACount[Aindex] := ACount[Aindex] + 1; - BCount[Bindex] := BCount[Bindex] + 1; - ASS[Aindex] := ASS[Aindex] + YValue * YValue; - BSS[Bindex] := BSS[Bindex] + YValue * YValue; - ASumSqr[Aindex] := ASumSqr[Aindex] + YValue; - BSumSqr[Bindex] := BSumSqr[Bindex] + YValue; - SSTot := SSTot + YValue * YValue; - SumSqrTot := SumSqrTot + YValue; - TotN := TotN + 1; - end; - //get cell means and marginal means, SDs plus square of sums - for i := 0 to NoBlevels-1 do - begin - for j := 0 to NoALevels-1 do - begin - if CellCount[i,j] > 0 then - begin - CellMeans[i,j] := SumSqr[i,j] / CellCount[i,j]; - SumSqr[i,j] := SumSqr[i,j] * SumSqr[i,j]; - CellSDs[i,j] := SS[i,j] - (SumSqr[i,j] / CellCount[i,j]); - CellSDs[i,j] := CellSDs[i,j] / (CellCount[i,j] - 1); - CellSDs[i,j] := Sqrt(CellSDs[i,j]); - end; - end; - end; - for i := 0 to NoBLevels-1 do - begin - BMeans[i] := BSumSqr[i] / BCount[i]; - BSumSqr[i] := BSumSqr[i] * BSumSqr[i]; - end; - for i := 0 to NoALevels-1 do - begin - AMeans[i] := ASumSqr[i] / ACount[i]; - ASumSqr[i] := ASumSqr[i] * ASumSqr[i]; - ASDs[i] := ASS[i] - (ASumSqr[i] / ACount[i]); - ASDs[i] := ASDs[i] / (ACount[i] - 1); - ASDs[i] := Sqrt(ASDs[i]); - end; - TotMean := SumSqrTot / TotN; - SumSqrTot := SumSqrTot * SumSqrTot; -end; - -procedure TBNestedAForm.ShowMeans(Sender: TObject); -VAR - outvalue : string; - i, j : integer; -begin - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Nested ANOVA by Bill Miller'); - outvalue := format('File Analyzed = %s',[OS3MainFrm.FileNameEdit.Text]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('CELL MEANS'); - OutPutFrm.RichEdit.Lines.Add('A LEVEL BLEVEL MEAN STD.DEV.'); - for i := 0 to NoALevels-1 do - begin - for j := 0 to NoBLevels-1 do - begin - if CellCount[j,i] > 0 then - begin - outvalue := format('%5d %5d %10.3f %10.3f', - [i+MinA,j+MinB,CellMeans[j,i],CellSDs[j,i]]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - end; - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('A MARGIN MEANS'); - OutPutFrm.RichEdit.Lines.Add('A LEVEL MEAN STD.DEV.'); - for i := 0 to NoALevels-1 do - begin - outvalue := format('%5d %10.3f %10.3f',[i+MinA,AMeans[i],ASDs[i]]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - end; - OutPutFrm.RichEdit.Lines.Add(''); - outvalue := format('GRAND MEAN = %10.3f',[TotMean]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - OutPutFrm.RichEdit.Lines.Add(''); -// OutPutFrm.ShowModal; -end; - -procedure TBNestedAForm.GetResults(Sender: TObject); -VAR - temp, constant : double; - NoBLevelsInA, BLevCount, i, j, celln : integer; - strvalue : string; -begin - celln := 0; - for i := 0 to NoALevels-1 do - begin - for j := 0 to NoBLevels-1 do - begin - if CellCount[j,i] > celln then celln := CellCount[j,i]; - end; - end; - // assume all cells have same n size - // get no. of levels in A - BLevCount := 0; - for i := 0 to NoALevels-1 do - begin - NoBLevelsInA := 0; - for j := 0 to NoBLevels-1 do - begin - if CellCount[j,i] > 0 then NoBLevelsInA := NoBLevelsInA + 1; - end; - if NoBLevelsInA > BLevCount then BLevCount := NoBLevelsInA; - end; - dfA := NoALevels - 1; - dfBwA := NoALevels * (BLevCount - 1); - dfwcell := NoALevels * BLevCount * (celln - 1); - dftotal := TotN - 1; - constant := SumSqrTot / TotN; - SSTot := SSTot - constant; - MSTot := SSTot / dftotal; - SSA := 0.0; - for i := 0 to NoALevels-1 do SSA := SSA + (ASumSqr[i] / ACount[i]); - temp := SSA; - SSA := SSA - constant; - MSA := SSA / dfA; - SSB := 0.0; - for i := 0 to NoALevels - 1 do - begin - for j := 0 to NoBLevels-1 do - begin - if CellCount[j,i] > 0 then SSB := SSB + (SumSqr[j,i] / CellCount[j,i]); - end; - end; - SSB := SSB - temp; - MSB := SSB / dfBwA; - SSW := SSTot - SSA - SSB; - MSW := SSW / dfwcell; - (* - OutPutFrm.RichEdit.Clear; - strvalue := format('SSA = %10.3f MSA = %10.3f SSB = %10.3f MSB = %10.3f', - [SSA,MSA,SSB,MSB]); - OutPutFrm.RichEdit.Lines.Add(strvalue); - strvalue := format('SSW = %10.3f MSW = %10.3f',[SSW,MSW]); - OutPutFrm.RichEdit.Lines.Add(strvalue); - OutPutFrm.ShowModal; -*) -end; - -procedure TBNestedAForm.ShowResults(Sender: TObject); -VAR - outvalue : string; - F, PF : double; -begin - OutPutFrm.RichEdit.Lines.Add('ANOVA TABLE'); - OutPutFrm.RichEdit.Lines.Add('SOURCE D.F. SS MS F PROB.'); - if RandomBChk.Checked then - begin - F := MSA / MSB; - PF := probf(F,dfA,dfBwA); - end else - begin - F := MSA / MSW; - PF := probf(F,dfA,dfwcell); - end; - outvalue := format('A %4D %10.3f%10.3f%10.3f%10.3f',[dfA,SSA,MSA,F,PF]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - F := MSB / MSW; - PF := probf(F,dfBwA,dfwcell); - outvalue := format('B(W) %4D %10.3f%10.3f%10.3f%10.3f',[dfBwA,SSB,MSB,F,PF]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - outvalue := format('w.cells %4D %10.3f%10.3f',[dfwcell,SSW,MSW]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - outvalue := format('Total %4D %10.3f',[dftotal,SSTot]); - OutPutFrm.RichEdit.Lines.Add(outvalue); - OutPutFrm.ShowModal; -end; - -procedure TBNestedAForm.ReleaseMemory(Sender: TObject); -begin - ASDs := nil; - BCount := nil; - ACount := nil; - BMeans := nil; - AMeans := nil; - BSumSqr := nil; - ASumSqr := nil; - BSS := nil; - ASS := nil; - CellSDs := nil; - CellMeans := nil; - CellCount := nil; - SumSqr := nil; - SS := nil; -end; - -procedure TBNestedAForm.TwoWayPlot(Sender: TObject); -VAR - plottype, i, j : integer; - maxmean, XBar : double; - title, setstring : string; - XValue : DblDyneVec; -begin - maxmean := -1000.0; - SetLength(XValue,NoALevels+NoBLevels); - setstring := 'FACTOR A'; - plottype := OptionsBox.ItemIndex + 1; - if plottype = 3 then plottype := 1 - else if plottype = 4 then plottype := 2 - else if plottype = 1 then plottype := 9 - else if plottype = 2 then plottype := 10; - GraphFrm.SetLabels[1] := setstring; - SetLength(GraphFrm.Xpoints,1,NoALevels); - SetLength(GraphFrm.Ypoints,1,NoALevels); - for i := 1 to NoALevels do - begin - GraphFrm.Ypoints[0,i-1] := AMeans[i-1]; - if AMeans[i-1] > maxmean then maxmean := AMeans[i-1]; - XValue[i-1] := MinA + i -1; - GraphFrm.Xpoints[0,i-1] := XValue[i-1]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NoALevels; - GraphFrm.Heading := FactorA; - title := FactorA + ' Group Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; - - // Factor B next - setstring := 'FACTOR B'; - GraphFrm.SetLabels[1] := setstring; - maxmean := 0.0; - SetLength(GraphFrm.Xpoints,1,NoBLevels); - SetLength(GraphFrm.Ypoints,1,NoBLevels); - for i := 1 to NoBLevels do - begin - GraphFrm.Ypoints[0,i-1] := BMeans[i-1]; - if BMeans[i-1] > maxmean then maxmean := BMeans[i-1]; - XValue[i-1] := MinB + i - 1; - GraphFrm.Xpoints[0,i-1] := XValue[i-1]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := NoBLevels; - GraphFrm.Heading := 'FACTOR B'; - title := FactorB + ' Group Codes'; - GraphFrm.XTitle := title; - GraphFrm.YTitle := 'Mean'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxmean; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; - XValue := nil; -end; - -initialization - {$I bnestaunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/boxplotunit.lfm b/applications/lazstats/source_orig/boxplotunit.lfm deleted file mode 100644 index e323d45cc..000000000 --- a/applications/lazstats/source_orig/boxplotunit.lfm +++ /dev/null @@ -1,134 +0,0 @@ -object BoxPlotFrm: TBoxPlotFrm - Left = 258 - Height = 254 - Top = 105 - Width = 420 - Caption = 'Box Plot' - ClientHeight = 254 - ClientWidth = 420 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 8 - Height = 14 - Top = 8 - Width = 90 - Caption = 'Available Variables' - ParentColor = False - end - object Label2: TLabel - Left = 167 - Height = 14 - Top = 24 - Width = 71 - Caption = 'Group Variable' - ParentColor = False - end - object Label3: TLabel - Left = 167 - Height = 14 - Top = 112 - Width = 102 - Caption = 'Meaurement Variable' - ParentColor = False - end - object VarList: TListBox - Left = 8 - Height = 208 - Top = 24 - Width = 142 - ItemHeight = 0 - OnClick = VarListClick - TabOrder = 0 - end - object GroupEdit: TEdit - Left = 166 - Height = 21 - Top = 40 - Width = 129 - TabOrder = 1 - Text = 'GroupEdit' - end - object MeasEdit: TEdit - Left = 167 - Height = 21 - Top = 128 - Width = 130 - TabOrder = 2 - Text = 'MeasEdit' - end - object GroupBox1: TGroupBox - Left = 166 - Height = 65 - Top = 168 - Width = 129 - Caption = 'Options' - ClientHeight = 47 - ClientWidth = 125 - TabOrder = 3 - object PrintChk: TCheckBox - Left = 8 - Height = 17 - Top = 4 - Width = 84 - Caption = 'Print Box Plot' - TabOrder = 0 - end - object ShowChk: TCheckBox - Left = 8 - Height = 17 - Top = 23 - Width = 107 - Caption = 'Show Frequencies' - TabOrder = 1 - end - end - object ResetBtn: TButton - Left = 315 - Height = 32 - Top = 56 - Width = 78 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 4 - end - object CancelBtn: TButton - Left = 315 - Height = 32 - Top = 104 - Width = 79 - Caption = 'Cancel' - ModalResult = 2 - OnClick = CancelBtnClick - TabOrder = 5 - end - object ComputeBtn: TButton - Left = 315 - Height = 32 - Top = 152 - Width = 79 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 6 - end - object OKBtn: TButton - Left = 315 - Height = 33 - Top = 200 - Width = 79 - Caption = 'Return' - ModalResult = 1 - OnClick = OKBtnClick - TabOrder = 7 - end - object HelpBtn: TButton - Tag = 108 - Left = 315 - Height = 32 - Top = 8 - Width = 78 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 8 - end -end diff --git a/applications/lazstats/source_orig/boxplotunit.lrs b/applications/lazstats/source_orig/boxplotunit.lrs deleted file mode 100644 index e24a6f0d2..000000000 --- a/applications/lazstats/source_orig/boxplotunit.lrs +++ /dev/null @@ -1,35 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TBoxPlotFrm','FORMDATA',[ - 'TPF0'#11'TBoxPlotFrm'#10'BoxPlotFrm'#4'Left'#3#2#1#6'Height'#3#254#0#3'Top'#2 - +'i'#5'Width'#3#164#1#7'Caption'#6#8'Box Plot'#12'ClientHeight'#3#254#0#11'Cl' - +'ientWidth'#3#164#1#6'OnShow'#7#8'FormShow'#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'Cap' - +'tion'#6#19'Available Variables'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4 - +'Left'#3#167#0#6'Height'#2#14#3'Top'#2#24#5'Width'#2'G'#7'Caption'#6#14'Grou' - +'p Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#167#0#6'Hei' - +'ght'#2#14#3'Top'#2'p'#5'Width'#2'f'#7'Caption'#6#19'Meaurement Variable'#11 - +'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#8#6'Height'#3#208#0#3'T' - +'op'#2#24#5'Width'#3#142#0#10'ItemHeight'#2#0#7'OnClick'#7#12'VarListClick'#8 - +'TabOrder'#2#0#0#0#5'TEdit'#9'GroupEdit'#4'Left'#3#166#0#6'Height'#2#21#3'To' - +'p'#2'('#5'Width'#3#129#0#8'TabOrder'#2#1#4'Text'#6#9'GroupEdit'#0#0#5'TEdit' - +#8'MeasEdit'#4'Left'#3#167#0#6'Height'#2#21#3'Top'#3#128#0#5'Width'#3#130#0#8 - +'TabOrder'#2#2#4'Text'#6#8'MeasEdit'#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3 - +#166#0#6'Height'#2'A'#3'Top'#3#168#0#5'Width'#3#129#0#7'Caption'#6#7'Options' - +#12'ClientHeight'#2'/'#11'ClientWidth'#2'}'#8'TabOrder'#2#3#0#9'TCheckBox'#8 - +'PrintChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#2#4#5'Width'#2'T'#7'Caption'#6 - +#14'Print Box Plot'#8'TabOrder'#2#0#0#0#9'TCheckBox'#7'ShowChk'#4'Left'#2#8#6 - +'Height'#2#17#3'Top'#2#23#5'Width'#2'k'#7'Caption'#6#16'Show Frequencies'#8 - +'TabOrder'#2#1#0#0#0#7'TButton'#8'ResetBtn'#4'Left'#3';'#1#6'Height'#2' '#3 - +'Top'#2'8'#5'Width'#2'N'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick' - +#8'TabOrder'#2#4#0#0#7'TButton'#9'CancelBtn'#4'Left'#3';'#1#6'Height'#2' '#3 - +'Top'#2'h'#5'Width'#2'O'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#7'OnClic' - +'k'#7#14'CancelBtnClick'#8'TabOrder'#2#5#0#0#7'TButton'#10'ComputeBtn'#4'Lef' - +'t'#3';'#1#6'Height'#2' '#3'Top'#3#152#0#5'Width'#2'O'#7'Caption'#6#7'Comput' - +'e'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#6#0#0#7'TButton'#5'OKBtn' - +#4'Left'#3';'#1#6'Height'#2'!'#3'Top'#3#200#0#5'Width'#2'O'#7'Caption'#6#6'R' - +'eturn'#11'ModalResult'#2#1#7'OnClick'#7#10'OKBtnClick'#8'TabOrder'#2#7#0#0#7 - +'TButton'#7'HelpBtn'#3'Tag'#2'l'#4'Left'#3';'#1#6'Height'#2' '#3'Top'#2#8#5 - +'Width'#2'N'#7'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2 - +#8#0#0#0 -]); diff --git a/applications/lazstats/source_orig/boxplotunit.pas b/applications/lazstats/source_orig/boxplotunit.pas deleted file mode 100644 index d8d4dab55..000000000 --- a/applications/lazstats/source_orig/boxplotunit.pas +++ /dev/null @@ -1,676 +0,0 @@ -unit BoxPlotUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, MainUnit, Globals, DataProcs, OutPutUnit, - GraphLib, Printers, BlankFrmUnit, contexthelpunit; - - -type - - { TBoxPlotFrm } - - TBoxPlotFrm = class(TForm) - HelpBtn: TButton; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - OKBtn: TButton; - ShowChk: TCheckBox; - PrintChk: TCheckBox; - GroupBox1: TGroupBox; - MeasEdit: TEdit; - GroupEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - VarList: TListBox; - procedure CancelBtnClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure OKBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure VarListClick(Sender: TObject); - private - { private declarations } - function Percentile(nscrgrps : integer; - pcnt : double; - VAR freq : DblDyneVec; - VAR cumfreq : DblDyneVec; - VAR scores : DblDyneVec) : double; - procedure pBoxPlot(nbars : integer; - max, min : double; - VAR lowqrtl : DblDyneVec; - VAR hiqrtl : DblDyneVec; - VAR tenpcnt : DblDyneVec; - VAR ninetypcnt : DblDyneVec; - VAR means : DblDyneVec; - VAR median : DblDyneVec); - procedure BoxPlot(nbars : integer; - max, min : double; - VAR lowqrtl : DblDyneVec; - VAR hiqrtl : DblDyneVec; - VAR tenpcnt : DblDyneVec; - VAR ninetypcnt : DblDyneVec; - VAR means : DblDyneVec; - VAR median : DblDyneVec); - - public - { public declarations } - end; - -var - BoxPlotFrm: TBoxPlotFrm; - -implementation - -{ TBoxPlotFrm } - -procedure TBoxPlotFrm.ResetBtnClick(Sender: TObject); -var i : integer; - -begin - VarList.Clear; - GroupEdit.Text := ''; - MeasEdit.Text := ''; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TBoxPlotFrm.VarListClick(Sender: TObject); -var - index : integer; - -begin - index := VarList.ItemIndex; - if GroupEdit.Text = '' then GroupEdit.Text := VarList.Items.Strings[index] - else MeasEdit.Text := VarList.Items.Strings[index]; -end; - -procedure TBoxPlotFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TBoxPlotFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TBoxPlotFrm.OKBtnClick(Sender: TObject); -begin - BoxPlotFrm.Hide; -end; - -procedure TBoxPlotFrm.CancelBtnClick(Sender: TObject); -begin - BoxPlotFrm.Hide; -end; - -procedure TBoxPlotFrm.ComputeBtnClick(Sender: TObject); -label cleanup; -var - i, j, k, GrpVar, MeasVar, mingrp, maxgrp, G, NoGrps, cnt : integer; - nscrgrps : integer; - X, tenpcnt, ninepcnt, qrtile1, qrtile2, qrtile3 : double; - minscr, maxscr, intvlsize, lastX : double; - cellstring, outline : string; - means, lowqrtl, hiqrtl, tenpcntile, ninetypcntile, median : DblDyneVec; - freq : DblDyneVec; - Scores : DblDyneVec; - cumfreq : DblDyneVec; - prank : DblDyneVec; - grpsize : IntDyneVec; - scrgrp : DblDyneVec; - done : boolean; - NoSelected : integer; - ColNoSelected : IntDyneVec; - -begin - SetLength(ColNoSelected,NoVariables); - SetLength(freq,2 * NoCases + 1); - SetLength(Scores,2 * NoCases + 1); - SetLength(cumfreq,2 * NoCases + 1); - SetLength(prank,2 * NoCases + 1); - - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Box Plot of Groups'); - OutPutFrm.RichEdit.Lines.Add(''); - - GrpVar := 1; - MeasVar := 2; - for i := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[i,0]; - if cellstring = GroupEdit.Text then GrpVar := i; - if cellstring = MeasEdit.Text then MeasVar := i; - end; - NoSelected := 2; - ColNoSelected[0] := GrpVar; - ColNoSelected[1] := MeasVar; - - // get minimum and maximum group values - mingrp := 10000; - maxgrp := -10000; - for i := 1 to NoCases do - begin - if Not GoodRecord(i,NoSelected,ColNoSelected) then continue; - G := round(StrToFloat(OS3MainFrm.DataGrid.Cells[GrpVar,i])); - if G < mingrp then mingrp := G; - if G > maxgrp then maxgrp := G; - end; - NoGrps := maxgrp - mingrp + 1; - if NoGrps > 30 then - begin - ShowMessage('ERROR! Too many groups for meaningful plot.'); - goto cleanup; - end; - SetLength(grpsize,NoGrps+1); - SetLength(means,NoGrps+1); - SetLength(lowqrtl,NoGrps+1); - SetLength(hiqrtl,NoGrps+1); - SetLength(tenpcntile,NoGrps+1); - SetLength(ninetypcntile,NoGrps+1); - SetLength(median,NoGrps+1); - SetLength(scrgrp,NoGrps+1); - - // initialize - for j := 1 to NoGrps do - begin - means[j-1] := 0.0; - grpsize[j-1] := 0; - end; - - // get minimum and maximum scores and score interval - intvlsize := 10000.0; - lastX := 0.0; - X := StrToFloat(OS3MainFrm.DataGrid.Cells[MeasVar,1]); - minscr := X; - maxscr := X; - for i := 1 to NoCases do - begin - if Not GoodRecord(i,NoSelected,ColNoSelected) then continue; - X := StrToFloat(OS3MainFrm.DataGrid.Cells[MeasVar,i]); - if X > maxscr then maxscr := X; - if X < minscr then minscr := X; - if i > 1 then // get interval size as minimum difference between 2 scores - begin - if (X <> lastX) and (abs(X - lastX) < intvlsize) then - intvlsize := abs(X - lastX); - lastX := X; - end - else lastX := X; - end; - - // check for excess no. of intervals and reset if needed - nscrgrps := round((maxscr - minscr) / intvlsize); - if nscrgrps > (2 * NoCases) then - intvlsize := (maxscr - minscr) / NoCases; - - // setup score groups - done := false; - Scores[0] := minscr - (intvlsize / 2.0); - nscrgrps := 0; - lastX := maxscr + intvlsize + (intvlsize / 2.0); - - while not done do - begin - nscrgrps := nscrgrps + 1; - Scores[nscrgrps] := minscr + (nscrgrps * intvlsize) - (intvlsize / 2.0); - if Scores[nscrgrps] > lastX then done := true; - end; - Scores[nscrgrps+1] := Scores[nscrgrps] + intvlsize; - if Scores[0] < minscr then minscr := Scores[0]; - if Scores[nscrgrps] > maxscr then maxscr := Scores[nscrgrps]; - - // do analysis for each group - for j := 1 to NoGrps do // group - begin - // get score groups for this group j - for i := 0 to nscrgrps do - begin - cumfreq[i] := 0.0; - freq[i] := 0.0; - end; - cnt := 0; - for i := 1 to NoCases do - begin // get scores for this group j - if Not GoodRecord(i,NoSelected,ColNoSelected) then continue; - G := round(StrToFloat(OS3MainFrm.DataGrid.Cells[GrpVar,i])); - G := G - mingrp + 1; - if G = j then // subject in this group - begin - cnt := cnt + 1; - X := StrToFloat(OS3MainFrm.DataGrid.Cells[MeasVar,i]); - means[j-1] := means[j-1] + X; - // find score interval and add to the frequency - for k := 0 to nscrgrps do - if (X >= Scores[k]) and (X < Scores[k+1]) then - freq[k] := freq[k] + 1; - end; - end; - grpsize[j-1] := cnt; - if grpsize[j-1] > 0 then means[j-1] := means[j-1] / grpsize[j-1]; - - // accumulate frequencies - cumfreq[0] := freq[0]; - for i := 1 to nscrgrps-1 do - cumfreq[i] := cumfreq[i-1] + freq[i]; - cumfreq[nscrgrps] := cumfreq[nscrgrps-1]; - - // get percentile ranks - prank[0] := ((cumfreq[0] / 2.0) / grpsize[j-1]) * 100.0; - for i := 1 to nscrgrps-1 do - prank[i] := ((cumfreq[i-1] + (freq[i] / 2.0)) / grpsize[j-1]) * 100.0; - - // get centiles required. - tenpcnt := 0.10 * grpsize[j-1]; - tenpcntile[j-1] := Percentile(nscrgrps,tenpcnt,freq,cumfreq,scores); - ninepcnt := 0.90 * grpsize[j-1]; - ninetypcntile[j-1] := Percentile(nscrgrps,ninepcnt,freq,cumfreq,scores); - qrtile1 := 0.25 * grpsize[j-1]; - lowqrtl[j-1] := Percentile(nscrgrps,qrtile1,freq,cumfreq,scores); - qrtile2 := 0.50 * grpsize[j-1]; - median[j-1] := Percentile(nscrgrps,qrtile2,freq,cumfreq,scores); - qrtile3 := 0.75 * grpsize[j-1]; - hiqrtl[j-1] := Percentile(nscrgrps,qrtile3,freq,cumfreq,scores); - if ShowChk.Checked then - begin - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Results for group %d, mean = %8.3f',[j, means[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('Centile Value'); - outline := format('Ten %6.3f',[tenpcntile[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Twenty five %6.3f',[lowqrtl[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Median %6.3f',[median[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Seventy five %6.3f',[hiqrtl[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Ninety %6.3f',[ninetypcntile[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('Score Range Frequency Cum.Freq. Percentile Rank'); - OutPutFrm.RichEdit.Lines.Add('______________ _________ _________ _______________'); - for i := 0 to nscrgrps-1 do - begin - outline := format('%6.2f - %6.2f %6.2f %6.2f %6.2f', - [Scores[i],Scores[i+1],freq[i],cumfreq[i],prank[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - end; // get values for next group - if ShowChk.Checked then OutPutFrm.ShowModal; - - // plot the boxes - BoxPlot(NoGrps,maxscr,minscr,lowqrtl,hiqrtl,tenpcntile,ninetypcntile,means,median); - if PrintChk.Checked then - pBoxPlot(NoGrps,maxscr,minscr,lowqrtl,hiqrtl,tenpcntile,ninetypcntile,means,median); - - //cleanup the heap - cleanup: - scrgrp := nil; - median := nil; - ninetypcntile := nil; - tenpcntile := nil; - hiqrtl := nil; - lowqrtl := nil; - means := nil; - grpsize := nil; - cumfreq := nil; - scores := nil; - freq := nil; - ColNoSelected := nil; -end; - -function TBoxPlotFrm.Percentile(nscrgrps : integer; - pcnt : double; - VAR freq : DblDyneVec; - VAR cumfreq : DblDyneVec; - VAR scores : DblDyneVec) : double; -var - i, interval : integer; - pcntile, Llimit, Ulimit, cumlower, intvlfreq : double; - -begin - interval := 0; - for i := 0 to nscrgrps-1 do - begin - if cumfreq[i] > pcnt then - begin - interval := i; - Break; - end; - end; - if interval > 0 then - begin - Llimit := Scores[interval]; - Ulimit := Scores[interval+1]; - cumlower := cumfreq[interval-1]; - intvlfreq := freq[interval]; - end - else - begin // Percentile in first interval - Llimit := Scores[0]; - Ulimit := Scores[1]; - cumlower := 0.0; - intvlfreq := freq[0]; - end; - if intvlfreq > 0 then - pcntile := Llimit + ((pcnt - cumlower) / intvlfreq) * (Ulimit- Llimit) - else pcntile := Llimit; - Result := pcntile; -end; -//------------------------------------------------------------------- - -procedure TBoxPlotFrm.pBoxPlot(nbars : integer; - max, min : double; - VAR lowqrtl : DblDyneVec; - VAR hiqrtl : DblDyneVec; - VAR tenpcnt : DblDyneVec; - VAR ninetypcnt : DblDyneVec; - VAR means : DblDyneVec; - VAR median : DblDyneVec); -var - i, HTickSpace, imagewide, imagehi, vtop, vbottom, offset : integer; - vhi, hleft, hright, hwide, barwidth, Xpos, Ypos, strhi, strwide : integer; -// coords : array [1..5] of TPoint; - X, Y, colcycle : integer; - X1, X2, X3, X9, X10 : integer; // X coordinates for box and lines - Y1, Y2, Y3, Y4, Y9 : integer; // Y coordinates for box and lines - Title : string; - valincr, Yvalue : double; - -begin - Printer.Orientation := poLandscape; - Printer.BeginDoc; - Title := 'BOXPLOT FOR : ' + OS3MainFrm.FileNameEdit.Text; - imagewide := Printer.PageWidth; - imagehi := Printer.PageHeight; - vtop := 400; - vbottom := round(imagehi) - 400; -// vhi := vbottom - vtop; - hleft := 400; - hright := imagewide - 40; - hwide := hright - hleft; - - // show title - Printer.Canvas.Brush.Color := clWhite; - strhi := Printer.Canvas.TextWidth(Title) div 2; - strhi := imagewide div 2 - strhi; - Printer.Canvas.TextOut(strhi,50,Title); - - // show legend - Y := Printer.Canvas.TextHeight(Title) * 2; - Y := Y + 50; - Title := 'RED: mean, BLACK: median, BOX: 25th to 75th percentile, WISKERS: 10th and 90th percentile'; - X := imagewide div 2 - Printer.Canvas.TextWidth(Title) div 2; - Printer.Canvas.TextOut(X,Y,Title); - - Printer.Canvas.Pen.Color := clBlack; - Printer.Canvas.Brush.Color := clWhite; - - // Draw chart border - Printer.Canvas.Rectangle(hleft,vtop,hright,vbottom); - vbottom := vbottom - 400; // decrease bottom - vhi := vbottom - vtop; - - // Draw vertical axis - valincr := (max - min) / 20.0; - for i := 1 to 21 do - begin - Title := format('%8.2f',[max - ((i-1)*valincr)]); - strwide := Printer.Canvas.TextWidth(Title); - strhi := Printer.Canvas.TextHeight(Title); - xpos := 20 + hleft; - Yvalue := max - (valincr * (i-1)); - ypos := round(vhi * ( (max - Yvalue) / (max - min))); - ypos := ypos + vtop - strhi div 2; - Printer.Canvas.TextOut(xpos,ypos,Title); - end; - Printer.Canvas.MoveTo(hleft + strwide + 50,vtop); - Printer.Canvas.LineTo(hleft + strwide + 50,vbottom+20); - hwide := hwide - (strwide + 50); - hleft := hleft + strwide + 50; - HTickSpace := hwide div (nbars + 1); - barwidth := HTickSpace div 2; - - // draw horizontal axis - Printer.Canvas.MoveTo(hleft,vbottom + 20); - Printer.Canvas.LineTo(hright,vbottom + 20); - for i := 1 to nbars do - begin - ypos := vbottom + 10; - xpos := round((hwide / (nbars+1))* i + hleft); - Printer.Canvas.MoveTo(xpos,ypos); - ypos := ypos + 10; - Printer.Canvas.LineTo(xpos,ypos); - Title := format('%d',[i]); - offset := Printer.Canvas.TextWidth(Title) div 2; - strhi := Printer.Canvas.TextHeight(Title); - xpos := xpos - offset; - ypos := ypos + strhi; - Printer.Canvas.Pen.Color := clBlack; - Printer.Canvas.TextOut(xpos,ypos,Title); - xpos := hleft; - Printer.Canvas.TextOut(xpos,ypos,'GROUPS:'); - end; - - for i := 1 to nbars do - begin - colcycle := i mod 4; // select a color for box - if (colcycle = 0) then Printer.Canvas.Brush.Color := clBlue; - if (colcycle = 1) then Printer.Canvas.Brush.Color := clGreen; - if (colcycle = 2) then Printer.Canvas.Brush.Color := clFuchsia; - if (colcycle = 3) then Printer.Canvas.Brush.Color := clLime; - - // plot the box front face - X9 := round(hleft + ((i) * HTickSpace) - (barwidth / 2)); - X10 := X9 + barwidth; - X1 := X9; - X2 := X10; - Ypos:= round((((max - hiqrtl[i-1]) / (max - min)) * vhi) + vtop); - Y1 := Ypos; - Ypos := round((((max - lowqrtl[i-1]) / (max - min)) * vhi) + vtop); - Y2 := Ypos; - Printer.Canvas.Rectangle(X1,Y1,X2,Y2); - - // draw upper 90th percentile line and end - X3 := round(X1 + barwidth / 2); - Printer.Canvas.MoveTo(X3,Y1); - Ypos := round((((max - ninetypcnt[i-1]) / (max - min)) * vhi) + vtop); - Y3 := Ypos; - Printer.Canvas.LineTo(X3,Y3); - Printer.Canvas.MoveTo(X1,Y3); - Printer.Canvas.LineTo(X2,Y3); - - // draw lower 10th percentile line and end - Printer.Canvas.MoveTo(X3,Y2); - Ypos := round((((max - tenpcnt[i-1]) / (max - min)) * vhi) + vtop); - Y4 := Ypos; - Printer.Canvas.LineTo(X3,Y4); - Printer.Canvas.MoveTo(X1,Y4); - Printer.Canvas.LineTo(X2,Y4); - - //plot the mean line - Printer.Canvas.Pen.Width := 10; - Printer.Canvas.Pen.Color := clRed; - Printer.Canvas.Pen.Style := psDot; - Ypos := round((((max - means[i-1]) / (max - min)) * vhi) + vtop); - Y9 := Ypos; - Printer.Canvas.MoveTo(X9,Y9); - Printer.Canvas.LineTo(X10,Y9); - Printer.Canvas.Pen.Color := clBlack; - Printer.Canvas.Pen.Style := psSolid; - - //plot the median line - Printer.Canvas.Pen.Color := clBlack; - Ypos := round((((max - median[i-1]) / (max - min)) * vhi) + vtop); - Y9 := Ypos; - Printer.Canvas.MoveTo(X9,Y9); - Printer.Canvas.LineTo(X10,Y9); - Printer.Canvas.Pen.Color := clBlack; - - end; - Printer.EndDoc; - Printer.Orientation := poPortrait; -end; -//-------------------------------------------------------------------------- - -procedure TBoxPlotFrm.BoxPlot(nbars : integer; - max, min : double; - VAR lowqrtl : DblDyneVec; - VAR hiqrtl : DblDyneVec; - VAR tenpcnt : DblDyneVec; - VAR ninetypcnt : DblDyneVec; - VAR means : DblDyneVec; - VAR median : DblDyneVec); -var - i, HTickSpace, imagewide, imagehi, vtop, vbottom, offset : integer; - vhi, hleft, hright, hwide, barwidth, Xpos, Ypos, strhi : integer; - XOffset, YOffset : integer; -// coords : array [1..5] of TPoint; - X, Y, colcycle : integer; - X1, X2, X3, X9, X10 : integer; // X coordinates for box and lines - Y1, Y2, Y3, Y4, Y9 : integer; // Y coordinates for box and lines - Title : string; - valincr, Yvalue : double; - -begin - BlankFrm.Show; - BlankFrm.Image1.Canvas.Clear; - Title := 'BOXPLOT FOR : ' + OS3MainFrm.FileNameEdit.Text; - imagewide := BlankFrm.width; - imagehi := BlankFrm.Height; - XOffset := imagewide div 10; - YOffset := imagehi div 10; - - vtop := YOffset; - vbottom := imagehi - YOffset; - vhi := vbottom - vtop; - hleft := XOffset; - hright := imagewide - hleft - XOffset; - hwide := hright - hleft; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - // Show title - BlankFrm.Caption := Title; - // show legend - Y := BlankFrm.Image1.Canvas.TextHeight(Title) * 2; - Y := Y + vtop; - Title := 'RED: mean, BLACK: median, BOX: 25th to 75th percentile, WISKERS: 10th and 90th percentile'; - X := imagewide div 2 - BlankFrm.Canvas.TextWidth(Title) div 2; - BlankFrm.Image1.Canvas.TextOut(X,Y,Title); - - HTickSpace := hwide div nbars; - barwidth := HTickSpace div 2; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - - // Draw chart border - BlankFrm.Image1.Canvas.Rectangle(0,0,imagewide,imagehi); - - // Draw vertical axis - valincr := (max - min) / 20.0; - for i := 1 to 21 do - begin - Title := format('%8.2f',[max - ((i-1)*valincr)]); - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - xpos := XOffset; - Yvalue := max - (valincr * (i-1)); - ypos := round(vhi * ( (max - Yvalue) / (max - min))); - ypos := ypos + vtop - strhi div 2; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - end; - BlankFrm.Image1.Canvas.MoveTo(hleft,vtop); - BlankFrm.Image1.Canvas.LineTo(hleft,vbottom); - - // draw horizontal axis - BlankFrm.Image1.Canvas.MoveTo(hleft,vbottom + 10 ); - BlankFrm.Image1.Canvas.LineTo(hright,vbottom + 10); - for i := 1 to nbars do - begin - ypos := vbottom + 10; - xpos := round((hwide / nbars)* i + hleft); - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - ypos := ypos + 10; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - Title := format('%d',[i]); - offset := BlankFrm.Image1.Canvas.TextWidth(Title) div 2; - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - xpos := xpos - offset; - ypos := ypos + strhi; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - xpos := 20; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,'GROUPS:'); - end; - - for i := 1 to nbars do - begin - colcycle := i mod 4; // select a color for box - if (colcycle = 0) then BlankFrm.Image1.Canvas.Brush.Color := clBlue; - if (colcycle = 1) then BlankFrm.Image1.Canvas.Brush.Color := clGreen; - if (colcycle = 2) then BlankFrm.Image1.Canvas.Brush.Color := clFuchsia; - if (colcycle = 3) then BlankFrm.Image1.Canvas.Brush.Color := clLime; - - // plot the box front face - X9 := round(hleft + ((i) * HTickSpace) - (barwidth / 2)); - X10 := X9 + barwidth; - X1 := X9; - X2 := X10; - Ypos:= round((((max - hiqrtl[i-1]) / (max - min)) * vhi) + vtop); - Y1 := Ypos; - Ypos := round((((max - lowqrtl[i-1]) / (max - min)) * vhi) + vtop); - Y2 := Ypos; - BlankFrm.Image1.Canvas.Rectangle(X1,Y1,X2,Y2); - - // draw upper 90th percentile line and end - X3 := round(X1 + barwidth / 2); - BlankFrm.Image1.Canvas.MoveTo(X3,Y1); - Ypos := round((((max - ninetypcnt[i-1]) / (max - min)) * vhi) + vtop); - Y3 := Ypos; - BlankFrm.Image1.Canvas.LineTo(X3,Y3); - BlankFrm.Image1.Canvas.MoveTo(X1,Y3); - BlankFrm.Image1.Canvas.LineTo(X2,Y3); - - // draw lower 10th percentile line and end - BlankFrm.Image1.Canvas.MoveTo(X3,Y2); - Ypos := round((((max - tenpcnt[i-1]) / (max - min)) * vhi) + vtop); - Y4 := Ypos; - BlankFrm.Image1.Canvas.LineTo(X3,Y4); - BlankFrm.Image1.Canvas.MoveTo(X1,Y4); - BlankFrm.Image1.Canvas.LineTo(X2,Y4); - - //plot the means line - BlankFrm.Image1.Canvas.Pen.Color := clRed; - BlankFrm.Image1.Canvas.Pen.Style := psDot; - Ypos := round((((max - means[i-1]) / (max - min)) * vhi) + vtop); - Y9 := Ypos; - BlankFrm.Image1.Canvas.MoveTo(X9,Y9); - BlankFrm.Image1.Canvas.LineTo(X10,Y9); - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Pen.Style := psSolid; - - //plot the median line - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - Ypos := round((((max - median[i-1]) / (max - min)) * vhi) + vtop); - Y9 := Ypos; - BlankFrm.Image1.Canvas.MoveTo(X9,Y9); - BlankFrm.Image1.Canvas.LineTo(X10,Y9); - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - - end; -end; -//-------------------------------------------------------------------------- - -initialization - {$I boxplotunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/breakdownunit.lfm b/applications/lazstats/source_orig/breakdownunit.lfm deleted file mode 100644 index e4ca296eb..000000000 --- a/applications/lazstats/source_orig/breakdownunit.lfm +++ /dev/null @@ -1,302 +0,0 @@ -object BreakDownFrm: TBreakDownFrm - Left = 180 - Height = 292 - Top = 103 - Width = 599 - Caption = 'Breakdown' - ClientHeight = 292 - ClientWidth = 599 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object AvailLabel: TLabel - Left = 7 - Height = 14 - Top = 7 - Width = 90 - Caption = 'Available Variables' - ParentColor = False - end - object AnalLabel: TLabel - Left = 231 - Height = 14 - Top = 7 - Width = 98 - Caption = 'Variables to Analyze' - ParentColor = False - end - object SelLabel: TLabel - Left = 231 - Height = 14 - Top = 224 - Width = 140 - Caption = 'Selected Continuous Variable' - ParentColor = False - end - object VarList: TListBox - Left = 6 - Height = 256 - Top = 24 - Width = 168 - ItemHeight = 0 - MultiSelect = True - TabOrder = 0 - end - object ListBox1: TListBox - Left = 232 - Height = 185 - Top = 23 - Width = 176 - ItemHeight = 0 - TabOrder = 1 - end - object DepVar: TEdit - Left = 231 - Height = 21 - Top = 240 - Width = 175 - TabOrder = 2 - Text = 'DepVar' - end - object CheckGroup1: TCheckGroup - Left = 424 - Height = 41 - Top = 8 - Width = 167 - AutoFill = True - Caption = '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 - Items.Strings = ( - 'One Way ANOVA' - ) - TabOrder = 3 - Data = { - 0100000002 - } - end - object ResetBtn: TButton - Left = 464 - Height = 29 - Top = 112 - Width = 78 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 4 - end - object CancelBtn: TButton - Left = 464 - Height = 29 - Top = 160 - Width = 78 - Caption = 'Cancel' - ModalResult = 2 - OnClick = CancelBtnClick - TabOrder = 5 - end - object OKBtn: TButton - Left = 464 - Height = 29 - Top = 209 - Width = 78 - Caption = 'Continue' - ModalResult = 1 - OnClick = OKBtnClick - TabOrder = 6 - end - object InBtn: TBitBtn - Left = 184 - 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 = 7 - end - object OutBtn: TBitBtn - Left = 184 - 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 = 8 - end - object SelVarInBtn: TBitBtn - Left = 184 - Height = 30 - Top = 216 - 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 = SelVarInBtnClick - TabOrder = 9 - end - object SelVarOutBtn: TBitBtn - Left = 184 - Height = 30 - Top = 248 - 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 = SelVarOutBtnClick - TabOrder = 10 - end - object HelpBtn: TButton - Tag = 109 - Left = 464 - Height = 28 - Top = 64 - Width = 78 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 11 - end -end diff --git a/applications/lazstats/source_orig/breakdownunit.lrs b/applications/lazstats/source_orig/breakdownunit.lrs deleted file mode 100644 index acf94ddd2..000000000 --- a/applications/lazstats/source_orig/breakdownunit.lrs +++ /dev/null @@ -1,242 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TBreakDownFrm','FORMDATA',[ - 'TPF0'#13'TBreakDownFrm'#12'BreakDownFrm'#4'Left'#3#180#0#6'Height'#3'$'#1#3 - +'Top'#2'g'#5'Width'#3'W'#2#7'Caption'#6#9'Breakdown'#12'ClientHeight'#3'$'#1 - +#11'ClientWidth'#3'W'#2#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#8'0.9.28.2' - +#0#6'TLabel'#10'AvailLabel'#4'Left'#2#7#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'#9'A' - +'nalLabel'#4'Left'#3#231#0#6'Height'#2#14#3'Top'#2#7#5'Width'#2'b'#7'Caption' - +#6#20'Variables to Analyze'#11'ParentColor'#8#0#0#6'TLabel'#8'SelLabel'#4'Le' - +'ft'#3#231#0#6'Height'#2#14#3'Top'#3#224#0#5'Width'#3#140#0#7'Caption'#6#28 - +'Selected Continuous Variable'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4 - +'Left'#2#6#6'Height'#3#0#1#3'Top'#2#24#5'Width'#3#168#0#10'ItemHeight'#2#0#11 - +'MultiSelect'#9#8'TabOrder'#2#0#0#0#8'TListBox'#8'ListBox1'#4'Left'#3#232#0#6 - +'Height'#3#185#0#3'Top'#2#23#5'Width'#3#176#0#10'ItemHeight'#2#0#8'TabOrder' - +#2#1#0#0#5'TEdit'#6'DepVar'#4'Left'#3#231#0#6'Height'#2#21#3'Top'#3#240#0#5 - +'Width'#3#175#0#8'TabOrder'#2#2#4'Text'#6#6'DepVar'#0#0#11'TCheckGroup'#11'C' - +'heckGroup1'#4'Left'#3#168#1#6'Height'#2')'#3'Top'#2#8#5'Width'#3#167#0#8'Au' - +'toFill'#9#7'Caption'#6#6'Option'#28'ChildSizing.LeftRightSpacing'#2#6#28'Ch' - +'ildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsH' - +'omogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChi' - +'ldResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSiz' - +'ing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLef' - +'tToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#13'Items.Strin' - +'gs'#1#6#13'One Way ANOVA'#0#8'TabOrder'#2#3#4'Data'#10#5#0#0#0#1#0#0#0#2#0#0 - +#7'TButton'#8'ResetBtn'#4'Left'#3#208#1#6'Height'#2#29#3'Top'#2'p'#5'Width'#2 - +'N'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#4#0#0 - +#7'TButton'#9'CancelBtn'#4'Left'#3#208#1#6'Height'#2#29#3'Top'#3#160#0#5'Wid' - +'th'#2'N'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#7'OnClick'#7#14'CancelB' - +'tnClick'#8'TabOrder'#2#5#0#0#7'TButton'#5'OKBtn'#4'Left'#3#208#1#6'Height'#2 - +#29#3'Top'#3#209#0#5'Width'#2'N'#7'Caption'#6#8'Continue'#11'ModalResult'#2#1 - +#7'OnClick'#7#10'OKBtnClick'#8'TabOrder'#2#6#0#0#7'TBitBtn'#5'InBtn'#4'Left' - +#3#184#0#6'Height'#2#30#3'Top'#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'NumGlyphs'#2#0#7'OnClick'#7#10'InBtnClick'#8'TabOrder' - +#2#7#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#184#0#6'Height'#2#30#3'Top'#2'8'#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#11'OutBtnClick'#8'TabOrder'#2#8#0#0#7'TBitBtn'#11'SelV' - +'arInBtn'#4'Left'#3#184#0#6'Height'#2#30#3'Top'#3#216#0#5'Width'#2'"'#10'Gly' - +'ph.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#16'SelVarInBtnCli' - +'ck'#8'TabOrder'#2#9#0#0#7'TBitBtn'#12'SelVarOutBtn'#4'Left'#3#184#0#6'Heigh' - +'t'#2#30#3'Top'#3#248#0#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 - +'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#17'SelVarOutBtnClick'#8'TabOrder'#2 - +#10#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2'm'#4'Left'#3#208#1#6'Height'#2#28#3'T' - +'op'#2'@'#5'Width'#2'N'#7'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8 - +'TabOrder'#2#11#0#0#0 -]); diff --git a/applications/lazstats/source_orig/breakdownunit.pas b/applications/lazstats/source_orig/breakdownunit.pas deleted file mode 100644 index c8a7e3fab..000000000 --- a/applications/lazstats/source_orig/breakdownunit.pas +++ /dev/null @@ -1,559 +0,0 @@ -unit BreakDownUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, ExtCtrls, Buttons, MainUnit, Globals, functionsLib, OutPutUnit, - DataProcs, contexthelpunit; - -type - - { TBreakDownFrm } - - TBreakDownFrm = class(TForm) - HelpBtn: TButton; - InBtn: TBitBtn; - OutBtn: TBitBtn; - SelVarInBtn: TBitBtn; - SelVarOutBtn: TBitBtn; - ResetBtn: TButton; - CancelBtn: TButton; - OKBtn: TButton; - CheckGroup1: TCheckGroup; - DepVar: TEdit; - AvailLabel: TLabel; - AnalLabel: TLabel; - SelLabel: TLabel; - ListBox1: TListBox; - VarList: TListBox; - procedure CancelBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure InBtnClick(Sender: TObject); - procedure OKBtnClick(Sender: TObject); - procedure OutBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure SelVarInBtnClick(Sender: TObject); - procedure SelVarOutBtnClick(Sender: TObject); - private - { private declarations } - { Private declarations } - Minimum, Maximum, levels, displace, subscript : IntDyneVec; - Freq : IntDyneVec; - Selected : IntDyneVec; - mean, variance, Stddev, SS : DblDyneVec; - index, NoSelected, ListSize, Dependentvar, X, length_array : integer; - ptr1, ptr2, sum, grandsum : integer; - xsumtotal, xsqrtotal, grandsumx, grandsumx2, value, SD : double; - SST, SSW, SSB, MSW, MSB, F, FProb, DF1, DF2 : double; - cellstring : string; - outline : string; - valstr : string; - dataread : boolean; - function Index_Pos(VAR X1 : IntDyneVec; - VAR displace1 : IntDyneVec; - ListSize1 : integer; - Sender: TObject) : integer; - - public - { public declarations } - end; - -var - BreakDownFrm: TBreakDownFrm; - -implementation - -{ TBreakDownFrm } - -procedure TBreakDownFrm.ResetBtnClick(Sender: TObject); -var - i : integer; - -begin - VarList.Clear; - ListBox1.Clear; - DepVar.Text := ''; - InBtn.Visible := true; - OutBtn.Visible := false; - SelVarInBtn.Visible := true; - SelVarOutBtn.Visible := false; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TBreakDownFrm.SelVarInBtnClick(Sender: TObject); -var - index1 : integer; -begin - index1 := VarList.ItemIndex; - DepVar.Text := VarList.Items.Strings[index1]; - SelVarInBtn.Visible := false; - SelVarOutBtn.Visible := true; -end; - -procedure TBreakDownFrm.SelVarOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(DepVar.Text); - SelVarOutBtn.Visible := false; - SelVarInBtn.Visible := true; -end; - -procedure TBreakDownFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TBreakDownFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TBreakDownFrm.CancelBtnClick(Sender: TObject); -begin - BreakDownFrm.Hide; -end; - -procedure TBreakDownFrm.InBtnClick(Sender: TObject); -var - index1, i : integer; - -begin - index1 := VarList.Items.Count; - i := 0; - while i < index1 do - begin - if (VarList.Selected[i]) then - begin - ListBox1.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index1 := index1 - 1; - i := 0; - end - else i := i + 1; - end; - OutBtn.Visible := true; - if VarList.Items.Count = 0 then InBtn.Visible := false; -end; - -procedure TBreakDownFrm.OKBtnClick(Sender: TObject); -label Label1, Label3, Label4, NextStep, FirstOne, SecondOne, ThirdOne, LastStep; -var - i, j : integer; - tempval : string; - -begin - // Identify columns of variables to analyze and the dependent var. - NoSelected := ListBox1.Items.Count; - - // Get column no. of dependent variable - cellstring := DepVar.Text; - for i := 1 to NoVariables do - if cellstring = OS3MainFrm.DataGrid.Cells[i,0] then dependentvar := i; - - // Allocate heap - SetLength(Minimum,NoVariables); - SetLength(Maximum,NoVariables); - SetLength(levels,NoVariables); - SetLength(displace,NoVariables); - SetLength(subscript,NoVariables); - SetLength(Selected,NoVariables); - - // Get selected variables - for i := 1 to NoSelected do - begin - cellstring := ListBox1.Items.Strings[i-1]; - for j := 1 to NoVariables do - if cellstring = OS3MainFrm.DataGrid.Cells[j,0] then Selected[i-1] := j; - end; - Selected[NoSelected] := dependentvar; - ListSize := NoSelected; - - // Get maximum and minimum levels in each variable - for i := 1 to ListSize do - begin - index := Selected[i-1]; - Minimum[i-1] := round(StrToFloat(OS3MainFrm.DataGrid.Cells[index,1])); - Maximum[i-1] := Minimum[i-1]; - for j := 1 to NoCases do - begin - if GoodRecord(j,NoSelected,Selected) then - begin - X := round(StrToFloat(OS3MainFrm.DataGrid.Cells[index,j])); - if X < Minimum[i-1] then Minimum[i-1] := X; - if X > Maximum[i-1] then Maximum[i-1] := X; - end; - end; - end; - - // Calculate number of levels for each variable - for i := 1 to ListSize do - levels[i-1] := Maximum[i-1] - Minimum[i-1] + 1; - displace[ListSize-1] := 1; - if ListSize > 1 then - begin - for i := ListSize-1 downto 1 do - displace[i-1] := levels[i] * displace[i]; - end; - - // Now, tabulate - length_array := 1; - for i := 1 to ListSize do length_array := Length_array * levels[i-1]; - - // initialize values - SetLength(Freq,length_array+1); - SetLength(mean,length_array+1); - SetLength(variance,length_array+1); - SetLength(Stddev,length_array+1); - SetLength(SS,length_array+1); - - for i := 0 to length_array do - begin - Freq[i] := 0; - mean[i] := 0.0; - variance[i] := 0.0; - Stddev[i] := 0.0; - SS[i] := 0.0; - end; - - // tabulate - for i := 1 to NoCases do - begin - dataread := false; - if GoodRecord(i,NoSelected,Selected) then - begin - for j := 1 to ListSize do - begin - index := Selected[j-1]; - X := round(StrToFLoat(OS3MainFrm.DataGrid.Cells[index,i])); - X := X - Minimum[j-1] + 1; - subscript[j-1] := X; - dataread := true; - end; - end; - if dataread then - begin - j := Index_Pos(subscript,displace,ListSize, self); - Freq[j] := Freq[j] + 1; - index := dependentvar; - tempval := Trim(OS3MainFrm.DataGrid.Cells[index,i]); - if tempval <> '' then - begin - value := StrToFloat(tempval); - mean[j] := mean[j] + value; - variance[j] := variance[j] + (value * value); - end; - end; - end; - - // setup the output - OutPutFrm.RichEdit.Clear; -// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify; - OutPutFrm.RichEdit.Lines.Add('BREAKDOWN ANALYSIS PROGRAM'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('VARIABLE SEQUENCE FOR THE BREAKDOWN:'); - for i := 1 to ListSize do - begin - index := Selected[i-1]; - outline := format('%-10s (Variable %3d) Lowest level = %2d Highest level = %2d', - [OS3MainFrm.DataGrid.Cells[index,0],i, Minimum[i-1], Maximum[i-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - //OutPutFrm.ShowModal; - - // Breakdown the data - ptr1 := ListSize - 1; - ptr2 := ListSize; - for i := 1 to ListSize do subscript[i-1] := 1; - sum := 0; - xsumtotal := 0.0; - xsqrtotal := 0.0; - grandsum := 0; - grandsumx := 0.0; - grandsumx2 := 0.0; - -Label1: - index := Index_Pos(subscript,displace,ListSize,self); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Variable levels: '); - for i := 1 to ListSize do - begin - j := Selected[i-1]; - outline := format('%-10s level = %3d', - [OS3MainFrm.DataGrid.Cells[j,0], - Minimum[i-1] + subscript[i-1] - 1]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - sum := sum + Freq[index]; - xsumtotal := xsumtotal + mean[index]; - xsqrtotal := xsqrtotal + variance[index]; - OutPutFrm.RichEdit.Lines.Add('Freq. Mean Std. Dev.'); - outline := format('%3d',[Freq[index]]); - if Freq[index] > 0 then - begin - valstr := format(' %8.3f ',[mean[index] / Freq[index]]); - outline := outline + valstr; - end - else outline := outline +' ******** '; - if Freq[index] > 1 then - begin - SS[index] := variance[index]; - variance[index] := variance[index] - (mean[index] * mean[index] / Freq[index]); - variance[index] := variance[index] / (Freq[index] - 1); - Stddev[index] := sqrt(variance[index]); - valstr := format('%8.3f ',[Stddev[index]]); - outline := outline + valstr; - end - else outline := outline + '********'; - OutPutFrm.RichEdit.Lines.Add(outline); - - subscript[ptr2-1] := subscript[ptr2-1] + 1; - if subscript[ptr2-1] <= levels[ptr2-1] then goto Label1; - outline := format('Number of observations accross levels = %3d',[sum]); - OutPutFrm.RichEdit.Lines.Add(outline); - if sum > 0 then - begin - outline := format('Mean accross levels = %8.3f',[ xsumtotal / sum]); - OutPutFrm.RichEdit.Lines.Add(outline); - end - else OutPutFrm.RichEdit.Lines.Add('Mean accross levels = ********'); - if sum > 1 then - begin - SD := sqrt( (xsqrtotal - (xsumtotal * xsumtotal) / sum) / (sum - 1)); - outline := format('Std. Dev. accross levels = %8.3f',[SD]); - OutPutFrm.RichEdit.Lines.Add(outline); - end - else OutPutFrm.RichEdit.Lines.Add('Std. Dev. accross levels = *******'); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - grandsum := grandsum + sum; - grandsumx := grandsumx + xsumtotal; - grandsumx2 := grandsumx2 + xsqrtotal; - sum := 0; - xsumtotal := 0.0; - xsqrtotal := 0.0; - if ptr1 < 1 then goto NextStep; - subscript[ptr1-1] :=subscript[ptr1-1] + 1; - if subscript[ptr1-1] <= levels[ptr1-1] then goto Label4; - -Label3: - ptr1 := ptr1 - 1; - if ptr1 < 1 then goto NextStep; - if subscript[ptr1-1] > levels[ptr1-1] then goto Label3; - subscript[ptr1-1] := subscript[ptr1-1] + 1; - if subscript[ptr1-1] > levels[ptr1-1] then goto Label3; - -Label4: - for i := ptr1+1 to ListSize do subscript[i-1] := 1; - ptr1 := ListSize - 1; - if ptr1 < 1 then goto NextStep; - goto Label1; - -NextStep: - outline := format('Grand number of observations accross all categories = %3d', - [grandsum]); - OutPutFrm.RichEdit.Lines.Add(outline); - if grandsum > 0 then - begin - outline := format('Overall Mean = %8.3f',[grandsumx / grandsum]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - if grandsum > 1 then - begin - SD := sqrt((grandsumx2 - (grandsumx * grandsumx) / grandsum) / (grandsum - 1)); - outline := format('Overall standard deviation = %8.3f',[SD]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - // Do ANOVA's if requested - if CheckGroup1.CheckEnabled[0] then - begin - OutPutFrm.RichEdit.Lines.Add('ANALYSES OF VARIANCE SUMMARY TABLES'); - OutPutFrm.RichEdit.Lines.Add(''); - ptr1 := ListSize - 1; - ptr2 := ListSize; - for i := 1 to ListSize do subscript[i-1] := 1; - SSB := 0.0; - SSW := 0.0; - MSB := 0.0; - MSW := 0.0; - grandsum := 0; - grandsumx := 0.0; - grandsumx2 := 0.0; - DF1 := 0.0; - DF2 := 0.0; -FirstOne: - index := Index_Pos(subscript,displace,ListSize, self); - if Freq[index] > 0 then - begin - OutPutFrm.RichEdit.Lines.Add('Variable levels: '); - for i := 1 to ListSize do - begin - j := Selected[i-1]; - outline := format('%-10s level = %3d', - [OS3MainFrm.DataGrid.Cells[j,0], Minimum[i-1] + subscript[i-1] - 1]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - // build sumsof squares for this set - DF1 := DF1 + 1; - DF2 := DF2 + Freq[index] - 1; - grandsum := grandsum + Freq[index]; - grandsumx := grandsumx + mean[index]; - grandsumx2 := grandsumx2 + SS[index]; - SSW := SSW + SS[index] - (mean[index] * mean[index] / Freq[index]); - end; - subscript[ptr2-1] := subscript[ptr2-1] + 1; - if subscript[ptr2-1] <= levels[ptr2-1] then goto FirstOne; - - if ((grandsum > 0.0) and (DF1 > 1) and (DF2 > 1) and (SSW > 0.0)) then - begin - // build and show anova table - SST := grandsumx2 - (grandsumx * grandsumx / grandsum); - SSB := SST - SSW; - DF1 := DF1 - 1.0; // no. of groups - 1 - MSB := SSB / DF1; - MSW := SSW / DF2; - F := MSB / MSW; - FProb := probf(DF1,DF2,F); - OutPutFrm.RichEdit.Lines.Add('SOURCE D.F. SS MS F Prob.>F'); - outline := format('GROUPS %2.0f %8.2f %8.2f %8.3f %6.4f', - [DF1,SSB,MSB,F,FProb]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('WITHIN %2.0f %8.2f %8.2f', - [DF2,SSW,MSW]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('TOTAL %2d %8.2f',[grandsum-1,SST]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end - else begin - OutPutFrm.RichEdit.Lines.Add('Insufficient data for ANOVA'); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - SSB := 0.0; - SSW := 0.0; - MSB := 0.0; - MSW := 0.0; - grandsum := 0; - grandsumx := 0.0; - grandsumx2 := 0.0; - DF1 := 0.0; - DF2 := 0.0; - if ptr1 < 1 then goto LastStep; - subscript[ptr1-1] := subscript[ptr1-1] + 1; - if subscript[ptr1-1] <= levels[ptr1-1] then goto ThirdOne; -SecondOne: - ptr1 := ptr1 - 1; - if ptr1 < 1 then goto LastStep; - if subscript[ptr1-1] > levels[ptr1-1] then goto SecondOne; - subscript[ptr1-1] := subscript[ptr1-1] + 1; - if subscript[ptr1-1] > levels[ptr1-1] then goto SecondOne; -ThirdOne: - for i := ptr1+1 to ListSize do subscript[i-1] := 1; - ptr1 := ListSize - 1; - if ptr1 < 1 then goto LastStep; - goto FirstOne; -LastStep: - // do anova for all cells - OutPutFrm.RichEdit.Lines.Add('ANOVA FOR ALL CELLS'); - OutPutFrm.RichEdit.Lines.Add(''); - SST := 0.0; - SSW := 0.0; - DF2 := 0.0; - DF1 := 0.0; - grandsumx := 0.0; - grandsum := 0; - for i := 1 to length_array do - begin - if Freq[i] > 0 then - begin - SST := SST + SS[i]; - grandsum := grandsum + Freq[i]; - grandsumx := grandsumx + mean[i]; - SSW := SSW + (SS[i] - (mean[i] * mean[i] / Freq[i])); - DF1 := DF1 + 1.0; - DF2 := DF2 + (Freq[i] - 1); - end; - end; - if ( (DF1 > 1.0) and (DF2 > 1.0) and (SSW > 0.0)) then - begin - SST := SST - (grandsumx * grandsumx / grandsum); - SSB := SST - SSW; - DF1 := DF1 - 1; - MSB := SSB / DF1; - MSW := SSW / DF2; - F := MSB / MSW; - FProb := probf(DF1, DF2, F); - OutPutFrm.RichEdit.Lines.Add('SOURCE D.F. SS MS F Prob.>F'); - outline := format('GROUPS %2.0f %8.2f %8.2f %8.3f %6.4f', - [DF1,SSB,MSB,F,FProb]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('WITHIN %2.0f %8.2f %8.2f', - [DF2,SSW,MSW]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('TOTAL %2d %8.2f',[grandsum-1,SST]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('FINISHED'); - OutPutFrm.ShowModal; - end - else - begin - OutPutFrm.RichEdit.Lines.Add('Only 1 group. No ANOVA possible.'); - OutPutFrm.ShowModal; - end; - end; - - SS := nil; - Stddev := nil; - variance := nil; - mean := nil; - Freq := nil; - selected := nil; - subscript := nil; - displace := nil; - levels := nil; - Maximum := nil; - Minimum := nil; - - BreakDownFrm.Hide; -end; - -procedure TBreakDownFrm.OutBtnClick(Sender: TObject); -var - index1: integer; - -begin - index1 := ListBox1.ItemIndex; - VarList.Items.Add(ListBox1.Items.Strings[index1]); - ListBox1.Items.Delete(index1); - InBtn.Visible := true; - if ListBox1.Items.Count = 0 then OutBtn.Visible := false; -end; - -function TBreakDownFrm.Index_Pos(var X1: IntDyneVec; var displace1: IntDyneVec; - ListSize1: integer; Sender: TObject): integer; -var - index1, i : integer; - -begin - index1 := X1[ListSize-1]; - for i := 1 to ListSize - 1 do - index1 := index1 + ((X1[i-1] - 1) * displace[i-1]); - Result := index1; -end; - -initialization - {$I breakdownunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/bubbleplotunit.lfm b/applications/lazstats/source_orig/bubbleplotunit.lfm deleted file mode 100644 index 597819b8d..000000000 --- a/applications/lazstats/source_orig/bubbleplotunit.lfm +++ /dev/null @@ -1,553 +0,0 @@ -object BubbleForm: TBubbleForm - Left = 133 - Height = 412 - Top = 122 - Width = 550 - Caption = 'Repeated Measures Bubble Plot' - ClientHeight = 412 - ClientWidth = 550 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 8 - Height = 14 - Top = 16 - Width = 48 - Caption = 'Variables:' - ParentColor = False - end - object Label2: TLabel - Left = 230 - Height = 14 - Top = 32 - Width = 172 - Caption = 'Bubble Identification Nuber Variable' - ParentColor = False - end - object Label3: TLabel - Left = 231 - Height = 14 - Top = 104 - Width = 77 - Caption = 'X Value Variable' - ParentColor = False - end - object Label4: TLabel - Left = 230 - Height = 14 - Top = 176 - Width = 77 - Caption = 'Y Value Variable' - ParentColor = False - end - object Label5: TLabel - Left = 230 - Height = 14 - Top = 248 - Width = 96 - Caption = 'Bubble Size Variable' - ParentColor = False - end - object Label6: TLabel - Left = 8 - Height = 14 - Top = 328 - Width = 50 - Caption = 'Main Title:' - ParentColor = False - end - object Label7: TLabel - Left = 8 - Height = 14 - Top = 360 - Width = 39 - Caption = 'X Label:' - ParentColor = False - end - object Label8: TLabel - Left = 240 - Height = 14 - Top = 360 - Width = 39 - Caption = 'Y Label:' - ParentColor = False - end - object VarList: TListBox - Left = 8 - Height = 274 - Top = 32 - Width = 173 - ItemHeight = 0 - TabOrder = 0 - end - object IDInBtn: TBitBtn - Left = 192 - Height = 26 - Top = 32 - 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 = IDInBtnClick - TabOrder = 1 - end - object IDOutBtn: TBitBtn - Left = 192 - Height = 26 - Top = 64 - 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 = IDOutBtnClick - TabOrder = 2 - end - object XInBtn: TBitBtn - Left = 192 - Height = 26 - Top = 104 - 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 = XInBtnClick - TabOrder = 3 - end - object XOutBtn: TBitBtn - Left = 192 - Height = 26 - Top = 136 - 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 = XOutBtnClick - TabOrder = 4 - end - object YInBtn: TBitBtn - Left = 192 - Height = 26 - Top = 176 - 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 = YInBtnClick - TabOrder = 5 - end - object YOutBtn: TBitBtn - Left = 192 - Height = 26 - Top = 208 - 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 = YOutBtnClick - TabOrder = 6 - end - object SizeInBtn: TBitBtn - Left = 192 - Height = 26 - Top = 248 - 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 = SizeInBtnClick - TabOrder = 7 - end - object SizeOutBtn: TBitBtn - Left = 192 - Height = 26 - Top = 280 - 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 = SizeOutBtnClick - TabOrder = 8 - end - object BubbleEdit: TEdit - Left = 232 - Height = 21 - Top = 48 - Width = 167 - TabOrder = 9 - Text = 'BubbleEdit' - end - object XEdit: TEdit - Left = 230 - Height = 21 - Top = 120 - Width = 166 - TabOrder = 10 - Text = 'XEdit' - end - object YEdit: TEdit - Left = 230 - Height = 21 - Top = 192 - Width = 165 - TabOrder = 11 - Text = 'YEdit' - end - object SizeEdit: TEdit - Left = 230 - Height = 21 - Top = 264 - Width = 166 - TabOrder = 12 - Text = 'SizeEdit' - end - object ResetBtn: TButton - Left = 443 - Height = 40 - Top = 80 - Width = 94 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 13 - end - object CancelBtn: TButton - Left = 440 - Height = 38 - Top = 144 - Width = 98 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 14 - end - object ComputeBtn: TButton - Left = 440 - Height = 38 - Top = 208 - Width = 98 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 15 - end - object ReturnBtn: TButton - Left = 440 - Height = 38 - Top = 272 - Width = 98 - Caption = 'Return' - ModalResult = 1 - TabOrder = 16 - end - object TitleEdit: TEdit - Left = 63 - Height = 21 - Top = 321 - Width = 332 - TabOrder = 17 - Text = 'TitleEdit' - end - object XLabelEdit: TEdit - Left = 63 - Height = 21 - Top = 353 - Width = 157 - TabOrder = 18 - Text = 'XLabelEdit' - end - object YLabelEdit: TEdit - Left = 280 - Height = 21 - Top = 353 - Width = 159 - TabOrder = 19 - Text = 'YLabelEdit' - end - object TransformChk: TCheckBox - Left = 8 - Height = 17 - Top = 384 - Width = 335 - Caption = 'Transform Data Grid for ANOVA (Treatments by Subjects ANOVA)' - TabOrder = 20 - end - object HelpBtn: TButton - Tag = 110 - Left = 440 - Height = 42 - Top = 16 - Width = 96 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 21 - end -end diff --git a/applications/lazstats/source_orig/bubbleplotunit.lrs b/applications/lazstats/source_orig/bubbleplotunit.lrs deleted file mode 100644 index c04421d41..000000000 --- a/applications/lazstats/source_orig/bubbleplotunit.lrs +++ /dev/null @@ -1,460 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TBubbleForm','FORMDATA',[ - 'TPF0'#11'TBubbleForm'#10'BubbleForm'#4'Left'#3#133#0#6'Height'#3#156#1#3'Top' - +#2'z'#5'Width'#3'&'#2#7'Caption'#6#29'Repeated Measures Bubble Plot'#12'Clie' - +'ntHeight'#3#156#1#11'ClientWidth'#3'&'#2#6'OnShow'#7#8'FormShow'#10'LCLVers' - +'ion'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'#2#14#3'Top'#2 - +#16#5'Width'#2'0'#7'Caption'#6#10'Variables:'#11'ParentColor'#8#0#0#6'TLabel' - +#6'Label2'#4'Left'#3#230#0#6'Height'#2#14#3'Top'#2' '#5'Width'#3#172#0#7'Cap' - +'tion'#6'$Bubble Identification Nuber Variable'#11'ParentColor'#8#0#0#6'TLab' - +'el'#6'Label3'#4'Left'#3#231#0#6'Height'#2#14#3'Top'#2'h'#5'Width'#2'M'#7'Ca' - +'ption'#6#16'X Value Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'L' - +'eft'#3#230#0#6'Height'#2#14#3'Top'#3#176#0#5'Width'#2'M'#7'Caption'#6#16'Y ' - +'Value Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#3#230#0#6 - +'Height'#2#14#3'Top'#3#248#0#5'Width'#2'`'#7'Caption'#6#20'Bubble Size Varia' - +'ble'#11'ParentColor'#8#0#0#6'TLabel'#6'Label6'#4'Left'#2#8#6'Height'#2#14#3 - +'Top'#3'H'#1#5'Width'#2'2'#7'Caption'#6#11'Main Title:'#11'ParentColor'#8#0#0 - +#6'TLabel'#6'Label7'#4'Left'#2#8#6'Height'#2#14#3'Top'#3'h'#1#5'Width'#2'''' - +#7'Caption'#6#8'X Label:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label8'#4'Left'#3 - +#240#0#6'Height'#2#14#3'Top'#3'h'#1#5'Width'#2''''#7'Caption'#6#8'Y Label:' - +#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#8#6'Height'#3#18#1#3 - +'Top'#2' '#5'Width'#3#173#0#10'ItemHeight'#2#0#8'TabOrder'#2#0#0#0#7'TBitBtn' - +#7'IDInBtn'#4'Left'#3#192#0#6'Height'#2#26#3'Top'#2' '#5'Width'#2#29#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#255#255#255#0#255#255#255#0#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'IDInBtnClick'#8 - +'TabOrder'#2#1#0#0#7'TBitBtn'#8'IDOutBtn'#4'Left'#3#192#0#6'Height'#2#26#3'T' - +'op'#2'@'#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#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'IDOutBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#6 - +'XInBtn'#4'Left'#3#192#0#6'Height'#2#26#3'Top'#2'h'#5'Width'#2#29#10'Glyph.D' - +'ata'#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'XInBtnClick'#8 - +'TabOrder'#2#3#0#0#7'TBitBtn'#7'XOutBtn'#4'Left'#3#192#0#6'Height'#2#26#3'To' - +'p'#3#136#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#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'XOutBtnClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#6 - +'YInBtn'#4'Left'#3#192#0#6'Height'#2#26#3'Top'#3#176#0#5'Width'#2#29#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#255#255#255#0#255#255#255#0#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'YInBtnClick'#8 - +'TabOrder'#2#5#0#0#7'TBitBtn'#7'YOutBtn'#4'Left'#3#192#0#6'Height'#2#26#3'To' - +'p'#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'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'YOutBtnClick'#8'TabOrder'#2#6#0#0#7'TBitBtn'#9 - +'SizeInBtn'#4'Left'#3#192#0#6'Height'#2#26#3'Top'#3#248#0#5'Width'#2#29#10'G' - +'lyph.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'SizeInBt' - +'nClick'#8'TabOrder'#2#7#0#0#7'TBitBtn'#10'SizeOutBtn'#4'Left'#3#192#0#6'Hei' - +'ght'#2#26#3'Top'#3#24#1#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#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'SizeOutBtnClick'#8'TabOrder'#2#8 - +#0#0#5'TEdit'#10'BubbleEdit'#4'Left'#3#232#0#6'Height'#2#21#3'Top'#2'0'#5'Wi' - +'dth'#3#167#0#8'TabOrder'#2#9#4'Text'#6#10'BubbleEdit'#0#0#5'TEdit'#5'XEdit' - +#4'Left'#3#230#0#6'Height'#2#21#3'Top'#2'x'#5'Width'#3#166#0#8'TabOrder'#2#10 - +#4'Text'#6#5'XEdit'#0#0#5'TEdit'#5'YEdit'#4'Left'#3#230#0#6'Height'#2#21#3'T' - +'op'#3#192#0#5'Width'#3#165#0#8'TabOrder'#2#11#4'Text'#6#5'YEdit'#0#0#5'TEdi' - +'t'#8'SizeEdit'#4'Left'#3#230#0#6'Height'#2#21#3'Top'#3#8#1#5'Width'#3#166#0 - +#8'TabOrder'#2#12#4'Text'#6#8'SizeEdit'#0#0#7'TButton'#8'ResetBtn'#4'Left'#3 - +#187#1#6'Height'#2'('#3'Top'#2'P'#5'Width'#2'^'#7'Caption'#6#5'Reset'#7'OnCl' - +'ick'#7#13'ResetBtnClick'#8'TabOrder'#2#13#0#0#7'TButton'#9'CancelBtn'#4'Lef' - +'t'#3#184#1#6'Height'#2'&'#3'Top'#3#144#0#5'Width'#2'b'#7'Caption'#6#6'Cance' - +'l'#11'ModalResult'#2#2#8'TabOrder'#2#14#0#0#7'TButton'#10'ComputeBtn'#4'Lef' - +'t'#3#184#1#6'Height'#2'&'#3'Top'#3#208#0#5'Width'#2'b'#7'Caption'#6#7'Compu' - +'te'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#15#0#0#7'TButton'#9'Retu' - +'rnBtn'#4'Left'#3#184#1#6'Height'#2'&'#3'Top'#3#16#1#5'Width'#2'b'#7'Caption' - +#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#16#0#0#5'TEdit'#9'TitleEdit'#4 - +'Left'#2'?'#6'Height'#2#21#3'Top'#3'A'#1#5'Width'#3'L'#1#8'TabOrder'#2#17#4 - +'Text'#6#9'TitleEdit'#0#0#5'TEdit'#10'XLabelEdit'#4'Left'#2'?'#6'Height'#2#21 - ,#3'Top'#3'a'#1#5'Width'#3#157#0#8'TabOrder'#2#18#4'Text'#6#10'XLabelEdit'#0#0 - +#5'TEdit'#10'YLabelEdit'#4'Left'#3#24#1#6'Height'#2#21#3'Top'#3'a'#1#5'Width' - +#3#159#0#8'TabOrder'#2#19#4'Text'#6#10'YLabelEdit'#0#0#9'TCheckBox'#12'Trans' - +'formChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#3#128#1#5'Width'#3'O'#1#7'Captio' - +'n'#6' SizeEdit.Text) then SizeCol := i; - end; - if ((BubbleCol = 0) or (XCol = 0) or (YCol = 0) or (SizeCol = 0)) then - begin - ShowMessage('ERROR! One or more variables not found!'); - Exit; - end; - - // get number of bubbles and replications per bubble (number of bubble id's) - minrep := 1000; - maxrep := -1; - for i := 1 to NoCases do - begin - intcell := StrToInt(OS3MainFrm.DataGrid.Cells[BubbleCol,i]); - if (intcell > maxrep) then maxrep := intcell; - if (intcell < minrep) then minrep := intcell; - end; - nobubbles := maxrep - minrep + 1; - noreplications := 1; - intcell := StrToInt(OS3MainFrm.DataGrid.Cells[BubbleCol,1]); - for i := 2 to NoCases do - begin - cell := StrToInt(OS3MainFrm.DataGrid.Cells[BubbleCol,i]); - if (cell = intcell) then noreplications := noreplications + 1; - end; - - // get min, max and range of Y - Ymin := 1.0e300; - Ymax := -1.0e300; - for i := 1 to NoCases do - begin - cellvalue := StrToFloat(OS3MainFrm.DataGrid.Cells[YCol,i]); - if (cellvalue > Ymax) then Ymax := cellvalue; - if (cellvalue < Ymin) then Ymin := cellvalue; - end; - Yrange := Ymax - Ymin; - Ystep := Yrange / 10; - - // get min, max and range of X - Xmin := 10000; - Xmax := -1; - for i := 1 to NoCases do - begin - intcell := StrToInt(OS3MainFrm.DataGrid.Cells[XCol,i]); - if (intcell > Xmax) then Xmax := intcell; - if (intcell < Xmin) then Xmin := intcell; - end; - Xrange := Xmax - Xmin; - Xstep := Xrange div (noreplications-1); - - // get min, max, range, and increment of bubble sizes - BubMin := 1.0e300; - BubMax := -1.0e300; - for i := 1 to NoCases do - begin - cellvalue := StrToFloat(OS3MainFrm.DataGrid.Cells[SizeCol,i]); - if (cellvalue > BubMax) then BubMax := cellvalue; - if (cellvalue < BubMin) then BubMin := cellvalue; - end; - BubRange := BubMax - BubMin; - - // Display basic statistics - ncases := NoCases div noreplications; - GrandYMean := 0.0; - GrandSizeMean := 0.0; - SetLength(CaseYMeans,ncases); - SetLength(CaseSizeMeans,ncases); - SetLength(Ymeans,noreplications); - SetLength(SizeMeans,noreplications); - for i := 0 to ncases - 1 do - begin - CaseYMeans[i] := 0.0; - CaseSizeMeans[i] := 0.0; - end; - for i := 0 to noreplications - 1 do - begin - Ymeans[i] := 0.0; - SizeMeans[i] := 0.0; - end; - i := 1; - - while ( i <= NoCases) do - begin - for j := 1 to noreplications do - begin - bubbleID := StrToInt(OS3MainFrm.DataGrid.Cells[BubbleCol,i]); - yvalue := StrToFloat(OS3MainFrm.DataGrid.Cells[YCol,i]); - sizevalue := StrToFloat(OS3MainFrm.DataGrid.Cells[SizeCol,i]); - GrandYMean:= GrandYMean + yvalue; - GrandSizeMean := GrandSizeMean + sizevalue; - Ymeans[j-1] := Ymeans[j-1] + yvalue; - SizeMeans[j-1] := SizeMeans[j-1] + sizevalue; - CaseYMeans[bubbleID-1] := CaseYMeans[bubbleID-1] + yvalue; - CaseSizeMeans[bubbleID-1] := CaseSizeMeans[bubbleID-1] + sizevalue; - i := i + 1; - end; - end; - - GrandYMean := GrandYMean / (ncases * noreplications); - GrandSizeMean := GrandSizeMean / (ncases * noreplications); - for j := 0 to noreplications - 1 do - begin - Ymeans[j] := Ymeans[j] / ncases; - SizeMeans[j] := SizeMeans[j] / ncases; - end; - for i := 0 to ncases - 1 do - begin - CaseYMeans[i] := CaseYMeans[i] / noreplications; - CaseSizeMeans[i] := CaseSizeMeans[i] / noreplications; - end; - - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('MEANS FOR Y AND SIZE VARIABLES'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Grand Mean for Y := %8.3f',[GrandYMean]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Grand Mean for Size := %8.3f',[GrandSizeMean]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('REPLICATION MEAN Y VALUES (ACROSS OBJECTS)'); - for j := 0 to noreplications - 1 do - begin - outline := format('Replication %5d Mean := %8.3f',[j+1,Ymeans[j]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('REPLICATION MEAN SIZE VALUES (ACROSS OBJECTSend;'); - for j := 0 to noreplications - 1 do - begin - outline := format('Replication %5d Mean := %8.3f',[j+1,SizeMeans[j]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - - OutPutFrm.RichEdit.Lines.Add('MEAN Y VALUES FOR EACH BUBBLE (OBJECT)'); - for i := 0 to ncases - 1 do - begin - outline := format('Object %5d Mean := %8.3f',[i+1,CaseYMeans[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('MEAN SIZE VALUES FOR EACH BUBBLE (OBJECT)'); - for i := 0 to ncases - 1 do - begin - outline := format('Object %5d Mean := %8.3f',[i+1,CaseSizeMeans[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - SizeMeans := nil; - Ymeans := nil; - CaseSizeMeans := nil; - CaseYMeans := nil; -//-------------------------------------------------------------------------- -// Plotting Section -//--------------------------------------------------------------------------- - BlankFrm.Image1.Canvas.Clear; - BlankFrm.Show; - BlankFrm.Caption := 'Bubble Plot of ' + OS3MainFrm.FileNameEdit.Text; - Xlabel := XlabelEdit.Text; - Ylabel := YlabelEdit.Text; - Title := TitleEdit.Text; - ImageHi := BlankFrm.Image1.Height; - ImageWide := BlankFrm.Image1.Width; - Xstart := ImageWide div 10; - Xend := (ImageWide * 9) div 10; - Ystart := ImageHi div 10; - Yend := (ImageHi * 8) div 10; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - BlankFrm.Image1.Canvas.Rectangle(0,0,ImageWide,ImageHi); - BlankFrm.Image1.Canvas.FloodFill(0,0,clWhite,fsBorder); - BlankFrm.Image1.Canvas.TextOut(Xstart-10,Ystart-30,Ylabel); - LabelWide := BlankFrm.Image1.Canvas.TextWidth(Xlabel); - BlankFrm.Image1.Canvas.TextOut((Xend-Xstart) div 2 - LabelWide,Yend + 40,Xlabel); - LabelWide := BlankFrm.Image1.Canvas.TextWidth(Title); - BlankFrm.Image1.Canvas.TextOut((Xend-Xstart) div 2 - LabelWide div 2, Ystart - 40,Title); - - // draw axis lines - BlankFrm.Image1.Canvas.MoveTo(Xstart,Yend); - BlankFrm.Image1.Canvas.LineTo(Xend,Yend); - BlankFrm.Image1.Canvas.MoveTo(Xstart,Yend); - BlankFrm.Image1.Canvas.LineTo(Xstart,Ystart); - - - // create y axis values - Yincr := (Yend - Ystart) div 10; - for i := 0 to 10 do // print Y axis values - begin - place := Yend - (i * Yincr); - value := Ymin + (Ystep * i); - valstr := format('%4.2f',[value]); - astring := valstr; - TextHi := BlankFrm.Image1.Canvas.TextHeight(astring); - BlankFrm.Image1.Canvas.TextOut(Xstart-30,place-TextHi,astring); - end; - - // create x axis values - for i := 1 to noreplications do // print x axis - begin - value := Xmin + ((i-1) * Xstep); - ratio := i / noreplications; - Xpos := round(ratio * (Xend - Xstart)); - valstr := format('%4.0f',[value]); - astring := valstr; - BlankFrm.Image1.Canvas.TextOut(Xpos,Yend + 20,astring); - end; - - // Plot the bubbles - for i := 1 to NoCases do - begin - intcell := StrToInt(OS3MainFrm.DataGrid.Cells[BubbleCol,i]); - xvalue := StrToFloat(OS3MainFrm.DataGrid.Cells[XCol,i]); - cellvalue := StrToFloat(OS3MainFrm.DataGrid.Cells[YCol,i]); - yprop := Yend - round(((cellvalue-Ymin) / Yrange) * (Yend - Ystart)); - cellvalue := StrToFloat(OS3MainFrm.DataGrid.Cells[SizeCol,i]); - astring := Trim(OS3MainFrm.DataGrid.Cells[BubbleCol,i]); - cellvalue := ((cellvalue - BubMin) / BubRange) * 20; - cellvalue := cellvalue + 10; - ratio := ((xvalue - Xmin) / Xstep) + 1; - ratio := (ratio / noreplications) * (Xend - Xstart); - Xpos := ceil(ratio); - Bubcolor := intcell - 1; - while (Bubcolor > 11) do Bubcolor := 12 - Bubcolor; - BlankFrm.Image1.Canvas.Brush.Color := Colors[Bubcolor]; - X1 := Xpos - ceil(cellvalue); - Y1 := yprop - ceil(cellvalue); - X2 := Xpos + ceil(cellvalue); - Y2 := yprop + ceil(cellvalue); - BlankFrm.Image1.Canvas.Ellipse(X1,Y1,X2,Y2); - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - BlankFrm.Image1.Canvas.TextOut(Xpos,yprop,astring); - end; - - // Transform data matrix if elected - if (TransformChk.Checked = true) then - begin - ncases := nobubbles; - ncols := noreplications * 3 + 1; - // Note - columns: 1:=object ID, 2 to noreplications := X, - // next noreplications := Y, next noreplications := size - SetLength(Data,ncases,ncols); - i := 1; - while (i <= NoCases) do - begin - for j := 1 to noreplications do - begin - bubbleID := StrToInt(OS3MainFrm.DataGrid.Cells[BubbleCol,i]); - xvalue := StrToFloat(OS3MainFrm.DataGrid.Cells[XCol,i]); - yvalue := StrToFloat(OS3MainFrm.DataGrid.Cells[YCol,i]); - sizevalue := StrToFloat(OS3MainFrm.DataGrid.Cells[SizeCol,i]); - Data[bubbleID-1,0] := bubbleID; - Data[bubbleID-1,j] := xvalue; - Data[bubbleID-1,noreplications+j] := yvalue; - Data[bubbleID-1,noreplications*2+j] := sizevalue; - i := i + 1; - end; - end; - SetLength(labels,NoVariables+1); - for i := 1 to NoVariables do labels[i] := OS3MainFrm.DataGrid.Cells[i,0]; - ClearGrid; - OS3MainFrm.DataGrid.RowCount := ncases + 1; - OS3MainFrm.DataGrid.ColCount := ncols + 1; - for i := 1 to ncases do - begin - OS3MainFrm.DataGrid.Cells[0,i] := IntToStr(i); - for j := 1 to ncols do - OS3MainFrm.DataGrid.Cells[j,i] := FloatToStr(Data[i-1,j-1]); - end; - OS3MainFrm.DataGrid.Cells[1,0] := labels[1]; - for j := 2 to NoVariables do // clear dictionary - begin - for i := 0 to 7 do DictionaryFrm.DictGrid.Cells[i,j] := ''; - DictionaryFrm.DictGrid.RowCount := DictionaryFrm.DictGrid.RowCount - 1; - VarDefined[j] := false; - end; - DictionaryFrm.DictGrid.Cells[1,1] := labels[1]; - for j := 1 to noreplications do - begin - outline := labels[2] + IntToStr(j); - newcol := j + 1; - if (newcol+1 > DictionaryFrm.DictGrid.RowCount) then - DictionaryFrm.DictGrid.RowCount := DictionaryFrm.DictGrid.RowCount + 1; - DictionaryFrm.Defaults(Self,newcol); - VarDefined[newcol] := true; - DictionaryFrm.DictGrid.Cells[1,newcol] := outline; - OS3MainFrm.DataGrid.Cells[newcol,0] := outline; - end; - for j := 1 to noreplications do - begin - outline := labels[3] + IntToStr(j); - newcol := j + 1 + noreplications; - OS3MainFrm.DataGrid.Cells[newcol,0] := outline; - if (newcol+1 > DictionaryFrm.DictGrid.RowCount) then - DictionaryFrm.DictGrid.RowCount := DictionaryFrm.DictGrid.RowCount + 1; - DictionaryFrm.Defaults(Self,newcol); - VarDefined[newcol] := true; - DictionaryFrm.DictGrid.Cells[1,newcol] := outline; - end; - for j := 1 to noreplications do - begin - outline := labels[4] + IntToStr(j); - newcol := j + 1 + noreplications * 2; - OS3MainFrm.DataGrid.Cells[newcol,0] := outline; - if (newcol+1 > DictionaryFrm.DictGrid.RowCount) then - DictionaryFrm.DictGrid.RowCount := DictionaryFrm.DictGrid.RowCount + 1; - DictionaryFrm.Defaults(Self,newcol); - VarDefined[newcol] := true; - - DictionaryFrm.DictGrid.Cells[1,newcol] := outline; - end; - NoVariables := ncols; - NoCases := ncases; - OS3MainFrm.NoCasesEdit.Text := IntToStr(NoCases); - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - Data := nil; - labels := nil; - end; -end; - -procedure TBubbleForm.IDOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(BubbleEdit.Text); - IDInBtn.Visible := true; - IDOutBtn.Visible := false; -end; - -procedure TBubbleForm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - BubbleEdit.Text := ''; - XEdit.Text := ''; - YEdit.Text := ''; - SizeEdit.Text := ''; - IDInBtn.Visible := true; - IDOutBtn.Visible := false; - XInBtn.Visible := true; - XOutBtn.Visible := false; - YInBtn.Visible := true; - YOutBtn.Visible := false; - SizeInBtn.Visible := true; - SizeOutBtn.Visible := false; - VarList.Clear; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TBubbleForm.SizeInBtnClick(Sender: TObject); -VAR - index, i : integer; -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - SizeEdit.Text := VarList.Items.Strings[i]; - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - SizeOutBtn.Visible := true; - SizeInBtn.Visible := false; -end; - -procedure TBubbleForm.SizeOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(SizeEdit.Text); - SizeInBtn.Visible := true; - SizeOutBtn.Visible := false; -end; - -procedure TBubbleForm.XInBtnClick(Sender: TObject); -VAR - i, index : integer; -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - XEdit.Text := VarList.Items.Strings[i]; - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - XOutBtn.Visible := true; - XInBtn.Visible := false; -end; - -procedure TBubbleForm.XOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(XEdit.Text); - XInBtn.Visible := true; - XOutBtn.Visible := false; -end; - -procedure TBubbleForm.YInBtnClick(Sender: TObject); -VAR - index, i : integer; -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - YEdit.Text := VarList.Items.Strings[i]; - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - YOutBtn.Visible := true; - YInBtn.Visible := false; -end; - -procedure TBubbleForm.YOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(YEdit.Text); - YInBtn.Visible := true; - YOutBtn.Visible := false; -end; - -initialization - {$I bubbleplotunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/calculatorunit.lfm b/applications/lazstats/source_orig/calculatorunit.lfm deleted file mode 100644 index e89f77704..000000000 --- a/applications/lazstats/source_orig/calculatorunit.lfm +++ /dev/null @@ -1,434 +0,0 @@ -object CalculatorForm: TCalculatorForm - Left = 259 - Height = 486 - Top = 104 - Width = 344 - Caption = 'Calculator' - ClientHeight = 486 - ClientWidth = 344 - OnShow = FormShow - LCLVersion = '0.9.30' - object GroupBox1: TGroupBox - Left = 7 - Height = 226 - Top = 216 - Width = 243 - Caption = 'KeyPad' - ClientHeight = 208 - ClientWidth = 239 - TabOrder = 0 - object sevenbtn: TButton - Left = 7 - Height = 35 - Top = 16 - Width = 41 - Caption = '7' - OnClick = sevenbtnClick - TabOrder = 0 - end - object dividebtn: TButton - Left = 191 - Height = 35 - Top = 16 - Width = 41 - Caption = '/' - OnClick = dividebtnClick - TabOrder = 1 - end - end - object eightbtn: TButton - Left = 72 - Height = 35 - Top = 248 - Width = 41 - Caption = '8' - OnClick = eightbtnClick - TabOrder = 1 - end - object ninebtn: TButton - Left = 128 - Height = 35 - Top = 248 - Width = 41 - Caption = '9' - OnClick = ninebtnClick - TabOrder = 2 - end - object fourbtn: TButton - Left = 16 - Height = 35 - Top = 296 - Width = 41 - Caption = '4' - OnClick = fourbtnClick - TabOrder = 3 - end - object fivebtn: TButton - Left = 72 - Height = 35 - Top = 296 - Width = 41 - Caption = '5' - OnClick = fivebtnClick - TabOrder = 4 - end - object sixbtn: TButton - Left = 128 - Height = 35 - Top = 296 - Width = 41 - Caption = '6' - OnClick = sixbtnClick - TabOrder = 5 - end - object onebtn: TButton - Left = 16 - Height = 35 - Top = 344 - Width = 41 - Caption = '1' - OnClick = onebtnClick - TabOrder = 6 - end - object twobtn: TButton - Left = 72 - Height = 35 - Top = 344 - Width = 41 - Caption = '2' - OnClick = twobtnClick - TabOrder = 7 - end - object threebtn: TButton - Left = 128 - Height = 35 - Top = 344 - Width = 41 - Caption = '3' - OnClick = threebtnClick - TabOrder = 8 - end - object multbtn: TButton - Left = 200 - Height = 35 - Top = 296 - Width = 41 - Caption = '*' - OnClick = multbtnClick - TabOrder = 9 - end - object subtractbtn: TButton - Left = 200 - Height = 35 - Top = 344 - Width = 41 - Caption = '-' - OnClick = subtractbtnClick - TabOrder = 10 - end - object Addbtn: TButton - Left = 200 - Height = 35 - Top = 392 - Width = 41 - Caption = '+' - OnClick = AddbtnClick - TabOrder = 11 - end - object ZeroBtn: TButton - Left = 16 - Height = 35 - Top = 392 - Width = 41 - Caption = '0' - OnClick = ZeroBtnClick - TabOrder = 12 - end - object ChangeSignBtn: TButton - Left = 72 - Height = 35 - Top = 392 - Width = 41 - Caption = '+/-' - OnClick = ChangeSignBtnClick - TabOrder = 13 - end - object PeriodBtn: TButton - Left = 128 - Height = 35 - Top = 392 - Width = 41 - Caption = '.' - OnClick = PeriodBtnClick - TabOrder = 14 - end - object GroupBox2: TGroupBox - Left = 258 - Height = 227 - Top = 216 - Width = 71 - Caption = 'Memory' - TabOrder = 15 - end - object MemInBtn: TButton - Left = 272 - Height = 35 - Top = 248 - Width = 41 - Caption = 'X->M' - OnClick = MemInBtnClick - TabOrder = 16 - end - object MemOutBtn: TButton - Left = 272 - Height = 35 - Top = 296 - Width = 41 - Caption = 'M->X' - OnClick = MemOutBtnClick - TabOrder = 17 - end - object MemPlusBtn: TButton - Left = 272 - Height = 35 - Top = 344 - Width = 41 - Caption = 'M+' - OnClick = MemPlusBtnClick - TabOrder = 18 - end - object EqualBtn: TButton - Left = 272 - Height = 35 - Top = 392 - Width = 41 - Caption = '=' - OnClick = EqualBtnClick - TabOrder = 19 - end - object XEdit: TEdit - Left = 7 - Height = 23 - Top = 176 - Width = 322 - OnKeyPress = XEditKeyPress - TabOrder = 20 - Text = 'XEdit' - end - object GroupBox3: TGroupBox - Left = 0 - Height = 149 - Top = 8 - Width = 328 - Caption = 'Functions' - ClientHeight = 131 - ClientWidth = 324 - TabOrder = 21 - object sinbtn: TButton - Left = 14 - Height = 25 - Top = 8 - Width = 48 - Caption = 'sin' - OnClick = sinbtnClick - TabOrder = 0 - end - end - object cosbtn: TButton - Left = 72 - Height = 25 - Top = 32 - Width = 48 - Caption = 'cos' - OnClick = cosbtnClick - TabOrder = 22 - end - object tanbtn: TButton - Left = 128 - Height = 25 - Top = 32 - Width = 48 - Caption = 'tan' - OnClick = tanbtnClick - TabOrder = 23 - end - object Combobtn: TButton - Left = 184 - Height = 25 - Top = 32 - Width = 48 - Caption = 'nCr' - OnClick = CombobtnClick - TabOrder = 24 - end - object ClearEntryBtn: TButton - Left = 240 - Height = 25 - Top = 32 - Width = 48 - Caption = 'CE' - OnClick = ClearEntryBtnClick - TabOrder = 25 - end - object MeanBtn: TButton - Left = 16 - Height = 25 - Top = 64 - Width = 48 - Caption = 'Mean' - OnClick = MeanBtnClick - TabOrder = 26 - end - object VarBtn: TButton - Left = 72 - Height = 25 - Top = 64 - Width = 48 - Caption = 'VAR.' - OnClick = VarBtnClick - TabOrder = 27 - end - object StdDevBtn: TButton - Left = 128 - Height = 25 - Top = 64 - Width = 48 - Caption = 'Std.Dev.' - OnClick = StdDevBtnClick - TabOrder = 28 - end - object natlogbtn: TButton - Left = 184 - Height = 25 - Top = 64 - Width = 48 - Caption = 'ln' - OnClick = natlogbtnClick - TabOrder = 29 - end - object log10btn: TButton - Left = 240 - Height = 25 - Top = 64 - Width = 48 - Caption = 'log10' - OnClick = log10btnClick - TabOrder = 30 - end - object sqrbtn: TButton - Left = 16 - Height = 24 - Top = 96 - Width = 48 - Caption = 'x^2' - OnClick = sqrbtnClick - TabOrder = 31 - end - object sqrtbtn: TButton - Left = 72 - Height = 25 - Top = 95 - Width = 48 - Caption = 'sqrt' - OnClick = sqrtbtnClick - TabOrder = 32 - end - object ytopowerxbtn: TButton - Left = 128 - Height = 25 - Top = 95 - Width = 48 - Caption = 'y^x' - OnClick = ytopowerxbtnClick - TabOrder = 33 - end - object etoxbtn: TButton - Left = 184 - Height = 25 - Top = 96 - Width = 48 - Caption = 'e^x' - OnClick = etoxbtnClick - TabOrder = 34 - end - object tentoxbtn: TButton - Left = 240 - Height = 25 - Top = 96 - Width = 48 - Caption = '10^x' - OnClick = tentoxbtnClick - TabOrder = 35 - end - object expbtn: TButton - Left = 16 - Height = 25 - Top = 128 - Width = 48 - Caption = 'exp' - OnClick = expbtnClick - TabOrder = 36 - end - object absbtn: TButton - Left = 72 - Height = 24 - Top = 128 - Width = 48 - Caption = 'abs' - OnClick = absbtnClick - TabOrder = 37 - end - object PiBtn: TButton - Left = 128 - Height = 25 - Top = 127 - Width = 48 - Caption = 'Pi' - OnClick = PiBtnClick - TabOrder = 38 - end - object nPrbtn: TButton - Left = 184 - Height = 25 - Top = 128 - Width = 48 - Caption = 'nPr' - OnClick = nPrbtnClick - TabOrder = 39 - end - object nfactorialbtn: TButton - Left = 240 - Height = 25 - Top = 128 - Width = 48 - Caption = 'n!' - OnClick = nfactorialbtnClick - TabOrder = 40 - end - object Label1: TLabel - Left = 18 - Height = 16 - Top = 450 - Width = 155 - Caption = 'No. in memory stack (M+) = ' - ParentColor = False - end - object NEdit: TEdit - Left = 175 - Height = 23 - Top = 450 - Width = 48 - TabOrder = 41 - Text = 'NEdit' - end - object ReturnBtn: TButton - Left = 241 - Height = 26 - Top = 449 - Width = 69 - Caption = 'Return' - ModalResult = 1 - OnClick = ReturnBtnClick - TabOrder = 42 - end -end diff --git a/applications/lazstats/source_orig/calculatorunit.lrs b/applications/lazstats/source_orig/calculatorunit.lrs deleted file mode 100644 index 0366917e0..000000000 --- a/applications/lazstats/source_orig/calculatorunit.lrs +++ /dev/null @@ -1,102 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TCalculatorForm','FORMDATA',[ - 'TPF0'#15'TCalculatorForm'#14'CalculatorForm'#4'Left'#3#3#1#6'Height'#3#230#1 - +#3'Top'#2'h'#5'Width'#3'X'#1#7'Caption'#6#10'Calculator'#12'ClientHeight'#3 - +#230#1#11'ClientWidth'#3'X'#1#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#6'0.9' - +'.30'#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#7#6'Height'#3#226#0#3'Top'#3#216 - +#0#5'Width'#3#243#0#7'Caption'#6#6'KeyPad'#12'ClientHeight'#3#208#0#11'Clien' - +'tWidth'#3#239#0#8'TabOrder'#2#0#0#7'TButton'#8'sevenbtn'#4'Left'#2#7#6'Heig' - +'ht'#2'#'#3'Top'#2#16#5'Width'#2')'#7'Caption'#6#1'7'#7'OnClick'#7#13'sevenb' - +'tnClick'#8'TabOrder'#2#0#0#0#7'TButton'#9'dividebtn'#4'Left'#3#191#0#6'Heig' - +'ht'#2'#'#3'Top'#2#16#5'Width'#2')'#7'Caption'#6#1'/'#7'OnClick'#7#14'divide' - +'btnClick'#8'TabOrder'#2#1#0#0#0#7'TButton'#8'eightbtn'#4'Left'#2'H'#6'Heigh' - +'t'#2'#'#3'Top'#3#248#0#5'Width'#2')'#7'Caption'#6#1'8'#7'OnClick'#7#13'eigh' - +'tbtnClick'#8'TabOrder'#2#1#0#0#7'TButton'#7'ninebtn'#4'Left'#3#128#0#6'Heig' - +'ht'#2'#'#3'Top'#3#248#0#5'Width'#2')'#7'Caption'#6#1'9'#7'OnClick'#7#12'nin' - +'ebtnClick'#8'TabOrder'#2#2#0#0#7'TButton'#7'fourbtn'#4'Left'#2#16#6'Height' - +#2'#'#3'Top'#3'('#1#5'Width'#2')'#7'Caption'#6#1'4'#7'OnClick'#7#12'fourbtnC' - +'lick'#8'TabOrder'#2#3#0#0#7'TButton'#7'fivebtn'#4'Left'#2'H'#6'Height'#2'#' - +#3'Top'#3'('#1#5'Width'#2')'#7'Caption'#6#1'5'#7'OnClick'#7#12'fivebtnClick' - +#8'TabOrder'#2#4#0#0#7'TButton'#6'sixbtn'#4'Left'#3#128#0#6'Height'#2'#'#3'T' - +'op'#3'('#1#5'Width'#2')'#7'Caption'#6#1'6'#7'OnClick'#7#11'sixbtnClick'#8'T' - +'abOrder'#2#5#0#0#7'TButton'#6'onebtn'#4'Left'#2#16#6'Height'#2'#'#3'Top'#3 - +'X'#1#5'Width'#2')'#7'Caption'#6#1'1'#7'OnClick'#7#11'onebtnClick'#8'TabOrde' - +'r'#2#6#0#0#7'TButton'#6'twobtn'#4'Left'#2'H'#6'Height'#2'#'#3'Top'#3'X'#1#5 - +'Width'#2')'#7'Caption'#6#1'2'#7'OnClick'#7#11'twobtnClick'#8'TabOrder'#2#7#0 - +#0#7'TButton'#8'threebtn'#4'Left'#3#128#0#6'Height'#2'#'#3'Top'#3'X'#1#5'Wid' - +'th'#2')'#7'Caption'#6#1'3'#7'OnClick'#7#13'threebtnClick'#8'TabOrder'#2#8#0 - +#0#7'TButton'#7'multbtn'#4'Left'#3#200#0#6'Height'#2'#'#3'Top'#3'('#1#5'Widt' - +'h'#2')'#7'Caption'#6#1'*'#7'OnClick'#7#12'multbtnClick'#8'TabOrder'#2#9#0#0 - +#7'TButton'#11'subtractbtn'#4'Left'#3#200#0#6'Height'#2'#'#3'Top'#3'X'#1#5'W' - +'idth'#2')'#7'Caption'#6#1'-'#7'OnClick'#7#16'subtractbtnClick'#8'TabOrder'#2 - +#10#0#0#7'TButton'#6'Addbtn'#4'Left'#3#200#0#6'Height'#2'#'#3'Top'#3#136#1#5 - +'Width'#2')'#7'Caption'#6#1'+'#7'OnClick'#7#11'AddbtnClick'#8'TabOrder'#2#11 - +#0#0#7'TButton'#7'ZeroBtn'#4'Left'#2#16#6'Height'#2'#'#3'Top'#3#136#1#5'Widt' - +'h'#2')'#7'Caption'#6#1'0'#7'OnClick'#7#12'ZeroBtnClick'#8'TabOrder'#2#12#0#0 - +#7'TButton'#13'ChangeSignBtn'#4'Left'#2'H'#6'Height'#2'#'#3'Top'#3#136#1#5'W' - +'idth'#2')'#7'Caption'#6#3'+/-'#7'OnClick'#7#18'ChangeSignBtnClick'#8'TabOrd' - +'er'#2#13#0#0#7'TButton'#9'PeriodBtn'#4'Left'#3#128#0#6'Height'#2'#'#3'Top'#3 - +#136#1#5'Width'#2')'#7'Caption'#6#1'.'#7'OnClick'#7#14'PeriodBtnClick'#8'Tab' - +'Order'#2#14#0#0#9'TGroupBox'#9'GroupBox2'#4'Left'#3#2#1#6'Height'#3#227#0#3 - +'Top'#3#216#0#5'Width'#2'G'#7'Caption'#6#6'Memory'#8'TabOrder'#2#15#0#0#7'TB' - +'utton'#8'MemInBtn'#4'Left'#3#16#1#6'Height'#2'#'#3'Top'#3#248#0#5'Width'#2 - +')'#7'Caption'#6#4'X->M'#7'OnClick'#7#13'MemInBtnClick'#8'TabOrder'#2#16#0#0 - +#7'TButton'#9'MemOutBtn'#4'Left'#3#16#1#6'Height'#2'#'#3'Top'#3'('#1#5'Width' - +#2')'#7'Caption'#6#4'M->X'#7'OnClick'#7#14'MemOutBtnClick'#8'TabOrder'#2#17#0 - +#0#7'TButton'#10'MemPlusBtn'#4'Left'#3#16#1#6'Height'#2'#'#3'Top'#3'X'#1#5'W' - +'idth'#2')'#7'Caption'#6#2'M+'#7'OnClick'#7#15'MemPlusBtnClick'#8'TabOrder'#2 - +#18#0#0#7'TButton'#8'EqualBtn'#4'Left'#3#16#1#6'Height'#2'#'#3'Top'#3#136#1#5 - +'Width'#2')'#7'Caption'#6#1'='#7'OnClick'#7#13'EqualBtnClick'#8'TabOrder'#2 - +#19#0#0#5'TEdit'#5'XEdit'#4'Left'#2#7#6'Height'#2#23#3'Top'#3#176#0#5'Width' - +#3'B'#1#10'OnKeyPress'#7#13'XEditKeyPress'#8'TabOrder'#2#20#4'Text'#6#5'XEdi' - +'t'#0#0#9'TGroupBox'#9'GroupBox3'#4'Left'#2#0#6'Height'#3#149#0#3'Top'#2#8#5 - +'Width'#3'H'#1#7'Caption'#6#9'Functions'#12'ClientHeight'#3#131#0#11'ClientW' - +'idth'#3'D'#1#8'TabOrder'#2#21#0#7'TButton'#6'sinbtn'#4'Left'#2#14#6'Height' - +#2#25#3'Top'#2#8#5'Width'#2'0'#7'Caption'#6#3'sin'#7'OnClick'#7#11'sinbtnCli' - +'ck'#8'TabOrder'#2#0#0#0#0#7'TButton'#6'cosbtn'#4'Left'#2'H'#6'Height'#2#25#3 - +'Top'#2' '#5'Width'#2'0'#7'Caption'#6#3'cos'#7'OnClick'#7#11'cosbtnClick'#8 - +'TabOrder'#2#22#0#0#7'TButton'#6'tanbtn'#4'Left'#3#128#0#6'Height'#2#25#3'To' - +'p'#2' '#5'Width'#2'0'#7'Caption'#6#3'tan'#7'OnClick'#7#11'tanbtnClick'#8'Ta' - +'bOrder'#2#23#0#0#7'TButton'#8'Combobtn'#4'Left'#3#184#0#6'Height'#2#25#3'To' - +'p'#2' '#5'Width'#2'0'#7'Caption'#6#3'nCr'#7'OnClick'#7#13'CombobtnClick'#8 - +'TabOrder'#2#24#0#0#7'TButton'#13'ClearEntryBtn'#4'Left'#3#240#0#6'Height'#2 - +#25#3'Top'#2' '#5'Width'#2'0'#7'Caption'#6#2'CE'#7'OnClick'#7#18'ClearEntryB' - +'tnClick'#8'TabOrder'#2#25#0#0#7'TButton'#7'MeanBtn'#4'Left'#2#16#6'Height'#2 - +#25#3'Top'#2'@'#5'Width'#2'0'#7'Caption'#6#4'Mean'#7'OnClick'#7#12'MeanBtnCl' - +'ick'#8'TabOrder'#2#26#0#0#7'TButton'#6'VarBtn'#4'Left'#2'H'#6'Height'#2#25#3 - ,'Top'#2'@'#5'Width'#2'0'#7'Caption'#6#4'VAR.'#7'OnClick'#7#11'VarBtnClick'#8 - +'TabOrder'#2#27#0#0#7'TButton'#9'StdDevBtn'#4'Left'#3#128#0#6'Height'#2#25#3 - +'Top'#2'@'#5'Width'#2'0'#7'Caption'#6#8'Std.Dev.'#7'OnClick'#7#14'StdDevBtnC' - +'lick'#8'TabOrder'#2#28#0#0#7'TButton'#9'natlogbtn'#4'Left'#3#184#0#6'Height' - +#2#25#3'Top'#2'@'#5'Width'#2'0'#7'Caption'#6#2'ln'#7'OnClick'#7#14'natlogbtn' - +'Click'#8'TabOrder'#2#29#0#0#7'TButton'#8'log10btn'#4'Left'#3#240#0#6'Height' - +#2#25#3'Top'#2'@'#5'Width'#2'0'#7'Caption'#6#5'log10'#7'OnClick'#7#13'log10b' - +'tnClick'#8'TabOrder'#2#30#0#0#7'TButton'#6'sqrbtn'#4'Left'#2#16#6'Height'#2 - +#24#3'Top'#2'`'#5'Width'#2'0'#7'Caption'#6#3'x^2'#7'OnClick'#7#11'sqrbtnClic' - +'k'#8'TabOrder'#2#31#0#0#7'TButton'#7'sqrtbtn'#4'Left'#2'H'#6'Height'#2#25#3 - +'Top'#2'_'#5'Width'#2'0'#7'Caption'#6#4'sqrt'#7'OnClick'#7#12'sqrtbtnClick'#8 - +'TabOrder'#2' '#0#0#7'TButton'#12'ytopowerxbtn'#4'Left'#3#128#0#6'Height'#2 - +#25#3'Top'#2'_'#5'Width'#2'0'#7'Caption'#6#3'y^x'#7'OnClick'#7#17'ytopowerxb' - +'tnClick'#8'TabOrder'#2'!'#0#0#7'TButton'#7'etoxbtn'#4'Left'#3#184#0#6'Heigh' - +'t'#2#25#3'Top'#2'`'#5'Width'#2'0'#7'Caption'#6#3'e^x'#7'OnClick'#7#12'etoxb' - +'tnClick'#8'TabOrder'#2'"'#0#0#7'TButton'#9'tentoxbtn'#4'Left'#3#240#0#6'Hei' - +'ght'#2#25#3'Top'#2'`'#5'Width'#2'0'#7'Caption'#6#4'10^x'#7'OnClick'#7#14'te' - +'ntoxbtnClick'#8'TabOrder'#2'#'#0#0#7'TButton'#6'expbtn'#4'Left'#2#16#6'Heig' - +'ht'#2#25#3'Top'#3#128#0#5'Width'#2'0'#7'Caption'#6#3'exp'#7'OnClick'#7#11'e' - +'xpbtnClick'#8'TabOrder'#2'$'#0#0#7'TButton'#6'absbtn'#4'Left'#2'H'#6'Height' - +#2#24#3'Top'#3#128#0#5'Width'#2'0'#7'Caption'#6#3'abs'#7'OnClick'#7#11'absbt' - +'nClick'#8'TabOrder'#2'%'#0#0#7'TButton'#5'PiBtn'#4'Left'#3#128#0#6'Height'#2 - +#25#3'Top'#2#127#5'Width'#2'0'#7'Caption'#6#2'Pi'#7'OnClick'#7#10'PiBtnClick' - +#8'TabOrder'#2'&'#0#0#7'TButton'#6'nPrbtn'#4'Left'#3#184#0#6'Height'#2#25#3 - +'Top'#3#128#0#5'Width'#2'0'#7'Caption'#6#3'nPr'#7'OnClick'#7#11'nPrbtnClick' - +#8'TabOrder'#2''''#0#0#7'TButton'#13'nfactorialbtn'#4'Left'#3#240#0#6'Height' - +#2#25#3'Top'#3#128#0#5'Width'#2'0'#7'Caption'#6#2'n!'#7'OnClick'#7#18'nfacto' - +'rialbtnClick'#8'TabOrder'#2'('#0#0#6'TLabel'#6'Label1'#4'Left'#2#18#6'Heigh' - +'t'#2#16#3'Top'#3#194#1#5'Width'#3#155#0#7'Caption'#6#27'No. in memory stack' - +' (M+) = '#11'ParentColor'#8#0#0#5'TEdit'#5'NEdit'#4'Left'#3#175#0#6'Height' - +#2#23#3'Top'#3#194#1#5'Width'#2'0'#8'TabOrder'#2')'#4'Text'#6#5'NEdit'#0#0#7 - +'TButton'#9'ReturnBtn'#4'Left'#3#241#0#6'Height'#2#26#3'Top'#3#193#1#5'Width' - +#2'E'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#7'OnClick'#7#14'ReturnBtnCl' - +'ick'#8'TabOrder'#2'*'#0#0#0 -]); diff --git a/applications/lazstats/source_orig/calculatorunit.pas b/applications/lazstats/source_orig/calculatorunit.pas deleted file mode 100644 index c10b94c43..000000000 --- a/applications/lazstats/source_orig/calculatorunit.pas +++ /dev/null @@ -1,504 +0,0 @@ -unit CalculatorUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Math, functionsLib, Globals; - -type - - { TCalculatorForm } - - TCalculatorForm = class(TForm) - ReturnBtn: TButton; - NEdit: TEdit; - Label1: TLabel; - sevenbtn: TButton; - dividebtn: TButton; - multbtn: TButton; - subtractbtn: TButton; - Addbtn: TButton; - ZeroBtn: TButton; - ChangeSignBtn: TButton; - PeriodBtn: TButton; - MemInBtn: TButton; - MemOutBtn: TButton; - MemPlusBtn: TButton; - eightbtn: TButton; - EqualBtn: TButton; - sinbtn: TButton; - cosbtn: TButton; - tanbtn: TButton; - Combobtn: TButton; - ClearEntryBtn: TButton; - MeanBtn: TButton; - VarBtn: TButton; - StdDevBtn: TButton; - natlogbtn: TButton; - ninebtn: TButton; - log10btn: TButton; - sqrbtn: TButton; - sqrtbtn: TButton; - ytopowerxbtn: TButton; - etoxbtn: TButton; - tentoxbtn: TButton; - expbtn: TButton; - absbtn: TButton; - PiBtn: TButton; - nPrbtn: TButton; - fourbtn: TButton; - nfactorialbtn: TButton; - fivebtn: TButton; - sixbtn: TButton; - onebtn: TButton; - twobtn: TButton; - threebtn: TButton; - XEdit: TEdit; - GroupBox1: TGroupBox; - GroupBox2: TGroupBox; - GroupBox3: TGroupBox; - procedure absbtnClick(Sender: TObject); - procedure AddbtnClick(Sender: TObject); - procedure ChangeSignBtnClick(Sender: TObject); - procedure etoxbtnClick(Sender: TObject); - procedure PiBtnClick(Sender: TObject); - procedure VarBtnClick(Sender: TObject); - procedure MeanBtnClick(Sender: TObject); - procedure StdDevBtnClick(Sender: TObject); - procedure ClearEntryBtnClick(Sender: TObject); - procedure CombobtnClick(Sender: TObject); - procedure cosbtnClick(Sender: TObject); - procedure dividebtnClick(Sender: TObject); - procedure eightbtnClick(Sender: TObject); - procedure EqualBtnClick(Sender: TObject); - procedure expbtnClick(Sender: TObject); - procedure fivebtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure fourbtnClick(Sender: TObject); - procedure log10btnClick(Sender: TObject); - procedure MemInBtnClick(Sender: TObject); - procedure MemOutBtnClick(Sender: TObject); - procedure MemPlusBtnClick(Sender: TObject); - procedure multbtnClick(Sender: TObject); - procedure natlogbtnClick(Sender: TObject); - procedure nfactorialbtnClick(Sender: TObject); - procedure ninebtnClick(Sender: TObject); - procedure nPrbtnClick(Sender: TObject); - procedure onebtnClick(Sender: TObject); - procedure PeriodBtnClick(Sender: TObject); - procedure ReturnBtnClick(Sender: TObject); - procedure sevenbtnClick(Sender: TObject); - procedure sinbtnClick(Sender: TObject); - procedure sixbtnClick(Sender: TObject); - procedure sqrbtnClick(Sender: TObject); - procedure sqrtbtnClick(Sender: TObject); - procedure subtractbtnClick(Sender: TObject); - procedure tanbtnClick(Sender: TObject); - procedure tentoxbtnClick(Sender: TObject); - procedure threebtnClick(Sender: TObject); - procedure twobtnClick(Sender: TObject); - procedure XEditKeyPress(Sender: TObject; var Key: char); - procedure ytopowerxbtnClick(Sender: TObject); - procedure ZeroBtnClick(Sender: TObject); - private - { private declarations } - Xmemory : double; // value in the memory - X : double; // value in register - TempX : double; // temporary storage of last entry - keyentered : double; // numeric key press value - operation : integer; // operation to be performed upon press of equal sign - NoStack : integer; // no. in memory stack - stack : DblDyneVec; - Xint, Xint2 : integer; - public - { public declarations } - end; - -var - CalculatorForm: TCalculatorForm; - -implementation - -{ TCalculatorForm } - -procedure TCalculatorForm.FormShow(Sender: TObject); -begin - XEdit.Text := ''; - Xmemory := 0.0; - X := 0.0; - keyentered := 0.0; - NoStack := 0; - SetLength(stack,1000); - NEdit.Text := '0'; - XEdit.SetFocus; -end; - -procedure TCalculatorForm.fourbtnClick(Sender: TObject); -begin - XEdit.Text := XEdit.Text + '4'; -end; - -procedure TCalculatorForm.log10btnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := log10(X); - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.MemInBtnClick(Sender: TObject); -begin - Xmemory := StrToFloat(XEdit.Text); - XEdit.Text := ''; -end; - -procedure TCalculatorForm.MemOutBtnClick(Sender: TObject); -begin - XEdit.Text := FloatToStr(Xmemory); -end; - -procedure TCalculatorForm.MemPlusBtnClick(Sender: TObject); -begin - stack[NoStack] := stack[NoStack] + StrToFloat(XEdit.Text); - NoStack := NoStack + 1; - NEdit.Text := IntToStr(NoStack); - XEdit.Text := ''; -end; - -procedure TCalculatorForm.multbtnClick(Sender: TObject); -begin - TempX := StrToFloat(XEdit.Text); - XEdit.Text := ''; - operation := 2; // multiply -end; - -procedure TCalculatorForm.natlogbtnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := ln(X); - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.nfactorialbtnClick(Sender: TObject); -var n : integer; -begin - n := StrToInt(XEdit.Text); - n := factorial(n); - XEdit.Text := IntToStr(n); -end; - -procedure TCalculatorForm.ninebtnClick(Sender: TObject); -begin - XEdit.Text := XEdit.Text + '9'; -end; - -procedure TCalculatorForm.nPrbtnClick(Sender: TObject); -begin - operation := 7; - Xint := StrToInt(XEdit.Text); - XEdit.Text := ''; -end; - -procedure TCalculatorForm.onebtnClick(Sender: TObject); -begin -XEdit.Text := XEdit.Text + '1'; -end; - -procedure TCalculatorForm.PeriodBtnClick(Sender: TObject); -begin - XEdit.Text := XEdit.Text + '.'; -end; - -procedure TCalculatorForm.ReturnBtnClick(Sender: TObject); -begin - stack := nil; -end; - -procedure TCalculatorForm.sevenbtnClick(Sender: TObject); -begin - XEdit.Text := XEdit.Text + '7'; -end; - -procedure TCalculatorForm.sinbtnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := sin(DegToRad(X)); - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.sixbtnClick(Sender: TObject); -begin - XEdit.Text := XEdit.Text + '6'; -end; - -procedure TCalculatorForm.sqrbtnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := X * X; - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.sqrtbtnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := sqrt(X); - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.subtractbtnClick(Sender: TObject); -begin - TempX := StrToFloat(XEdit.Text); - XEdit.Text := ''; - operation := 3; // subtract -end; - -procedure TCalculatorForm.tanbtnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := tan(DegToRad(X)); - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.tentoxbtnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := power(10,X); - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.threebtnClick(Sender: TObject); -begin - XEdit.Text := XEdit.Text + '3'; -end; - -procedure TCalculatorForm.twobtnClick(Sender: TObject); -begin - XEdit.Text := XEdit.Text + '2'; -end; - -procedure TCalculatorForm.XEditKeyPress(Sender: TObject; var Key: char); -begin -// XEdit.Text := XEdit.Text + Key; -end; - -procedure TCalculatorForm.ytopowerxbtnClick(Sender: TObject); -begin - operation := 5; - tempX := StrToFloat(XEdit.Text); - XEdit.Text := ''; -end; - -procedure TCalculatorForm.ZeroBtnClick(Sender: TObject); -begin -XEdit.text := XEdit.Text + '0'; -end; - -procedure TCalculatorForm.ClearEntryBtnClick(Sender: TObject); -begin - XEdit.Text := ''; -end; - -procedure TCalculatorForm.CombobtnClick(Sender: TObject); -begin - operation := 6; - tempX := StrToFloat(XEdit.Text); - XEdit.Text := ''; -end; - -procedure TCalculatorForm.cosbtnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := cos(DegToRad(X)); - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.AddbtnClick(Sender: TObject); -begin - TempX := StrToFloat(XEdit.Text); - XEdit.Text := ''; - operation := 4; // add -end; - -procedure TCalculatorForm.ChangeSignBtnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := -1.0 * X; - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.etoxbtnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := power(2.71828182845905,X); - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.PiBtnClick(Sender: TObject); -begin - X := Pi; - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.absbtnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := abs(X); - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.VarBtnClick(Sender: TObject); -VAR - Sum, SSQ : double; - Ncount : double; - i, index : integer; -begin - Ncount := StrToFloat(NEdit.Text); - index := StrToInt(NEdit.Text); - Sum := 0.0; - SSQ := 0.0; - if Ncount < 1 then - begin - ShowMessage('No values in stack memory'); - exit; - end - else - begin - for i := 0 to index - 1 do - begin - Sum := Sum + stack[i]; - SSQ := SSQ + (stack[i] * stack[i]); - end; -// Sum := Sum / Ncount; // mean -// SSQ := SSQ / Ncount; - SSQ := SSQ - (Sum * Sum) / Ncount; - SSQ := SSQ / (Ncount - 1.0); - XEdit.Text := FloatToStr(SSQ); - end; -end; - -procedure TCalculatorForm.MeanBtnClick(Sender: TObject); -Var - Sum : double; - Ncount : double; - i, index : integer; -begin - Ncount := StrToFloat(NEdit.Text); - index := StrToInt(NEdit.Text); - Sum := 0.0; - if Ncount < 1 then - begin - ShowMessage('No values in stack memory'); - exit; - end - else - begin - for i := 0 to index - 1 do Sum := Sum + stack[i]; - Sum := Sum / Ncount; - XEdit.Text := FloatToStr(Sum); - end; -end; - -procedure TCalculatorForm.StdDevBtnClick(Sender: TObject); -VAR - Sum, SSQ : double; - Ncount : double; - i, index : integer; -begin - Ncount := StrToFloat(NEdit.Text); - index := StrToInt(NEdit.Text); - Sum := 0.0; - SSQ := 0.0; - if Ncount < 1 then - begin - ShowMessage('No values in stack memory'); - exit; - end - else - begin - for i := 0 to index - 1 do - begin - Sum := Sum + stack[i]; - SSQ := SSQ + (stack[i] * stack[i]); - end; -// Sum := Sum / Ncount; // mean -// SSQ := SSQ / Ncount; - SSQ := SSQ - (Sum * Sum) / Ncount; - SSQ := SSQ / (Ncount - 1.0); - SSQ := sqrt(SSQ); - XEdit.Text := FloatToStr(SSQ); - end; -end; - -procedure TCalculatorForm.dividebtnClick(Sender: TObject); -begin - TempX := StrToFloat(XEdit.Text); - XEdit.Text := ''; - operation := 1; // //divide -end; - -procedure TCalculatorForm.eightbtnClick(Sender: TObject); -begin - XEdit.Text := XEdit.Text + '8'; -end; - -procedure TCalculatorForm.EqualBtnClick(Sender: TObject); -Var x1, x2 : double; -begin - case (operation) of - 1 : begin // divide operation - x1 := tempX; - x2 := x1 / StrToFloat(XEdit.Text); - XEdit.Text := FloatToStr(x2); - end; - 2 : begin // nultiply operation - x1 := tempX; - x2 := x1 * StrToFloat(XEdit.Text); - XEdit.Text := FloatToStr(x2); - end; - 3 : begin - x1 := tempX; // subtract operation - x2 := x1 - StrToFloat(XEdit.Text); - XEdit.Text := FloatToStr(x2); - end; - 4 : begin - x1 := tempX; // Add operation - x2 := x1 + StrToFloat(XEdit.Text); - XEdit.Text := FloatToStr(x2); - end; - 5 : begin // y to the X power (Y stored in tempx first, x in register) - X := StrToFloat(XEdit.Text); - X := power(tempX,X); - XEdit.Text := FloatToStr(X); - end; - 6 : begin // combinations of x things out of N - X := StrToFloat(XEdit.Text); - X := combos(X,tempX); - XEdit.Text := FloatToStr(X); - end; - 7 : begin // permutations of x things out of N - Xint2 := StrToInt(XEdit.Text); - Xint := factorial(Xint) div (factorial(Xint - Xint2)); - XEdit.Text := IntToStr(Xint); - end; - end; -end; - -procedure TCalculatorForm.expbtnClick(Sender: TObject); -begin - X := StrToFloat(XEdit.Text); - X := exp(X); - XEdit.Text := FloatToStr(X); -end; - -procedure TCalculatorForm.fivebtnClick(Sender: TObject); -begin - XEdit.Text := XEdit.Text + '5'; -end; - -initialization - {$I calculatorunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/cchartunit.pas b/applications/lazstats/source_orig/cchartunit.pas deleted file mode 100644 index 10bf366a5..000000000 --- a/applications/lazstats/source_orig/cchartunit.pas +++ /dev/null @@ -1,280 +0,0 @@ -unit CCHARTUNIT; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, ExtCtrls, MainUnit, Globals, DataProcs, Math, OutPutUnit, Buttons, - FunctionsLib, BlankFrmUnit, contexthelpunit; - -type - - { TcChartFrm } - - TcChartFrm = class(TForm) - HelpBtn: TButton; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - XSigmaEdit: TEdit; - MeasEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - VarList: TListBox; - SigmaOpts: TRadioGroup; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure VarListClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - procedure PlotMeans(VAR means : DblDyneVec; - NoGrps : integer; - UCL, LCL, GrandMean : double; - Sender: TObject); - public - { public declarations } - end; - -var - cChartFrm: TcChartFrm; - -implementation - -{ TcChartFrm } - -procedure TcChartFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - MeasEdit.Text := ''; - XSigmaEdit.Text := ''; - SigmaOpts.ItemIndex := 0; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TcChartFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TcChartFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TcChartFrm.ComputeBtnClick(Sender: TObject); -var - i, MeasVar : integer; - X, size, UCL, LCL, Sigma : double; - GrandMean, meanc, stddevc : double; - means : DblDyneVec; - cellstring, outline : string; - ColNoSelected : IntDyneVec; - NoSelected : integer; -begin - SetLength(ColNoSelected,1); - MeasVar := 1; - Sigma := 3.0; - for i := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[i,0]; - if cellstring = MeasEdit.Text then MeasVar := i; - end; - NoSelected := 1; - ColNoSelected[0] := MeasVar; - - if SigmaOpts.ItemIndex = 3 then - Sigma := StrToFloat(XSigmaEdit.Text); - if SigmaOpts.ItemIndex = 0 then Sigma := 3.0; - if SigmaOpts.ItemIndex = 1 then Sigma := 2.0; - if SigmaOpts.ItemIndex = 2 then Sigma := 1.0; - - SetLength(means,NoCases + 1); - GrandMean := 0.0; - size := 0; - - for i := 1 to NoCases do - begin - if Not GoodRecord(i,NoSelected,ColNoSelected) then continue; - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[MeasVar,i])); - means[i] := X; - GrandMean := GrandMean + X; - size := size + 1; - end; - - meanc := GrandMean / size; - stddevc := sqrt(meanc); - UCL := meanc + (Sigma * stddevc); - LCL := meanc - (Sigma * stddevc); - - // printed results - OutPutFrm.RichEdit.Lines.Add('Defects c Control Chart Results'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Sample Number of '); - OutPutFrm.RichEdit.Lines.Add(' Noncomformities'); - OutPutFrm.RichEdit.Lines.Add('______ _______________'); - for i := 1 to NoCases do - begin - outline := format(' %3d %8.2f',[i,means[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - outline := format('Total Nonconformities = %8.2f',[GrandMean]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('No. of samples = %d',[NoCases]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Poisson mean and variance = %8.3f',[meanc]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Lower Control Limit = %8.3f, Upper Control Limit = %8.3f', - [LCL, UCL]); - OutPutfrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - - // show graph - PlotMeans(means,NoCases,UCL,LCL,meanc,self); - - means := nil; - ColNoSelected := nil; -end; - -procedure TcChartFrm.VarListClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - MeasEdit.Text := VarList.Items.Strings[index]; -end; - -procedure TcChartFrm.PlotMeans(var means: DblDyneVec; NoGrps: integer; UCL, - LCL, GrandMean: double; Sender: TObject); -var - i, xpos, ypos, hleft, hright, vtop, vbottom, imagewide : integer; - vhi, hwide, offset, strhi : integer; - imagehi, maxval, minval, valincr, Yvalue : double; - Title : string; -begin - maxval := -10000.0; - minval := 10000.0; - for i := 1 to NoGrps do - begin - if means[i] > maxval then maxval := means[i]; - if means[i] < minval then minval := means[i]; - end; - if UCL > maxval then maxval := UCL; - if LCL < minval then minval := LCL; - BlankFrm.Image1.Canvas.Clear; - BlankFrm.Show; - Title := 'DEFECT CONTROL (c) CHART FOR : ' + OS3MainFrm.FileNameEdit.Text; - BlankFrm.Caption := Title; - imagewide := BlankFrm.Image1.Width; - imagehi := BlankFrm.Image1.Height; - vtop := 20; - vbottom := round(imagehi) - 80; - vhi := vbottom - vtop; - hleft := 100; - hright := imagewide - 80; - hwide := hright - hleft; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - - // Draw chart border - BlankFrm.Image1.Canvas.Rectangle(hleft,vtop-10,hleft+hwide,vtop+vhi+10); - - // draw Grand Mean - ypos := round(vhi * ( (maxval - GrandMean) / (maxval - minval))); - ypos := ypos + vtop; - xpos := hleft; - BlankFrm.Image1.Canvas.Pen.Color := clRed; - BlankFrm.Image1.Canvas.Brush.Color := clLtGray; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - xpos := hright; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - Title := 'MEAN'; - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - ypos := ypos - strhi div 2; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - - // draw horizontal axis - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.MoveTo(hleft,vbottom + 20); - BlankFrm.Image1.Canvas.LineTo(hright,vbottom + 20); - for i := 1 to NoGrps do - begin - ypos := vbottom + 10; - xpos := round((hwide / NoGrps)* i + hleft); - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - ypos := ypos + 10; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - Title := format('%d',[i]); - offset := BlankFrm.Image1.Canvas.TextWidth(Title) div 2; - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - xpos := xpos - offset; - ypos := ypos + strhi; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - xpos := 10; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,'GROUPS:'); - end; - - // Draw vertical axis - valincr := (maxval - minval) / 10.0; - for i := 1 to 11 do - begin - Title := format('%8.2f',[maxval - ((i-1)*valincr)]); - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - xpos := 10; - Yvalue := maxval - (valincr * (i-1)); - ypos := round(vhi * ( (maxval - Yvalue) / (maxval - minval))); - ypos := ypos + vtop - strhi div 2; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - end; - - // draw lines for means of the groups - ypos := round(vhi * ( (maxval - means[1]) / (maxval - minval))); - ypos := ypos + vtop; - xpos := round((hwide / NoGrps) + hleft); - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - for i := 2 to NoGrps do - begin - ypos := round(vhi * ( (maxval - means[i]) / (maxval - minval))); - ypos := ypos + vtop; - xpos := round((hwide / NoGrps)* i + hleft); - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - end; - - // Draw upper and lower confidence intervals - ypos := round(vhi * ( (maxval - UCL) / (maxval - minval))); - ypos := ypos + vtop; - xpos := hleft; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - xpos := hright; - BlankFrm.Image1.Canvas.Pen.Color := clRed; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - Title := 'UCL'; - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - ypos := ypos - strhi div 2; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - - ypos := round(vhi * ( (maxval - LCL) / (maxval - minval))); - ypos := ypos + vtop; - xpos := hleft; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - xpos := hright; - BlankFrm.Image1.Canvas.Pen.Color := clRed; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - Title := 'LCL'; - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - ypos := ypos - strhi div 2; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); -end; - -initialization - {$I cchartunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/colinsertunit.lfm b/applications/lazstats/source_orig/colinsertunit.lfm deleted file mode 100644 index 6ad09d13f..000000000 --- a/applications/lazstats/source_orig/colinsertunit.lfm +++ /dev/null @@ -1,77 +0,0 @@ -object colinsertfrm: Tcolinsertfrm - Left = 221 - Height = 149 - Top = 125 - Width = 217 - Caption = 'Column Insert' - ClientHeight = 149 - ClientWidth = 217 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 9 - Height = 14 - Top = 15 - Width = 148 - Caption = 'Insert a column in which grid ? ' - ParentColor = False - end - object Label2: TLabel - Left = 8 - Height = 14 - Top = 48 - Width = 113 - Caption = 'Insert Before Column : ' - ParentColor = False - end - object Label3: TLabel - Left = 9 - Height = 14 - Top = 82 - Width = 106 - Caption = 'Insert After Column : ' - ParentColor = False - end - object GridNoEdit: TEdit - Left = 160 - Height = 21 - Top = 6 - Width = 45 - TabOrder = 0 - Text = 'GridNoEdit' - end - object BeforeColEdit: TEdit - Left = 160 - Height = 21 - Top = 41 - Width = 45 - TabOrder = 1 - Text = 'Edit1' - end - object AfterColEdit: TEdit - Left = 160 - Height = 21 - Top = 75 - Width = 45 - TabOrder = 2 - Text = 'Edit1' - end - object CancelBtn: TButton - Left = 8 - Height = 30 - Top = 110 - Width = 70 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 3 - end - object ReturnBtn: TButton - Left = 135 - Height = 30 - Top = 110 - Width = 70 - Caption = 'Return' - ModalResult = 1 - TabOrder = 4 - end -end diff --git a/applications/lazstats/source_orig/colinsertunit.lrs b/applications/lazstats/source_orig/colinsertunit.lrs deleted file mode 100644 index ac90f7748..000000000 --- a/applications/lazstats/source_orig/colinsertunit.lrs +++ /dev/null @@ -1,22 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('Tcolinsertfrm','FORMDATA',[ - 'TPF0'#13'Tcolinsertfrm'#12'colinsertfrm'#4'Left'#3#221#0#6'Height'#3#149#0#3 - +'Top'#2'}'#5'Width'#3#217#0#7'Caption'#6#13'Column Insert'#12'ClientHeight'#3 - +#149#0#11'ClientWidth'#3#217#0#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#15#5'Widt' - +'h'#3#148#0#7'Caption'#6' Insert a column in which grid ? '#11'ParentColor'#8 - +#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#14#3'Top'#2'0'#5'Width'#2'q' - +#7'Caption'#6#23'Insert Before Column : '#11'ParentColor'#8#0#0#6'TLabel'#6 - +'Label3'#4'Left'#2#9#6'Height'#2#14#3'Top'#2'R'#5'Width'#2'j'#7'Caption'#6#22 - +'Insert After Column : '#11'ParentColor'#8#0#0#5'TEdit'#10'GridNoEdit'#4'Lef' - +'t'#3#160#0#6'Height'#2#21#3'Top'#2#6#5'Width'#2'-'#8'TabOrder'#2#0#4'Text'#6 - +#10'GridNoEdit'#0#0#5'TEdit'#13'BeforeColEdit'#4'Left'#3#160#0#6'Height'#2#21 - +#3'Top'#2')'#5'Width'#2'-'#8'TabOrder'#2#1#4'Text'#6#5'Edit1'#0#0#5'TEdit'#12 - +'AfterColEdit'#4'Left'#3#160#0#6'Height'#2#21#3'Top'#2'K'#5'Width'#2'-'#8'Ta' - +'bOrder'#2#2#4'Text'#6#5'Edit1'#0#0#7'TButton'#9'CancelBtn'#4'Left'#2#8#6'He' - +'ight'#2#30#3'Top'#2'n'#5'Width'#2'F'#7'Caption'#6#6'Cancel'#11'ModalResult' - +#2#2#8'TabOrder'#2#3#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#135#0#6'Height'#2 - +#30#3'Top'#2'n'#5'Width'#2'F'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'T' - +'abOrder'#2#4#0#0#0 -]); diff --git a/applications/lazstats/source_orig/colinsertunit.pas b/applications/lazstats/source_orig/colinsertunit.pas deleted file mode 100644 index dfa644de6..000000000 --- a/applications/lazstats/source_orig/colinsertunit.pas +++ /dev/null @@ -1,48 +0,0 @@ -unit colinsertunit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls; - -type - - { Tcolinsertfrm } - - Tcolinsertfrm = class(TForm) - CancelBtn: TButton; - ReturnBtn: TButton; - GridNoEdit: TEdit; - BeforeColEdit: TEdit; - AfterColEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - procedure FormShow(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - colinsertfrm: Tcolinsertfrm; - -implementation -uses matmanunit; - -{ Tcolinsertfrm } - -procedure Tcolinsertfrm.FormShow(Sender: TObject); -begin - GridNoEdit.Text := matmanfrm.GridNoEdit.Text; -end; - -initialization - {$I colinsertunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/comparedistunit.lfm b/applications/lazstats/source_orig/comparedistunit.lfm deleted file mode 100644 index fb89a6130..000000000 --- a/applications/lazstats/source_orig/comparedistunit.lfm +++ /dev/null @@ -1,371 +0,0 @@ -object CompareDistFrm: TCompareDistFrm - Left = 242 - Height = 378 - Top = 127 - Width = 613 - Caption = 'Compare Cumulative Distributions' - ClientHeight = 378 - ClientWidth = 613 - OnShow = FormShow - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 9 - Height = 16 - Top = 8 - Width = 51 - Caption = 'Variables:' - ParentColor = False - end - object Label2: TLabel - Left = 249 - Height = 16 - Top = 22 - Width = 68 - Caption = 'Variable One' - ParentColor = False - end - object Label3: TLabel - Left = 248 - Height = 16 - Top = 135 - Width = 69 - Caption = 'Variable Two' - ParentColor = False - end - object VarList: TListBox - Left = 9 - Height = 270 - Top = 24 - Width = 176 - ItemHeight = 0 - TabOrder = 0 - end - object Var1InBtn: TBitBtn - Left = 200 - Height = 30 - Top = 25 - 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 - } - OnClick = Var1InBtnClick - TabOrder = 1 - end - object Var1OutBtn: TBitBtn - Left = 200 - Height = 30 - Top = 64 - 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 - } - OnClick = Var1OutBtnClick - TabOrder = 2 - end - object Var2InBtn: TBitBtn - Left = 200 - Height = 30 - Top = 136 - 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 - } - OnClick = Var2InBtnClick - TabOrder = 3 - end - object Var2OutBtn: TBitBtn - Left = 200 - Height = 30 - Top = 176 - 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 - } - OnClick = Var2OutBtnClick - TabOrder = 4 - end - object VarOneEdit: TEdit - Left = 250 - Height = 23 - Top = 38 - Width = 142 - TabOrder = 5 - Text = 'VarOneEdit' - end - object VarTwoEdit: TEdit - Left = 248 - Height = 23 - Top = 152 - Width = 142 - TabOrder = 6 - Text = 'Edit1' - end - object CompareGroup: TRadioGroup - Left = 409 - Height = 81 - Top = 7 - Width = 187 - AutoFill = True - Caption = 'Compare To:' - 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 = 63 - ClientWidth = 183 - ItemIndex = 0 - Items.Strings = ( - 'A Theoretical Distribution' - 'Another Variable' - ) - OnClick = CompareGroupClick - TabOrder = 7 - end - object DistGroup: TRadioGroup - Left = 409 - Height = 169 - Top = 96 - Width = 190 - AutoFill = True - Caption = 'Theoretical Distributions:' - 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 = 151 - ClientWidth = 186 - Items.Strings = ( - 'Normal Distribution' - 't-Distribution' - 'Chi Square Distribution' - 'F Distribution' - 'Poisson Distribution' - ) - OnClick = DistGroupClick - TabOrder = 8 - end - object CancelBtn: TButton - Left = 200 - Height = 30 - Top = 224 - Width = 74 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 9 - end - object ResetBtn: TButton - Left = 318 - Height = 30 - Top = 224 - Width = 74 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 10 - end - object ComputeBtn: TButton - Left = 200 - Height = 30 - Top = 264 - Width = 74 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 11 - end - object ReturnBtn: TButton - Left = 318 - Height = 30 - Top = 264 - Width = 74 - Caption = 'Return' - ModalResult = 1 - TabOrder = 12 - end - object PlotTypeGrp: TGroupBox - Left = 409 - Height = 65 - Top = 292 - Width = 187 - Caption = 'Plot Type:' - ClientHeight = 47 - ClientWidth = 183 - TabOrder = 13 - object PointsChk: TCheckBox - Left = 8 - Height = 19 - Top = 2 - Width = 67 - Caption = '3DPoints' - Checked = True - OnClick = PointsChkClick - State = cbChecked - TabOrder = 0 - end - object LinesChk: TCheckBox - Left = 8 - Height = 19 - Top = 25 - Width = 61 - Caption = '3DLines' - OnClick = LinesChkClick - TabOrder = 1 - end - end - object GroupBox1: TGroupBox - Left = 5 - Height = 50 - Top = 307 - Width = 331 - Caption = 'Option:' - ClientHeight = 32 - ClientWidth = 327 - TabOrder = 14 - object BothChk: TCheckBox - Left = 4 - Height = 19 - Top = 5 - Width = 270 - Caption = 'Plot both Frequency and cumulative Frequency' - TabOrder = 0 - end - end -end diff --git a/applications/lazstats/source_orig/comparedistunit.lrs b/applications/lazstats/source_orig/comparedistunit.lrs deleted file mode 100644 index 7031dca5a..000000000 --- a/applications/lazstats/source_orig/comparedistunit.lrs +++ /dev/null @@ -1,263 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TCompareDistFrm','FORMDATA',[ - 'TPF0'#15'TCompareDistFrm'#14'CompareDistFrm'#4'Left'#3#242#0#6'Height'#3'z'#1 - +#3'Top'#2#127#5'Width'#3'e'#2#7'Caption'#6' Compare Cumulative Distributions' - +#12'ClientHeight'#3'z'#1#11'ClientWidth'#3'e'#2#6'OnShow'#7#8'FormShow'#10'L' - +'CLVersion'#6#6'0.9.30'#0#6'TLabel'#6'Label1'#4'Left'#2#9#6'Height'#2#16#3'T' - +'op'#2#8#5'Width'#2'3'#7'Caption'#6#10'Variables:'#11'ParentColor'#8#0#0#6'T' - +'Label'#6'Label2'#4'Left'#3#249#0#6'Height'#2#16#3'Top'#2#22#5'Width'#2'D'#7 - +'Caption'#6#12'Variable One'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Lef' - +'t'#3#248#0#6'Height'#2#16#3'Top'#3#135#0#5'Width'#2'E'#7'Caption'#6#12'Vari' - +'able Two'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#9#6'Height' - +#3#14#1#3'Top'#2#24#5'Width'#3#176#0#10'ItemHeight'#2#0#8'TabOrder'#2#0#0#0#7 - +'TBitBtn'#9'Var1InBtn'#4'Left'#3#200#0#6'Height'#2#30#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#7'OnClick'#7#14'Var1InBtnClick'#8 - +'TabOrder'#2#1#0#0#7'TBitBtn'#10'Var1OutBtn'#4'Left'#3#200#0#6'Height'#2#30#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#7'OnC' - +'lick'#7#15'Var1OutBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#9'Var2InBtn'#4'L' - +'eft'#3#200#0#6'Height'#2#30#3'Top'#3#136#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#7'OnClick'#7#14'Var2InBtnClick'#8'TabOrder'#2#3 - +#0#0#7'TBitBtn'#10'Var2OutBtn'#4'Left'#3#200#0#6'Height'#2#30#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#7'OnClick' - +#7#15'Var2OutBtnClick'#8'TabOrder'#2#4#0#0#5'TEdit'#10'VarOneEdit'#4'Left'#3 - +#250#0#6'Height'#2#23#3'Top'#2'&'#5'Width'#3#142#0#8'TabOrder'#2#5#4'Text'#6 - +#10'VarOneEdit'#0#0#5'TEdit'#10'VarTwoEdit'#4'Left'#3#248#0#6'Height'#2#23#3 - +'Top'#3#152#0#5'Width'#3#142#0#8'TabOrder'#2#6#4'Text'#6#5'Edit1'#0#0#11'TRa' - +'dioGroup'#12'CompareGroup'#4'Left'#3#153#1#6'Height'#2'Q'#3'Top'#2#7#5'Widt' - +'h'#3#187#0#8'AutoFill'#9#7'Caption'#6#11'Compare To:'#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#183#0#9'ItemIndex'#2#0#13'Items' - +'.Strings'#1#6#26'A Theoretical Distribution'#6#16'Another Variable'#0#7'OnC' - +'lick'#7#17'CompareGroupClick'#8'TabOrder'#2#7#0#0#11'TRadioGroup'#9'DistGro' - +'up'#4'Left'#3#153#1#6'Height'#3#169#0#3'Top'#2'`'#5'Width'#3#190#0#8'AutoFi' - +'ll'#9#7'Caption'#6#26'Theoretical Distributions:'#28'ChildSizing.LeftRightS' - +'pacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHori' - +'zontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24 - +'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChi' - +'lds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Lay' - +'out'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1 - +#12'ClientHeight'#3#151#0#11'ClientWidth'#3#186#0#13'Items.Strings'#1#6#19'N' - +'ormal Distribution'#6#14't-Distribution'#6#23'Chi Square Distribution'#6#14 - +'F Distribution'#6#20'Poisson Distribution'#0#7'OnClick'#7#14'DistGroupClick' - +#8'TabOrder'#2#8#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#200#0#6'Height'#2#30#3 - +'Top'#3#224#0#5'Width'#2'J'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'Tab' - +'Order'#2#9#0#0#7'TButton'#8'ResetBtn'#4'Left'#3'>'#1#6'Height'#2#30#3'Top'#3 - +#224#0#5'Width'#2'J'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8 - +'TabOrder'#2#10#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#200#0#6'Height'#2#30 - +#3'Top'#3#8#1#5'Width'#2'J'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeB' - +'tnClick'#8'TabOrder'#2#11#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3'>'#1#6'Heig' - +'ht'#2#30#3'Top'#3#8#1#5'Width'#2'J'#7'Caption'#6#6'Return'#11'ModalResult'#2 - +#1#8'TabOrder'#2#12#0#0#9'TGroupBox'#11'PlotTypeGrp'#4'Left'#3#153#1#6'Heigh' - +'t'#2'A'#3'Top'#3'$'#1#5'Width'#3#187#0#7'Caption'#6#10'Plot Type:'#12'Clien' - +'tHeight'#2'/'#11'ClientWidth'#3#183#0#8'TabOrder'#2#13#0#9'TCheckBox'#9'Poi' - +'ntsChk'#4'Left'#2#8#6'Height'#2#19#3'Top'#2#2#5'Width'#2'C'#7'Caption'#6#8 - +'3DPoints'#7'Checked'#9#7'OnClick'#7#14'PointsChkClick'#5'State'#7#9'cbCheck' - +'ed'#8'TabOrder'#2#0#0#0#9'TCheckBox'#8'LinesChk'#4'Left'#2#8#6'Height'#2#19 - +#3'Top'#2#25#5'Width'#2'='#7'Caption'#6#7'3DLines'#7'OnClick'#7#13'LinesChkC' - +'lick'#8'TabOrder'#2#1#0#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#5#6'Height' - +#2'2'#3'Top'#3'3'#1#5'Width'#3'K'#1#7'Caption'#6#7'Option:'#12'ClientHeight' - ,#2' '#11'ClientWidth'#3'G'#1#8'TabOrder'#2#14#0#9'TCheckBox'#7'BothChk'#4'Le' - +'ft'#2#4#6'Height'#2#19#3'Top'#2#5#5'Width'#3#14#1#7'Caption'#6',Plot both F' - +'requency and cumulative Frequency'#8'TabOrder'#2#0#0#0#0#0 -]); diff --git a/applications/lazstats/source_orig/comparedistunit.pas b/applications/lazstats/source_orig/comparedistunit.pas deleted file mode 100644 index 7c7de5fcd..000000000 --- a/applications/lazstats/source_orig/comparedistunit.pas +++ /dev/null @@ -1,515 +0,0 @@ -unit CompareDistUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, ExtCtrls, BlankFrmUnit, OutPutUnit, FunctionsLib, Globals, - Math, GraphLib, DataProcs, FreqSpecsUnit, MainUnit; - -type - - { TCompareDistFrm } - - TCompareDistFrm = class(TForm) - CancelBtn: TButton; - BothChk: TCheckBox; - GroupBox1: TGroupBox; - LinesChk: TCheckBox; - PointsChk: TCheckBox; - PlotTypeGrp: TGroupBox; - ResetBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - CompareGroup: TRadioGroup; - DistGroup: TRadioGroup; - VarOneEdit: TEdit; - VarTwoEdit: TEdit; - Label2: TLabel; - Label3: TLabel; - Var1InBtn: TBitBtn; - Var1OutBtn: TBitBtn; - Var2InBtn: TBitBtn; - Var2OutBtn: TBitBtn; - Label1: TLabel; - VarList: TListBox; - procedure CompareGroupClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure DistGroupClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure LinesChkClick(Sender: TObject); - procedure PointsChkClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure Var1InBtnClick(Sender: TObject); - procedure Var1OutBtnClick(Sender: TObject); - procedure Var2InBtnClick(Sender: TObject); - procedure Var2OutBtnClick(Sender: TObject); - private - { private declarations } - compareto : integer; - disttype : integer; - public - { public declarations } - end; - -var - CompareDistFrm: TCompareDistFrm; - -implementation - -{ TCompareDistFrm } - -procedure TCompareDistFrm.FormShow(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - VarOneEdit.Text := ''; - VarTwoEdit.Text := ''; - for i := 1 to NoVariables do - begin - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - end; - Var1InBtn.Visible := true; - Var1OutBtn.Visible := false; - Label3.Visible := false; - VarTwoEdit.Visible := false; - Var2InBtn.Visible := false; - Var2OutBtn.Visible := false; - CompareGroup.ItemIndex := 0; - DistGroup.ItemIndex := 0; - LinesChk.Checked := false; - PointsChk.Checked := true; -end; - -procedure TCompareDistFrm.LinesChkClick(Sender: TObject); -begin - PointsChk.Checked := false; -end; - -procedure TCompareDistFrm.PointsChkClick(Sender: TObject); -begin - LinesChk.Checked := false; -end; - -procedure TCompareDistFrm.CompareGroupClick(Sender: TObject); -begin - compareto := CompareGroup.ItemIndex; - if compareto = 0 then - begin - Label3.Visible := false; - VarTwoEdit.Visible := false; - Var2InBtn.Visible := false; - Var2OutBtn.Visible := false; - end - else - begin - Label3.Visible := true; - VarTwoEdit.Visible := true; - Var2InBtn.Visible := true; - Var2OutBtn.Visible := false; - end; -end; - -procedure TCompareDistFrm.ComputeBtnClick(Sender: TObject); -VAR - Var1Freq : IntDyneVec; - Var2Freq : IntDyneVec; - XValue1 : DblDyneVec; - XValue2 : DblDyneVec; - Cumfreq1 : DblDyneVec; - Cumfreq2 : DblDyneVec; - i, j, k, col1, col2, Ncases, noints1, noints2, noints : integer; - min1, max1, min2, max2, range1, range2, incrsize, value : double; - incrsize1, incrsize2, prob1,prob2, KS, mean, DegFree : double; - cellval, name1, name2 : string; - df1, df2 : integer; - xtitle : string; - -label again1, again2; - -begin - SetLength(Var1Freq,NoCases+1); - SetLength(Var2Freq,NoCases+1); - SetLength(XValue1, NoCases + 1); - SetLength(XValue2, NoCases + 1); - SetLength(Cumfreq1,NoCases + 1); - SetLength(Cumfreq2,NoCases + 1); - // Get columns of the variables - for i := 1 to NoVariables do - begin - if VarOneEdit.Text = OS3MainFrm.DataGrid.Cells[i,0] then col1 := i; - if compareto = 1 then - begin - if VarTwoEdit.Text = OS3MainFrm.DataGrid.Cells[i,0] then col2 := i; - end; - end; - // get min and max values for variable in col1 - min1 := 1.0e32; - max1 := -1.0e32; - Ncases := 0; - for j := 1 to NoCases do - begin - if Not ValidValue(j,col1) then continue; - value := StrToFloat(OS3MainFrm.DataGrid.Cells[col1,j]); - if value > max1 then max1 := value; - if value < min1 then min1 := value; - Ncases := Ncases + 1; - end; - range1 := max1 - min1 + 1.0; - if compareto = 1 then - begin - min2 := 1.0e32; - max2 := -1.0e32; - for j := 1 to NoCases do - begin - if Not ValidValue(j,col2) then continue; - value := StrToFloat(OS3MainFrm.DataGrid.Cells[col2,j]); - if value > max2 then max2 := value; - if value < min2 then min2 := value; - end; - range2 := max2 - min2 + 1.0; - name2 := VarTwoEdit.Text; - end; - noints := NoCases-1; - if noints > 20 then noints := 20; - incrsize1 := range1 / noints; - incrsize2 := range2 / noints; - - //Now, get frequency of cases in each interval - for j := 1 to noints+1 do Var1Freq[j-1] := 0; - for j := 1 to NoCases do - begin - if Not ValidValue(j,col1) then continue; - value := StrToFloat(OS3MainFrm.DataGrid.Cells[col1,j]); - for k := 1 to noints do - begin - if (value >= min1 + ((k-1) * incrsize1)) and - (value < min1 + (k * incrsize1)) then Var1Freq[k-1] := Var1Freq[k-1] + 1; - end; - end; - Cumfreq1[0] := Var1Freq[0]; - for j := 1 to noints+1 do XValue1[j-1] := min1 + (j-1) * incrsize1; - for j := 1 to noints do Cumfreq1[j] := Cumfreq1[j-1] + Var1Freq[j]; - if compareto = 1 then // do same for second variable - begin - for j := 1 to noints+1 do Var2Freq[j-1] := 0; - for j := 1 to NoCases do - begin - if Not ValidValue(j,col2) then continue; - value := StrToFloat(OS3MainFrm.DataGrid.Cells[col2,j]); - for k := 1 to noints do - begin - if (value >= min2 + ((k-1) * incrsize2)) and - (value < min2 + (k * incrsize2)) then Var2Freq[k-1] := Var2Freq[k-1] + 1; - end; - end; - Cumfreq2[0] := Var2Freq[0]; - for j := 1 to noints+1 do XValue2[j-1] := min2 + (j-1) * incrsize2; - for j := 1 to noints do Cumfreq2[j] := Cumfreq2[j-1] + Var2Freq[j]; - end; - - if compareto = 0 then // get theoretical distribution frequencies for selected dist. - begin - if DistGroup.ItemIndex = 0 then // normal curve - begin - name2 := 'Normal'; - min2 := -3.0; - max2 := 3.0; - range2 := max2 - min2; - incrsize2 := range2 / noints; - Xvalue2[0] := min2; - Xvalue2[noints] := max2; - for i := 1 to noints do - begin - Xvalue2[i-1] := min2 + (i-1) * incrsize2; - Xvalue2[i] := min2 + (i) * incrsize2; - prob1 := probz(abs(Xvalue2[i-1])); - prob2 := probz(abs(Xvalue2[i])); - if prob1 > prob2 then - Var2Freq[i-1] := round((prob1-prob2) * Ncases) - else Var2Freq[i-1] := round((prob2-prob1) * Ncases) - end; - Cumfreq2[0] := Var2Freq[0]; - for i := 1 to noints do Cumfreq2[i] := Cumfreq2[i-1] + Var2Freq[i]; - end; - if DistGroup.ItemIndex = 1 then // t-distribution - begin - name2 := 't-Dist.'; - min2 := -3.0; - max2 := 3.0; - df1 := Ncases - 1; - range2 := max2 - min2; - incrsize2 := range2 / noints; - Xvalue2[0] := min2; - Xvalue2[noints] := max2; - for i := 1 to noints do - begin - Xvalue2[i-1] := min2 + (i-1) * incrsize2; - Xvalue2[i] := min2 + (i) * incrsize2; - prob1 := 0.5 * probt(Xvalue2[i-1],df1); - prob2 := 0.5 * probt(Xvalue2[i],df1); - if prob1 > prob2 then - Var2Freq[i-1] := round((prob1-prob2) * Ncases) - else Var2Freq[i-1] := round((prob2-prob1) * Ncases) - end; - Cumfreq2[0] := Var2Freq[0]; - for i := 1 to noints do Cumfreq2[i] := Cumfreq2[i-1] + Var2Freq[i]; - end; - if DistGroup.ItemIndex = 2 then // chi squared distribution - begin - cellval := InputBox('Deg. Freedom 1 Entry','DF 1',''); - df1 := StrToInt(cellval); - name2 := 'Chi Sqrd'; - min2 := 0.0; - max2 := 20.0; - range2 := max2 - min2; - incrsize2 := range2 / noints; - Xvalue2[0] := min2; - Xvalue2[noints] := max2; - for i := 1 to noints do - begin - Xvalue2[i-1] := min2 + (i-1) * incrsize2; - Xvalue2[i] := min2 + (i) * incrsize2; - prob1 := chisquaredprob(Xvalue2[i-1],df1); - prob2 := chisquaredprob(Xvalue2[i],df1); - if prob1 > prob2 then - Var2Freq[i-1] := round((prob1-prob2) * Ncases) - else Var2Freq[i-1] := round((prob2-prob1) * Ncases) - end; - Cumfreq2[0] := Var2Freq[0]; - for i := 1 to noints do Cumfreq2[i] := Cumfreq2[i-1] + Var2Freq[i]; - end; - if DistGroup.ItemIndex = 3 then // F distribution - begin - // get degrees of freedom - cellval := InputBox('Deg. Freedom 1 Entry','DF 1',''); - df1 := StrToInt(cellval); - cellval := InputBox('Deg. Freedom 2 Entry','DF 2',''); - df2 := StrToInt(cellval); - name2 := 'F Dist.'; - min2 := 0.0; - max2 := 3.0; - range2 := max2 - min2; - incrsize2 := range2 / noints; - Xvalue2[0] := min2; - Xvalue2[noints] := max2; - for i := 1 to noints do - begin - Xvalue2[i-1] := min2 + (i-1) * incrsize2; - Xvalue2[i] := min2 + (i) * incrsize2; - prob1 := probf(Xvalue2[i-1],df1,df2); - prob2 := probf(Xvalue2[i],df1,df2); - if prob1 > prob2 then - Var2Freq[i-1] := round((prob1-prob2) * Ncases) - else Var2Freq[i-1] := round((prob2-prob1) * Ncases) - end; - Cumfreq2[0] := Var2Freq[0]; - for i := 1 to noints do Cumfreq2[i] := Cumfreq2[i-1] + Var2Freq[i]; - end; - - if DistGroup.ItemIndex = 4 then // Poisson distribution - begin - name2 := 'Poisson'; - mean := 0; // use as parameter a in pdf call - min2 := min1; - max2 := max1; - if max2 > 13 then - begin - ShowMessage('Value > 13 found. Factorial too large - exiting.'); - exit; - end; - for i := 1 to Ncases do - mean := mean + StrToFloat(OS3MainFrm.DataGrid.Cells[col1,i]); - mean := mean / Ncases; - cellval := IntToStr(round(mean)); - cellval := InputBox('Parameter Entry (mean)','DF 1',cellval); - degfree := StrToFloat(cellval); - range2 := max2 - min2; - incrsize2 := range2 / noints; -// Xvalue2[0] := min2; - Xvalue2[noints] := max2; - for i := 1 to noints do - begin - Xvalue2[i-1] := min2 + (i-1) * incrsize2; - Xvalue2[i] := min2 + (i) * incrsize2; - poisson_pdf ( round(Xvalue2[i-1]), degfree, prob1 ); -// prob1 := (Xvalue2[i-1],df1); -// prob2 := chisquaredprob(Xvalue2[i],df1); -// if prob1 > prob2 then - Var2Freq[i-1] := round((prob1) * Ncases); -// else Var2Freq[i-1] := round((prob2-prob1) * Ncases) - end; - Cumfreq2[0] := Var2Freq[0]; - for i := 1 to noints do Cumfreq2[i] := Cumfreq2[i-1] + Var2Freq[i]; - end; - end; - - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Distribution comparison by Bill Miller'); - OutPutFrm.RichEdit.Lines.Add(''); - cellval := format('%10s %10s %10s %10s %10s %10s', - [name1, name1, name1,name2,name2,name2]); - OutPutFrm.RichEdit.Lines.Add(cellval); - cellval := format('%10s %10s %10s %10s %10s %10s', - ['X1 Value','Frequency','Cum. Freq.','X2 Value','Frequency','Cum. Freq.']); - OutPutFrm.RichEdit.Lines.Add(cellval); - for i := 1 to noints do - begin - cellval := format('%10.3f %10d %10.3f %10.3f %10d %10.3f', - [XValue1[i-1],Var1Freq[i-1],Cumfreq1[i-1],XValue2[i-1],Var2Freq[i-1],Cumfreq2[i-1]]); - OutPutFrm.RichEdit.Lines.Add(cellval); - end; - cellval := 'D'; - KS := KolmogorovTest(noints, Cumfreq1,noints, Cumfreq2, cellval); -// cellval := format('Kolmogorov-Smirnov statistic := %5.3f',[KS]); -// OutPutFrm.RichEdit.Lines.Add(cellval); - OutPutFrm.ShowModal; - - // plot the cdfs - xtitle := 'Red = ' + VarOneEdit.Text + ' Blue = ' + name2; - cellval := 'Plot of Cum. Distributions'; - if LinesChk.Checked then GraphFrm.barwideprop := 1.0 - else GraphFrm.barwideprop := 0.5; - GraphFrm.nosets := 2; - GraphFrm.nbars := noints+1; - GraphFrm.Heading := cellval; - GraphFrm.XTitle := xtitle; - GraphFrm.YTitle := 'Frequency'; - SetLength(GraphFrm.Ypoints,2,noints+1); - SetLength(GraphFrm.Xpoints,1,noints+1); - for k := 1 to noints+1 do - begin - GraphFrm.Ypoints[0,k-1] := Cumfreq1[k-1]; - GraphFrm.Ypoints[1,k-1] := CumFreq2[k-1]; - GraphFrm.Xpoints[0,k-1] := k; - end; - GraphFrm.AutoScale := true; - if LinesChk.Checked then GraphFrm.GraphType := 6 // 3d lines - else GraphFrm.GraphType := 8; // 3D points - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlue; - GraphFrm.FloorColor := clGray; - GraphFrm.ShowLeftWall := true; - GraphFrm.ShowRightWall := true; - GraphFrm.ShowBottomWall := true; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; - - if BothChk.Checked then // plot the frequencies - begin - xtitle := 'Red = ' + VarOneEdit.Text + ' Blue = ' + name2; - cellval := 'Plot of Cum. Distributions'; - if LinesChk.Checked then GraphFrm.barwideprop := 1.0 - else GraphFrm.barwideprop := 0.5; - GraphFrm.nosets := 2; - GraphFrm.nbars := noints+1; - GraphFrm.Heading := cellval; - GraphFrm.XTitle := xtitle; - GraphFrm.YTitle := 'Frequency'; - SetLength(GraphFrm.Ypoints,2,noints+1); - SetLength(GraphFrm.Xpoints,1,noints+1); - for k := 1 to noints+1 do - begin - GraphFrm.Ypoints[0,k-1] := Var1Freq[k-1]; - GraphFrm.Ypoints[1,k-1] := Var2Freq[k-1]; - GraphFrm.Xpoints[0,k-1] := k; - end; - GraphFrm.AutoScale := true; - if LinesChk.Checked then GraphFrm.GraphType := 6 // 3d lines - else GraphFrm.GraphType := 8; // 3D points - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlue; - GraphFrm.FloorColor := clGray; - GraphFrm.ShowLeftWall := true; - GraphFrm.ShowRightWall := true; - GraphFrm.ShowBottomWall := true; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; - - end; - // clean up - Cumfreq2 := nil; - Cumfreq1 := nil; - XValue1 := nil; - XValue2 := nil; - Var2Freq := nil; - Var1Freq := nil; -end; - -procedure TCompareDistFrm.DistGroupClick(Sender: TObject); -begin - disttype := DistGroup.ItemIndex; -end; - -procedure TCompareDistFrm.ResetBtnClick(Sender: TObject); -begin - FormShow(self); -end; - -procedure TCompareDistFrm.Var1InBtnClick(Sender: TObject); -VAR i, index : integer; -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - VarOneEdit.Text := VarList.Items.Strings[i]; - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - Var1OutBtn.Visible := true; - Var1InBtn.Visible := false; -end; - -procedure TCompareDistFrm.Var1OutBtnClick(Sender: TObject); -begin - VarList.Items.Add(VarOneEdit.Text); - VarOneEdit.Text := ''; - Var1OutBtn.Visible := false; - Var1InBtn.Visible := true; -end; - -procedure TCompareDistFrm.Var2InBtnClick(Sender: TObject); -VAR i, index : integer; -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - VarTwoEdit.Text := VarList.Items.Strings[i]; - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - Var2OutBtn.Visible := true; - Var2InBtn.Visible := false; -end; - -procedure TCompareDistFrm.Var2OutBtnClick(Sender: TObject); -begin - VarList.Items.Add(VarTwoEdit.Text); - VarTwoEdit.Text := ''; - Var2OutBtn.Visible := false; - Var2InBtn.Visible := true; -end; - -initialization - {$I comparedistunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/concordanceunit.lfm b/applications/lazstats/source_orig/concordanceunit.lfm deleted file mode 100644 index 6e60363a4..000000000 --- a/applications/lazstats/source_orig/concordanceunit.lfm +++ /dev/null @@ -1,190 +0,0 @@ -object ConcordFrm: TConcordFrm - Left = 176 - Height = 272 - Top = 123 - Width = 516 - Caption = 'Kendal''s Coefficient of Concordance' - ClientHeight = 272 - ClientWidth = 516 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 6 - Height = 14 - Top = 0 - Width = 90 - Caption = 'Avialable Variables' - ParentColor = False - end - object Label2: TLabel - Left = 216 - Height = 14 - Top = 0 - Width = 88 - Caption = 'Selected Variables' - ParentColor = False - end - object VarList: TListBox - Left = 7 - Height = 237 - Top = 16 - Width = 161 - ItemHeight = 0 - MultiSelect = True - TabOrder = 0 - end - object InBtn: TBitBtn - Left = 176 - Height = 29 - Top = 24 - 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 = InBtnClick - TabOrder = 1 - end - object OutBtn: TBitBtn - Left = 176 - Height = 29 - Top = 56 - 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 = OutBtnClick - TabOrder = 2 - end - object AllBtn: TBitBtn - Left = 176 - Height = 29 - Top = 104 - Width = 29 - Caption = 'ALL' - NumGlyphs = 0 - OnClick = AllBtnClick - TabOrder = 3 - end - object ListBox1: TListBox - Left = 216 - Height = 239 - Top = 18 - Width = 165 - ItemHeight = 0 - TabOrder = 4 - end - object ResetBtn: TButton - Left = 408 - Height = 30 - Top = 112 - Width = 81 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 5 - end - object CancelBtn: TButton - Left = 408 - Height = 30 - Top = 64 - Width = 83 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 6 - end - object ComputeBtn: TButton - Left = 408 - Height = 30 - Top = 160 - Width = 83 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 7 - end - object ReturnBtn: TButton - Left = 408 - Height = 30 - Top = 208 - Width = 80 - Caption = 'Return' - ModalResult = 1 - TabOrder = 8 - end - object HelpBtn: TButton - Tag = 115 - Left = 408 - Height = 32 - Top = 16 - Width = 80 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 9 - end -end diff --git a/applications/lazstats/source_orig/concordanceunit.lrs b/applications/lazstats/source_orig/concordanceunit.lrs deleted file mode 100644 index add907099..000000000 --- a/applications/lazstats/source_orig/concordanceunit.lrs +++ /dev/null @@ -1,130 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TConcordFrm','FORMDATA',[ - 'TPF0'#11'TConcordFrm'#10'ConcordFrm'#4'Left'#3#176#0#6'Height'#3#16#1#3'Top' - +#2'{'#5'Width'#3#4#2#7'Caption'#6'#Kendal''s Coefficient of Concordance'#12 - +'ClientHeight'#3#16#1#11'ClientWidth'#3#4#2#6'OnShow'#7#8'FormShow'#10'LCLVe' - +'rsion'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#6#6'Height'#2#14#3'Top' - +#2#0#5'Width'#2'Z'#7'Caption'#6#19'Avialable Variables'#11'ParentColor'#8#0#0 - +#6'TLabel'#6'Label2'#4'Left'#3#216#0#6'Height'#2#14#3'Top'#2#0#5'Width'#2'X' - +#7'Caption'#6#18'Selected Variables'#11'ParentColor'#8#0#0#8'TListBox'#7'Var' - +'List'#4'Left'#2#7#6'Height'#3#237#0#3'Top'#2#16#5'Width'#3#161#0#10'ItemHei' - +'ght'#2#0#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3 - +#176#0#6'Height'#2#29#3'Top'#2#24#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'InBtnClick'#8'TabOrder'#2#1#0 - +#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#176#0#6'Height'#2#29#3'Top'#2'8'#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 - +#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#176#0#6'Hei' - +'ght'#2#29#3'Top'#2'h'#5'Width'#2#29#7'Caption'#6#3'ALL'#9'NumGlyphs'#2#0#7 - +'OnClick'#7#11'AllBtnClick'#8'TabOrder'#2#3#0#0#8'TListBox'#8'ListBox1'#4'Le' - +'ft'#3#216#0#6'Height'#3#239#0#3'Top'#2#18#5'Width'#3#165#0#10'ItemHeight'#2 - +#0#8'TabOrder'#2#4#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#152#1#6'Height'#2#30 - +#3'Top'#2'p'#5'Width'#2'Q'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnCli' - +'ck'#8'TabOrder'#2#5#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#152#1#6'Height'#2 - +#30#3'Top'#2'@'#5'Width'#2'S'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'T' - +'abOrder'#2#6#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#152#1#6'Height'#2#30#3 - +'Top'#3#160#0#5'Width'#2'S'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeB' - +'tnClick'#8'TabOrder'#2#7#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#152#1#6'Heig' - +'ht'#2#30#3'Top'#3#208#0#5'Width'#2'P'#7'Caption'#6#6'Return'#11'ModalResult' - +#2#1#8'TabOrder'#2#8#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2's'#4'Left'#3#152#1#6 - +'Height'#2' '#3'Top'#2#16#5'Width'#2'P'#7'Caption'#6#4'Help'#7'OnClick'#7#12 - +'HelpBtnClick'#8'TabOrder'#2#9#0#0#0 -]); diff --git a/applications/lazstats/source_orig/concordanceunit.pas b/applications/lazstats/source_orig/concordanceunit.pas deleted file mode 100644 index 0c59111d2..000000000 --- a/applications/lazstats/source_orig/concordanceunit.pas +++ /dev/null @@ -1,351 +0,0 @@ -unit ConcordanceUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, Globals, OutPutUnit, DataProcs, Math, - FunctionsLib, contexthelpunit; - -type - - { TConcordFrm } - - TConcordFrm = class(TForm) - HelpBtn: TButton; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - InBtn: TBitBtn; - OutBtn: TBitBtn; - AllBtn: TBitBtn; - Label1: TLabel; - Label2: TLabel; - ListBox1: 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 ResetBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - ConcordFrm: TConcordFrm; - -implementation - -{ TConcordFrm } - -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.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -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; - -procedure TConcordFrm.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 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; - -initialization - {$I concordanceunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/contexthelpunit.lfm b/applications/lazstats/source_orig/contexthelpunit.lfm deleted file mode 100644 index 0b34b9307..000000000 --- a/applications/lazstats/source_orig/contexthelpunit.lfm +++ /dev/null @@ -1,43 +0,0 @@ -object ContextHelpForm: TContextHelpForm - Left = 240 - Height = 438 - Top = 134 - Width = 578 - Caption = 'Contextual Help' - ClientHeight = 438 - ClientWidth = 578 - Position = poScreenCenter - LCLVersion = '0.9.30' - object Panel1: TPanel - Left = 0 - Height = 50 - Top = 388 - Width = 578 - Align = alBottom - ClientHeight = 50 - ClientWidth = 578 - TabOrder = 0 - object Button1: TButton - Left = 248 - Height = 25 - Top = 12 - Width = 75 - Caption = 'OK' - ModalResult = 1 - OnClick = Button1Click - TabOrder = 0 - end - end - object Memo1: TMemo - Left = 0 - Height = 388 - Top = 0 - Width = 578 - Align = alClient - Lines.Strings = ( - 'Memo1' - ) - ScrollBars = ssVertical - TabOrder = 1 - end -end diff --git a/applications/lazstats/source_orig/contexthelpunit.lrs b/applications/lazstats/source_orig/contexthelpunit.lrs deleted file mode 100644 index 693bb02df..000000000 --- a/applications/lazstats/source_orig/contexthelpunit.lrs +++ /dev/null @@ -1,15 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TContextHelpForm','FORMDATA',[ - 'TPF0'#16'TContextHelpForm'#15'ContextHelpForm'#4'Left'#3#240#0#6'Height'#3 - +#182#1#3'Top'#3#134#0#5'Width'#3'B'#2#7'Caption'#6#15'Contextual Help'#12'Cl' - +'ientHeight'#3#182#1#11'ClientWidth'#3'B'#2#8'Position'#7#14'poScreenCenter' - +#10'LCLVersion'#6#6'0.9.30'#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6'Height'#2'2' - +#3'Top'#3#132#1#5'Width'#3'B'#2#5'Align'#7#8'alBottom'#12'ClientHeight'#2'2' - +#11'ClientWidth'#3'B'#2#8'TabOrder'#2#0#0#7'TButton'#7'Button1'#4'Left'#3#248 - +#0#6'Height'#2#25#3'Top'#2#12#5'Width'#2'K'#7'Caption'#6#2'OK'#11'ModalResul' - +'t'#2#1#7'OnClick'#7#12'Button1Click'#8'TabOrder'#2#0#0#0#0#5'TMemo'#5'Memo1' - +#4'Left'#2#0#6'Height'#3#132#1#3'Top'#2#0#5'Width'#3'B'#2#5'Align'#7#8'alCli' - +'ent'#13'Lines.Strings'#1#6#5'Memo1'#0#10'ScrollBars'#7#10'ssVertical'#8'Tab' - +'Order'#2#1#0#0#0 -]); diff --git a/applications/lazstats/source_orig/contexthelpunit.pas b/applications/lazstats/source_orig/contexthelpunit.pas deleted file mode 100644 index d44eebdc3..000000000 --- a/applications/lazstats/source_orig/contexthelpunit.pas +++ /dev/null @@ -1,65 +0,0 @@ -unit contexthelpunit; -{$mode objfpc} -{$H+} - -interface - -uses - IniFiles, Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, - Dialogs, ExtCtrls, StdCtrls; - -type - - { TContextHelpForm } - - TContextHelpForm = class(TForm) - Button1: TButton; - Memo1: TMemo; - Panel1: TPanel; - procedure Button1Click(Sender: TObject); - private - { private declarations } - public - { public declarations } - procedure HelpMessage(lTag: integer); - end; - -var - ContextHelpForm: TContextHelpForm; - -implementation - -function ReadIniFileTag(var lTag: Integer): string; -//Read string with index lTag -var - lIniFile: TIniFile; - lFilename,lLang: string; -begin - lFilename := changefileext(paramstr(0),'.ini'); - if (not Fileexists(lFilename)) then begin - result := 'No contextual help: unable to find '+lFilename; - exit; - end; - result := 'No contextual help found for '+inttostr(lTag); - lIniFile := TIniFile.Create(lFilename); - lLang := lIniFile.ReadString('LANGUAGE', 'DEFAULT', ''); - result := lIniFile.ReadString(lLang, inttostr(lTag), result); -end; - -procedure TContextHelpForm.Button1Click(Sender: TObject); -begin - Close; -end; - -procedure TContextHelpForm.HelpMessage(lTag: integer); -begin - Memo1.Lines.Clear; - Memo1.lines.add(ReadIniFileTag(lTag)); - ContextHelpForm.show; -end; - -initialization - {$I contexthelpunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/correspondenceunit.lfm b/applications/lazstats/source_orig/correspondenceunit.lfm deleted file mode 100644 index b4a0ba807..000000000 --- a/applications/lazstats/source_orig/correspondenceunit.lfm +++ /dev/null @@ -1,429 +0,0 @@ -object CorrespondenceForm: TCorrespondenceForm - Left = 234 - Height = 519 - Top = 133 - Width = 629 - Caption = 'Correspondence Analysis' - ClientHeight = 519 - ClientWidth = 629 - OnShow = ResetBtnClick - LCLVersion = '0.9.30' - object Memo1: TMemo - Left = 7 - Height = 114 - Top = 6 - Width = 609 - Lines.Strings = ( - 'Directions: Your data grid should consist of a table of N rows and M+1 variables with N >= to M. Each row ' - 'should have a label variable and M columns of data (integer frequencies. An example is in a file labeled ' - '"Smokers.LAZ".' - '1. Enter the variable for the row labels defined as a string-type of variable.' - '2. Enter the variables representing the M columns of data as integer-type of variables.' - '3. Click on the options desired.' - '4. Click the Compute button.' - ) - TabOrder = 0 - end - object Label1: TLabel - Left = 8 - Height = 16 - Top = 129 - Width = 51 - Caption = 'Variables:' - ParentColor = False - end - object VarList: TListBox - Left = 9 - Height = 294 - Top = 152 - Width = 168 - ItemHeight = 0 - MultiSelect = True - TabOrder = 1 - end - object RowIn: TBitBtn - Left = 192 - Height = 39 - Top = 152 - Width = 38 - 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 = 192 - Height = 39 - Top = 200 - Width = 38 - 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 = 192 - Height = 39 - Top = 256 - Width = 38 - 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 = 192 - Height = 39 - Top = 304 - Width = 38 - 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 Label2: TLabel - Left = 241 - Height = 16 - Top = 152 - Width = 100 - Caption = 'Row Label Variable' - ParentColor = False - end - object Label3: TLabel - Left = 244 - Height = 16 - Top = 256 - Width = 97 - Caption = 'Column Variables:' - ParentColor = False - end - object RowEdit: TEdit - Left = 241 - Height = 23 - Top = 173 - Width = 138 - TabOrder = 6 - Text = 'RowEdit' - end - object ColList: TListBox - Left = 241 - Height = 173 - Top = 272 - Width = 145 - ItemHeight = 0 - TabOrder = 7 - end - object GroupBox1: TGroupBox - Left = 401 - Height = 364 - Top = 140 - Width = 215 - Caption = 'Options' - ClientHeight = 346 - ClientWidth = 211 - TabOrder = 8 - object ObsChk: TCheckBox - Left = 5 - Height = 19 - Top = 4 - Width = 168 - Caption = 'Show Observed Frequencies' - TabOrder = 0 - end - end - object PropsChk: TCheckBox - Left = 408 - Height = 19 - Top = 184 - Width = 187 - Caption = 'Show Row and Col. Proportions' - TabOrder = 9 - end - object ExpChk: TCheckBox - Left = 408 - Height = 19 - Top = 208 - Width = 165 - Caption = 'Show Expected Frequencies' - TabOrder = 10 - end - object ChiChk: TCheckBox - Left = 408 - Height = 19 - Top = 232 - Width = 169 - Caption = 'Show Cell Chi-square values' - TabOrder = 11 - end - object YatesChk: TCheckBox - Left = 408 - Height = 19 - Top = 256 - Width = 199 - Caption = 'Use Yate''s Correction for 2x2 table' - TabOrder = 12 - end - object ShowQChk: TCheckBox - Left = 408 - Height = 19 - Top = 280 - Width = 97 - Caption = 'Show Q Matrix' - TabOrder = 13 - end - object QCheckChk: TCheckBox - Left = 408 - Height = 19 - Top = 304 - Width = 126 - Caption = 'Check that Q = UDV' - TabOrder = 14 - end - object EigenChk: TCheckBox - Left = 408 - Height = 19 - Top = 328 - Width = 162 - Caption = 'Values and Vectors of UDV''' - TabOrder = 15 - end - object ShowABChk: TCheckBox - Left = 408 - Height = 19 - Top = 352 - Width = 143 - Caption = 'A, B of Generalized SVD' - TabOrder = 16 - end - object CheckPChk: TCheckBox - Left = 408 - Height = 19 - Top = 376 - Width = 183 - Caption = 'Check P is reproduced by ADB''' - TabOrder = 17 - end - object RowCorres: TCheckBox - Left = 408 - Height = 19 - Top = 400 - Width = 133 - Caption = 'Row Correspondence' - TabOrder = 18 - end - object ColCorrChk: TCheckBox - Left = 408 - Height = 19 - Top = 424 - Width = 153 - Caption = 'Column Correspondence' - TabOrder = 19 - end - object BothCorrChk: TCheckBox - Left = 408 - Height = 19 - Top = 448 - Width = 202 - Caption = 'Row and Column Correspondence' - Checked = True - State = cbChecked - TabOrder = 20 - end - object PlotChk: TCheckBox - Left = 408 - Height = 19 - Top = 472 - Width = 87 - Caption = 'Plot Weights' - Checked = True - State = cbChecked - TabOrder = 21 - end - object ResetBtn: TButton - Left = 80 - Height = 27 - Top = 459 - Width = 69 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 22 - end - object CancelBtn: TButton - Left = 160 - Height = 27 - Top = 459 - Width = 69 - Cancel = True - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 23 - end - object ComputeBtn: TButton - Left = 240 - Height = 27 - Top = 459 - Width = 69 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 24 - end - object ReturnBtn: TButton - Left = 317 - Height = 27 - Top = 459 - Width = 69 - Caption = 'Return' - ModalResult = 1 - TabOrder = 25 - end - object HelpBtn: TButton - Tag = 160 - Left = 9 - Height = 28 - Top = 459 - Width = 64 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 26 - end -end diff --git a/applications/lazstats/source_orig/correspondenceunit.lrs b/applications/lazstats/source_orig/correspondenceunit.lrs deleted file mode 100644 index 83be19433..000000000 --- a/applications/lazstats/source_orig/correspondenceunit.lrs +++ /dev/null @@ -1,274 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TCorrespondenceForm','FORMDATA',[ - 'TPF0'#19'TCorrespondenceForm'#18'CorrespondenceForm'#4'Left'#3#234#0#6'Heigh' - +'t'#3#7#2#3'Top'#3#133#0#5'Width'#3'u'#2#7'Caption'#6#23'Correspondence Anal' - +'ysis'#12'ClientHeight'#3#7#2#11'ClientWidth'#3'u'#2#6'OnShow'#7#13'ResetBtn' - +'Click'#10'LCLVersion'#6#6'0.9.30'#0#5'TMemo'#5'Memo1'#4'Left'#2#7#6'Height' - +#2'r'#3'Top'#2#6#5'Width'#3'a'#2#13'Lines.Strings'#1#6'lDirections: Your da' - +'ta grid should consist of a table of N rows and M+1 variables with N >= to ' - +'M. Each row '#6'jshould have a label variable and M columns of data (integ' - +'er frequencies. An example is in a file labeled '#6#14'"Smokers.LAZ".'#6'P' - +'1. Enter the variable for the row labels defined as a string-type of vari' - +'able.'#6'Y2. Enter the variables representing the M columns of data as in' - +'teger-type of variables.'#6'"3. Click on the options desired.'#6#30'4. ' - +'Click the Compute button.'#0#8'TabOrder'#2#0#0#0#6'TLabel'#6'Label1'#4'Left' - +#2#8#6'Height'#2#16#3'Top'#3#129#0#5'Width'#2'3'#7'Caption'#6#10'Variables:' - +#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#9#6'Height'#3'&'#1#3 - +'Top'#3#152#0#5'Width'#3#168#0#10'ItemHeight'#2#0#11'MultiSelect'#9#8'TabOrd' - +'er'#2#1#0#0#7'TBitBtn'#5'RowIn'#4'Left'#3#192#0#6'Height'#2''''#3'Top'#3#152 - +#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#10'RowInClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#6'RowOut'#4'Left'#3 - +#192#0#6'Height'#2''''#3'Top'#3#200#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'RowOutClick'#8'TabOrde' - +'r'#2#3#0#0#7'TBitBtn'#5'ColIn'#4'Left'#3#192#0#6'Height'#2''''#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#255#255#255#0#255#255 - +#255#0#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'ColInClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#6'ColOut'#4'Left'#3#192 - +#0#6'Height'#2''''#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#11'ColOutClick'#8'TabOrde' - +'r'#2#5#0#0#6'TLabel'#6'Label2'#4'Left'#3#241#0#6'Height'#2#16#3'Top'#3#152#0 - +#5'Width'#2'd'#7'Caption'#6#18'Row Label Variable'#11'ParentColor'#8#0#0#6'T' - +'Label'#6'Label3'#4'Left'#3#244#0#6'Height'#2#16#3'Top'#3#0#1#5'Width'#2'a'#7 - +'Caption'#6#17'Column Variables:'#11'ParentColor'#8#0#0#5'TEdit'#7'RowEdit'#4 - +'Left'#3#241#0#6'Height'#2#23#3'Top'#3#173#0#5'Width'#3#138#0#8'TabOrder'#2#6 - +#4'Text'#6#7'RowEdit'#0#0#8'TListBox'#7'ColList'#4'Left'#3#241#0#6'Height'#3 - +#173#0#3'Top'#3#16#1#5'Width'#3#145#0#10'ItemHeight'#2#0#8'TabOrder'#2#7#0#0 - +#9'TGroupBox'#9'GroupBox1'#4'Left'#3#145#1#6'Height'#3'l'#1#3'Top'#3#140#0#5 - +'Width'#3#215#0#7'Caption'#6#7'Options'#12'ClientHeight'#3'Z'#1#11'ClientWid' - +'th'#3#211#0#8'TabOrder'#2#8#0#9'TCheckBox'#6'ObsChk'#4'Left'#2#5#6'Height'#2 - +#19#3'Top'#2#4#5'Width'#3#168#0#7'Caption'#6#25'Show Observed Frequencies'#8 - +'TabOrder'#2#0#0#0#0#9'TCheckBox'#8'PropsChk'#4'Left'#3#152#1#6'Height'#2#19 - +#3'Top'#3#184#0#5'Width'#3#187#0#7'Caption'#6#29'Show Row and Col. Proportio' - +'ns'#8'TabOrder'#2#9#0#0#9'TCheckBox'#6'ExpChk'#4'Left'#3#152#1#6'Height'#2 - +#19#3'Top'#3#208#0#5'Width'#3#165#0#7'Caption'#6#25'Show Expected Frequencie' - +'s'#8'TabOrder'#2#10#0#0#9'TCheckBox'#6'ChiChk'#4'Left'#3#152#1#6'Height'#2 - +#19#3'Top'#3#232#0#5'Width'#3#169#0#7'Caption'#6#27'Show Cell Chi-square val' - +'ues'#8'TabOrder'#2#11#0#0#9'TCheckBox'#8'YatesChk'#4'Left'#3#152#1#6'Height' - +#2#19#3'Top'#3#0#1#5'Width'#3#199#0#7'Caption'#6'#Use Yate''s Correction for' - +' 2x2 table'#8'TabOrder'#2#12#0#0#9'TCheckBox'#8'ShowQChk'#4'Left'#3#152#1#6 - +'Height'#2#19#3'Top'#3#24#1#5'Width'#2'a'#7'Caption'#6#13'Show Q Matrix'#8'T' - +'abOrder'#2#13#0#0#9'TCheckBox'#9'QCheckChk'#4'Left'#3#152#1#6'Height'#2#19#3 - +'Top'#3'0'#1#5'Width'#2'~'#7'Caption'#6#18'Check that Q = UDV'#8'TabOrder'#2 - +#14#0#0#9'TCheckBox'#8'EigenChk'#4'Left'#3#152#1#6'Height'#2#19#3'Top'#3'H'#1 - +#5'Width'#3#162#0#7'Caption'#6#26'Values and Vectors of UDV'''#8'TabOrder'#2 - +#15#0#0#9'TCheckBox'#9'ShowABChk'#4'Left'#3#152#1#6'Height'#2#19#3'Top'#3'`' - +#1#5'Width'#3#143#0#7'Caption'#6#23'A, B of Generalized SVD'#8'TabOrder'#2#16 - +#0#0#9'TCheckBox'#9'CheckPChk'#4'Left'#3#152#1#6'Height'#2#19#3'Top'#3'x'#1#5 - +'Width'#3#183#0#7'Caption'#6#29'Check P is reproduced by ADB'''#8'TabOrder'#2 - +#17#0#0#9'TCheckBox'#9'RowCorres'#4'Left'#3#152#1#6'Height'#2#19#3'Top'#3#144 - +#1#5'Width'#3#133#0#7'Caption'#6#18'Row Correspondence'#8'TabOrder'#2#18#0#0 - +#9'TCheckBox'#10'ColCorrChk'#4'Left'#3#152#1#6'Height'#2#19#3'Top'#3#168#1#5 - +'Width'#3#153#0#7'Caption'#6#21'Column Correspondence'#8'TabOrder'#2#19#0#0#9 - +'TCheckBox'#11'BothCorrChk'#4'Left'#3#152#1#6'Height'#2#19#3'Top'#3#192#1#5 - +'Width'#3#202#0#7'Caption'#6#29'Row and Column Correspondence'#7'Checked'#9#5 - ,'State'#7#9'cbChecked'#8'TabOrder'#2#20#0#0#9'TCheckBox'#7'PlotChk'#4'Left'#3 - +#152#1#6'Height'#2#19#3'Top'#3#216#1#5'Width'#2'W'#7'Caption'#6#12'Plot Weig' - +'hts'#7'Checked'#9#5'State'#7#9'cbChecked'#8'TabOrder'#2#21#0#0#7'TButton'#8 - +'ResetBtn'#4'Left'#2'P'#6'Height'#2#27#3'Top'#3#203#1#5'Width'#2'E'#7'Captio' - +'n'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#22#0#0#7'TButton' - +#9'CancelBtn'#4'Left'#3#160#0#6'Height'#2#27#3'Top'#3#203#1#5'Width'#2'E'#6 - +'Cancel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#23#0#0#7 - +'TButton'#10'ComputeBtn'#4'Left'#3#240#0#6'Height'#2#27#3'Top'#3#203#1#5'Wid' - +'th'#2'E'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrde' - +'r'#2#24#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3'='#1#6'Height'#2#27#3'Top'#3 - +#203#1#5'Width'#2'E'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2 - +#25#0#0#7'TButton'#7'HelpBtn'#3'Tag'#3#160#0#4'Left'#2#9#6'Height'#2#28#3'To' - +'p'#3#203#1#5'Width'#2'@'#7'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick' - +#8'TabOrder'#2#26#0#0#0 -]); diff --git a/applications/lazstats/source_orig/correspondenceunit.pas b/applications/lazstats/source_orig/correspondenceunit.pas deleted file mode 100644 index 4a9e5d6ff..000000000 --- a/applications/lazstats/source_orig/correspondenceunit.pas +++ /dev/null @@ -1,1027 +0,0 @@ -unit CorrespondenceUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, Globals, functionsLib, OutPutUnit, DataProcs, - DictionaryUnit, contexthelpunit, MatrixLib, Math, BlankFrmUnit; - -type - - { TCorrespondenceForm } - - TCorrespondenceForm = class(TForm) - HelpBtn: TButton; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - ObsChk: TCheckBox; - CheckPChk: TCheckBox; - RowCorres: TCheckBox; - ColCorrChk: TCheckBox; - BothCorrChk: TCheckBox; - PlotChk: TCheckBox; - PropsChk: TCheckBox; - ExpChk: TCheckBox; - ChiChk: TCheckBox; - YatesChk: TCheckBox; - ShowQChk: TCheckBox; - QCheckChk: TCheckBox; - EigenChk: TCheckBox; - ShowABChk: TCheckBox; - ColList: TListBox; - GroupBox1: TGroupBox; - RowEdit: TEdit; - RowIn: TBitBtn; - ColIn: TBitBtn; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - RowOut: TBitBtn; - ColOut: TBitBtn; - VarList: TListBox; - Memo1: TMemo; - procedure ColInClick(Sender: TObject); - procedure ColOutClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure plotxy(Xpoints, Ypoints : DblDyneVec; Xmax, Xmin, Ymax, - Ymin : double; N : integer; - PtLabels : StrDyneVec; titlestr, - Xlabel, Ylabel : string); - procedure RowInClick(Sender: TObject); - procedure RowOutClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - CorrespondenceForm: TCorrespondenceForm; - -implementation - -{ TCorrespondenceForm } - -procedure TCorrespondenceForm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - ColList.Clear; - RowEdit.Text := ''; - RowIn.Visible := true; - RowOut.Visible := false; - ColIn.Visible := true; - ColOut.Visible := false; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TCorrespondenceForm.ColInClick(Sender: TObject); -VAR i, index : integer; -begin - index := VarList.Items.Count; - i := 0; - while (i < index) do - begin - if (VarList.Selected[i]) then - begin - ColList.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - ColOut.Visible := true; -end; - -procedure TCorrespondenceForm.ColOutClick(Sender: TObject); -VAR index : integer; -begin - index := ColList.ItemIndex; - if (index < 0) then - begin - ColOut.Visible := false; - exit; - end; - VarList.Items.Add(ColList.Items.Strings[index]); - ColList.Items.Delete(index); -end; - -procedure TCorrespondenceForm.ComputeBtnClick(Sender: TObject); -VAR - i, j, RowNo, ColNo, DepNo : integer; - Row, Col, NoSelected, Ncases, Nrows, Ncols, FObs, df : integer; - RowLabels, ColLabels : StrDyneVec; - ColNoSelected : IntDyneVec; - cellstring, outline, title, filename, strvalue, Instr : string; - prompt, xtitle, ytitle : string; - Freq : IntDyneMat; - Prop, Expected, CellChi : DblDyneMat; - PObs, ChiSquare, ProbChi, liklihood, probliklihood : double; - SumX, SumY, VarX, VarY, MantelHaenszel, MHprob : double; - yates : boolean; - Adjchisqr, Adjprobchi, G, dblvalue, phi, pearsonr : double; - result, intvalue, IX, IY : integer; - CoefCont, CramerV : double; - - Trans : DblDyneMat; // transpose work matrix - P : DblDyneMat; // relative frequencies (n by q correspondence matrix) - r : DblDyneVec; // row vector of proportions - c : DblDyneVec; // column vector of proportions - Dr : DblDyneMat; // Diagonal matrix of row proportions - Dc : DblDyneMat; // Diagonal matric of column proportions - A : DblDyneMat; // n by q matrix whose columns are theleft generalized SVD vectors - Du : DblDyneMat; // q by q diagonal matrix of singular values - B : DblDyneMat; // m by q matrix whose columns are the right generalized SVD vectors - Q : DblDyneMat; // matrix to be decomposed by SVD into U x Da x V' - U : DblDyneMat; // left column vectors of SVD of Q - V : DblDyneMat; // right vectors of SVD of Q - W : DblDyneMat; // work matrix for transposing a matrix - F : DblDyneMat; // Row Coordinates - Gc : DblDyneMat; // Column Coordinates - n, q1, m : integer; // number of rows and columns of the P matrix - largest :integer; - errorcode : boolean; - X, Y : DblDyneVec; - Xmax, Xmin, Ymax, Ymin, Inertia : double; - labels : StrDyneVec; - -begin - SetLength(ColNoSelected,NoVariables+1); - yates := false; - RowNo := 0; - for i := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[i,0]; - if (cellstring = RowEdit.Text) then RowNo := i; - end; - Nrows := NoCases; - Ncols := ColList.Items.Count; - SetLength(RowLabels,Nrows+1); - SetLength(ColLabels,Ncols+1); - - if (RowNo = 0) then - begin - ShowMessage('ERROR! A variable for the row labels was not entered.'); - ColNoSelected := nil; - RowLabels := nil; - ColLabels := nil; - exit; - end; - ColNoSelected[0] := RowNo; - - // Get Column labels - for i := 0 to Ncols-1 do - begin - ColLabels[i] := ColList.Items.Strings[i]; - for j := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[j,0]; - if (cellstring = ColLabels[i])then ColNoSelected[i+1] := j; - end; - end; - - // Get row labels - for i := 1 to NoCases do - begin - RowLabels[i-1] := OS3MainFrm.DataGrid.Cells[RowNo,i]; - end; - - // allocate and initialize - SetLength(Freq,Nrows+1,Ncols+1); - SetLength(Prop,Nrows+1,Ncols+1); - SetLength(Expected,Nrows,Ncols); - SetLength(CellChi,Nrows,Ncols); - for i := 1 to Nrows + 1 do - for j := 1 to Ncols + 1 do Freq[i-1,j-1] := 0; - RowLabels[Nrows] := 'Total'; - ColLabels[Ncols] := 'Total'; - - // get cell data - Ncases := 0; - for i := 1 to NoCases do - begin - Row := i; - for j := 1 to Ncols do - begin - Col := ColNoSelected[j]; - Freq[i-1,j-1] := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[Col,Row]))); - Ncases := Ncases + Freq[i-1,j-1]; - end; - end; - Freq[Nrows,Ncols] := Ncases; - - // Now, calculate expected values - // Get row totals first - for i := 1 to Nrows do - begin - for j := 1 to Ncols do - begin - Freq[i-1,Ncols] := Freq[i-1,Ncols] + Freq[i-1,j-1]; - end; - end; - // Get col totals next - for j := 1 to Ncols do - begin - for i := 1 to Nrows do - begin - Freq[Nrows,j-1] := Freq[Nrows,j-1] + Freq[i-1,j-1]; - end; - end; - - // 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; - if ((Nrows > 1) and (Ncols > 1)) then - begin - 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; - end; - if (Nrows = 1) then // equal probability - begin - for j := 0 to Ncols - 1 do - begin - Expected[0,j] := Ncases / Ncols; - if (Expected[0,j] > 0) then - CellChi[0,j] := sqr(Freq[0,j] - Expected[0,j]) / Expected[0,j]; - ChiSquare := ChiSquare + CellChi[0,j]; - end; - df := Ncols - 1; - end; - - if (Ncols = 1) then // equal probability - begin - for i := 0 to Nrows - 1 do - begin - Expected[i,0] := Ncases / Nrows; - if (Expected[i,0] > 0) then - CellChi[i,0] := sqr(Freq[i,0] - Expected[i,0]) / Expected[i,0]; - ChiSquare := ChiSquare + CellChi[i,0]; - end; - df := Nrows - 1; - end; - - ProbChi := 1.0 - chisquaredprob(ChiSquare,df); // prob. larger chi - - // Print acknowledgements - OutPutFrm.RichEdit.Lines.Add('CORRESPONDENCE ANALYSIS'); - OutPutFrm.RichEdit.Lines.Add('Based on formulations of Bee-Leng Lee'); - OutPutFrm.RichEdit.Lines.Add('Chapter 11 Correspondence Analysis for ViSta'); - OutPutFrm.RichEdit.Lines.Add('Results are based on the Generalized Singular Value Decomposition'); - OutPutFrm.RichEdit.Lines.Add('of P := A x D x B where P is the relative frequencies observed,'); - OutPutFrm.RichEdit.Lines.Add('A are the left generalized singular vectors,'); - OutPutFrm.RichEdit.Lines.Add('D is a diagonal matrix of generalized singular values, and'); - OutPutFrm.RichEdit.Lines.Add('B is the transpose of the right generalized singular vectors.'); - OutPutFrm.RichEdit.Lines.Add('NOTE: The first value and corresponding vectors are 1 and are'); - OutPutFrm.RichEdit.Lines.Add('to be ignored.'); - OutPutFrm.RichEdit.Lines.Add('An intermediate step is the regular SVD of the matrix Q := UDV'); - OutPutFrm.RichEdit.Lines.Add('where Q := Dr^-1/2 x P x Dc^-1/2 where Dr is a diagonal matrix'); - OutPutFrm.RichEdit.Lines.Add('of total row relative frequencies and Dc is a diagonal matrix'); - OutPutFrm.RichEdit.Lines.Add('of total column relative frequencies.'); - OutPutFrm.ShowModal; - - //Print results to output form - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Chi-square Analysis Results'); - outline := format('No. of Cases := %d',[Ncases]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - - // print tables requested by use - if (ObsChk.Checked) then - begin - IntArrayPrint(Freq, Nrows+1, Ncols+1,'Frequencies', - RowLabels, ColLabels,'OBSERVED FREQUENCIES'); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - end; - - if (ExpChk.Checked)then - begin - outline := 'EXPECTED FREQUENCIES'; - MAT_PRINT(Expected, Nrows, Ncols, outline, RowLabels, ColLabels, NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - outline := '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; - if (PropsChk.Checked) then - begin - MAT_PRINT(Prop, Nrows+1, Ncols+1, outline, RowLabels, ColLabels, NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - outline := '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; - if (PropsChk.Checked) then - begin - MAT_PRINT(Prop, Nrows+1, Ncols+1, outline, RowLabels, ColLabels, NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - outline := '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, outline, RowLabels, ColLabels,NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - if (ChiChk.Checked) then - begin - outline := 'CHI-SQUARED VALUE FOR CELLS'; - MAT_PRINT(CellChi, Nrows, Ncols, outline, RowLabels, ColLabels, NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - OutPutFrm.RichEdit.Lines.Add(''); - 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(''); - - 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); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - n := Nrows; - q1 := Ncols; - if (n > q1) then largest := n - else largest := q1; - SetLength(P,n,q1); - SetLength(r,largest+1); - SetLength(c,q1); - SetLength(Dr,n,n); - SetLength(Dc,q1,q1); - SetLength(A,n,q1); - SetLength(Du,largest,largest); - SetLength(B,n,q1); - SetLength(Q,n,q1); - SetLength(U,n,n); - SetLength(V,q1,q1); - SetLength(W,largest+1,largest+1); - SetLength(Trans,q1,q1); - SetLength(F,n,q1); - SetLength(Gc,q1,q1); - - // get proportion matices and vectors - for i := 0 to n - 1 do - for j := 0 to q1 - 1do P[i,j] := Prop[i,j]; - for i := 0 to n - 1 do r[i] := Prop[i,q1]; - for j := 0 to q1 - 1 do c[j] := Prop[n,j]; - - // get Dr^-1/2 and Dc^-1/2 - for i := 0 to n - 1 do - begin - for j := 0 to n - 1 do - begin - if (i <> j) then Dr[i,j] := 0.0 - else Dr[i,j] := 1.0 / sqrt(r[i]); - end; - end; - for i := 0 to q1 - 1 do - begin - for j := 0 to q1 -1 do - begin - if (i <> j) then Dc[i,j] := 0.0 - else Dc[i,j] := 1.0 / sqrt(c[j]); - end; - end; - - // get q1 := Dr^-1/2 times P times Dc^-1/2 - MATAxB(W,Dr,P,n,n,n,q1,errorcode); - MATAxB(q,W,Dc,n,q1,q1,q1,errorcode); - if (ShowqChk.Checked) then - begin - outline := 'Q Matrix'; - MAT_PRINT(q,n,q1,outline,RowLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; -(* - Instr := InputBox('Save q1 to Main Grid?','Y','N'); - if (Instr = 'Y') then - begin - OS3MainFrm.CloseFileBtnClick(self); - OS3MainFrm.DataGrid.RowCount := n + 1; - OS3MainFrm.DataGrid.ColCount := q1 + 1; - for i := 0 to n - 1 do - for j := 0 to q1 - 1 do - OS3MainFrm.DataGrid.Cells[j+1,i+1] := q1[i,j]; - for i := 1 to n do - OS3MainFrm.DataGrid.Cells[0,i] := 'CASE ' + IntToStr(i); - for j := 1 to q1 do - OS3MainFrm.DataGrid.Cells[j,0] := 'VAR' + IntToStr(j); - end; - end; -*) - //Obtain ordinary SVD analysis of q1 - matinv(q,U,Du,V,q1); - - if (EigenChk.Checked) then - begin - outline := 'U Matrix'; - MAT_PRINT(U,n,q1,outline,RowLabels,ColLabels,NoCases); -// FrmOutPut.ShowModal; - outline := 'Singular Values'; - MAT_PRINT(Du,q1,q1,outline,ColLabels,ColLabels,NoCases); -// FrmOutPut.ShowModal; - outline := 'V Matrix'; - MAT_PRINT(V,q1,q1,outline,ColLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - if (qCheckChk.Checked) then - begin - // Check to see if q1 is reproduced by U x D x V' - MATAxB(W,U,Du,n,q1,q1,q1,errorcode); - for i := 0 to q1 - 1 do - for j := 0 to q1 - 1 do Trans[i,j] := V[j,i]; - MATAxB(q,W,Trans,n,q1,q1,q1,errorcode); - outline := 'Reproduced Q = UDV'; - MAT_PRINT(q,n,q1,outline,RowLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - // Get A := Dr^1/2 times U - for i := 0 to n - 1 do - begin - for j := 0 to n - 1 do - begin - if (i <> j) then Dr[i,j] := 0.0 - else Dr[i,j] := sqrt(r[i]); - end; - end; - MATAxB(A,Dr,U,n,n,n,q1,errorcode); - if (ShowABChk.Checked) then - begin - outline := 'A Matrix'; - MAT_PRINT(A,n,q1,outline,RowLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - // Get B := Dc^1/2 times V - for i := 0 to q1 - 1 do - begin - for j := 0 to q1-1 do - begin - if (i <> j) then Dc[i,j] := 0.0 - else Dc[i,j] := sqrt(c[j]); - end; - end; - MATAxB(B,Dc,V,q1,q1,q1,q1,errorcode); - if (ShowABChk.Checked) then - begin - outline := 'B Matrix'; - MAT_PRINT(B,q1,q1,outline,ColLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - if (CheckPChk.Checked) then - begin // see if P := A x Du x B' - for i := 0 to q1 - 1 do - for j := 0 to q1 - 1 do Trans[j,i] := B[i,j]; - MATAxB(W,A,Du,n,q1,q1,q1,errorcode); - MATAxB(P,W,Trans,n,q1,q1,q1,errorcode); - outline := 'P = '; - MAT_PRINT(P,n,q1,outline,RowLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - // show intertia and scree plot - Inertia := ChiSquare / Freq[Nrows,Ncols]; - outline := format('Inertia := %8.4f',[Inertia]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - if (PlotChk.Checked) then - begin - SetLength(X,n); - SetLength(Y,n); - SetLength(labels,q1); - Xmax := -10000.0; - Ymax := Xmax; - Xmin := 10000.0; - Ymin := Xmin; - X[0] := 1; - Y[0] := sqr(Du[1,1]); - for i := 1 to q1 - 1 do - begin - X[i] := i; - Y[i] := sqr(Du[i,i]); - outline := format('%4.3f%',[(Y[i] / Inertia)*100.0]); - labels[i] := outline; // 'Dim.' + IntToStr(i); - if (X[i] > Xmax) then Xmax := X[i]; - if (X[i] < Xmin) then Xmin := X[i]; - if (Y[i] > Ymax) then Ymax := Y[i]; - if (Y[i] < Ymin) then Ymin := Y[i]; - end; - title := 'Goodness of Fit Plot'; - plotxy(X,Y,Xmax,Xmin,Ymax,Ymin,q1,labels, title,'Dimension',' '); - BlankFrm.ShowModal; - labels := nil; - Y := nil; - X := nil; - end; - -// if (RowCorres.Checked)then -// begin - // Get Row coordinates F (for row profile analysis) - for i := 0 to n - 1 do - begin - for j := 0 to n - 1 do - begin - if (i <> j) then Dr[i,j] := 0.0 - else Dr[i,j] := 1.0 / r[i]; - end; - end; - MATAxB(W,Dr,A,n,n,n,q1,errorcode); -// ArrayPrint(W,n,q1,'Dr x A matrix',RowLabels,ColLabels,'Dr x A Matrix'); -// FrmOutPut.ShowModal; - MATAxB(F,W,Du,n,q1,q1,q1,errorcode); - if (RowCorres.Checked) then - begin - outline := 'Row Dimensions (Ignore Col. 1'; - MAT_PRINT(F,n,q1,outline,RowLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - // Get Column coordinates G (row profile analysis) - for i := 0 to q1 - 1 do - begin - for j := 0 to q1 - 1 do - begin - if (i <> j) then Dc[i,j] := 0.0 - else Dc[i,j] := 1.0 / c[j]; - end; - end; - MATAxB(Gc,Dc,B,q1,q1,q1,q1,errorcode); - if (RowCorres.Checked) then - begin - outline := 'Col. Dimensions (Ignore Col. 1'; - MAT_PRINT(Gc,q1,q1,outline,ColLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - if ((PlotChk.Checked) and (RowCorres.Checked))then - begin - prompt := InputBox('X Axis Dimension','1','1'); - IX := StrToInt(prompt); - prompt := InputBox('Y Axis Dimension','2','2'); - IY := StrToInt(prompt); - xtitle := 'Dimension ' + IntToStr(IX); - ytitle := 'Dimension ' + IntToStr(IY); - SetLength(X,n); - SetLength(Y,n); - Xmax := -10000.0; - Ymax := Xmax; - Xmin := 10000.0; - Ymin := Xmin; - for i := 0 to n - 1 do - begin - X[i] := F[i,IX]; - if (X[i] > Xmax) then Xmax := X[i]; - if (X[i] < Xmin) then Xmin := X[i]; - Y[i] := F[i,IY]; - if (Y[i] > Ymax) then Ymax := Y[i]; - if (Y[i] < Ymin) then Ymin := Y[i]; - end; - title := 'Row Dimensions'; - plotxy(X,Y,Xmax,Xmin,Ymax,Ymin,n,RowLabels, title,xtitle,ytitle); - BlankFrm.ShowModal; - Y := nil; - X := nil; - SetLength(X,q1); - SetLength(Y,q1); - Xmax := -10000.0; - Ymax := Xmax; - Xmin := 10000.0; - Ymin := Xmin; - for i := 0 to q1 - 1 do - begin - X[i] := Gc[i,IX]; - if (X[i] > Xmax) then Xmax := X[i]; - if (X[i] < Xmin) then Xmin := X[i]; - Y[i] := Gc[i,IY]; - if (Y[i] > Ymax) then Ymax := Y[i]; - if (Y[i] < Ymin) then Ymin := Y[i]; - end; - title := 'Column Dimensions'; - plotxy(X,Y,Xmax,Xmin,Ymax,Ymin,q1,ColLabels, title,xtitle,ytitle); - BlankFrm.ShowModal; - Y := nil; - X := nil; - end; -// end; - - // do column correspondence analysis if checked -// if (ColCorrChk.Checked) then -// begin - for i := 0 to q1 - 1 do - for j := 0 to q1 - 1 do W[i,j] := Gc[i,j]; // use last Gc - MATAxB(Gc,W,Du,q1,q1,q1,q1,errorcode); // multiply times Du - if (ColCorrChk.Checked) then - begin - outline := 'Column Dimensions (Ignore Col. 1'; - MAT_PRINT(Gc,q1,q1,outline,ColLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - end; - MATAxB(F,Dr,A,n,n,n,q1,errorcode); // Get new F - if (ColCorrChk.Checked) then - begin - outline := 'Row Dimensions (Ignore Col. 1)'; - MAT_PRINT(F,n,q1,outline,RowLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - if ((PlotChk.Checked) and (ColCorrChk.Checked)) then - begin - prompt := InputBox('X Axis Dimension','1','1'); - IX := StrToInt(prompt); - prompt := InputBox('Y Axis Dimension','2','2'); - IY := StrToInt(prompt); - SetLength(X,q1); - SetLength(Y,q1); - xtitle := 'Dimension ' + IntToStr(IX); - ytitle := 'Dimension ' + IntToStr(IY); - Xmax := -10000.0; - Ymax := Xmax; - Xmin := 10000.0; - Ymin := Xmin; - for i := 0 to q1 - 1 do - begin - X[i] := Gc[i,IX]; - if (X[i] > Xmax) then Xmax := X[i]; - if (X[i] < Xmin) then Xmin := X[i]; - Y[i] := Gc[i,IY]; - if (Y[i] > Ymax) then Ymax := Y[i]; - if (Y[i] < Ymin) then Ymin := Y[i]; - end; - title := 'Column Dimensions'; - plotxy(X,Y,Xmax,Xmin,Ymax,Ymin,q1,ColLabels, title,xtitle,ytitle); - BlankFrm.ShowModal; - Y := nil; - X := nil; - SetLength(X,n); - SetLength(Y,n); - Xmax := -10000.0; - Ymax := Xmax; - Xmin := 10000.0; - Ymin := Xmin; - for i := 0 to n - 1 do - begin - X[i] := F[i,IX]; - if (X[i] > Xmax) then Xmax := X[i]; - if (X[i] < Xmin) then Xmin := X[i]; - Y[i] := F[i,IY]; - if (Y[i] > Ymax) then Ymax := Y[i]; - if (Y[i] < Ymin) then Ymin := Y[i]; - end; - title := 'Row Dimensions'; - plotxy(X,Y,Xmax,Xmin,Ymax,Ymin,n,RowLabels, title,xtitle,ytitle); - BlankFrm.ShowModal; - Y := nil; - X := nil; - end; -// end; - - // do both if checked - if (BothCorrChk.Checked) then - begin - // F is same as for Row correspondence and Gc is same as for columns - for i := 0 to n - 1 do - for j := 0 to q1 - 1 do W[i,j] := F[i,j]; - MATAxB(F,W,Du,n,q1,q1,q1,errorcode); - outline := 'Row Dimensions (Ignore Col. 1'; - MAT_PRINT(F,n,q1,outline,RowLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - outline := 'Column Dimensions (Ignore Col. 1)'; - MAT_PRINT(Gc,q1,q1,outline,ColLabels,ColLabels,NoCases); - OutPutFrm.ShowModal; - if (PlotChk.Checked)then - begin - prompt := InputBox('X Axis Dimension','1','1'); - IX := StrToInt(prompt); - prompt := InputBox('Y Axis Dimension','2','2'); - IY := StrToInt(prompt); - xtitle := 'Dimension ' + IntToStr(IX); - ytitle := 'Dimension ' + IntToStr(IY); - SetLength(X,n); - SetLength(Y,n); - Xmax := -10000.0; - Ymax := Xmax; - Xmin := 10000.0; - Ymin := Xmin; - for i := 0 to n - 1 do - begin - X[i] := F[i,IX]; - if (X[i] > Xmax) then Xmax := X[i]; - if (X[i] < Xmin) then Xmin := X[i]; - Y[i] := F[i,IY]; - if (Y[i] > Ymax) then Ymax := Y[i]; - if (Y[i] < Ymin) then Ymin := Y[i]; - end; - title := 'Row Dimensions'; - plotxy(X,Y,Xmax,Xmin,Ymax,Ymin,n,RowLabels, title,xtitle,ytitle); - BlankFrm.ShowModal; - Y := nil; - X := nil; - SetLength(X,q1); - SetLength(Y,q1); - Xmax := -10000.0; - Ymax := Xmax; - Xmin := 10000.0; - Ymin := Xmin; - for i := 0 to q1 - 1 do - begin - X[i] := Gc[i,IX]; - if (X[i] > Xmax) then Xmax := X[i]; - if (X[i] < Xmin) then Xmin := X[i]; - Y[i] := Gc[i,IY]; - if (Y[i] > Ymax) then Ymax := Y[i]; - if (Y[i] < Ymin) then Ymin := Y[i]; - end; - title := 'Column Dimensions'; - plotxy(X,Y,Xmax,Xmin,Ymax,Ymin,q1,ColLabels, title,xtitle,ytitle); - BlankFrm.ShowModal; - Y := nil; - X := nil; - end; - end; -// FrmOutPut.ShowModal; - -// clean up memory - Gc := nil; - F := nil; - Trans := nil; - W := nil; - V := nil; - q := nil; - B := nil; - Du := nil; - A := nil; - Dc := nil; - Dr := nil; - c := nil; - r := nil; - P := nil; - ColLabels := nil; - RowLabels := nil; - CellChi := nil; - Expected := nil; - Prop := nil; - Freq := nil; - ColNoSelected := nil; -end; -end; - -procedure TCorrespondenceForm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TCorrespondenceForm.plotxy(Xpoints, Ypoints : DblDyneVec; Xmax, Xmin, Ymax, - Ymin : double; N : integer; - PtLabels : StrDyneVec; titlestr, - Xlabel, Ylabel : string); -VAR - i, xpos, ypos, hleft, hright, vtop, vbottom, imagewide :integer; - vhi, hwide, offset, strhi, imagehi : integer; - maxval, minval, valincr, Yvalue, Xvalue, value : double; - Title, astring, outline : string; - -begin - Title := 'X versus Y PLOT'; - BlankFrm.Caption := Title; - imagewide := BlankFrm.Image1.Width; - imagehi := BlankFrm.Image1.Height; - BlankFrm.Image1.Canvas.FloodFill(0,0,clYellow,fsBorder); - vtop := 20; - vbottom := round(imagehi) - 80; - vhi := vbottom - vtop; - hleft := 100; - hright := imagewide - 80; - hwide := hright - hleft; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - - // Draw chart border - BlankFrm.Image1.Canvas.Rectangle(0,0,imagewide,imagehi); - - // draw horizontal axis - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.MoveTo(hleft,vbottom); - BlankFrm.Image1.Canvas.LineTo(hright,vbottom); - valincr := (Xmax - Xmin) / 10.0; - for i := 1 to 11 do - begin - ypos := vbottom; - Xvalue := Xmin + valincr * (i - 1); - xpos := round(hwide * ((Xvalue - Xmin) / (Xmax - Xmin))); - xpos := xpos + hleft; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - ypos := ypos + 10; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - outline := format('%6.2f',[Xvalue]); - Title := outline; - offset := BlankFrm.Image1.Canvas.TextWidth(Title) div 2; - xpos := xpos - offset; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - end; - astring := Xlabel; // 'Dimension 1'; - xpos := hleft + (hwide div 2) - (BlankFrm.Image1.Canvas.TextWidth(astring) div 2); - ypos := vbottom + 20; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,astring); - - // Draw vertical axis - Title := Ylabel; // 'Dimension 2'; - xpos := hleft - BlankFrm.Image1.Canvas.TextWidth(Title) div 2; - ypos := vtop - BlankFrm.Image1.Canvas.TextHeight(Title); - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - xpos := hleft; - ypos := vtop; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - ypos := vbottom; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - valincr := (Ymax - Ymin) / 10.0; - for i := 1 to 11 do - begin - value := Ymax - ((i-1) * valincr); - outline := format('%8.3f',[value]); - Title := outline; - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - xpos := 10; - Yvalue := Ymax - (valincr * (i-1)); - ypos := round(vhi * ( (Ymax - Yvalue) / (Ymax - Ymin))); - ypos := ypos + vtop - strhi div 2; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - xpos := hleft; - ypos := ypos + strhi div 2; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - xpos := hleft - 10; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - end; - - // draw points for x and y pairs - BlankFrm.Image1.Canvas.Font.Size := 8; - for i := 0 to N - 1 do - begin - ypos := round(vhi * ( (Ymax - Ypoints[i]) / (Ymax - Ymin))); - ypos := ypos + vtop; - xpos := round(hwide * ( (Xpoints[i] - Xmin) / (Xmax - Xmin))); - xpos := xpos + hleft; - BlankFrm.Image1.Canvas.Brush.Color := clNavy; - BlankFrm.Image1.Canvas.Brush.Style := bsSolid; - BlankFrm.Image1.Canvas.Pen.Color := clNavy; - BlankFrm.Image1.Canvas.Ellipse(xpos,ypos,xpos+5,ypos+5); - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - BlankFrm.Image1.Canvas.TextOut(xpos+3,ypos-5,PtLabels[i]); - end; - xpos := hleft + (hwide div 2) - (BlankFrm.Image1.Canvas.TextWidth(titlestr) div 2); - ypos := vbottom + 40; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,titlestr); -end; - -procedure TCorrespondenceForm.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 TCorrespondenceForm.RowOutClick(Sender: TObject); -begin - VarList.Items.Add(RowEdit.Text); - RowEdit.Text := ''; - RowIn.Visible := true; - RowOut.Visible := false; -end; - -initialization - {$I correspondenceunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/corsimunit.pas b/applications/lazstats/source_orig/corsimunit.pas deleted file mode 100644 index 6e6b9cc48..000000000 --- a/applications/lazstats/source_orig/corsimunit.pas +++ /dev/null @@ -1,370 +0,0 @@ -unit CorSimUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - ExtCtrls, StdCtrls, Globals, OutPutUnit, Math; - -type - - { TCorSimFrm } - - TCorSimFrm = class(TForm) - Nobs: TEdit; - Image1: TImage; - Label6: TLabel; - ReturnBtn: TButton; - ComputeBtn: TButton; - Corr: TEdit; - Label5: TLabel; - SDY: TEdit; - Label4: TLabel; - SDX: TEdit; - Label3: TLabel; - MeanY: TEdit; - Label2: TLabel; - MeanX: TEdit; - Label1: TLabel; - Panel1: TPanel; - procedure ComputeBtnClick(Sender: TObject); - procedure CorrKeyPress(Sender: TObject; var Key: char); - procedure FormShow(Sender: TObject); - procedure MeanXKeyPress(Sender: TObject; var Key: char); - procedure MeanYKeyPress(Sender: TObject; var Key: char); - procedure NobsKeyPress(Sender: TObject; var Key: char); - procedure SDXKeyPress(Sender: TObject; var Key: char); - procedure SDYKeyPress(Sender: TObject; var Key: char); - private - { private declarations } - xmean, ymean, xsd, ysd, corxy, corsqr, yvariance, predvar : double; - errvariance, stderror, b, constant, newxmean, newymean : double; - newxsd, newysd, newcorr, randomerror, newb, newconstant : double; - x, y : DblDyneVec; - freqx, freqy : IntDyneVec; - N : integer; - procedure plot(Sender: TObject); - public - { public declarations } - end; - -var - CorSimFrm: TCorSimFrm; - -implementation - -{ TCorSimFrm } - -procedure TCorSimFrm.MeanXKeyPress(Sender: TObject; var Key: char); -begin - if Ord(Key) = 13 then MeanY.SetFocus; -end; - -procedure TCorSimFrm.CorrKeyPress(Sender: TObject; var Key: char); -begin - if Ord(Key) = 13 then Nobs.SetFocus; -end; - -procedure TCorSimFrm.ComputeBtnClick(Sender: TObject); -var - outline : string; - i : integer; -begin - N := StrToInt(NObs.Text); - xmean := StrToFloat(MeanX.Text); - ymean := StrToFloat(MeanY.Text); - xsd := StrToFloat(SDX.Text); - ysd := StrToFloat(SDY.Text); - corxy := StrToFloat(Corr.Text); - Randomize; - - SetLength(freqx,N + 1); - SetLength(freqy,N + 1); - SetLength(x,N + 1); - SetLength(y,N + 1); - - // generate x and y data observations - corsqr := corxy * corxy; - yvariance := ysd * ysd; - predvar := corsqr * yvariance; - errvariance := yvariance - predvar; - stderror := sqrt(errvariance); - b := corxy * (ysd / xsd); - constant := ymean - (b * xmean); - - newxmean := 0.0; - newymean := 0.0; - newxsd := 0.0; - newysd := 0.0; - newcorr := 0.0; - for i := 1 to N do - begin - x[i] := RandG(xmean,xsd); - randomerror := RandG(0.0,stderror); - y[i] := (b * x[i]) + constant + randomerror; - newxmean := newxmean + x[i]; - newymean := newymean + y[i]; - newxsd := newxsd + (x[i] * x[i]); - newysd := newysd + (y[i] * y[i]); - newcorr := newcorr + (x[i] * y[i]); - end; - newxsd := newxsd - ((newxmean * newxmean) / N); - newxsd := newxsd / (N - 1.0); - newxsd := sqrt(newxsd); - newysd := newysd - ((newymean * newymean) / N); - newysd := newysd / (N - 1.0); - newysd := sqrt(newysd); - newcorr := newcorr - ((newxmean * newymean) / N); - newcorr := newcorr / (N - 1.0); - newcorr := newcorr / (newxsd * newysd); - newxmean := newxmean / N; - newymean := newymean / N; - newb := newcorr * (newysd / newxsd); - newconstant := newymean - (newb * newxmean); - OutPutFrm.RichEdit.Lines.Clear; - outline := 'POPULATION PARAMETERS FOR THE SIMULATION'; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Mean X := %8.3f, Std. Dev. X := %8.3f',[xmean, xsd]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Mean Y := %8.3f, Std. Dev. Y := %8.3f',[ymean, ysd]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Product-Moment Correlation := %8.3f',[corxy]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Regression line slope := %8.3f, constant := %8.3f', - [b, constant]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('SAMPLE STATISTICS FOR %d OBSERVATIONS FROM THE POPULATION',[N]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Mean X := %8.3f, Std. Dev. X := %8.3f',[newxmean, newxsd]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Mean Y := %8.3f, Std. Dev. Y := %8.3f',[newymean, newysd]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Product-Moment Correlation := %8.3f',[newcorr]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Regression line slope := %8.3f, constant := %8.3f', - [newb, newconstant]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Pair No. X Y'); - for i := 1 to N do - begin - outline := format(' %3d %9.3f %9.3f',[i,x[i],y[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; - plot(self); - freqx := nil; - freqy := nil; - x := nil; - y := nil; - ReturnBtn.SetFocus; -end; - -procedure TCorSimFrm.FormShow(Sender: TObject); -begin - CorSimFrm.Image1.Canvas.Pen.Color := clBlack; - CorSimFrm.Image1.Canvas.Brush.Color := clWhite; - CorSimFrm.Image1.Canvas.Clear; - CorSimFrm.Image1.Canvas.FloodFill(1,1,clWhite,fsborder); - MeanX.Text := '100'; - MeanY.Text := '100'; - SDX.Text := '15'; - SDY.Text := '15'; - Corr.Text := '.8'; - Nobs.Text := '100'; -end; - -procedure TCorSimFrm.MeanYKeyPress(Sender: TObject; var Key: char); -begin - if Ord(Key) = 13 then SDX.SetFocus; -end; - -procedure TCorSimFrm.NobsKeyPress(Sender: TObject; var Key: char); -begin - if Ord(Key) = 13 then ComputeBtn.SetFocus; -end; - -procedure TCorSimFrm.SDXKeyPress(Sender: TObject; var Key: char); -begin - if Ord(Key) = 13 then SDY.SetFocus; -end; - -procedure TCorSimFrm.SDYKeyPress(Sender: TObject; var Key: char); -begin - if Ord(Key) = 13 then Corr.SetFocus; -end; - -procedure TCorSimFrm.plot(Sender: TObject); -var - minx, maxx, miny, maxy, xincrement, yincrement : double; - predy1, predy2, lowerx, upperx, frange, prop : double; - charlabel : string; - xpos, ypos, xpos1, ypos1, xpos2, ypos2 : integer; - i, winwidth, winheight, xoffset, yoffset, xaxislong, yaxislong : integer; - j, xspacing, yspacing, labelwidth, minfreq, maxfreq : integer; - flength, theight, lowery, uppery : integer; -begin - // get min and max of x and y points - minx := x[1]; - maxx := minx; - miny := y[1]; - maxy := miny; - for i := 1 to N do - begin - if (minx > x[i]) then minx := x[i]; - if (maxx < x[i]) then maxx := x[i]; - if (miny > y[i]) then miny := y[i]; - if (maxy < y[i]) then maxy := y[i]; - end; - xincrement := (maxx - minx) / 10; - yincrement := (maxy - miny) / 10; - - winwidth := CorSimFrm.Image1.Width; - winheight := CorSimFrm.Image1.Height; - xoffset := winwidth div 5; - yoffset := winheight div 5; - xaxislong := winwidth - xoffset- winwidth div 10; - yaxislong := winheight - yoffset - winheight div 10; - Image1.Canvas.Pen.Color := clBlack; - Image1.Canvas.MoveTo(xoffset,yaxislong); - Image1.Canvas.LineTo(winwidth,yaxislong); - Image1.Canvas.MoveTo(xoffset,yaxislong); - Image1.Canvas.LineTo(xoffset,0); - xspacing := xaxislong div 10; - yspacing := yaxislong div 10; - // do xaxis - for i := 0 to 11 do - begin - Image1.Canvas.MoveTo(xoffset + (i * xspacing),yaxislong); - Image1.Canvas.LineTo(xoffset + (i * xspacing),yaxislong + 10); - charlabel := format('%8.3f',[minx + (i * xincrement)]); - labelwidth := Image1.Canvas.TextWidth(charlabel); - xpos := xoffset + (i * xspacing)-labelwidth div 2; - ypos := yaxislong + 12; - Image1.Canvas.TextOut(xpos,ypos,charlabel); - end; - // do yaxis - for i := 0 to 11 do - begin - Image1.Canvas.MoveTo(xoffset, yaxislong - (i * yspacing)); - Image1.Canvas.LineTo(xoffset-10,yaxislong - (i * yspacing)); - charlabel := format('%8.3f',[miny + (i * yincrement)]); - labelwidth := Image1.Canvas.TextWidth(charlabel); - xpos := xoffset-10-labelwidth; - ypos := yaxislong - (i * yspacing); - Image1.Canvas.TextOut(xpos,ypos,charlabel); - end; - // plot points - Image1.Canvas.Pen.Color := clRed; - for i := 1 to N do - begin - xpos := round(xoffset + ((x[i] - minx) / (maxx - minx) * xaxislong)); - ypos := round(yaxislong - ((y[i] - miny) / (maxy - miny) * yaxislong)); - Image1.Canvas.Ellipse(xpos,ypos,xpos+5,ypos+5); - end; - // draw regression line - Image1.Canvas.Pen.Color := clBlack; - predy1 := newb * minx + newconstant; - predy2 := newb * maxx + newconstant; - xpos1 := xoffset; - xpos2 := xoffset + xaxislong; - ypos1 := round(yaxislong - ((predy1 - miny) / (maxy - miny) * yaxislong)); - ypos2 := round(yaxislong - ((predy2 - miny) / (maxy - miny) * yaxislong)); - Image1.Canvas.MoveTo(xpos1,ypos1); - Image1.Canvas.LineTo(xpos2,ypos2); - - // do x frequency distribution - xincrement := (maxx-minx) / 50.0; - xspacing := xaxislong div 50; - for j := 1 to 51 do freqx[j] := 0; - for i := 1 to N do - begin - for j := 1 to 51 do - begin - lowerx := minx + (j * xincrement); - upperx := minx + ((j+1) * xincrement); - if ((x[i] >= lowerx) and (x[i] < upperx)) then freqx[j] := freqx[j] + 1; - end; - end; - // plot the x frequencies - minfreq := N; - maxfreq := 0; - for j := 1 to 51 do - begin - if (freqx[j] > maxfreq) then maxfreq := freqx[j]; - if (freqx[j] < minfreq) then minfreq := freqx[j]; - end; - flength := winheight - (yaxislong + 25) - Panel1.Height; - for j := 1 to 51 do - begin - xpos := xoffset + (j * xspacing); - ypos1 := round(yaxislong + 25 + - ((freqx[j] - minfreq)/ (maxfreq-minfreq) * (flength))); - ypos2 := yaxislong + 25; - Image1.Canvas.MoveTo(xpos,ypos1); - Image1.Canvas.LineTo(xpos,ypos2); - end; - Image1.Canvas.MoveTo(xoffset,yaxislong+25); - Image1.Canvas.LineTo(winwidth,yaxislong+25); - xpos := 20; - ypos := yaxislong+30; - Image1.Canvas.TextOut(xpos,ypos,'X DISTRIBUTION'); - theight := Image1.Canvas.TextHeight('X'); - ypos := ypos + theight; - charlabel := format('correlation := %6.3f',[newcorr]); - Image1.Canvas.TextOut(xpos,ypos,charlabel); - ypos := ypos + theight; - charlabel := format('Mean X := %8.3f, Mean Y := %8.3f',[newxmean, newymean]); - Image1.Canvas.TextOut(xpos,ypos,charlabel); - charlabel := format('SD X := %8.3f, SD Y := %8.3f',[newxsd, newysd]); - ypos := ypos + theight; - Image1.Canvas.TextOut(xpos,ypos,charlabel); - - // do y frequency distribution - yincrement := (maxy-miny) / 50.0; - yspacing := yaxislong div 50; - for j := 1 to 51 do freqy[j] := 0; - for i := 1 to N do - begin - for j := 1 to 51 do - begin - lowery := round(miny + (j * yincrement)); - uppery := round(miny + ((j+1) * yincrement)); - if ((y[i] >= lowery) and (y[i] < uppery)) then freqy[j] := freqy[j] + 1; - end; - end; - // plot the y frequencies - minfreq := N; - maxfreq := 0; - for j := 1 to 51 do - begin - if (freqy[j] > maxfreq) then maxfreq := freqy[j]; - if (freqy[j] < minfreq) then minfreq := freqy[j]; - end; - flength := winwidth - (xaxislong + 150); - for j := 1 to 51 do - begin - ypos := yaxislong - (j * yspacing); - frange := maxfreq - minfreq; - prop := (freqy[j] - minfreq) / frange; - xpos1 := round(xoffset - 50 - (prop * flength)); - xpos2 := xoffset - 50; - Image1.Canvas.MoveTo(xpos1,ypos); - Image1.Canvas.LineTo(xpos2,ypos); - end; - Image1.Canvas.MoveTo(xoffset - 50,yaxislong); - Image1.Canvas.LineTo(xoffset - 50,0); - Image1.Canvas.TextOut(0,0,'Y DISTRIBUTION'); -end; - -initialization - {$I corsimunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/crosstabunit.lfm b/applications/lazstats/source_orig/crosstabunit.lfm deleted file mode 100644 index 4b0244c29..000000000 --- a/applications/lazstats/source_orig/crosstabunit.lfm +++ /dev/null @@ -1,173 +0,0 @@ -object CrossTabFrm: TCrossTabFrm - Left = 134 - Height = 300 - Top = 106 - Width = 473 - Caption = 'Cross Tabulation' - ClientHeight = 300 - ClientWidth = 473 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 8 - Height = 14 - Top = 8 - Width = 90 - Caption = 'Available Variables' - ParentColor = False - end - object Label2: TLabel - Left = 200 - Height = 14 - Top = 8 - Width = 98 - Caption = 'Variables to Analyze' - ParentColor = False - end - object VarList: TListBox - Left = 7 - Height = 264 - Top = 23 - Width = 132 - ItemHeight = 0 - MultiSelect = True - TabOrder = 0 - end - object ListBox1: TListBox - Left = 200 - Height = 255 - Top = 32 - Width = 141 - ItemHeight = 0 - TabOrder = 1 - end - object InBtn: TBitBtn - Left = 152 - Height = 33 - Top = 33 - Width = 37 - 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 = 2 - end - object OutBtn: TBitBtn - Left = 152 - Height = 33 - Top = 80 - Width = 37 - 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 = 3 - end - object ResetBtn: TButton - Left = 368 - Height = 33 - Top = 64 - Width = 82 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 4 - end - object CancelBtn: TButton - Left = 368 - Height = 33 - Top = 120 - Width = 82 - Caption = 'Cancel' - ModalResult = 2 - OnClick = CancelBtnClick - TabOrder = 5 - end - object OKBtn: TButton - Left = 368 - Height = 33 - Top = 176 - Width = 82 - Caption = 'OK' - ModalResult = 1 - OnClick = OKBtnClick - TabOrder = 6 - end - object HelpBtn: TButton - Tag = 116 - Left = 368 - Height = 32 - Top = 16 - Width = 82 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 7 - end -end diff --git a/applications/lazstats/source_orig/crosstabunit.lrs b/applications/lazstats/source_orig/crosstabunit.lrs deleted file mode 100644 index 677a6dfd2..000000000 --- a/applications/lazstats/source_orig/crosstabunit.lrs +++ /dev/null @@ -1,126 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TCrossTabFrm','FORMDATA',[ - 'TPF0'#12'TCrossTabFrm'#11'CrossTabFrm'#4'Left'#3#134#0#6'Height'#3','#1#3'To' - +'p'#2'j'#5'Width'#3#217#1#7'Caption'#6#16'Cross Tabulation'#12'ClientHeight' - +#3','#1#11'ClientWidth'#3#217#1#6'OnShow'#7#8'FormShow'#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'Widt' - +'h'#2'Z'#7'Caption'#6#19'Available Variables'#11'ParentColor'#8#0#0#6'TLabel' - +#6'Label2'#4'Left'#3#200#0#6'Height'#2#14#3'Top'#2#8#5'Width'#2'b'#7'Caption' - +#6#20'Variables to Analyze'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'L' - +'eft'#2#7#6'Height'#3#8#1#3'Top'#2#23#5'Width'#3#132#0#10'ItemHeight'#2#0#11 - +'MultiSelect'#9#8'TabOrder'#2#0#0#0#8'TListBox'#8'ListBox1'#4'Left'#3#200#0#6 - +'Height'#3#255#0#3'Top'#2' '#5'Width'#3#141#0#10'ItemHeight'#2#0#8'TabOrder' - +#2#1#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#152#0#6'Height'#2'!'#3'Top'#2'!'#5'Wi' - +'dth'#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 - +'InBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#152#0#6'Heig' - +'ht'#2'!'#3'Top'#2'P'#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#3#0#0 - +#7'TButton'#8'ResetBtn'#4'Left'#3'p'#1#6'Height'#2'!'#3'Top'#2'@'#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'p'#1#6'Height'#2'!'#3'Top'#2'x'#5'Width'#2 - +'R'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#7'OnClick'#7#14'CancelBtnClic' - +'k'#8'TabOrder'#2#5#0#0#7'TButton'#5'OKBtn'#4'Left'#3'p'#1#6'Height'#2'!'#3 - +'Top'#3#176#0#5'Width'#2'R'#7'Caption'#6#2'OK'#11'ModalResult'#2#1#7'OnClick' - +#7#10'OKBtnClick'#8'TabOrder'#2#6#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2't'#4'Le' - +'ft'#3'p'#1#6'Height'#2' '#3'Top'#2#16#5'Width'#2'R'#7'Caption'#6#4'Help'#7 - +'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#7#0#0#0 -]); diff --git a/applications/lazstats/source_orig/crosstabunit.pas b/applications/lazstats/source_orig/crosstabunit.pas deleted file mode 100644 index 8c19c014d..000000000 --- a/applications/lazstats/source_orig/crosstabunit.pas +++ /dev/null @@ -1,385 +0,0 @@ -unit CrossTabUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, Globals, OutPutUnit, MainUnit, DataProcs, FunctionsLib, - MatrixLib, contexthelpunit; - -type - - { TCrossTabFrm } - - TCrossTabFrm = class(TForm) - HelpBtn: TButton; - InBtn: TBitBtn; - OutBtn: TBitBtn; - ResetBtn: TButton; - CancelBtn: TButton; - OKBtn: TButton; - Label1: TLabel; - Label2: TLabel; - VarList: TListBox; - ListBox1: TListBox; - procedure CancelBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure InBtnClick(Sender: TObject); - procedure OKBtnClick(Sender: TObject); - procedure OutBtnClick(Sender: TObject); - procedure ResetBtnClick(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 INITIALIZEIT(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 - -{ TCrossTabFrm } - -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.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TCrossTabFrm.InBtnClick(Sender: TObject); -var - index2, i : integer; - -begin - index2 := VarList.Items.Count; - i := 0; - while i < index2 do - begin - if (VarList.Selected[i]) then - begin - ListBox1.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index2 := index2 - 1; - i := 0; - end - else i := i + 1; - end; - OutBtn.Enabled := true; -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 - // Application.MessageBox('No variables selected for analysis.','ERROR!',MB_OK); - 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.OutBtnClick(Sender: TObject); -var - index2: integer; - -begin - index2 := ListBox1.ItemIndex; - VarList.Items.Add(ListBox1.Items.Strings[index2]); - ListBox1.Items.Delete(index2); - InBtn.Enabled := true; - if ListBox1.Items.Count = 0 then OutBtn.Enabled := false; -end; - -procedure TCrossTabFrm.CancelBtnClick(Sender: TObject); -begin - CrossTabFrm.Hide; -end; - -procedure TCrossTabFrm.INITIALIZEIT(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 index2 : integer; - i : integer; - -begin - index2 := x[no_in_list-1]; - if no_in_list > 1 then - begin - for i := 1 to no_in_list - 1 do - index2 := index2 + (x[i-1] -1) * displace[i-1]; - end; - index_position := index2; -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 -// Application.MessageBox('subscript out of range.','ERROR!',MB_OK); - 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 crosstabunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/cumsumunit.pas b/applications/lazstats/source_orig/cumsumunit.pas deleted file mode 100644 index df25e0988..000000000 --- a/applications/lazstats/source_orig/cumsumunit.pas +++ /dev/null @@ -1,393 +0,0 @@ -unit CUMSUMUNIT; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, MainUnit, Globals, DataProcs, OutPutUnit, Buttons, math, - FunctionsLib, BlankFrmUnit, contexthelpunit; - -type - - { TCUMSUMFrm } - - TCUMSUMFrm = class(TForm) - HelpBtn: TButton; - TargetEdit: TEdit; - TargetChk: TCheckBox; - DeltaEdit: TEdit; - AlphaEdit: TEdit; - BetaEdit: TEdit; - GroupBox1: TGroupBox; - GroupBox2: TGroupBox; - Label4: TLabel; - Label5: TLabel; - Label6: TLabel; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - MeasEdit: TEdit; - GroupEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - VarList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure VarListClick(Sender: TObject); - private - { private declarations } - semean : double; - procedure PlotMeans(VAR means : DblDyneVec; - NoGrps : integer; - GrandMean : double; - Sender: TObject); - public - { public declarations } - end; - -var - CUMSUMFrm: TCUMSUMFrm; - -implementation - -{ TCUMSUMFrm } - -procedure TCUMSUMFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - GroupEdit.Text := ''; - MeasEdit.Text := ''; - DeltaEdit.Text := ''; - AlphaEdit.Text := '0.05'; - BetaEdit.Text := '0.20'; - TargetEdit.Text := ''; - TargetChk.Checked := false; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TCUMSUMFrm.VarListClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - if GroupEdit.Text = '' then GroupEdit.Text := VarList.Items.Strings[index] - else MeasEdit.Text := VarList.Items.Strings[index]; -end; - -procedure TCUMSUMFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TCUMSUMFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TCUMSUMFrm.ComputeBtnClick(Sender: TObject); -label cleanup; -var - i, j, GrpVar, MeasVar, mingrp, maxgrp, G, range, grpsize : integer; - oldgrpsize : integer; - X, UCL, LCL : double; - xmin, xmax, GrandMean, GrandSD : double; - Target, GrandSum : double; - means, stddev, cumsums : DblDyneVec; - count : IntDyneVec; - cellstring, outline : string; - sizeerror : boolean; - ColNoSelected : IntDyneVec; - NoSelected : integer; -begin - SetLength(ColNoSelected,NoVariables); - GrpVar := 1; - MeasVar := 2; - grpsize := 0; - oldgrpsize := 0; - - for i := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[i,0]; - if cellstring = GroupEdit.Text then GrpVar := i; - if cellstring = MeasEdit.Text then MeasVar := i; - end; - NoSelected := 2; - ColNoSelected[0] := GrpVar; - ColNoSelected[1] := MeasVar; - - mingrp := 10000; - maxgrp := -10000; - for i := 1 to NoCases do - begin - if not GoodRecord(i,NoSelected,ColNoSelected) then continue; - G := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GrpVar,i]))); - if G < mingrp then mingrp := G; - if G > maxgrp then maxgrp := G; - end; - range := maxgrp - mingrp + 1; - - SetLength(means,range); - SetLength(count,range); - SetLength(stddev,range); - SetLength(cumsums,range); - - for i := 0 to range-1 do - begin - count[i] := 0; - means[i] := 0.0; - stddev[i] := 0.0; - cumsums[i] := 0.0; - end; - semean := 0.0; - GrandMean := 0.0; - sizeerror := false; - GrandSum := 0.0; - if TargetChk.Checked then Target := StrToFloat(TargetEdit.Text) - else Target := 0.0; - - // calculate group ranges, grand mean, group sd's, semeans - for j := 1 to range do // groups - begin - xmin := 10000.0; - xmax := -10000.0; - for i := 1 to NoCases do - begin - if not GoodRecord(i,NoSelected,ColNoSelected) then continue; - G := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[GrpVar,i]))); - G := G - mingrp + 1; - if G = j then - begin - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[MeasVar,i])); - if X > xmax then xmax := X; - if X < xmin then xmin := X; - count[G-1] := count[G-1] + 1; - stddev[G-1] := stddev[G-1] + (X * X); - semean := semean + (X * X); - means[G-1] := means[G-1] + X; - GrandMean := GrandMean + X; - end; - end; // next case - stddev[j-1] := stddev[j-1] - (means[j-1] * means[j-1] / count[j-1]); - stddev[j-1] := stddev[j-1] / (count[j-1] - 1); - stddev[j-1] := sqrt(stddev[j-1]); - grpsize := count[j-1]; - means[j-1] := means[j-1] / count[j-1]; - if j = 1 then oldgrpsize := grpsize; - if oldgrpsize <> grpsize then sizeerror := true; - end; // next group - - // now get cumulative deviations of means from target - if Target = 0.0 then Target := means[range-1]; - cumsums[0] := means[0] - Target; - GrandSum := GrandSum + (means[0] - Target); - for j := 2 to range do - begin - cumsums[j-1] := cumsums[j-2] + (means[j-1] - Target); - GrandSum := GrandSum + (means[j-1] - Target); - end; - - if (grpsize < 2) or (grpsize > 25) or (sizeerror) then - begin - ShowMessage('ERROR! Group sizes error.'); - goto cleanup; - end; - - semean := semean - ((GrandMean * GrandMean) / NoCases); - semean := semean / (NoCases - 1); - semean := sqrt(semean); - GrandSD := semean; - semean := semean / sqrt(NoCases); - GrandMean := GrandMean / NoCases; // mean of all observations - GrandSum := GrandSum / range; // mean of the group means - UCL := GrandMean + (3.0 * semean); - LCL := GrandMean - (3.0 * semean); - if (LCL < 0.0) then LCL := 0.0; - - // printed results - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('CUMSUM Chart Results'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Group Size Mean Std.Dev. Cum.Dev. of'); - OutPutFrm.RichEdit.Lines.Add(' mean from Target'); - OutPutFrm.RichEdit.Lines.Add('_____ ____ ________ ________ ___________'); - for i := 0 to range-1 do - begin - outline := format(' %3d %3d %8.2f %8.2f %8.2f', - [i+1,count[i], means[i], stddev[i], cumsums[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - outline := format('Mean of group deviations = %6.3f',[GrandSum]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Mean of all observations = %6.3f',[GrandMean]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Std. Dev. of Observations = %8.3f',[GrandSD]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Standard Error of Mean = %8.3f',[semean]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Target Specification = %6.3f',[Target]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Lower Control Limit = %8.3f, Upper Control Limit = %8.3f', - [LCL, UCL]); - OutPutfrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - - // show graph - PlotMeans(cumsums,range,GrandSum,self); - - cleanup: - cumsums := nil; - stddev := nil; - count := nil; - means := nil; - ColNoSelected := nil; -end; - -procedure TCUMSUMFrm.PlotMeans(var means: DblDyneVec; NoGrps: integer; - GrandMean: double; Sender: TObject); -var - i, xpos, ypos, hleft, hright, vtop, vbottom, imagewide : integer; - vhi, hwide, offset, strhi, grpnospc, distx : integer; - imagehi, maxval, minval, valincr, Yvalue : double; - alpha, beta, delta, gamma, theta, kfactor, d : double; - Title : string; -begin - maxval := -10000.0; - minval := 10000.0; - for i := 0 to NoGrps-1 do - begin - if means[i] > maxval then maxval := means[i]; - if means[i] < minval then minval := means[i]; - end; - BlankFrm.Image1.Canvas.Clear; - BlankFrm.Show; - Title := 'CUMSUM CHART FOR : ' + OS3MainFrm.FileNameEdit.Text; - BlankFrm.Caption := Title; - imagewide := BlankFrm.Image1.Width; - imagehi := BlankFrm.Image1.Height; - vtop := 20; - vbottom := round(imagehi) - 80; - vhi := vbottom - vtop; - hleft := 100; - hright := imagewide - 80; - hwide := hright - hleft; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - - // Draw chart border - BlankFrm.Image1.Canvas.Rectangle(hleft,vtop-10,hleft+hwide,vtop+vhi+10); - - // draw Grand Mean - ypos := round(vhi * ( (maxval - GrandMean) / (maxval - minval))); - ypos := ypos + vtop; - xpos := hleft; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - xpos := hright; - BlankFrm.Image1.Canvas.Pen.Color := clRed; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - Title := 'AVG.DEV.'; - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - ypos := ypos - strhi div 2; - BlankFrm.Image1.Canvas.Brush.Color := clLtGray; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - - // draw horizontal axis - BlankFrm.Image1.Canvas.MoveTo(hleft,vbottom + 20); - BlankFrm.Image1.Canvas.LineTo(hright,vbottom + 20); - for i := 1 to NoGrps do - begin - ypos := vbottom + 10; - xpos := round((hwide / NoGrps)* i + hleft); - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - ypos := ypos + 10; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - Title := format('%d',[i]); - offset := BlankFrm.Image1.Canvas.TextWidth(Title) div 2; - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - xpos := xpos - offset; - ypos := ypos + strhi; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - xpos := 10; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,'GROUPS:'); - end; - - // Draw vertical axis - valincr := (maxval - minval) / 10.0; - for i := 1 to 11 do - begin - Title := format('%8.2f',[maxval - ((i-1)*valincr)]); - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - xpos := 10; - Yvalue := maxval - (valincr * (i-1)); - ypos := round(vhi * ( (maxval - Yvalue) / (maxval - minval))); - ypos := ypos + vtop - strhi div 2; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - end; - - // draw lines for means of the groups - ypos := round(vhi * ( (maxval - means[0]) / (maxval - minval))); - ypos := ypos + vtop; - xpos := round((hwide / NoGrps) + hleft); - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - for i := 2 to NoGrps do - begin - ypos := round(vhi * ( (maxval - means[i-1]) / (maxval - minval))); - ypos := ypos + vtop; - xpos := round((hwide / NoGrps)* i + hleft); - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - end; - - // Draw V Mask - if CumsumFrm.DeltaEdit.Text = '' then exit; // not elected - BlankFrm.Image1.Canvas.Pen.Color := clBlue; - delta := StrToFloat(CumsumFrm.DeltaEdit.Text); - gamma := delta / semean; - alpha := StrToFloat(CumSumFrm.AlphaEdit.Text); - beta := StrToFloat(CumSumFrm.BetaEdit.Text); - kfactor := 2.0 * semean; - d := (2.0 / (gamma * gamma)) * ln((1.0 - beta)/alpha); - theta := arctan(delta / (2.0 * kfactor)); - grpnospc := round(hwide / NoGrps); - xpos := hleft + (grpnospc * (NoGrps)); // last group - ypos := round(vhi * ( (maxval - means[NoGrps-1]) / (maxval - minval))); - ypos := ypos + vtop; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - xpos := round(xpos + (d * grpnospc / hwide)); // scaled d - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); // line 0 to A - - // draw upper angle line - xpos := hleft + (grpnospc * NoGrps); // last group - xpos := round(xpos + (d * grpnospc / hwide)); // plus scaled d - ypos := round(vhi * ( (maxval - means[NoGrps-1]) / (maxval - minval))); - ypos := ypos + vtop; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - ypos := vtop; // draw angle up to top of graph - distx := round(vhi / tan(theta)); // x unscaled distance - xpos := round(xpos - (distx * grpnospc / hwide)); - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - - // draw lower angle line - xpos := hleft + (grpnospc * NoGrps); // last group - xpos := round(xpos + (d * grpnospc / hwide)); // plus scaled d - ypos := round(vhi * ( (maxval - means[NoGrps-1]) / (maxval - minval))); - ypos := ypos + vtop; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - ypos := vbottom; - xpos := round(xpos - (distx * grpnospc / hwide)); - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - BlankFrm.Image1.Canvas.Pen.Color := clBlack; -end; - -initialization - {$I cumsumunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/dataprocs.pas b/applications/lazstats/source_orig/dataprocs.pas deleted file mode 100644 index e7c6d10c2..000000000 --- a/applications/lazstats/source_orig/dataprocs.pas +++ /dev/null @@ -1,1715 +0,0 @@ -unit DataProcs; - -{$mode objfpc}{$H+} - -interface - -uses - FileUtil, LResources, Forms, Controls, Graphics, Dialogs, OutPutUnit, - StdCtrls, ExtCtrls,Globals, OptionsUnit, DictionaryUnit, clipbrd, - Classes, SysUtils; - -Function GoodRecord(Row, NoVars : integer; VAR GridPos : IntDyneVec): boolean; -procedure FormatCell(Col, Row : integer); -procedure FormatGrid; -function IsNumeric(s : string) : boolean; -procedure VecPrint(vector : IntDyneVec; Size : integer; Heading : string); -procedure SaveOS2File; -procedure OpenOS2File; -procedure DeleteCol; -procedure CopyColumn; -procedure PasteColumn; -procedure InsertCol; -procedure InsertRow; -procedure CutaRow; -procedure CopyaRow; -procedure PasteaRow; -procedure PrintDict; -procedure PrintData; -procedure OpenTabFile; -procedure SaveTabFile; -function ValidValue(row, col : integer) : boolean; -function IsFiltered(GridRow : integer) : boolean; -procedure MATREAD(VAR a : DblDyneMat; - VAR norows : integer; - VAR nocols : integer; - VAR means : DblDyneVec; - VAR stddevs : DblDyneVec; - VAR NCases : integer; - VAR RowLabels : StrDyneVec; - VAR ColLabels : StrDyneVec; - filename : string); -procedure MATSAVE(VAR a : DblDyneMat; - norows : integer; - nocols : integer; - VAR means : DblDyneVec; - VAR stddevs : DblDyneVec; - NCases : integer; - VAR RowLabels : StrDyneVec; - VAR ColLabels : StrDyneVec; - filename : string); -procedure ReOpen(filename : string); -procedure OpenCommaFile; -procedure SaveCommaFile; -procedure OpenSpaceFile; -procedure SaveSpaceFile; -procedure OpenOSData; -procedure ClearGrid; -procedure CopyIt; -procedure PasteIt; -procedure RowColSwap; -procedure MatToGrid(VAR mat : DblDyneMat; nsize : integer); -procedure GetTypes; -function StringsToInt(strcol : integer; VAR newcol : integer; prompt : boolean) : boolean; -implementation - -uses MainUnit; - -Function GoodRecord(Row, NoVars : integer; VAR GridPos : IntDyneVec): boolean; -var - i, j : integer; - isgood : boolean; - -begin - isgood := true; - for i := 1 to NoVars do - begin - j := GridPos[i-1]; - if NOT ValidValue(Row,j) then isgood := false; - end; - Result := isgood; -end; -//------------------------------------------------------------------- - -procedure FormatCell(Col, Row : integer); -var - VarType : char; - NoDec : integer; - Justify : char; - missing : string; - astr : string; - cellstr : string; - newcell : string; - X : double; - Width : integer; - cellsize : integer; - -begin - if OS3MainFrm.DataGrid.Cells[Col,Row] = '' then exit; - Width := StrToInt(DictionaryFrm.DictGrid.Cells[3,Col]); - astr := DictionaryFrm.DictGrid.Cells[4,Col]; - VarType := astr[1]; - NoDec := StrToInt(DictionaryFrm.DictGrid.Cells[5,Col]); - astr := DictionaryFrm.DictGrid.Cells[7,Col]; - Justify := astr[1]; - missing := DictionaryFrm.DictGrid.Cells[6,Col]; - cellstr := Trim(OS3MainFrm.DataGrid.Cells[Col,Row]); - if missing = cellstr then exit; - if ((VarType = 'F') or (VarType = 'I')) then - begin - if IsNumeric(cellstr) then - begin - X := StrToFloat(cellstr); - newcell := FloatToStrF(X,ffFixed,Width,NoDec); -// Str(X:Width:NoDec,newcell); - end; - end - else newcell := cellstr; - - // now set justification - cellsize := OS3MainFrm.DataGrid.ColWidths[Col]; // in pixels - cellsize := cellsize div 8; - if Justify = 'L' then newcell := TrimLeft(newcell); - if Justify = 'C' then // center - begin - newcell := Trim(newcell); - While Length(newcell) < cellsize do - newcell := ' ' + newcell + ' '; - end; - if Justify = 'R' then // right justify - begin - newcell := Trim(newcell); - while Length(newcell) < cellsize do newcell := ' ' + newcell; - end; - OS3MainFrm.DataGrid.Cells[Col,Row] := newcell; -end; -//------------------------------------------------------------------- - -procedure FormatGrid; -var - i, j : integer; - -begin - for i := 1 to NoCases do - for j := 1 to NoVariables do FormatCell(j,i); -end; -//------------------------------------------------------------------- - -function IsNumeric(s : string) : boolean; -var i, strlong, FractionType : integer; - isnumber : boolean; -begin - if OptionsFrm.FractionTypeGrp.ItemIndex = 0 then - begin - FractionType := 0; - DecimalSeparator := '.' - end - else begin - FractionType := 1; - DecimalSeparator := ','; - end; - isnumber := true; - strlong := length(s); - for i := 1 to strlong do -// if (not(((s[i] >= '0') and (s[i] <= '9')) or (s[i] = DecimalSeparator) or -// (s[i] = '-'))) then isnumber := false; - if (ord(s[i]) < 44) or (ord(s[i]) > 57 ) or (ord(s[i]) = 47 )then isnumber := false; - result := isnumber; -end; -//----------------------------------------------------------------------------- - -procedure VecPrint(vector : IntDyneVec; Size : integer; Heading : string); -var - i, start, last : integer; - nvals : integer; - done : boolean; - astr : string; - -begin - nvals := 8; - done := false; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(Heading); - OutPutFrm.RichEdit.Lines.Add(''); - start := 1; - last := nvals; - if last > Size then last := Size; - while not done do - begin - astr := ''; - for i := start to last do - astr := astr + format('%8d ',[i]); - OutPutFrm.RichEdit.Lines.Add(astr); - astr := ''; - for i := start to last do - astr := astr + format('%8d ',[vector[i-1]]); - OutPutFrm.RichEdit.Lines.Add(astr); - if last < Size then - begin - OutPutFrm.RichEdit.Lines.Add(''); - start := last + 1; - last := start + nvals - 1; - if last > Size then last := Size; - end - else done := true; - end; -end; -//------------------------------------------------------------------- -procedure SaveOS2File; -var - F : TextFile; - filename : string; - astr : string; - NRows, NCols : integer; - MemLines : integer; - i, j : integer; - -begin - OS3MainFrm.SaveDialog1.FileName := OS3MainFrm.FileNameEdit.Text; - OS3MainFrm.SaveDialog1.DefaultExt := '.LAZ'; - OS3MainFrm.SaveDialog1.Filter := 'LazStats (*.LAZ)|*.LAZ|Tab (*.tab)|*.TAB|space (*.SPC)|*.SPC'; - OS3MainFrm.SaveDialog1.FilterIndex := 1; - if OS3MainFrm.SaveDialog1.Execute then - begin - // check for valid cases - at least one value entered - NRows := StrToInt(OS3MainFrm.NoCasesEdit.Text); //OS3MainFrm.DataGrid.RowCount - 1; - NCols := StrToInt(OS3MainFrm.NoVarsEdit.Text); //OS3MainFrm.DataGrid.ColCount - 1; - if ((NRows = 0) or (NCols = 0)) then - begin - ShowMessage('ERROR! No data to save!'); - exit; - end; - filename := OS3MainFrm.SaveDialog1.FileName; - OS3MainFrm.FileNameEdit.Text := filename; - AssignFile(F,filename); - Rewrite(F); - - Writeln(F,NRows); - Writeln(F,NCols); - // write dictionary information for file first - for i := 1 to NCols do - begin - for j := 1 to 7 do - begin - astr := DictionaryFrm.DictGrid.Cells[j,i]; - Writeln(F,astr); - end; - end; -{ MemLines := DictionaryFrm.DescMemo.Lines.Count; - Writeln(F,MemLines); - for i := 0 to MemLines - 1 do - Writeln(F,DictionaryFrm.DescMemo.Lines[i]); } - // now save grid cell values - for i := 0 to NRows do - begin - for j := 0 to NCols do - begin - astr := OS3MainFrm.DataGrid.Cells[j,i]; - Writeln(F,astr); - end; - end; - CloseFile(F); - end; -end; -//------------------------------------------------------------------- - -procedure OpenOS2File; -var - F : TextFile; - filename : string; - astr : string; - i, j : integer; - NRows, NCols, MemLines : integer; -begin - DictLoaded := false; - OS3MainFrm.OpenDialog1.DefaultExt := '.LAZ'; - OS3MainFrm.OpenDialog1.Filter := 'LazStats (*.LAZ)|*.LAZ|Tab (*.tab)|*.TAB|space (*.SPC)|*.SPC|All files (*.*)|*.*'; - OS3MainFrm.OpenDialog1.FilterIndex := 1; - if OS3MainFrm.OpenDialog1.Execute then - begin - filename := OS3MainFrm.OpenDialog1.FileName; - OS3MainFrm.FileNameEdit.Text := filename; - AssignFile(F,filename); - Reset(F); - Readln(F,NRows); - readln(F,NCols); - - // initialize the dictionary grid for NCols of variables - // using the default formats (protective measure in case of - // a screw-up where the dictionary was damaged - DictionaryFrm.DictGrid.ColCount := 8; - DictionaryFrm.DictGrid.RowCount := NCols+1; - for i := 1 to NCols do - begin - DictionaryFrm.DictGrid.Cells[0,i] := IntToStr(i); - DictionaryFrm.DictGrid.Cells[1,i] := 'VAR.' + IntToStr(i); - DictionaryFrm.DictGrid.Cells[2,i] := 'VARIABLE ' + IntToStr(i); - DictionaryFrm.DictGrid.Cells[3,i] := '8'; - DictionaryFrm.DictGrid.Cells[4,i] := 'F'; - DictionaryFrm.DictGrid.Cells[5,i] := '2'; - DictionaryFrm.DictGrid.Cells[6,i] := ' '; - DictionaryFrm.DictGrid.Cells[7,i] := 'L'; - end; - - // get dictionary info first - for i := 1 to NCols do - begin - for j := 1 to 7 do - begin - Readln(F,astr); - DictionaryFrm.DictGrid.Cells[j,i] := astr; - end; - VarDefined[i] := true; - end; - DictLoaded := true; -{ Readln(F,astr); - MemLines := StrToInt(astr); - DictionaryFrm.DescMemo.Clear; - for i := 0 to MemLines - 1 do - begin - readln(F,astr); - DictionaryFrm.DescMemo.Lines.Add(astr); - end; } - // Now read grid data - OS3MainFrm.DataGrid.RowCount := NRows + 1; - OS3MainFrm.DataGrid.ColCount := NCols + 1; - OS3MainFrm.NoCasesEdit.Text := IntToStr(NRows); - OS3MainFrm.NoVarsEdit.Text := IntToStr(NCols); - NoVariables := NCols; - NoCases := NRows; - for i := 0 to NRows do - begin - for j := 0 to NCols do - begin - Readln(F,astr); - OS3MainFrm.DataGrid.Cells[j,i] := astr; - end; - end; - CloseFile(F); - // copy column names into the data dictionary. Note, this is - // redundant with the saved dictionary but helps restore in case - // of a screw-up - for i := 1 to NCols do - DictionaryFrm.DictGrid.Cells[1,i] := OS3MainFrm.DataGrid.Cells[i,0]; - for i := 1 to NRows do - OS3MainFrm.DataGrid.Cells[0,i] := 'CASE ' + IntToStr(i); - DictionaryFrm.ShowModal; - FormatGrid; - end; -end; -//------------------------------------------------------------------- - -procedure DeleteCol; -var - i, j, col: integer; - buf : pchar; -begin - col := OS3MainFrm.DataGrid.Col; - NoVariables := StrToInt(OS3MainFrm.NoVarsEdit.Text); -// TempStream.Clear; -// OS3MainFrm.DataGrid.Cols[col].SaveToStream(TempStream); - buf := OS3MainFrm.DataGrid.Cols[col].GetText; - ClipBoard.SetTextBuf(buf); - if col = NoVariables then // last column - begin - for j := 0 to NoCases do OS3MainFrm.DataGrid.Cells[col,j] := ''; - VarDefined[col] := false; - end - else // must be a variable in front of another variable - begin - for i := col + 1 to NoVariables do //Grid.ColCount - 1 do - for j := 0 to NoCases do //Grid.RowCount - 1 do - OS3MainFrm.DataGrid.Cells[i-1,j] := OS3MainFrm.DataGrid.Cells[i,j]; - for j := 0 to OS3MainFrm.DataGrid.RowCount - 1 do - OS3MainFrm.DataGrid.Cells[NoVariables,j] := ''; - end; - varDefined[NoVariables] := false; - OS3MainFrm.DataGrid.ColCount := OS3MainFrm.DataGrid.ColCount - 1; - NoVariables := NoVariables - 1; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - // update dictionary - DictionaryFrm.DelRow(col); -end; -//------------------------------------------------------------------- - -procedure CopyColumn; -var - col: integer; - buf : pchar; -begin - col := OS3MainFrm.DataGrid.Col; - buf := OS3MainFrm.DataGrid.Cols[col].GetText; - ClipBoard.SetTextBuf(buf); -// The following code can be used instead of the above if no clipboard available -// TempStream.Clear; -// OS3MainFrm.DataGrid.Cols[col].SaveToStream(TempStream); -// DictionaryFrm.CopyVar(col); -end; -//------------------------------------------------------------------- - -procedure InsertCol; -var - i, j, col: integer; -begin - // insert a new, blank column into the data grid - col := OS3MainFrm.DataGrid.Col; -// DictionaryFrm.NewVar(col); - NoVariables := NoVariables + 1; - OS3MainFrm.DataGrid.ColCount := NoVariables + 1; - for i := NoVariables downto col do { move to right } - begin - for j := 0 to NoCases do - begin - OS3MainFrm.DataGrid.Cells[i,j] := OS3MainFrm.DataGrid.Cells[i-1,j]; - end; - end; - NoVariables := NoVariables - 1; - DictionaryFrm.NewVar(col); - for i := 1 to NoCases do OS3MainFrm.DataGrid.Cells[col,i] := ''; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); -end; -//------------------------------------------------------------------- - -procedure PasteColumn; -var - col, i, j : integer; - buf : pchar; - size : integer; - strarray : array[0..100000] of char; - -begin - col := OS3MainFrm.DataGrid.Col; - NoVariables := OS3MainFrm.DataGrid.ColCount-1; - NoCases := OS3MainFrm.DataGrid.RowCount - 1; - if col <= NoVariables then - begin // add a blank column, move current over and update dictionary - OS3MainFrm.DataGrid.ColCount := OS3MainFrm.DataGrid.ColCount + 1; - for i := NoVariables downto col do - for j := 0 to NoCases do - OS3MainFrm.DataGrid.Cells[i+1,j] := OS3MainFrm.DataGrid.Cells[i,j]; - DictionaryFrm.NewVar(col); - VarDefined[col] := true; - OS3MainFrm.ColEdit.Text := IntToStr(OS3MainFrm.DataGrid.ColCount-1); -// NoVariables := NoVariables + 1; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - end; - buf := strarray; - size := 100000; - ClipBoard.GetTextBuf(buf,size); - OS3MainFrm.DataGrid.Cols[col].SetText(buf); -end; -//------------------------------------------------------------------- - -procedure CutaRow; -var - row, i, j : integer; - buf : pchar; - -begin - row := OS3MainFrm.DataGrid.Row; - buf := OS3MainFrm.DataGrid.Rows[row].GetText; - ClipBoard.SetTextBuf(buf); -// TempStream.Clear; -// OS3MainFrm.DataGrid.Rows[row].SaveToStream(TempStream); - for i := 1 to NoVariables do OS3MainFrm.DataGrid.Cells[i,row] := ''; - if row < NoCases then - begin // move rows below up 1 - for i := row + 1 to NoCases do - for j := 1 to NoVariables do OS3MainFrm.DataGrid.Cells[j,i-1] := OS3MainFrm.DataGrid.Cells[j,i]; - for j := 1 to NoVariables do OS3MainFrm.DataGrid.Cells[j,NoCases] := ''; - end; - OS3MainFrm.DataGrid.RowCount := OS3MainFrm.DataGrid.RowCount - 1; - OS3MainFrm.RowEdit.Text := IntToStr(OS3MainFrm.DataGrid.RowCount-1); - NoCases := NoCases - 1; - OS3MainFrm.NoCasesEdit.Text := IntToStr(NoCases); - // renumber cases - for i := 1 to NoCases do OS3MainFrm.DataGrid.Cells[0,i] := 'CASE ' + IntToStr(i); -end; -//------------------------------------------------------------------- - -procedure CopyaRow; -var - row : integer; - buf : pchar; - -begin - row := OS3MainFrm.DataGrid.Row; - buf := OS3MainFrm.DataGrid.Rows[row].GetText; - ClipBoard.SetTextBuf(buf); -// TempStream.Clear; -// OS3MainFrm.DataGrid.Rows[row].SaveToStream(TempStream); -end; -//------------------------------------------------------------------- - -procedure PasteaRow; -var - row, i, j : integer; - buf : pchar; - strarray : array[0..100000] of char; - size : integer; - -begin - row := OS3MainFrm.DataGrid.Row; - OS3MainFrm.DataGrid.RowCount := OS3MainFrm.DataGrid.RowCount + 1; - OS3MainFrm.RowEdit.Text := IntToStr(OS3MainFrm.DataGrid.RowCount-1); - if row <= NoCases then // move all down before inserting - begin - for i := NoCases downto row do - for j := 1 to NoVariables do - OS3MainFrm.DataGrid.Cells[j,i+1] := OS3MainFrm.DataGrid.Cells[j,i]; - end; - OS3MainFrm.DataGrid.Row := row; - buf := strarray; - size := 100000; - ClipBoard.GetTextBuf(buf,size); - OS3MainFrm.DataGrid.Rows[row].SetText(buf); -// Use the following instead of the previous 4 if clipboard is unavailable -// TempStream.Position := 0; -// OS3MainFrm.DataGrid.Rows[row].LoadFromStream(TempStream); - NoCases := NoCases + 1; - OS3MainFrm.NoCasesEdit.Text := IntToStr(NoCases); - // renumber cases - for i := 1 to NoCases do OS3MainFrm.DataGrid.Cells[0,i] := 'CASE ' + IntToStr(i); - -end; -//------------------------------------------------------------------- - -procedure PrintDict; -var - outline: string; - i : integer; - -begin - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Alignment := taLeftJustify; - outline := OS3MainFrm.FileNameEdit.Text + ' VARIABLE DICTIONARY'; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - for i:= 0 to NoVariables do - begin - outline := ''; - outline := outline + '| ' + format('%9s',[DictionaryFrm.DictGrid.Cells[0,i]]); - outline := outline + ' | ' + format('%10s',[DictionaryFrm.DictGrid.Cells[1,i]]); - outline := outline + ' | ' + format('%15s',[DictionaryFrm.DictGrid.Cells[2,i]]); - outline := outline + ' | ' + format('%6s',[DictionaryFrm.DictGrid.Cells[3,i]]); - outline := outline + ' | ' + format('%6s',[DictionaryFrm.DictGrid.Cells[4,i]]); - outline := outline + ' | ' + format('%8s',[DictionaryFrm.DictGrid.Cells[5,i]]); - outline := outline + ' | ' + format('%7s',[DictionaryFrm.DictGrid.Cells[6,i]]); - outline := outline + ' | ' + format('%6s',[DictionaryFrm.DictGrid.Cells[7,i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; -end; -//------------------------------------------------------------------- - -procedure PrintData; -var - outline: string; - startcol: integer; - endcol: integer; - done: boolean; - cellstring: string; - i, j: integer; - -begin - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Alignment := taLeftJustify; - outline := OS3MainFrm.FileNameEdit.Text; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := IntToStr(NoCases); - outline := 'No. of Cases = ' + outline; - outline := outline + ', No. of Variables = '; - outline := outline + IntToStr(NoVariables); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - done := false; - startcol := 1; - while done = false do - begin - endcol := startcol + 7; - if endcol > NoVariables then endcol := NoVariables; - for i:= 0 to NoCases do - begin - outline := ''; - outline := format('%10s',[Trim(OS3MainFrm.DataGrid.Cells[0,i])]); - for j := startcol to endcol do - begin - cellstring := format('%10s',[Trim(OS3MainFrm.DataGrid.Cells[j,i])]); - outline := outline + cellstring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - if endcol = NoVariables then done := true else - begin - startcol := endcol+1; - OutPutFrm.RichEdit.Lines.Add(''); - end; - end; - OutPutFrm.ShowModal; -end; -//------------------------------------------------------------------- - -procedure OpenTabFile; -label getit; -var - TabFile : TextFile; - namestr : string; - astr : string; - achar : char; - respval : string; - labelsinc : boolean; - row, col : integer; - missopt : integer; - -begin - labelsinc := false; - // check for a currently open file - if NoVariables > 1 then - begin - ShowMessage('WARNING! Close (or Save and Close) the current work.'); - exit; - end; - respval := InputBox('LABELS?','Are variable labels included?','Y'); - if respval = 'Y' then labelsinc := true; - OS3MainFrm.OpenDialog1.Filter := 'Tab field files (*.tab)|*.TAB|Text files (*.txt)|*.TXT|All files (*.*)|*.*'; - OS3MainFrm.OpenDialog1.FilterIndex := 1; - OS3MainFrm.OpenDialog1.DefaultExt := 'TAB'; - if OS3MainFrm.OpenDialog1.Execute then - begin - NoCases := 0; - NoVariables := 0; - if labelsinc = true then row := 0 else row := 1; - col := 1; - AssignFile(TabFile, OS3MainFrm.OpenDialog1.FileName); { File selected in dialog box } - Reset(tabfile); - OS3MainFrm.FileNameEdit.Text := OS3MainFrm.OpenDialog1.FileName; - astr := ''; - while not EOF(TabFile) do - begin -getit: read(TabFile,achar); - if (ord(achar) < 9) or (ord(achar) > 127) then goto getit; - if ord(achar) = 13 then goto getit; // line feed character - if (ord(achar) <> 9) and (ord(achar) <> 10) then // check for tab or new line - begin - astr := astr + achar; - end - else if ord(achar) = 9 then // tab character found - begin - if (not labelsinc) and (row = 1) then // create a col. label - begin - namestr := 'VAR ' + IntToStr(col); - OS3MainFrm.DataGrid.Cells[col,0] := namestr; - end; - OS3MainFrm.DataGrid.Cells[col,row] := astr; - if col > NoVariables then - begin - NoVariables := col; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - end; - col := col + 1; - astr := ''; - if col >= OS3MainFrm.DataGrid.ColCount then - OS3MainFrm.DataGrid.ColCount := OS3MainFrm.DataGrid.ColCount + 1; - end - else //must be new line character - begin - if (not labelsinc) and (row = 1) then // create a col. label - begin - namestr := 'VAR ' + IntToStr(col); - OS3MainFrm.DataGrid.Cells[col,0] := namestr; - end; - OS3MainFrm.DataGrid.Cells[col,row] := astr; - astr := ''; - if col > NoVariables then - begin - NoVariables := col; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - end; - col := 1; - if row > NoCases then NoCases := row; - OS3MainFrm.DataGrid.Cells[0,row] := 'Case ' + IntToStr(row); - row := row + 1; - if row >= OS3MainFrm.DataGrid.RowCount then - OS3MainFrm.DataGrid.RowCount := OS3MainFrm.DataGrid.RowCount + 1; - end; - end; // END OF FILE - OS3MainFrm.NoCasesEdit.Text := IntToStr(NoCases); - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - CloseFile(TabFile); - if NoVariables >= OS3MainFrm.DataGrid.ColCount - 1 then - OS3MainFrm.DataGrid.ColCount := OS3MainFrm.DataGrid.ColCount + 1; - // set up the dictionary - DictionaryFrm.DictGrid.RowCount := NoVariables + 1; - DictionaryFrm.DictGrid.ColCount := 8; - for row := 1 to NoVariables do - begin - DictionaryFrm.DictGrid.Cells[0,row] := IntToStr(row); - DictionaryFrm.DictGrid.Cells[1,row] := 'VAR.' + IntToStr(row); - DictionaryFrm.DictGrid.Cells[2,row] := 'VARIABLE ' + IntToStr(row); - DictionaryFrm.DictGrid.Cells[3,row] := '8'; - DictionaryFrm.DictGrid.Cells[4,row] := 'F'; - DictionaryFrm.DictGrid.Cells[5,row] := '2'; - missopt := OptionsFrm.DefaultMiss; - case missopt of - 0 : DictionaryFrm.DictGrid.Cells[6,row] := ' '; - 1 : DictionaryFrm.DictGrid.Cells[6,row] := '.'; - 2 : DictionaryFrm.DictGrid.Cells[6,row] := '0'; - 3 : DictionaryFrm.DictGrid.Cells[6,row] := '99999'; - end; - DictionaryFrm.DictGrid.Cells[7,row] := 'L'; - end; - for row := 1 to NoVariables do - begin - DictionaryFrm.DictGrid.Cells[1,row] := OS3MainFrm.DataGrid.Cells[row,0]; - VarDefined[row] := true; - end; - OS3MainFrm.DataGrid.RowCount := (NoCases + 1); - OS3MainFrm.DataGrid.ColCount := (NoVariables + 1); - end; - GetTypes; -end; -//------------------------------------------------------------------- - -procedure SaveTabFile; -var - namestr : string; - cellvalue : string; - TabFile : TextFile; - i, j : integer; - -begin - OS3MainFrm.SaveDialog1.Filter := 'Tab field files (*.tab)|*.TAB|Text files (*.txt)|*.TXT|All files (*.*)|*.*'; - OS3MainFrm.SaveDialog1.FilterIndex := 1; - OS3MainFrm.SaveDialog1.DefaultExt := 'TAB'; - if OS3MainFrm.SaveDialog1.Execute then - begin - namestr := OS3MainFrm.SaveDialog1.FileName; - Assign(TabFile,namestr); - ReWrite(TabFile); - for i := 0 to NoCases do - begin - for j := 1 to NoVariables do //write all but last with a tab - begin - cellvalue := OS3MainFrm.DataGrid.Cells[j,i]; - if cellvalue = '' then cellvalue := '.'; - cellvalue := Trim(cellvalue); - if j < NoVariables then cellvalue := cellvalue + chr(9); - write(TabFile,cellvalue); - end; - writeln(TabFile); - end; - end; - CloseFile(TabFile); -end; -//------------------------------------------------------------------- - -function ValidValue(row, col : integer) : boolean; -var - valid: boolean; - xvalue: string; - cellstring : string; - -begin - valid := true; - if FilterOn = true then - begin - cellstring := Trim(OS3MainFrm.DataGrid.Cells[FilterCol,row]); - if cellstring = 'NO' then valid := false; - ValidValue := valid; - exit; - end; - xvalue := Trim(OS3MainFrm.DataGrid.Cells[col,row]); - if (xvalue = '') and (DictionaryFrm.DictGrid.Cells[4,col] <> 'S') - then valid := false; - if valid then // check for user-defined missing value - begin - if Trim(DictionaryFrm.DictGrid.Cells[6,col]) = xvalue then - valid := false; - end; - ValidValue := valid; -end; -//----------------------------------------------------------------------------- - -function IsFiltered(GridRow : integer) : boolean; -begin - if (FilterOn = true) and (Trim(OS3MainFrm.DataGrid.Cells[FilterCol,GridRow]) = 'NO') then - IsFiltered := true else IsFiltered := false; -end; -//------------------------------------------------------------------- - -procedure MATREAD(VAR a : DblDyneMat; - VAR norows : integer; - VAR nocols : integer; - VAR means : DblDyneVec; - VAR stddevs : DblDyneVec; - VAR NCases : integer; - VAR RowLabels : StrDyneVec; - VAR ColLabels : StrDyneVec; - filename : string); -var i, j : integer; - mat_file : TextFile; -begin - assign(mat_file,filename); - reset(mat_file); - readln(mat_file,norows); - readln(mat_file,nocols); - readln(mat_file,NCases); - for i := 1 to norows do readln(mat_file,RowLabels[i-1]); - for i := 1 to nocols do readln(mat_file,ColLabels[i-1]); - for i := 1 to nocols do readln(mat_file,means[i-1]); - for i := 1 to nocols do readln(mat_file,stddevs[i-1]); - for i := 1 to norows do - for j := 1 to nocols do - readln(mat_file,a[i-1,j-1]); - CloseFile(mat_file); -end; { matrix read routine } -//------------------------------------------------------------------- - -procedure MATSAVE(VAR a : DblDyneMat; - norows : integer; - nocols : integer; - VAR means : DblDyneVec; - VAR stddevs : DblDyneVec; - NCases : integer; - VAR RowLabels : StrDyneVec; - VAR ColLabels : StrDyneVec; - filename : string); -var i, j : integer; - mat_file : TextFile; -begin - assign(mat_file,filename); - rewrite(mat_file); - writeln(mat_file,norows); - writeln(mat_file,nocols); - writeln(mat_file,NCases); - for i := 1 to norows do writeln(mat_file,RowLabels[i-1]); - for i := 1 to nocols do writeln(mat_file,ColLabels[i-1]); - for i := 1 to nocols do writeln(mat_file,means[i-1]); - for i := 1 to nocols do writeln(mat_file,stddevs[i-1]); - for i := 1 to norows do - for j := 1 to nocols do - writeln(mat_file,a[i-1,j-1]); - CloseFile(mat_file); -end; { matrix save routine } -//------------------------------------------------------------------- - -procedure ReOpen(filename : string); -var - fileext : string; - -begin - DictLoaded := false; - - if FileExists(filename) then - begin - fileext := ExtractFileExt(filename); - OS3MainFrm.FileNameEdit.Text := filename; - OS3MainFrm.OpenDialog1.FileName := filename; - if fileext = '.CSV' then OpenCommaFile - else if fileext = '.TAB' then OpenTabFile - else if fileext = '.LAZ' then OpenOS2File - else if fileext = '.SSV' then OpenSpaceFile; - end - else begin - ShowMessage('ERROR! ' + filename + ' not found'); - exit; - end; -end; -//------------------------------------------------------------------- - -procedure OpenCommaFile; -label getit; -var - CommaFile : TextFile; - namestr : string; - astr : string; - achar : char; - respval : string; - labelsinc : boolean; - row, col : integer; - commachar : integer; - missopt : integer; -begin - commachar := ord(','); - labelsinc := false; - // check for a currently open file - if NoVariables > 1 then - begin - ShowMessage('WARNING! Close (or Save and Close) the current work.'); - exit; - end; - respval := InputBox('LABELS?','Are variable labels included?','Y'); - if respval = 'Y' then labelsinc := true; - OS3MainFrm.OpenDialog1.Filter := 'Comma field files (*.CSV)|*.CSV|Text files (*.txt)|*.TXT|All files (*.*)|*.*'; - OS3MainFrm.OpenDialog1.FilterIndex := 1; - OS3MainFrm.OpenDialog1.DefaultExt := 'CSV'; - if OS3MainFrm.OpenDialog1.Execute then - begin - NoCases := 0; - NoVariables := 0; - if labelsinc = true then row := 0 else row := 1; - col := 1; - AssignFile(CommaFile, OS3MainFrm.OpenDialog1.FileName); { File selected in dialog box } - Reset(CommaFile); - OS3MainFrm.FileNameEdit.Text := OS3MainFrm.OpenDialog1.FileName; - astr := ''; - while not EOF(CommaFile) do - begin -getit: read(CommaFile,achar); - if (ord(achar) < 9) or (ord(achar) > 127) then goto getit; - if ord(achar) = 13 then goto getit; // line feed character - if (ord(achar) <> commachar) and (ord(achar) <> 10) then // check for tab or new line - begin - astr := astr + achar; - end - else if ord(achar) = commachar then // tab character found - begin - if (not labelsinc) and (row = 1) then // create a col. label - begin - namestr := 'VAR ' + IntToStr(col); - OS3MainFrm.DataGrid.Cells[col,0] := namestr; - end; - OS3MainFrm.DataGrid.Cells[col,row] := astr; - if col > NoVariables then - begin - NoVariables := col; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - end; - col := col + 1; - astr := ''; - if col >= OS3MainFrm.DataGrid.ColCount then - OS3MainFrm.DataGrid.ColCount := OS3MainFrm.DataGrid.ColCount + 1; - end - else //must be new line character - begin - if (not labelsinc) and (row = 1) then // create a col. label - begin - namestr := 'VAR ' + IntToStr(col); - OS3MainFrm.DataGrid.Cells[col,0] := namestr; - end; - OS3MainFrm.DataGrid.Cells[col,row] := astr; - astr := ''; - if col > NoVariables then - begin - NoVariables := col; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - end; - col := 1; - if row > NoCases then NoCases := row; - OS3MainFrm.DataGrid.Cells[0,row] := 'Case ' + IntToStr(row); - row := row + 1; - if row >= OS3MainFrm.DataGrid.RowCount then - OS3MainFrm.DataGrid.RowCount := OS3MainFrm.DataGrid.RowCount + 1; - end; - end; // END OF FILE - OS3MainFrm.NoCasesEdit.Text := IntToStr(NoCases); - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - CloseFile(CommaFile); - if NoVariables > OS3MainFrm.DataGrid.ColCount - 1 then - OS3MainFrm.DataGrid.ColCount := OS3MainFrm.DataGrid.ColCount + 1; - end; - OS3MainFrm.DataGrid.RowCount := (NoCases + 1); - OS3MainFrm.DataGrid.ColCount := (NoVariables + 1); - // set up the dictionary - DictionaryFrm.DictGrid.RowCount := NoVariables + 1; - DictionaryFrm.DictGrid.ColCount := 8; - for row := 1 to NoVariables do - begin - DictionaryFrm.DictGrid.Cells[0,row] := IntToStr(row); - DictionaryFrm.DictGrid.Cells[1,row] := 'VAR.' + IntToStr(row); - DictionaryFrm.DictGrid.Cells[2,row] := 'VARIABLE ' + IntToStr(row); - DictionaryFrm.DictGrid.Cells[3,row] := '8'; - DictionaryFrm.DictGrid.Cells[4,row] := 'F'; - DictionaryFrm.DictGrid.Cells[5,row] := '2'; - missopt := OptionsFrm.DefaultMiss; - case missopt of - 0 : DictionaryFrm.DictGrid.Cells[6,row] := ' '; - 1 : DictionaryFrm.DictGrid.Cells[6,row] := '.'; - 2 : DictionaryFrm.DictGrid.Cells[6,row] := '0'; - 3 : DictionaryFrm.DictGrid.Cells[6,row] := '99999'; - end; - DictionaryFrm.DictGrid.Cells[7,row] := 'L'; - end; - for row := 1 to NoVariables do - begin - DictionaryFrm.DictGrid.Cells[1,row] := OS3MainFrm.DataGrid.Cells[row,0]; - VarDefined[row] := true; - end; - GetTypes; -end; -//------------------------------------------------------------------- - -procedure SaveCommaFile; -var - namestr : string; - cellvalue : string; - CommaFile : TextFile; - i, j : integer; - -begin - OS3MainFrm.SaveDialog1.Filter := 'Comma field files (*.CSV)|*.CSV|Text files (*.txt)|*.TXT|All files (*.*)|*.*'; - OS3MainFrm.SaveDialog1.FilterIndex := 1; - OS3MainFrm.SaveDialog1.DefaultExt := 'CSV'; - if OS3MainFrm.SaveDialog1.Execute then - begin - namestr := OS3MainFrm.SaveDialog1.FileName; - Assign(CommaFile,namestr); - ReWrite(CommaFile); - for i := 0 to NoCases do - begin - for j := 1 to NoVariables do //write all but last with a tab - begin - cellvalue := OS3MainFrm.DataGrid.Cells[j,i]; - if cellvalue = '' then cellvalue := '.'; - cellvalue := Trim(cellvalue); - if j < NoVariables then cellvalue := cellvalue + ','; - write(CommaFile,cellvalue); - end; - writeln(CommaFile); - end; - end; - CloseFile(CommaFile); -end; -//------------------------------------------------------------------- - -procedure OpenSpaceFile; -label getit; -var - SpaceFile : TextFile; - namestr : string; - astr : string; - achar : char; - respval : string; - labelsinc : boolean; - row, col : integer; - spacechar : integer; - spacefound : boolean; - missopt : integer; -begin - spacechar := ord(' '); - spacefound := false; - labelsinc := false; - // check for a currently open file - if NoVariables > 1 then - begin - ShowMessage('WARNING! Close (or Save and Close) the current work.'); - exit; - end; - respval := InputBox('LABELS?','Are variable labels included?','Y'); - if respval = 'Y' then labelsinc := true; - OS3MainFrm.OpenDialog1.Filter := 'Comma field files (*.SSV)|*.SSV|Text files (*.txt)|*.TXT|All files (*.*)|*.*'; - OS3MainFrm.OpenDialog1.FilterIndex := 1; - OS3MainFrm.OpenDialog1.DefaultExt := 'SSV'; - if OS3MainFrm.OpenDialog1.Execute then - begin - NoCases := 0; - NoVariables := 0; - if labelsinc = true then row := 0 else row := 1; - col := 1; - AssignFile(SpaceFile, OS3MainFrm.OpenDialog1.FileName); { File selected in dialog box } - Reset(SpaceFile); - OS3MainFrm.FileNameEdit.Text := OS3MainFrm.OpenDialog1.FileName; - astr := ''; - while not EOF(SpaceFile) do - begin -getit: read(SpaceFile,achar); - if ord(achar) <> spacechar then spacefound := false; - if (ord(achar) < 9) or (ord(achar) > 127) then goto getit; - if ord(achar) = 13 then goto getit; // line feed character - if (ord(achar) <> spacechar) and (ord(achar) <> 10) then // check for space or new line - begin - astr := astr + achar; - end - else if ord(achar) = spacechar then // space character found - begin - if spacefound then goto getit; // extra space - if length(astr) = 0 then goto getit; // leading space - spacefound := true; - if (not labelsinc) and (row = 1) then // create a col. label - begin - namestr := 'VAR ' + IntToStr(col); - OS3MainFrm.DataGrid.Cells[col,0] := namestr; - end; - OS3MainFrm.DataGrid.Cells[col,row] := astr; - if col > NoVariables then - begin - NoVariables := col; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - end; - col := col + 1; - astr := ''; - if col >= OS3MainFrm.DataGrid.ColCount then - OS3MainFrm.DataGrid.ColCount := OS3MainFrm.DataGrid.ColCount + 1; - end - else //must be new line character - begin - spacefound := false; - if (not labelsinc) and (row = 1) then // create a col. label - begin - namestr := 'VAR ' + IntToStr(col); - OS3MainFrm.DataGrid.Cells[col,0] := namestr; - end; - OS3MainFrm.DataGrid.Cells[col,row] := astr; - astr := ''; - if col > NoVariables then - begin - NoVariables := col; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - end; - col := 1; - if row > NoCases then NoCases := row; - OS3MainFrm.DataGrid.Cells[0,row] := 'Case ' + IntToStr(row); - row := row + 1; - if row >= OS3MainFrm.DataGrid.RowCount then - OS3MainFrm.DataGrid.RowCount := OS3MainFrm.DataGrid.RowCount + 1; - end; - end; // END OF FILE - OS3MainFrm.NoCasesEdit.Text := IntToStr(NoCases); - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - CloseFile(SpaceFile); - if NoVariables > OS3MainFrm.DataGrid.ColCount - 1 then - OS3MainFrm.DataGrid.ColCount := OS3MainFrm.DataGrid.ColCount + 1; - end; - OS3MainFrm.DataGrid.RowCount := (NoCases + 1); - OS3MainFrm.DataGrid.ColCount := (NoVariables + 1); - // set up the dictionary - DictionaryFrm.DictGrid.RowCount := NoVariables + 1; - DictionaryFrm.DictGrid.ColCount := 8; - for row := 1 to NoVariables do - begin - DictionaryFrm.DictGrid.Cells[0,row] := IntToStr(row); - DictionaryFrm.DictGrid.Cells[1,row] := 'VAR.' + IntToStr(row); - DictionaryFrm.DictGrid.Cells[2,row] := 'VARIABLE ' + IntToStr(row); - DictionaryFrm.DictGrid.Cells[3,row] := '8'; - DictionaryFrm.DictGrid.Cells[4,row] := 'F'; - DictionaryFrm.DictGrid.Cells[5,row] := '2'; - missopt := OptionsFrm.DefaultMiss; - case missopt of - 0 : DictionaryFrm.DictGrid.Cells[6,row] := ' '; - 1 : DictionaryFrm.DictGrid.Cells[6,row] := '.'; - 2 : DictionaryFrm.DictGrid.Cells[6,row] := '0'; - 3 : DictionaryFrm.DictGrid.Cells[6,row] := '99999'; - end; - DictionaryFrm.DictGrid.Cells[7,row] := 'L'; - end; - for row := 1 to NoVariables do - begin - DictionaryFrm.DictGrid.Cells[1,row] := OS3MainFrm.DataGrid.Cells[row,0]; - VarDefined[row] := true; - end; - GetTypes; -end; -//------------------------------------------------------------------- - -procedure SaveSpaceFile; -var - namestr : string; - cellvalue : string; - SpaceFile : TextFile; - i, j : integer; - -begin - OS3MainFrm.SaveDialog1.Filter := 'Comma field files (*.SSV)|*.SSV|Text files (*.txt)|*.TXT|All files (*.*)|*.*'; - OS3MainFrm.SaveDialog1.FilterIndex := 1; - OS3MainFrm.SaveDialog1.DefaultExt := 'SSV'; - if OS3MainFrm.SaveDialog1.Execute then - begin - namestr := OS3MainFrm.SaveDialog1.FileName; - Assign(SpaceFile,namestr); - ReWrite(SpaceFile); - for i := 0 to NoCases do - begin - for j := 1 to NoVariables do //write all but last with a tab - begin - cellvalue := OS3MainFrm.DataGrid.Cells[j,i]; - if cellvalue = '' then cellvalue := '.'; - cellvalue := Trim(cellvalue); - if j < NoVariables then cellvalue := cellvalue + ' '; - write(SpaceFile,cellvalue); - end; - writeln(SpaceFile); - end; - end; - CloseFile(SpaceFile); -end; -//------------------------------------------------------------------- - -procedure InsertRow; -var - i, j, row : integer; - -begin - row := OS3MainFrm.DataGrid.Row; - OS3MainFrm.DataGrid.RowCount := OS3MainFrm.DataGrid.RowCount + 1; - NoCases := OS3MainFrm.DataGrid.RowCount-1; - OS3MainFrm.NoCasesEdit.Text := IntToStr(NoCases); - for i := NoCases downto row+1 do - for j := 1 to NoVariables do - OS3MainFrm.DataGrid.Cells[j,i] := OS3MainFrm.DataGrid.Cells[j,i-1]; - for j := 1 to NoVariables do - OS3MainFrm.DataGrid.Cells[j,row] := ''; - for i := 1 to NoCases do - OS3MainFrm.DataGrid.Cells[0,i] := 'CASE ' + IntToStr(i); -end; -//------------------------------------------------------------------- - -procedure OpenOSData; -var - F : TextFile; - filename : string; - astr : string; - i, j : integer; - NRows, NCols : integer; -begin - DictLoaded := false; - OS3MainFrm.OpenDialog1.DefaultExt := '.OS2'; - OS3MainFrm.OpenDialog1.Filter := 'OpenStat2 (*.OS2)|*.OS2|Tab (*.tab)|*.TAB|space (*.SPC)|*.SPC|All files (*.*)|*.*'; - OS3MainFrm.OpenDialog1.FilterIndex := 1; - if OS3MainFrm.OpenDialog1.Execute then - begin - filename := OS3MainFrm.OpenDialog1.FileName; - OS3MainFrm.FileNameEdit.Text := filename; - AssignFile(F,filename); - Reset(F); - Readln(F,NRows); - readln(F,NCols); - - // initialize the dictionary grid for NCols of variables - // using the default formats (protective measure in case of - // a screw-up where the dictionary was damaged - DictionaryFrm.DictGrid.ColCount := 8; - DictionaryFrm.DictGrid.RowCount := NRows+1; - for i := 1 to NCols do - begin - DictionaryFrm.DictGrid.Cells[0,i] := IntToStr(i); - DictionaryFrm.DictGrid.Cells[1,i] := 'VAR.' + IntToStr(i); - DictionaryFrm.DictGrid.Cells[2,i] := 'VARIABLE ' + IntToStr(i); - DictionaryFrm.DictGrid.Cells[3,i] := '8'; - DictionaryFrm.DictGrid.Cells[4,i] := 'F'; - DictionaryFrm.DictGrid.Cells[5,i] := '2'; - DictionaryFrm.DictGrid.Cells[6,i] := ' '; - DictionaryFrm.DictGrid.Cells[7,i] := 'L'; - end; - DictionaryFrm.DescMemo.Clear; - - // Now read grid data - OS3MainFrm.DataGrid.RowCount := NRows + 1; - OS3MainFrm.DataGrid.ColCount := NCols + 1; - OS3MainFrm.NoCasesEdit.Text := IntToStr(NRows); - OS3MainFrm.NoVarsEdit.Text := IntToStr(NCols); - NoVariables := NCols; - NoCases := NRows; - for i := 0 to NRows do // note - labels in row 0 - begin - for j := 0 to NCols do // note - case no. in col. 0 - begin - Readln(F,astr); - OS3MainFrm.DataGrid.Cells[j,i] := astr; - end; - end; - CloseFile(F); - OS3MainFrm.DataGrid.Cells[0,0] := 'CASE/VAR.'; - - // copy column names into the data dictionary. - for i := 1 to NCols do - begin - DictionaryFrm.DictGrid.Cells[1,i] := OS3MainFrm.DataGrid.Cells[i,0]; - VarDefined[i] := true; - end; - DictionaryFrm.ShowModal; - FormatGrid; - end; -end; -//------------------------------------------------------------------- - -procedure ClearGrid; -var - i, j : integer; -begin - for i := 0 to NoCases do - begin - for j := 0 to NoVariables do OS3MainFrm.DataGrid.Cells[j,i] := ''; - end; - OS3MainFrm.NoVarsEdit.Text := '0'; - OS3MainFrm.NoCasesEdit.Text := '0'; - NoVariables := 0; - NoCases := 0; - OS3MainFrm.DataGrid.RowCount := 2; - OS3MainFrm.DataGrid.ColCount := 2; - OS3MainFrm.DataGrid.Cells[0,1] := 'CASE 1'; - OS3MainFrm.DataGrid.Cells[0,0] := 'CASE/VAR.'; - -end; - -procedure CopyIt; -VAR - rowstart, rowend,colstart, colend, i, j : integer; - buffer : string; - buf : string; - cellvalue : string; - bf : pchar; - -begin - Clipboard.Clear; - rowstart := OS3MainFrm.DataGrid.Selection.Top; - rowend := OS3MainFrm.DataGrid.Selection.Bottom; - colstart := OS3MainFrm.DataGrid.Selection.Left; - colend := OS3MainFrm.DataGrid.Selection.Right; - for i := rowstart to rowend do - begin - for j := colstart to colend do - begin - buf := buf + OS3MainFrm.DataGrid.Cells[j,i]; - buf := buf + chr(9); // add a tab - end; - buf := buf + chr(13); // add a newline - end; - bf := PChar(buf); - Clipboard.SetTextBuf(bf); -end; - -procedure PasteIt; -VAR - astring, cellstr : string; - col, howlong, startcol : integer; - startrows :integer; - header : string; - row, i, j : integer; - buf : pchar; - strarray : array[0..100000] of char; - size : integer; - achar : char; - pos : integer; - gridrowcnt : integer; - -begin - row := OS3MainFrm.DataGrid.Row; - col := OS3MainFrm.DataGrid.Col; - startrows := row; - startcol := col; - if NoVariables = 0 then NoVariables := 1; - if VarDefined[col] = false then - begin - DictionaryFrm.DictGrid.ColCount := 8; - DictionaryFrm.NewVar(col); - end; - -// OS3MainFrm.DataGrid.RowCount := OS3MainFrm.DataGrid.RowCount + 1; - OS3MainFrm.RowEdit.Text := IntToStr(OS3MainFrm.DataGrid.RowCount-1); - if row < NoCases then // move all down before inserting - begin - for i := NoCases downto row do - for j := 1 to NoVariables do - OS3MainFrm.DataGrid.Cells[j,i+1] := OS3MainFrm.DataGrid.Cells[j,i]; - end; - OS3MainFrm.DataGrid.Row := startrows; - OS3MainFrm.DataGrid.Col := startcol; - buf := strarray; - size := 100000; - - // get clipboard info - if (Clipboard.HasFormat(CF_TEXT)) then astring := Clipboard.AsText - else - begin - ShowMessage('The clipboard does not contain text.'); - exit; - end; - - buf := strarray; - size := 100000; - ClipBoard.GetTextBuf(buf,size); - // put buf in a string to parse - astring := buf; - howlong := Length(astring); - pos := 1; - cellstr := ''; - DictionaryFrm.DictGrid.ColCount := 8; - DictionaryFrm.DictGrid.RowCount := 2; - NoVariables := OS3MainFrm.DataGrid.ColCount - 1; - while howlong > 0 do - begin - achar := astring[pos]; - if ord(achar) = 9 then // tab character - end of a grid cell value - begin - OS3MainFrm.DataGrid.Cells[col,row] := cellstr; - col := col + 1; - if col >= OS3MainFrm.DataGrid.ColCount then - begin - OS3MainFrm.DataGrid.ColCount := col; - DictionaryFrm.NewVar(col); - NoVariables := col; - end; - cellstr := ''; - pos := pos + 1; - howlong := howlong - 1; - end; - if (ord(achar) = 10) then - begin - pos := pos + 1; - howlong := howlong - 1; - end; - if (ord(achar) = 12) then - begin - pos := pos + 1; - howlong := howlong - 1; - end; - if (ord(achar) = 13) then // return character or new line - end of a row - begin - OS3MainFrm.DataGrid.Cells[col,row] := cellstr; - col := startcol; - row := row + 1; - if row >= OS3MainFrm.DataGrid.RowCount then - begin - OS3MainFrm.DataGrid.RowCount := row+1; - OS3MainFrm.DataGrid.Cells[0,row] := 'Case ' + IntToStr(row); - end; - - cellstr := ''; - pos := pos + 1; - NoCases := row - 1; - howlong := howlong - 1; - end; - if ord(achar) > 13 then - begin - cellstr := cellstr + achar; - pos := pos + 1; - howlong := howlong - 1; - end; - end; - // delete extraneous row and column - OS3MainFrm.DataGrid.Col := NoVariables; -// DeleteCol; - OS3MainFrm.DataGrid.Row := NoCases+1; -// CutaRow; - OS3MainFrm.NoCasesEdit.Text := IntToStr(NoCases+1); - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); -end; - -procedure RowColSwap; -VAR - i, j, Rows, Cols : integer; - tempgrid : StrDyneMat; - astring : string; -begin - SetLength(tempgrid,NoCases+1,NoVariables+1); - Rows := NoCases; - Cols := NoVariables; - - // store grid values - for i := 0 to Rows do - begin - for j := 0 to Cols do - tempgrid[i,j] := OS3MainFrm.DataGrid.Cells[j,i]; - end; - - // clear grid - ClearGrid; - - // clear dictionary - DictionaryFrm.DictGrid.ColCount := 8; - DictionaryFrm.DictGrid.RowCount := 1; - OS3MainFrm.FileNameEdit.Text := ''; - - // create new variables = NoCases - NoVariables := 0; - for i := 1 to Rows do - begin - OS3MainFrm.DataGrid.ColCount := i; - DictionaryFrm.NewVar(i); - NoVariables := i; - end; - - // store previous grid columns into the grid rows - OS3MainFrm.DataGrid.RowCount := Cols+1; - for i := 0 to Cols do - begin - for j := 1 to Rows do - begin - OS3MainFrm.DataGrid.Cells[j,i] := tempgrid[j,i]; - end; - end; - for i := 1 to Cols do // OS3MainFrm.DataGrid.Cells[0,i] := 'CASE ' + IntToStr(i); - OS3MainFrm.DataGrid.Cells[0,i] := tempgrid[0,i]; - // finish up - NoCases := Cols; - OS3MainFrm.FileNameEdit.Text := 'SwapTemp'; - OS3MainFrm.NoCasesEdit.Text := IntToStr(Cols); - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - tempgrid := nil; -end; - -procedure MatToGrid(VAR mat : DblDyneMat; nsize : integer); -VAR - i, j : integer; -Begin - // clear grid - ClearGrid; - - // clear dictionary - DictionaryFrm.DictGrid.ColCount := 8; - DictionaryFrm.DictGrid.RowCount := 1; - OS3MainFrm.FileNameEdit.Text := ''; - - // create new variables = NoCases - NoVariables := 0; - for i := 1 to nsize do - begin - OS3MainFrm.DataGrid.ColCount := i; - DictionaryFrm.NewVar(i); - NoVariables := i; - end; - // store matrix into the grid rows - OS3MainFrm.DataGrid.RowCount := nsize + 1; - for i := 0 to nsize-1 do - begin - for j := 0 to nsize-1 do - begin - OS3MainFrm.DataGrid.Cells[i+1,j+1] := FloatToStr(mat[i,j]); - end; - end; - for i := 1 to nsize do - begin - OS3MainFrm.DataGrid.Cells[0,i] := 'VAR ' + IntToStr(i); - OS3MainFrm.DataGrid.Cells[i,0] := 'VAR ' + IntToStr(i); - end; - // finish up - NoCases := nsize; - OS3MainFrm.FileNameEdit.Text := 'MATtemp.LAZ'; - OS3MainFrm.NoCasesEdit.Text := IntToStr(nsize); - OS3MainFrm.NoVarsEdit.Text := IntToStr(nsize); -end; - -procedure GetTypes; -VAR - row,col,pos,i,j,strlong,intplaces,decplaces : integer; - cellstr, newcell : string; - strtype, inttype, floattype,isnumber : boolean; - comma, period, achar : char; - X : double; -begin - isnumber := false; - strtype := false; - inttype := false; - floattype := false; - comma := ','; - period := '.'; - - for col := 1 to NoVariables do - begin - for row := 1 to NoCases do - begin - cellstr := trim(OS3MainFrm.DataGrid.Cells[col,row]); - strlong := length(cellstr); - // check for a number type - for i := 1 to strlong do - if (ord(cellstr[i]) < 44) or (ord(cellstr[i]) > 57 ) or (ord(cellstr[i]) = 47 ) then - begin - isnumber := false; - break; - end - else isnumber := true; - if isnumber = false then strtype := true; - if isnumber = true then - begin // determine if an integer or float number - for i := 1 to strlong do - begin - achar := cellstr[i]; - if achar = period then floattype := true; - if achar = comma then floattype := true; - if floattype = true then - begin - pos := i; - break; - end; - end; - if floattype = false then inttype := true; - if floattype = true then - begin // get no. of decimal positions - intplaces := pos - 1; - decplaces := strlong - pos - 1; - end; - end; // end if it is a number - end; // end of row search - // set dictionary values - if strtype = true then - begin - DictionaryFrm.DictGrid.Cells[4,col] := 'S'; - DictionaryFrm.DictGrid.Cells[3,col] := IntToStr(strlong); - DictionaryFrm.DictGrid.Cells[5,col] := '0'; - end; - if inttype = true then - begin - DictionaryFrm.DictGrid.Cells[4,col] := 'I'; - DictionaryFrm.DictGrid.Cells[3,col] := IntToStr(strlong); - DictionaryFrm.DictGrid.Cells[5,col] := '0'; - end; - if floattype = true then - begin - DictionaryFrm.DictGrid.Cells[4,col] := 'F'; - DictionaryFrm.DictGrid.Cells[3,col] := IntToStr(strlong); - DictionaryFrm.DictGrid.Cells[5,col] := IntToStr(decplaces); - end; - isnumber := false; - strtype := false; - inttype := false; - floattype := false; - end; // end of column loop -end; - -function StringsToInt(strcol: integer; VAR newcol : integer; prompt : boolean) : boolean; -label endit; -VAR - i, j, k, NoStrings, col, ngridcols : integer; - String1, String2, TempString, response : string; - dup, savenewcol, strtype : boolean; - StrGrps, OneString : StrDyneVec; - -begin -{ Procedure to convert group strings into group integers with the option - to save the integers in the grid } - strtype := false; - savenewcol := true; - - // Get memory for arrays - SetLength(StrGrps,NoCases+1); - SetLength(OneString,NoCases+1); - - // check to see if strcol is a string variable - if DictionaryFrm.DictGrid.Cells[4,strcol] = 'S' then strtype :=true - else begin - ShowMessage('ERROR! Column selected is not defined as a string variable'); - goto endit; - end; - - // read the strings into the StrGrps array - for i := 1 to NoCases do - StrGrps[i-1] := trim(OS3MainFrm.DataGrid.Cells[strcol,i]); - - // sort the StrGrps array - for i := 0 to NoCases - 1 do - begin - for j := i + 1 to NoCases - 1 do - begin - if (StrGrps[i] > StrGrps[j]) then // swap - begin - TempString := StrGrps[i]; - StrGrps[i] := StrGrps[j]; - StrGrps[j] := TempString; - end; - end; - end; - - // copy unique strings into the OneString array - TempString := StrGrps[0]; - OneString[0] := TempString; - NoStrings := 0; - for i := 1 to NoCases do - begin - if (StrGrps[i] <> TempString) then // a new string found - begin - for k := 0 to NoCases - 1 do // check for existing - begin - if (TempString = OneString[k]) then dup := true - else dup := false; - end; - if (dup = false) then - begin - NoStrings := NoStrings + 1; - OneString[NoStrings] := StrGrps[i]; - TempString := StrGrps[i]; - end; - end; - end; - - // make a new variable in the grid for the group integers - DictionaryFrm.NewVar(NoVariables+1); - DictionaryFrm.DictGrid.Cells[1,NoVariables] := 'GroupCode'; - OS3MainFrm.DataGrid.Cells[NoVariables,0] := 'GroupCode'; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - - DictionaryFrm.DictGrid.Cells[4,NoVariables] := 'I'; - DictionaryFrm.DictGrid.Cells[5,NoVariables] := '0'; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - newcol := NoVariables; - - // oompare case strings with OneString values and use index + 1 - // for the group code in the data grid - for i := 1 to NoCases do - begin - TempString := OS3MainFrm.DataGrid.Cells[strcol,i]; - for j := 0 to NoCases-1 do - begin - if (TempString = OneString[j]) then - OS3MainFrm.DataGrid.Cells[NoVariables,i] := IntToStr(j+1); - end; - end; - - // see if user wants to save the generated group codes - if (prompt = true) then - begin - response := InputBox('Save Code in Grid?','Y or N','Y'); - if ((response = 'n') or (response = 'N')) then - savenewcol := false; - end; - - // clean up memory -endit: OneString := nil; - StrGrps := nil; - - // return results - StringsToInt := savenewcol; -end; - - - -end. diff --git a/applications/lazstats/source_orig/datasmoothunit.lfm b/applications/lazstats/source_orig/datasmoothunit.lfm deleted file mode 100644 index ae1d28f23..000000000 --- a/applications/lazstats/source_orig/datasmoothunit.lfm +++ /dev/null @@ -1,202 +0,0 @@ -object SmoothDataForm: TSmoothDataForm - Left = 288 - Height = 360 - Top = 161 - Width = 378 - Caption = 'Data Smoothing' - ClientHeight = 360 - ClientWidth = 378 - OnShow = ResetBtnClick - LCLVersion = '0.9.30' - object Memo1: TMemo - Left = 6 - Height = 79 - Top = 9 - Width = 362 - Lines.Strings = ( - 'This procedure creates a new variable with the label "smoothed"' - 'with data points created from the selected variable. Each new' - 'data point is the average of the immediately preceding value and ' - 'the immediately following value. New values are therefore ' - 'created for the 2nd, 3rd,...,and N-1 values. The process can be' - 'repeated multiple times.' - ) - TabOrder = 0 - end - object Label2: TLabel - Left = 8 - Height = 16 - Top = 96 - Width = 48 - Caption = 'Variables' - ParentColor = False - end - object VarList: TListBox - Left = 8 - Height = 225 - Top = 112 - Width = 166 - ItemHeight = 0 - MultiSelect = True - TabOrder = 1 - end - object InBtn: TBitBtn - Left = 184 - Height = 39 - Top = 112 - Width = 38 - 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 = 2 - end - object OutBtn: TBitBtn - Left = 184 - Height = 39 - Top = 160 - Width = 38 - 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 = 3 - end - object VariableEdit: TEdit - Left = 232 - Height = 23 - Top = 139 - Width = 132 - TabOrder = 4 - Text = 'VariableEdit' - end - object Label1: TLabel - Left = 185 - Height = 16 - Top = 214 - Width = 101 - Caption = 'Repeat smoothing ' - ParentColor = False - end - object RepeatEdit: TEdit - Left = 296 - Height = 23 - Top = 207 - Width = 31 - TabOrder = 5 - Text = 'RepeatEdit' - end - object Label3: TLabel - Left = 331 - Height = 16 - Top = 214 - Width = 33 - Caption = 'times.' - ParentColor = False - end - object ResetBtn: TButton - Left = 282 - Height = 32 - Top = 264 - Width = 80 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 6 - end - object CancelBtn: TButton - Left = 184 - Height = 30 - Top = 304 - Width = 82 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 7 - end - object ComputeBtn: TButton - Left = 282 - Height = 30 - Top = 304 - Width = 80 - Caption = 'Compute' - ModalResult = 1 - OnClick = ComputeBtnClick - TabOrder = 8 - end - object HelpBtn: TButton - Tag = 119 - Left = 184 - Height = 32 - Top = 264 - Width = 82 - Caption = 'Help' - TabOrder = 9 - end -end diff --git a/applications/lazstats/source_orig/datasmoothunit.lrs b/applications/lazstats/source_orig/datasmoothunit.lrs deleted file mode 100644 index 4041a50df..000000000 --- a/applications/lazstats/source_orig/datasmoothunit.lrs +++ /dev/null @@ -1,136 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TSmoothDataForm','FORMDATA',[ - 'TPF0'#15'TSmoothDataForm'#14'SmoothDataForm'#4'Left'#3' '#1#6'Height'#3'h'#1 - +#3'Top'#3#161#0#5'Width'#3'z'#1#7'Caption'#6#14'Data Smoothing'#12'ClientHei' - +'ght'#3'h'#1#11'ClientWidth'#3'z'#1#6'OnShow'#7#13'ResetBtnClick'#10'LCLVers' - +'ion'#6#6'0.9.30'#0#5'TMemo'#5'Memo1'#4'Left'#2#6#6'Height'#2'O'#3'Top'#2#9#5 - +'Width'#3'j'#1#13'Lines.Strings'#1#6'?This procedure creates a new variable ' - +'with the label "smoothed"'#6'>with data points created from the selected va' - +'riable. Each new'#6'Adata point is the average of the immediately precedin' - +'g value and '#6';the immediately following value. New values are therefore' - +' '#6'@created for the 2nd, 3rd,...,and N-1 values. The process can be'#6#24 - +'repeated multiple times.'#0#8'TabOrder'#2#0#0#0#6'TLabel'#6'Label2'#4'Left' - +#2#8#6'Height'#2#16#3'Top'#2'`'#5'Width'#2'0'#7'Caption'#6#9'Variables'#11'P' - +'arentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#8#6'Height'#3#225#0#3'To' - +'p'#2'p'#5'Width'#3#166#0#10'ItemHeight'#2#0#11'MultiSelect'#9#8'TabOrder'#2 - +#1#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#184#0#6'Height'#2''''#3'Top'#2'p'#5'Wid' - +'th'#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 - ,'InBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#184#0#6'Heig' - +'ht'#2''''#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#11'OutBtnClick'#8'TabOrde' - +'r'#2#3#0#0#5'TEdit'#12'VariableEdit'#4'Left'#3#232#0#6'Height'#2#23#3'Top'#3 - +#139#0#5'Width'#3#132#0#8'TabOrder'#2#4#4'Text'#6#12'VariableEdit'#0#0#6'TLa' - +'bel'#6'Label1'#4'Left'#3#185#0#6'Height'#2#16#3'Top'#3#214#0#5'Width'#2'e'#7 - +'Caption'#6#17'Repeat smoothing '#11'ParentColor'#8#0#0#5'TEdit'#10'RepeatEd' - +'it'#4'Left'#3'('#1#6'Height'#2#23#3'Top'#3#207#0#5'Width'#2#31#8'TabOrder'#2 - +#5#4'Text'#6#10'RepeatEdit'#0#0#6'TLabel'#6'Label3'#4'Left'#3'K'#1#6'Height' - +#2#16#3'Top'#3#214#0#5'Width'#2'!'#7'Caption'#6#6'times.'#11'ParentColor'#8#0 - +#0#7'TButton'#8'ResetBtn'#4'Left'#3#26#1#6'Height'#2' '#3'Top'#3#8#1#5'Width' - +#2'P'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#6#0 - +#0#7'TButton'#9'CancelBtn'#4'Left'#3#184#0#6'Height'#2#30#3'Top'#3'0'#1#5'Wi' - +'dth'#2'R'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#7#0#0#7 - +'TButton'#10'ComputeBtn'#4'Left'#3#26#1#6'Height'#2#30#3'Top'#3'0'#1#5'Width' - ,#2'P'#7'Caption'#6#7'Compute'#11'ModalResult'#2#1#7'OnClick'#7#15'ComputeBtn' - +'Click'#8'TabOrder'#2#8#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2'w'#4'Left'#3#184#0 - +#6'Height'#2' '#3'Top'#3#8#1#5'Width'#2'R'#7'Caption'#6#4'Help'#8'TabOrder'#2 - +#9#0#0#0 -]); diff --git a/applications/lazstats/source_orig/datasmoothunit.pas b/applications/lazstats/source_orig/datasmoothunit.pas deleted file mode 100644 index 82914a46e..000000000 --- a/applications/lazstats/source_orig/datasmoothunit.pas +++ /dev/null @@ -1,122 +0,0 @@ -unit DataSmoothUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, Globals, functionsLib, OutPutUnit, DataProcs, - DictionaryUnit, contexthelpunit; - -type - - { TSmoothDataForm } - - TSmoothDataForm = class(TForm) - CancelBtn: TButton; - HelpBtn: TButton; - Label3: TLabel; - ComputeBtn: TButton; - RepeatEdit: TEdit; - Label1: TLabel; - ResetBtn: TButton; - VariableEdit: TEdit; - InBtn: TBitBtn; - Label2: TLabel; - Memo1: TMemo; - OutBtn: TBitBtn; - VarList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure InBtnClick(Sender: TObject); - procedure OutBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - SmoothDataForm: TSmoothDataForm; - -implementation - -{ TSmoothDataForm } - -procedure TSmoothDataForm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - RepeatEdit.Text := '1'; - VariableEdit.Text := ''; - InBtn.Visible := true; - OutBtn.Visible := false; -end; - -procedure TSmoothDataForm.InBtnClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - VariableEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - InBtn.Visible := false; - OutBtn.Visible := true; -end; - -procedure TSmoothDataForm.ComputeBtnClick(Sender: TObject); -VAR - DataPts, OutPts : DblDyneVec; - value, dblvalue, avg : double; - VarCol, result, N, Reps, intvalue, i, j, col : integer; - varlabel, strvalue : string; -begin - N := NoCases; - SetLength(DataPts,N); - SetLength(OutPts,N); - Reps := StrToInt(RepeatEdit.Text); - varlabel := VariableEdit.Text; - for i := 1 to NoVariables do - if varlabel = OS3MainFrm.DataGrid.Cells[i,0] then VarCol := i; - for i := 1 to N do - begin - value := StrToFloat(OS3MainFrm.DataGrid.Cells[VarCol,i]); - DataPts[i-1] := value; - end; - // repeat smoothing for Reps times - OutPts[0] := DataPts[0]; - OutPts[N-1] := DataPts[N-1]; - for j := 1 to Reps do - begin - for i := 1 to N-2 do - begin - avg := (DataPts[i-1] + DataPts[i] + DataPts[i+1]) / 3.0; - OutPts[i] := avg; - end; - if j < Reps then - for i := 0 to N-1 do DataPts[i] := OutPts[i]; - end; - // Create a new variable and copy smoothed data into it. - strvalue := 'Smoothed'; - col := NoVariables + 1; - DictionaryFrm.NewVar(NoVariables+1); - DictionaryFrm.DictGrid.Cells[1,NoVariables] := strvalue; - OS3MainFrm.DataGrid.Cells[NoVariables,0] := strvalue; - for i := 0 to N-1 do OS3MainFrm.DataGrid.Cells[col,i+1] := FloatToStr(OutPts[i]); -end; - -procedure TSmoothDataForm.OutBtnClick(Sender: TObject); -begin - VarList.Items.Add(VariableEdit.Text); - VariableEdit.Text := ''; - OutBtn.Visible := false; - InBtn.Visible := true; -end; - -initialization - {$I datasmoothunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/dbldeclineunit.lfm b/applications/lazstats/source_orig/dbldeclineunit.lfm deleted file mode 100644 index 146c91aed..000000000 --- a/applications/lazstats/source_orig/dbldeclineunit.lfm +++ /dev/null @@ -1,128 +0,0 @@ -object DblDeclineFrm: TDblDeclineFrm - Left = 120 - Height = 214 - Top = 126 - Width = 300 - Caption = 'Double Declining Value' - ClientHeight = 214 - ClientWidth = 300 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 9 - Height = 14 - Top = 16 - Width = 52 - Caption = 'Initial Cost' - ParentColor = False - end - object Label2: TLabel - Left = 9 - Height = 14 - Top = 56 - Width = 77 - Caption = 'Life Expectancy' - ParentColor = False - end - object Label3: TLabel - Left = 9 - Height = 14 - Top = 96 - Width = 48 - Caption = 'End Value' - ParentColor = False - end - object Label4: TLabel - Left = 9 - Height = 14 - Top = 136 - Width = 94 - Caption = 'Depreciation Period' - ParentColor = False - end - object Label5: TLabel - Left = 9 - Height = 14 - Top = 176 - Width = 108 - Caption = 'Obtained Depreciation' - ParentColor = False - end - object CostEdit: TEdit - Left = 121 - Height = 21 - Top = 9 - Width = 60 - TabOrder = 0 - Text = 'CostEdit' - end - object LifeEdit: TEdit - Left = 120 - Height = 21 - Top = 49 - Width = 60 - TabOrder = 1 - Text = 'Edit1' - end - object EndEdit: TEdit - Left = 120 - Height = 21 - Top = 89 - Width = 60 - TabOrder = 2 - Text = 'Edit1' - end - object PeriodEdit: TEdit - Left = 120 - Height = 21 - Top = 129 - Width = 60 - TabOrder = 3 - Text = 'Edit1' - end - object DeprecEdit: TEdit - Left = 120 - Height = 21 - Top = 169 - Width = 60 - TabOrder = 4 - Text = 'Edit1' - end - object ResetBtn: TButton - Left = 200 - Height = 29 - Top = 56 - Width = 80 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 5 - end - object ComputeBtn: TButton - Left = 200 - Height = 29 - Top = 104 - Width = 80 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 6 - end - object ReturnBtn: TButton - Left = 200 - Height = 29 - Top = 152 - Width = 80 - Caption = 'Return' - ModalResult = 1 - TabOrder = 7 - end - object HelpBtn: TButton - Tag = 118 - Left = 200 - Height = 32 - Top = 9 - Width = 82 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 8 - end -end diff --git a/applications/lazstats/source_orig/dbldeclineunit.lrs b/applications/lazstats/source_orig/dbldeclineunit.lrs deleted file mode 100644 index c1338a9b0..000000000 --- a/applications/lazstats/source_orig/dbldeclineunit.lrs +++ /dev/null @@ -1,32 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TDblDeclineFrm','FORMDATA',[ - 'TPF0'#14'TDblDeclineFrm'#13'DblDeclineFrm'#4'Left'#2'x'#6'Height'#3#214#0#3 - +'Top'#2'~'#5'Width'#3','#1#7'Caption'#6#22'Double Declining Value'#12'Client' - +'Height'#3#214#0#11'ClientWidth'#3','#1#6'OnShow'#7#8'FormShow'#10'LCLVersio' - +'n'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#9#6'Height'#2#14#3'Top'#2 - +#16#5'Width'#2'4'#7'Caption'#6#12'Initial Cost'#11'ParentColor'#8#0#0#6'TLab' - +'el'#6'Label2'#4'Left'#2#9#6'Height'#2#14#3'Top'#2'8'#5'Width'#2'M'#7'Captio' - +'n'#6#15'Life Expectancy'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#2 - +#9#6'Height'#2#14#3'Top'#2'`'#5'Width'#2'0'#7'Caption'#6#9'End Value'#11'Par' - +'entColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#2#9#6'Height'#2#14#3'Top'#3#136 - +#0#5'Width'#2'^'#7'Caption'#6#19'Depreciation Period'#11'ParentColor'#8#0#0#6 - +'TLabel'#6'Label5'#4'Left'#2#9#6'Height'#2#14#3'Top'#3#176#0#5'Width'#2'l'#7 - +'Caption'#6#21'Obtained Depreciation'#11'ParentColor'#8#0#0#5'TEdit'#8'CostE' - +'dit'#4'Left'#2'y'#6'Height'#2#21#3'Top'#2#9#5'Width'#2'<'#8'TabOrder'#2#0#4 - +'Text'#6#8'CostEdit'#0#0#5'TEdit'#8'LifeEdit'#4'Left'#2'x'#6'Height'#2#21#3 - +'Top'#2'1'#5'Width'#2'<'#8'TabOrder'#2#1#4'Text'#6#5'Edit1'#0#0#5'TEdit'#7'E' - +'ndEdit'#4'Left'#2'x'#6'Height'#2#21#3'Top'#2'Y'#5'Width'#2'<'#8'TabOrder'#2 - +#2#4'Text'#6#5'Edit1'#0#0#5'TEdit'#10'PeriodEdit'#4'Left'#2'x'#6'Height'#2#21 - +#3'Top'#3#129#0#5'Width'#2'<'#8'TabOrder'#2#3#4'Text'#6#5'Edit1'#0#0#5'TEdit' - +#10'DeprecEdit'#4'Left'#2'x'#6'Height'#2#21#3'Top'#3#169#0#5'Width'#2'<'#8'T' - +'abOrder'#2#4#4'Text'#6#5'Edit1'#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#200#0#6 - +'Height'#2#29#3'Top'#2'8'#5'Width'#2'P'#7'Caption'#6#5'Reset'#7'OnClick'#7#13 - +'ResetBtnClick'#8'TabOrder'#2#5#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#200#0 - +#6'Height'#2#29#3'Top'#2'h'#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 - +#200#0#6'Height'#2#29#3'Top'#3#152#0#5'Width'#2'P'#7'Caption'#6#6'Return'#11 - +'ModalResult'#2#1#8'TabOrder'#2#7#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2'v'#4'Le' - +'ft'#3#200#0#6'Height'#2' '#3'Top'#2#9#5'Width'#2'R'#7'Caption'#6#4'Help'#7 - +'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#8#0#0#0 -]); diff --git a/applications/lazstats/source_orig/dbldeclineunit.pas b/applications/lazstats/source_orig/dbldeclineunit.pas deleted file mode 100644 index e8b617b4f..000000000 --- a/applications/lazstats/source_orig/dbldeclineunit.pas +++ /dev/null @@ -1,125 +0,0 @@ -unit DblDeclineUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Math, contexthelpunit; - -type - - { TDblDeclineFrm } - - TDblDeclineFrm = class(TForm) - HelpBtn: TButton; - ResetBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - CostEdit: TEdit; - LifeEdit: TEdit; - EndEdit: TEdit; - PeriodEdit: TEdit; - DeprecEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - Label5: TLabel; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - function DoubleDecliningBalance(Cost, Salvage: Extended; Life, Period: Integer): Extended; - private - { private declarations } - public - { public declarations } - end; - -var - DblDeclineFrm: TDblDeclineFrm; - -implementation - -{ TDblDeclineFrm } - -procedure TDblDeclineFrm.ResetBtnClick(Sender: TObject); -begin - CostEdit.Text := ''; - LifeEdit.Text := ''; - EndEdit.Text := ''; - PeriodEdit.Text := ''; - DeprecEdit.Text := ''; -end; - -procedure TDblDeclineFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TDblDeclineFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TDblDeclineFrm.ComputeBtnClick(Sender: TObject); -VAR - Depreciation, Cost, Salvage : Extended; - Life, Period : integer; -begin - Cost := StrToFloat(CostEdit.Text); - Salvage := StrToFloat(EndEdit.Text); - Life := StrToInt(LifeEdit.Text); - Period := StrToInt(PeriodEdit.Text); - Depreciation := DoubleDecliningBalance(Cost, Salvage, Life, Period); - DeprecEdit.Text := FloatToStr(Depreciation); -end; - -function TDblDeclineFrm.DoubleDecliningBalance(Cost, Salvage: Extended; Life, Period: Integer): Extended; -{ dv := cost * (1 - 2/life)**(period - 1) - DDB = (2/life) * dv - if DDB > dv - salvage then DDB := dv - salvage - if DDB < 0 then DDB := 0 -} -var - DepreciatedVal, Factor: Extended; -begin - Result := 0; - if (Period < 1) or (Life < Period) or (Life < 1) or (Cost <= Salvage) then - Exit; - - {depreciate everything in period 1 if life is only one or two periods} - if ( Life <= 2 ) then - begin - if ( Period = 1 ) then - DoubleDecliningBalance:=Cost-Salvage - else - DoubleDecliningBalance:=0; {all depreciation occurred in first period} - exit; - end; - Factor := 2.0 / Life; - - DepreciatedVal := Cost * IntPower((1.0 - Factor), Period - 1); - {DepreciatedVal is Cost-(sum of previous depreciation results)} - - Result := Factor * DepreciatedVal; - {Nominal computed depreciation for this period. The rest of the - function applies limits to this nominal value. } - - {Only depreciate until total depreciation equals cost-salvage.} - if Result > DepreciatedVal - Salvage then - Result := DepreciatedVal - Salvage; - - {No more depreciation after salvage value is reached. This is mostly a nit. - If Result is negative at this point, it's very close to zero.} - if Result < 0.0 then - Result := 0.0; -end; - -initialization - {$I dbldeclineunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/descriptiveunit.lfm b/applications/lazstats/source_orig/descriptiveunit.lfm deleted file mode 100644 index 71a27fb91..000000000 --- a/applications/lazstats/source_orig/descriptiveunit.lfm +++ /dev/null @@ -1,241 +0,0 @@ -object DescriptiveFrm: TDescriptiveFrm - Left = 175 - Height = 388 - Top = 91 - Width = 434 - Caption = 'Descriptive Statistics' - ClientHeight = 388 - ClientWidth = 434 - OnShow = FormShow - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 200 - Height = 16 - Top = 279 - Width = 175 - Caption = 'Confidence Interval for the Mean' - ParentColor = False - end - object Label2: TLabel - Left = 8 - Height = 16 - Top = 8 - Width = 48 - Caption = 'Variables' - ParentColor = False - end - object Label3: TLabel - Left = 239 - Height = 16 - Top = 8 - Width = 45 - Caption = 'Selected' - ParentColor = False - end - object VarList: TListBox - Left = 8 - Height = 225 - Top = 24 - Width = 166 - ItemHeight = 0 - MultiSelect = True - TabOrder = 0 - end - object SelList: TListBox - Left = 239 - Height = 225 - Top = 24 - Width = 188 - ItemHeight = 0 - TabOrder = 1 - end - object CIEdit: TEdit - Left = 379 - Height = 23 - Top = 272 - Width = 41 - TabOrder = 2 - Text = '95.0' - end - object ResetBtn: TButton - Left = 312 - Height = 32 - Top = 304 - Width = 80 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 3 - end - object CancelBtn: TButton - Left = 200 - Height = 30 - Top = 344 - Width = 82 - Caption = 'Cancel' - ModalResult = 2 - OnClick = CancelBtnClick - TabOrder = 4 - end - object OKBtn: TButton - Left = 312 - Height = 30 - Top = 344 - Width = 80 - Caption = 'Continue' - ModalResult = 1 - OnClick = OKBtnClick - TabOrder = 5 - end - object InBtn: TBitBtn - Left = 184 - Height = 39 - Top = 24 - Width = 38 - 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 = 6 - end - object OutBtn: TBitBtn - Left = 184 - Height = 39 - Top = 72 - Width = 38 - 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 = 7 - end - object AllBtn: TBitBtn - Left = 184 - Height = 39 - Top = 136 - Width = 38 - Caption = 'ALL' - NumGlyphs = 0 - OnClick = AllBtnClick - TabOrder = 8 - end - object GroupBox1: TGroupBox - Left = 12 - Height = 88 - Top = 264 - Width = 162 - Caption = 'Options' - ClientHeight = 70 - ClientWidth = 158 - TabOrder = 9 - object CaseChk: TCheckBox - Left = 7 - Height = 19 - Top = 2 - Width = 115 - Caption = 'Casewise Deletion' - TabOrder = 0 - end - object CheckBox1: TCheckBox - Left = 7 - Height = 19 - Top = 16 - Width = 101 - Caption = 'z Scores to Grid' - TabOrder = 1 - end - object PcntileChk: TCheckBox - Left = 7 - Height = 19 - Top = 33 - Width = 138 - Caption = 'Show Percentile Ranks' - TabOrder = 2 - end - object AltQrtilesChk: TCheckBox - Left = 6 - Height = 19 - Top = 50 - Width = 116 - Caption = 'Show All Quartiles' - TabOrder = 3 - end - end - object HelpBtn: TButton - Tag = 119 - Left = 200 - Height = 32 - Top = 304 - Width = 82 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 10 - end -end diff --git a/applications/lazstats/source_orig/descriptiveunit.lrs b/applications/lazstats/source_orig/descriptiveunit.lrs deleted file mode 100644 index 3846f176d..000000000 --- a/applications/lazstats/source_orig/descriptiveunit.lrs +++ /dev/null @@ -1,141 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TDescriptiveFrm','FORMDATA',[ - 'TPF0'#15'TDescriptiveFrm'#14'DescriptiveFrm'#4'Left'#3#175#0#6'Height'#3#132 - +#1#3'Top'#2'['#5'Width'#3#178#1#7'Caption'#6#22'Descriptive Statistics'#12'C' - +'lientHeight'#3#132#1#11'ClientWidth'#3#178#1#6'OnShow'#7#8'FormShow'#10'LCL' - +'Version'#6#6'0.9.30'#0#6'TLabel'#6'Label1'#4'Left'#3#200#0#6'Height'#2#16#3 - +'Top'#3#23#1#5'Width'#3#175#0#7'Caption'#6' Confidence Interval for the Mean' - +#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#16#3'Top' - +#2#8#5'Width'#2'0'#7'Caption'#6#9'Variables'#11'ParentColor'#8#0#0#6'TLabel' - +#6'Label3'#4'Left'#3#239#0#6'Height'#2#16#3'Top'#2#8#5'Width'#2'-'#7'Caption' - +#6#8'Selected'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#8#6'He' - +'ight'#3#225#0#3'Top'#2#24#5'Width'#3#166#0#10'ItemHeight'#2#0#11'MultiSelec' - +'t'#9#8'TabOrder'#2#0#0#0#8'TListBox'#7'SelList'#4'Left'#3#239#0#6'Height'#3 - +#225#0#3'Top'#2#24#5'Width'#3#188#0#10'ItemHeight'#2#0#8'TabOrder'#2#1#0#0#5 - +'TEdit'#6'CIEdit'#4'Left'#3'{'#1#6'Height'#2#23#3'Top'#3#16#1#5'Width'#2')'#8 - +'TabOrder'#2#2#4'Text'#6#4'95.0'#0#0#7'TButton'#8'ResetBtn'#4'Left'#3'8'#1#6 - +'Height'#2' '#3'Top'#3'0'#1#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#200 - +#0#6'Height'#2#30#3'Top'#3'X'#1#5'Width'#2'R'#7'Caption'#6#6'Cancel'#11'Moda' - +'lResult'#2#2#7'OnClick'#7#14'CancelBtnClick'#8'TabOrder'#2#4#0#0#7'TButton' - +#5'OKBtn'#4'Left'#3'8'#1#6'Height'#2#30#3'Top'#3'X'#1#5'Width'#2'P'#7'Captio' - +'n'#6#8'Continue'#11'ModalResult'#2#1#7'OnClick'#7#10'OKBtnClick'#8'TabOrder' - +#2#5#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#184#0#6'Height'#2''''#3'Top'#2#24#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#255#255#255#0#255#255 - +#255#0#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#6#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#184 - +#0#6'Height'#2''''#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#11'OutBtnClick'#8'TabOrde' - +'r'#2#7#0#0#7'TBitBtn'#6'AllBtn'#4'Left'#3#184#0#6'Height'#2''''#3'Top'#3#136 - +#0#5'Width'#2'&'#7'Caption'#6#3'ALL'#9'NumGlyphs'#2#0#7'OnClick'#7#11'AllBtn' - +'Click'#8'TabOrder'#2#8#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#12#6'Height' - +#2'X'#3'Top'#3#8#1#5'Width'#3#162#0#7'Caption'#6#7'Options'#12'ClientHeight' - +#2'F'#11'ClientWidth'#3#158#0#8'TabOrder'#2#9#0#9'TCheckBox'#7'CaseChk'#4'Le' - ,'ft'#2#7#6'Height'#2#19#3'Top'#2#2#5'Width'#2's'#7'Caption'#6#17'Casewise De' - +'letion'#8'TabOrder'#2#0#0#0#9'TCheckBox'#9'CheckBox1'#4'Left'#2#7#6'Height' - +#2#19#3'Top'#2#16#5'Width'#2'e'#7'Caption'#6#16'z Scores to Grid'#8'TabOrder' - +#2#1#0#0#9'TCheckBox'#10'PcntileChk'#4'Left'#2#7#6'Height'#2#19#3'Top'#2'!'#5 - +'Width'#3#138#0#7'Caption'#6#21'Show Percentile Ranks'#8'TabOrder'#2#2#0#0#9 - +'TCheckBox'#13'AltQrtilesChk'#4'Left'#2#6#6'Height'#2#19#3'Top'#2'2'#5'Width' - +#2't'#7'Caption'#6#18'Show All Quartiles'#8'TabOrder'#2#3#0#0#0#7'TButton'#7 - +'HelpBtn'#3'Tag'#2'w'#4'Left'#3#200#0#6'Height'#2' '#3'Top'#3'0'#1#5'Width'#2 - +'R'#7'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#10#0#0#0 -]); diff --git a/applications/lazstats/source_orig/descriptiveunit.pas b/applications/lazstats/source_orig/descriptiveunit.pas deleted file mode 100644 index e2787c3a7..000000000 --- a/applications/lazstats/source_orig/descriptiveunit.pas +++ /dev/null @@ -1,404 +0,0 @@ -unit DescriptiveUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, ExtCtrls, Buttons, MainUnit, Globals, functionsLib, OutPutUnit, DataProcs, - DictionaryUnit, contexthelpunit; - - -type - - { TDescriptiveFrm } - - TDescriptiveFrm = class(TForm) - CaseChk: TCheckBox; - CheckBox1: TCheckBox; - AltQrtilesChk: TCheckBox; - HelpBtn: TButton; - Label2: TLabel; - Label3: TLabel; - PcntileChk: TCheckBox; - GroupBox1: TGroupBox; - InBtn: TBitBtn; - OutBtn: TBitBtn; - AllBtn: TBitBtn; - ResetBtn: TButton; - CancelBtn: TButton; - OKBtn: TButton; - CIEdit: TEdit; - Label1: TLabel; - VarList: TListBox; - SelList: TListBox; - procedure AllBtnClick(Sender: TObject); - procedure CancelBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure InBtnClick(Sender: TObject); - procedure OKBtnClick(Sender: TObject); - procedure OutBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - - private - { private declarations } - sum, variance, stddev, value, mean, min, max, range, skew, prob, df, CI : double; - kurtosis, z, semean, seskew, sekurtosis, deviation, devsqr, M2, M3, M4 : double; - Q1, Q2, Q3, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q22, Q23, Q24, Q25, Q26 : double; - Q27, Q28, Q32, Q33, Q34, Q35, Q36, Q37, Q38, IQrange : double; - ncases, noselected : integer; - cellstring, gridstring, outline : string; - selected : IntDyneVec; - - public - { public declarations } - end; - -var - DescriptiveFrm: TDescriptiveFrm; - -implementation - -{ TDescriptiveFrm } - -procedure TDescriptiveFrm.ResetBtnClick(Sender: TObject); -var - i : integer; - -begin - VarList.Clear; - SelList.Clear; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - CaseChk.Checked := false; - OutBtn.Enabled := false; - CaseChk.Checked := false; - Selected := nil; -end; - -procedure TDescriptiveFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TDescriptiveFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TDescriptiveFrm.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 - SelList.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 TDescriptiveFrm.OKBtnClick(Sender: TObject); -var - i, j, k, m : integer; - num, den, cases : double; - values, pcntrank : DblDyneVec; - -begin - noselected := SelList.Items.Count; - SetLength(Selected,noselected); - // Get selected variables - for i := 1 to noselected do - begin - cellstring := SelList.Items.Strings[i-1]; - for j := 1 to NoVariables do - if cellstring = OS3MainFrm.DataGrid.Cells[j,0] then selected[i-1] := j; - end; - - OutPutFrm.RichEdit.Clear; -// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify; - OutPutFrm.RichEdit.Lines.Add('DISTRIBUTION PARAMETER ESTIMATES'); - OutPutFrm.RichEdit.Lines.Add(''); - SetLength(Values,NoCases); - SetLength(pcntrank,NoCases); - for j := 1 to noselected do - begin - deviation := 0.0; - devsqr := 0.0; - M2 := 0.0; - M3 := 0.0; - M4 := 0.0; - sum := 0.0; - variance := 0.0; - stddev := 0.0; - range := 0.0; - skew := 0.0; - kurtosis := 0.0; - ncases := 0; - df := 0.0; - seskew := 0.0; - kurtosis := 0.0; - sekurtosis := 0.0; - k := selected[j-1]; - CI := StrToFloat(CIEdit.Text) / 100.0; - prob := CI; - CI := (1.0 - CI) / 2.0; - CI := 1.0 - CI; - - if CheckBox1.Checked then // add a new column to the grid - begin - gridstring := OS3MainFrm.DataGrid.Cells[k,0]; - gridstring := Gridstring + 'z'; - DictionaryFrm.NewVar(NoVariables+1); - DictionaryFrm.DictGrid.Cells[1,NoVariables] := gridstring; - OS3MainFrm.DataGrid.Cells[NoVariables,0] := gridstring; - end; - - // Accumulate sums of squares, sums, etc. for variable j - min := 1.0e20; - max := -1.0e20; - for i := 1 to NoCases do - begin - if not GoodRecord(i,noselected,selected) then continue; - if CaseChk.Checked then - begin - if not ValidValue(i,selected[j-1]) then continue; - end - else if not GoodRecord(i,noselected,selected) then continue; - value := StrToFloat(OS3MainFrm.DataGrid.Cells[k,i]); - ncases := ncases + 1; - values[ncases-1] := value; - df := df + 1.0; - sum := sum + value; - variance := variance + (value * value); - if (value < min) then min := value; - if (value > max) then max := value; - end; -{ for i := 0 to ncases - 1 do // this is for debugging - begin - outline := format('Value = %8.3f',[values[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; } - if ncases > 0 then - begin - mean := sum / ncases; - range := max - min; - end; - if ncases > 1 then - begin - variance := variance - (sum * sum) / ncases; - variance := variance / (ncases - 1); - stddev := sqrt(variance); - semean := sqrt(variance / ncases); - if ncases < 120 then CI := semean * inverset(CI,df) - else CI := semean * inversez(CI); - end; - if variance = 0.0 then - begin - cellstring := OS3MainFrm.DataGrid.Cells[k,0]; - ShowMessage('No Variability in '+ cellstring + ' variable - ending analysis'); - exit; - end; - if ncases > 3 then // obtain skew, kurtosis and z scores - begin - for i := 1 to NoCases do - begin - if CaseChk.Checked then - begin - if not ValidValue(i,selected[j-1]) then continue; - end - else if not GoodRecord(i,noselected,selected) then continue; - value := StrToFloat(OS3MainFrm.DataGrid.Cells[k,i]); - if stddev > 0.0 then - begin - deviation := value - mean; - devsqr := deviation * deviation; - M2 := M2 + devsqr; - M3 := M3 + (deviation * devsqr); - M4 := M4 + (devsqr * devsqr); - z := (value - mean) / stddev; - if CheckBox1.Checked then - begin - cellstring := format('%8.5f',[z]); - OS3MainFrm.DataGrid.Cells[NoVariables,i] := cellstring; - end; - end; - end; - if ncases > 2 then - begin - skew := (ncases * M3) / - ((ncases - 1) * (ncases - 2) * stddev * variance); - cases := ncases; - num := 6.0 * cases * (cases - 1.0); - den := (cases - 2.0) * (cases + 1.0) * (cases + 3.0); - seskew := sqrt(num / den); - end; - if ncases > 3 then - begin - kurtosis := (ncases * (ncases + 1) * M4) - - (3 * M2 * M2 * (ncases - 1)); - kurtosis := kurtosis / - ( (ncases - 1) * (ncases - 2) * (ncases - 3) * (variance * variance) ); - sekurtosis := sqrt( (4.0 * (ncases * ncases - 1) * (seskew * seskew) ) / - ( (ncases - 3) * (ncases + 5) ) ); - end; - end; - // output results for the kth variable - cellstring := OS3MainFrm.DataGrid.Cells[k,0]; - outline := format('%s (N = %d) Sum = %14.3f',[cellstring,ncases,sum]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Mean = %10.3f Variance = %10.3f Std.Dev. = %10.3f', - [mean, variance, stddev]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Std.Error of Mean = %10.3f',[semean]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%4.2f percent Confidence Interval for the mean = %8.3f to %8.3f', - [prob * 100.0, mean - CI, mean + CI]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Range = %10.3f Minimum = %10.3f Maximum = %10.3f', - [range, min, max]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Skewness = %10.3f Std. Error of Skew = %10.3f', - [skew, seskew]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Kurtosis = %10.3f Std. Error Kurtosis = %10.3f', - [kurtosis, sekurtosis]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - if ncases > 4 then // get percentiles and quartiles - begin - // get percentile ranks - if pcntilechk.Checked then PRank(k,pcntrank); - - // sort values and get quartiles - for i := 0 to ncases - 2 do - begin - for m := i + 1 to ncases -1 do - begin - if values[i] > values[m] then - begin - value := values[i]; - values[i] := values[m]; - values[m] := value; - end; - end; - end; - Q1 := Quartiles(2,0.25,ncases,values); - Q2 := Quartiles(2,0.5,ncases,values); - Q3 := Quartiles(2,0.75,ncases,values); - IQrange := Q3 - Q1; - outline := format('First Quartile = %8.3f',[Q1]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Median = %8.3f',[Q2]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Third Quartile = %8.3f',[Q3]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Interquartile range = %8.3f',[IQrange]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - end; - if (AltQrtilesChk.Checked) then - begin - OutPutFrm.RichEdit.Lines.Add('Alternative Methods for Obtaining Quartiles'); - OutPutFrm.RichEdit.Lines.Add(' Method 1 2 3 4 5 6 7 8'); - OutPutFrm.RichEdit.Lines.Add('Pcntile'); - Q1 := Quartiles(1,0.25,ncases,values); - Q12 := Quartiles(2,0.25,ncases,values); - Q13 := Quartiles(3,0.25,ncases,values); - Q14 := Quartiles(4,0.25,ncases,values); - Q15 := Quartiles(5,0.25,ncases,values); - Q16 := Quartiles(6,0.25,ncases,values); - Q17 := Quartiles(7,0.25,ncases,values); - Q18 := Quartiles(8,0.25,ncases,values); - outline := format('Q1 %8.3f%8.3f%8.3f%8.3f%8.3f%8.3f%8.3f%8.3f', - [Q1,Q12,Q13,Q14,Q15,Q16,Q17,Q18]); - OutPutFrm.RichEdit.Lines.Add(outline); - Q2 := Quartiles(1,0.5,ncases,values); - Q22 := Quartiles(2,0.5,ncases,values); - Q23 := Quartiles(3,0.5,ncases,values); - Q24 := Quartiles(4,0.5,ncases,values); - Q25 := Quartiles(5,0.5,ncases,values); - Q26 := Quartiles(6,0.5,ncases,values); - Q27 := Quartiles(7,0.5,ncases,values); - Q28 := Quartiles(8,0.5,ncases,values); - outline := format('Q2 %8.3f%8.3f%8.3f%8.3f%8.3f%8.3f%8.3f%8.3f', - [Q2,Q22,Q23,Q24,Q25,Q26,Q27,Q28]); - OutPutFrm.RichEdit.Lines.Add(outline); - Q3 := Quartiles(1,0.75,ncases,values); - Q32 := Quartiles(2,0.75,ncases,values); - Q33 := Quartiles(3,0.75,ncases,values); - Q34 := Quartiles(4,0.75,ncases,values); - Q35 := Quartiles(5,0.75,ncases,values); - Q36 := Quartiles(6,0.75,ncases,values); - Q37 := Quartiles(7,0.75,ncases,values); - Q38 := Quartiles(8,0.75,ncases,values); - outline := format('Q3 %8.3f%8.3f%8.3f%8.3f%8.3f%8.3f%8.3f%8.3f', - [Q3,Q32,Q33,Q34,Q35,Q36,Q37,Q38]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('NOTES:'); - OutPutFrm.RichEdit.Lines.Add('Method 1 is the weighted average at X[np] where n is no. of cases, p is percentile / 100'); - OutPutFrm.RichEdit.Lines.Add('Method 2 is the weighted average at X[(n+1)p] This is used in this program.'); - OutPutFrm.RichEdit.Lines.Add('Method 3 is the empirical distribution function.'); - OutPutFrm.RichEdit.Lines.Add('Method 4 is called the empirical distribution function - averaging.'); - OutPutFrm.RichEdit.Lines.Add('Method 5 is called the empirical distribution function = Interpolation.'); - OutPutFrm.RichEdit.Lines.Add('Method 6 is the closest observation method.'); - OutPutFrm.RichEdit.Lines.Add('Method 7 is from the TrueBasic Statistics Graphics Toolkit.'); - OutPutFrm.RichEdit.Lines.Add('Method 8 was used in an older Microsoft Excel version.'); - OutPutFrm.RichEdit.Lines.Add('See the internet site http://www.xycoon.com/ for the above.'); - OutPutFrm.RichEdit.Lines.Add('========================================================'); - OutPutFrm.RichEdit.Lines.Add(''); - end; // end of experimental alternatives - end; // next j variable - OutPutFrm.ShowModal; - Selected := nil; - Values := nil; - pcntrank := nil; -end; - -procedure TDescriptiveFrm.OutBtnClick(Sender: TObject); -var - index: integer; - -begin - index := SelList.ItemIndex; - VarList.Items.Add(SelList.Items.Strings[index]); - SelList.Items.Delete(index); - InBtn.Enabled := true; - if SelList.Items.Count = 0 then OutBtn.Enabled := false; -end; - -procedure TDescriptiveFrm.CancelBtnClick(Sender: TObject); -begin - selected := nil; -end; - -procedure TDescriptiveFrm.AllBtnClick(Sender: TObject); -var - i : integer; - -begin - for i := 0 to VarList.Items.Count-1 do - SelList.Items.Add(VarList.Items.Strings[i]); - VarList.Clear; - OutBtn.Enabled := true; - InBtn.Enabled := false; -end; - -initialization - {$I descriptiveunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/dictionaryunit.lfm b/applications/lazstats/source_orig/dictionaryunit.lfm deleted file mode 100644 index c1206740f..000000000 --- a/applications/lazstats/source_orig/dictionaryunit.lfm +++ /dev/null @@ -1,145 +0,0 @@ -object DictionaryFrm: TDictionaryFrm - Left = 95 - Height = 477 - Top = 97 - Width = 656 - Caption = 'Dictionary Form' - ClientHeight = 477 - ClientWidth = 656 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 8 - Height = 14 - Top = 15 - Width = 310 - Caption = 'Note: Pressing the down arrow key will add a new row (variable)' - ParentColor = False - end - object DictGrid: TStringGrid - Left = 0 - Height = 249 - Top = 88 - Width = 642 - ColCount = 7 - Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing, goRowSelect, goSmoothScroll] - RowCount = 2 - TabOrder = 0 - OnClick = DictGridClick - OnKeyDown = DictGridKeyDown - end - object Panel1: TPanel - Left = 0 - Height = 47 - Top = 430 - Width = 656 - Align = alBottom - ClientHeight = 47 - ClientWidth = 656 - TabOrder = 1 - object Label2: TLabel - Left = 8 - Height = 14 - Top = -382 - Width = 251 - Caption = 'Note: Do NOT delete a row if the data column exists' - ParentColor = False - end - object ReturnBtn: TButton - Left = 536 - Height = 32 - Top = 2 - Width = 93 - Caption = 'OK' - ModalResult = 1 - OnClick = ReturnBtnClick - TabOrder = 0 - end - object RowInstBtn: TButton - Left = 96 - Height = 32 - Top = 2 - Width = 111 - Caption = 'Insert Row Before' - OnClick = RowInstBtnClick - TabOrder = 1 - end - end - object CancelBtn: TButton - Left = 432 - Height = 32 - Top = 432 - Width = 93 - Caption = 'Cancel' - ModalResult = 2 - OnClick = CancelBtnClick - TabOrder = 2 - end - object TypeCombo: TComboBox - Left = 408 - Height = 21 - Top = 8 - Width = 106 - ItemHeight = 13 - ItemIndex = 0 - Items.Strings = ( - 'Type' - '(I)nteger' - '(F)loating Point' - '(S)tring' - '(M)oney' - '(D)ate' - ) - OnSelect = TypeComboSelect - Style = csDropDownList - TabOrder = 3 - Text = 'Type' - end - object JustCombo: TComboBox - Left = 536 - Height = 21 - Top = 8 - Width = 104 - ItemHeight = 13 - ItemIndex = 0 - Items.Strings = ( - 'Justification' - '(L)eft' - '(C)enter' - '(R)ight' - ) - OnSelect = JustComboSelect - Style = csDropDownList - TabOrder = 4 - Text = 'Justification' - end - object DescMemo: TMemo - Left = 6 - Height = 82 - Top = 342 - Width = 632 - Lines.Strings = ( - 'Memo2' - ) - TabOrder = 5 - end - object HelpBtn: TButton - Tag = 120 - Left = 8 - Height = 32 - Top = 40 - Width = 82 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 6 - end - object RowDelBtn: TButton - Left = 6 - Height = 32 - Top = 432 - Width = 82 - Caption = 'Delete Row' - OnClick = RowDelBtnClick - TabOrder = 7 - end -end diff --git a/applications/lazstats/source_orig/dictionaryunit.lrs b/applications/lazstats/source_orig/dictionaryunit.lrs deleted file mode 100644 index 101c3c8dd..000000000 --- a/applications/lazstats/source_orig/dictionaryunit.lrs +++ /dev/null @@ -1,38 +0,0 @@ -LazarusResources.Add('TDictionaryFrm','FORMDATA',[ - 'TPF0'#14'TDictionaryFrm'#13'DictionaryFrm'#4'Left'#2'_'#6'Height'#3#221#1#3 - +'Top'#2'a'#5'Width'#3#144#2#7'Caption'#6#15'Dictionary Form'#12'ClientHeight' - +#3#221#1#11'ClientWidth'#3#144#2#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#8 - +'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'#2#14#3'Top'#2#15#5'Wi' - +'dth'#3'6'#1#7'Caption'#6'?Note: Pressing the down arrow key will add a new ' - +'row (variable)'#11'ParentColor'#8#0#0#11'TStringGrid'#8'DictGrid'#4'Left'#2 - +#0#6'Height'#3#249#0#3'Top'#2'X'#5'Width'#3#130#2#8'ColCount'#2#7#7'Options' - +#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#13 - +'goRangeSelect'#9'goEditing'#11'goRowSelect'#14'goSmoothScroll'#0#8'RowCount' - +#2#2#8'TabOrder'#2#0#7'OnClick'#7#13'DictGridClick'#9'OnKeyDown'#7#15'DictGr' - +'idKeyDown'#0#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6'Height'#2'/'#3'Top'#3#174#1 - +#5'Width'#3#144#2#5'Align'#7#8'alBottom'#12'ClientHeight'#2'/'#11'ClientWidt' - +'h'#3#144#2#8'TabOrder'#2#1#0#6'TLabel'#6'Label2'#4'Left'#2#8#6'Height'#2#14 - +#3'Top'#3#130#254#5'Width'#3#251#0#7'Caption'#6'3Note: Do NOT delete a row i' - +'f the data column exists'#11'ParentColor'#8#0#0#7'TButton'#9'ReturnBtn'#4'L' - +'eft'#3#24#2#6'Height'#2' '#3'Top'#2#2#5'Width'#2']'#7'Caption'#6#2'OK'#11'M' - +'odalResult'#2#1#7'OnClick'#7#14'ReturnBtnClick'#8'TabOrder'#2#0#0#0#7'TButt' - +'on'#10'RowInstBtn'#4'Left'#2'`'#6'Height'#2' '#3'Top'#2#2#5'Width'#2'o'#7'C' - +'aption'#6#17'Insert Row Before'#7'OnClick'#7#15'RowInstBtnClick'#8'TabOrder' - +#2#1#0#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#176#1#6'Height'#2' '#3'Top'#3 - +#176#1#5'Width'#2']'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#7'OnClick'#7 - +#14'CancelBtnClick'#8'TabOrder'#2#2#0#0#9'TComboBox'#9'TypeCombo'#4'Left'#3 - +#152#1#6'Height'#2#21#3'Top'#2#8#5'Width'#2'j'#10'ItemHeight'#2#13#9'ItemInd' - +'ex'#2#0#13'Items.Strings'#1#6#4'Type'#6#9'(I)nteger'#6#16'(F)loating Point' - +#6#8'(S)tring'#6#7'(M)oney'#6#6'(D)ate'#0#8'OnSelect'#7#15'TypeComboSelect'#5 - +'Style'#7#14'csDropDownList'#8'TabOrder'#2#3#4'Text'#6#4'Type'#0#0#9'TComboB' - +'ox'#9'JustCombo'#4'Left'#3#24#2#6'Height'#2#21#3'Top'#2#8#5'Width'#2'h'#10 - +'ItemHeight'#2#13#9'ItemIndex'#2#0#13'Items.Strings'#1#6#13'Justification'#6 - +#6'(L)eft'#6#8'(C)enter'#6#7'(R)ight'#0#8'OnSelect'#7#15'JustComboSelect'#5 - +'Style'#7#14'csDropDownList'#8'TabOrder'#2#4#4'Text'#6#13'Justification'#0#0 - +#5'TMemo'#8'DescMemo'#4'Left'#2#6#6'Height'#2'R'#3'Top'#3'V'#1#5'Width'#3'x' - +#2#13'Lines.Strings'#1#6#5'Memo2'#0#8'TabOrder'#2#5#0#0#7'TButton'#7'HelpBtn' - +#3'Tag'#2'x'#4'Left'#2#8#6'Height'#2' '#3'Top'#2'('#5'Width'#2'R'#7'Caption' - +#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#6#0#0#7'TButton'#9'Ro' - +'wDelBtn'#4'Left'#2#6#6'Height'#2' '#3'Top'#3#176#1#5'Width'#2'R'#7'Caption' - +#6#10'Delete Row'#7'OnClick'#7#14'RowDelBtnClick'#8'TabOrder'#2#7#0#0#0 -]); diff --git a/applications/lazstats/source_orig/dictionaryunit.pas b/applications/lazstats/source_orig/dictionaryunit.pas deleted file mode 100644 index 16805f865..000000000 --- a/applications/lazstats/source_orig/dictionaryunit.pas +++ /dev/null @@ -1,352 +0,0 @@ -unit DictionaryUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Grids, ExtCtrls, Globals, OptionsUnit, contexthelpunit; - -type - - { TDictionaryFrm } - - TDictionaryFrm = class(TForm) - HelpBtn: TButton; - Label2: TLabel; - DescMemo: TMemo; - RowDelBtn: TButton; - RowInstBtn: TButton; - JustCombo: TComboBox; - TypeCombo: TComboBox; - Label1: TLabel; - ReturnBtn: TButton; - CancelBtn: TButton; - DictGrid: TStringGrid; - Panel1: TPanel; - procedure CancelBtnClick(Sender: TObject); - procedure DictGridClick(Sender: TObject); - procedure DictGridKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState - ); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure JustComboClick(Sender: TObject); - procedure JustComboSelect(Sender: TObject); - procedure ReturnBtnClick(Sender: TObject); - procedure RowDelBtnClick(Sender: TObject); - procedure RowInstBtnClick(Sender: TObject); - procedure Defaults(Sender: TObject; row : integer); - procedure TypeComboSelect(Sender: TObject); - - private - { private declarations } - public - { public declarations } - procedure DelRow(row : integer); - procedure NewVar(row : integer); - procedure PasteVar(row : integer); - procedure CopyVar(row : integer); - end; - -var - DictionaryFrm: TDictionaryFrm; - -implementation - -{ TDictionaryFrm } - -uses MainUnit; - -procedure TDictionaryFrm.ReturnBtnClick(Sender: TObject); -var - i, j, count : integer; - NoRows : integer; -begin - // determine number of rows with complete data - NoRows := 0; - for i := 1 to DictGrid.RowCount - 1 do - begin - count := 0; - for j := 1 to 5 do - begin - if DictGrid.Cells[j,i] <> '' then count := count + 1; - end; - if count > 4 then NoRows := NoRows + 1; - end; - if NoRows < DictGrid.RowCount - 1 then - begin - ShowMessage('Error! A definition entry for one or more variables missing!'); - DictGrid.SetFocus; - exit; - end; - - // Place short labels in main grid - OS3MainFrm.DataGrid.ColCount := NoRows + 1; - for i := 1 to NoRows do OS3MainFrm.DataGrid.Cells[i,0] := DictGrid.Cells[1,i]; - - // Make sure integers have a 0 for decimals - for i := 1 to NoRows do - if DictGrid.Cells[4,i] = 'I' then DictGrid.Cells[5,i] := '0'; - OS3MainFrm.NoVarsEdit.Text := IntToStr(OS3MainFrm.DataGrid.ColCount-1); - if OS3MainFrm.FileNameEdit.Text = '' then exit; -end; - -procedure TDictionaryFrm.RowDelBtnClick(Sender: TObject); -var - index : integer; - i, j : integer; - -begin - index := DictGrid.Row; - if index = DictGrid.RowCount-1 then // last row - begin - for i := 0 to 7 do DictGrid.Cells[i,index] := ''; - DictGrid.RowCount := DictGrid.RowCount - 1; - VarDefined[index] := false; - end - else - begin // move lines below current lines up and delete last - for i := index+1 to DictGrid.RowCount - 1 do - begin - for j := 0 to 6 do DictGrid.Cells[j,i-1] := DictGrid.Cells[j,i]; - VarDefined[i-1] := VarDefined[i]; - end; - VarDefined[DictGrid.RowCount-1] := false; - DictGrid.RowCount := DictGrid.RowCount - 1; - for i := 1 to DictGrid.RowCount - 1 do // renumber rows - DictGrid.Cells[0,i] := IntToStr(i); - end; -end; - -procedure TDictionaryFrm.RowInstBtnClick(Sender: TObject); -var - index : integer; - i, j : integer; - -begin - index := DictGrid.Row; - DictGrid.RowCount := DictGrid.RowCount + 1; // add new row to grid - // move all rows from index down 1 - for i := DictGrid.RowCount - 1 downto index+1 do - begin - for j := 1 to 6 do - begin - DictGrid.Cells[j,i] := DictGrid.Cells[j,i-1]; - end; - VarDefined[i] := VarDefined[i-1]; - end; - - // place default values in new row - Defaults(Self,index); - VarDefined[index] := true; -end; - - -procedure TDictionaryFrm.FormShow(Sender: TObject); -begin - DictGrid.ColCount := 8; - if NoVariables = 0 then DictGrid.RowCount := 2 - else DictGrid.RowCount := NoVariables + 1; - - // insert headings - DictGrid.Cells[0,0] := 'VAR/CHAR.'; - DictGrid.Cells[1,0] := 'Short Name'; - DictGrid.Cells[2,0] := 'Long Name'; - DictGrid.Cells[3,0] := 'Width'; - DictGrid.Cells[4,0] := 'Type'; - DictGrid.Cells[5,0] := 'Decimals'; - DictGrid.Cells[6,0] := 'Missing'; - DictGrid.Cells[7,0] := 'Justify'; - DictGrid.Cells[0,1] := '1'; - DictGrid.ColWidths[1] := 100; - DictGrid.ColWidths[2] := 200; - DictGrid.ColWidths[3] := 50; - DictGrid.ColWidths[4] := 50; - DictGrid.ColWidths[5] := 50; - DictGrid.ColWidths[6] := 50; - DictGrid.ColWidths[7] := 50; - - // check for absence of a defined variable - if VarDefined[1] = false then - begin - // load defaults - Defaults(Self,1); - VarDefined[1] := true; - end; -end; - -procedure TDictionaryFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TDictionaryFrm.JustComboClick(Sender: TObject); -var - achar : char; - astr : string; - index : integer; - GRow : integer; - -begin - index := JustCombo.ItemIndex; - astr := JustCombo.Items.Strings[index]; - achar := astr[2]; - GRow := DictGrid.Row; - DictGrid.Cells[7,GRow] := achar; - JustCombo.Text := 'Justification'; -end; - -procedure TDictionaryFrm.JustComboSelect(Sender: TObject); -var - achar : char; - astr : string; - index : integer; - GRow : integer; - -begin - index := JustCombo.ItemIndex; - astr := JustCombo.Items.Strings[index]; - achar := astr[2]; - GRow := DictGrid.Row; - if GRow>0 then DictGrid.Cells[7,GRow] := achar; - JustCombo.Text := 'Justification'; - DictGrid.SetFocus; -end; - -procedure TDictionaryFrm.CancelBtnClick(Sender: TObject); -begin - DictionaryFrm.Hide; -end; - -procedure TDictionaryFrm.DictGridClick(Sender: TObject); -begin - DictGrid.SelectedColor := clGray; -end; - -procedure TDictionaryFrm.DictGridKeyDown(Sender: TObject; var Key: Word; - Shift: TShiftState); -var - x, y, v : integer; -begin - x := DictGrid.Row; - y := DictGrid.Col; - v := ord(Key); - case v of - 13 : if y = 7 then DictGrid.Col := 1 else DictGrid.Col := DictGrid.Col + 1; - 40 : begin // arrow down key - if x = DictGrid.RowCount - 1 then - begin - if DictGrid.RowCount < (x + 2) then - DictGrid.RowCount := DictGrid.RowCount + 1; - Defaults(Self,x+1); - VarDefined[x+1] := true; - end; - end; - end; -end; - -procedure TDictionaryFrm.Defaults(Sender: TObject; row : integer); -var i : integer; -begin - DictGrid.Cells[0,row] := IntToStr(row); - DictGrid.Cells[1,row] := 'VAR.' + IntToStr(row); - DictGrid.Cells[2,row] := 'VARIABLE ' + IntToStr(row); - DictGrid.Cells[3,row] := '8'; - DictGrid.Cells[4,row] := 'F'; - DictGrid.Cells[5,row] := '2'; - DictGrid.Cells[6,row] := ' '; - DictGrid.Cells[7,row] := 'L'; - for i := 1 to DictGrid.RowCount - 1 do DictGrid.Cells[0,i] := IntToStr(i); - if OptionsFrm.DefaultMiss = 0 then DictGrid.Cells[6,row] := ''; - if OptionsFrm.DefaultMiss = 1 then DictGrid.Cells[6,row] := '.'; - if OptionsFrm.DefaultMiss = 2 then DictGrid.Cells[6,row] := '0'; - If OptionsFrm.DefaultMiss = 3 then DictGrid.Cells[6,row] := '99999'; - if OptionsFrm.DefaultJust <> 0 then - begin - if OptionsFrm.DefaultJust = 1 then DictGrid.Cells[7,row] := 'C' - else DictGrid.Cells[7,row] := 'R'; - end; -end; - -procedure TDictionaryFrm.TypeComboSelect(Sender: TObject); -var - achar : char; - astr : string; - index : integer; - GRow : integer; -begin - index := TypeCombo.ItemIndex; - astr := TypeCombo.Items.Strings[index]; - achar := astr[2]; - GRow := DictGrid.Row; - if GRow>0 then - begin - DictGrid.Cells[4,GRow] := achar; - if achar='F' then DictGrid.Cells[5,GRow] := '3' // set decimal digits - else DictGrid.Cells[5,GRow] := '0'; - end; - TypeCombo.Text := 'Type'; - DictGrid.SetFocus; -end; - -procedure TDictionaryFrm.DelRow(row : integer); -begin - DictGrid.Row := row; - TempVarItm.Clear; - DictGrid.Rows[row].SaveToStream(TempVarItm); - RowDelBtnClick(Self); -end; -//------------------------------------------------------------------- - -procedure TDictionaryFrm.NewVar(row : integer); -var - i, j : integer; -begin - DictGrid.RowCount := DictGrid.RowCount + 1; // add new row - NoVariables := NoVariables + 1; - if (row < NoVariables) AND (NoVariables > 1) then // move current rows down 1 - begin - for i := NoVariables downto row + 1 do - begin - for j := 1 to 7 do DictGrid.Cells[j,i] := DictGrid.Cells[j,i-1]; - VarDefined[i] := VarDefined[i-1]; - end; - end; - // put default values in new variable - Defaults(Self,row); - VarDefined[row] := true; - - // add to grid if grid column does not exist - if OS3MainFrm.DataGrid.ColCount < row then - begin - OS3MainFrm.DataGrid.ColCount := OS3MainFrm.DataGrid.ColCount + 1; - OS3MainFrm.DataGrid.Cells[row,0] := DictionaryFrm.DictGrid.Cells[1,row]; - end; - ReturnBtnClick(Self); -end; -//------------------------------------------------------------------- - -procedure TDictionaryFrm.PasteVar(row : integer); -var i : integer; -begin - TempVarItm.Position := 0; - DictGrid.Rows[row].LoadFromStream(TempVarItm); - for i := 1 to DictGrid.RowCount - 1 do DictGrid.Cells[0,i] := IntToStr(i); -// FormShow(Self); -end; -//------------------------------------------------------------------- - -procedure TDictionaryFrm.CopyVar(row : integer); -begin - DictGrid.Row := row; - TempVarItm.Clear; - DictGrid.Rows[row].SaveToStream(TempVarItm); -end; -//------------------------------------------------------------------- - -initialization - {$I dictionaryunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/difunit.lfm b/applications/lazstats/source_orig/difunit.lfm deleted file mode 100644 index a907e6983..000000000 --- a/applications/lazstats/source_orig/difunit.lfm +++ /dev/null @@ -1,513 +0,0 @@ -object DIFFrm: TDIFFrm - Left = 140 - Height = 455 - Top = 99 - Width = 537 - Caption = 'DIF Specifications' - ClientHeight = 455 - ClientWidth = 537 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 8 - Height = 14 - Top = 16 - Width = 90 - Caption = 'Available Variables' - ParentColor = False - end - object Label2: TLabel - Left = 211 - Height = 14 - Top = 16 - Width = 72 - Caption = 'Items Selected' - ParentColor = False - end - object Label3: TLabel - Left = 214 - Height = 14 - Top = 208 - Width = 85 - Caption = 'Grouping Variable' - ParentColor = False - end - object Label4: TLabel - Left = 207 - Height = 14 - Top = 288 - Width = 116 - Caption = 'Reference Group Code?' - ParentColor = False - end - object Label5: TLabel - Left = 207 - Height = 14 - Top = 320 - Width = 91 - Caption = 'Focal Group Code?' - ParentColor = False - end - object Label6: TLabel - Left = 207 - Height = 14 - Top = 352 - Width = 99 - Caption = 'No. of Score Levels?' - ParentColor = False - end - object Label7: TLabel - Left = 376 - Height = 14 - Top = 264 - Width = 119 - Caption = 'Enter Bounds for Levels:' - ParentColor = False - end - object Label8: TLabel - Left = 376 - Height = 14 - Top = 296 - Width = 28 - Caption = 'Down' - ParentColor = False - end - object Label9: TLabel - Left = 448 - Height = 14 - Top = 296 - Width = 14 - Caption = 'Up' - ParentColor = False - end - object Label10: TLabel - Left = 488 - Height = 14 - Top = 296 - Width = 26 - Caption = 'Level' - ParentColor = False - end - object Label11: TLabel - Left = 377 - Height = 14 - Top = 351 - Width = 63 - Caption = 'Lower Bound' - ParentColor = False - end - object UpBoundlabel: TLabel - Left = 373 - Height = 14 - Top = 384 - Width = 67 - Caption = 'Upper Bound:' - ParentColor = False - end - object VarList: TListBox - Left = 8 - Height = 296 - Top = 35 - Width = 157 - ItemHeight = 0 - MultiSelect = True - TabOrder = 0 - end - object ItemInBtn: TBitBtn - Left = 173 - Height = 27 - Top = 40 - 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 = ItemInBtnClick - TabOrder = 1 - end - object ItemOutBtn: TBitBtn - Left = 173 - Height = 27 - Top = 72 - 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 = ItemOutBtnClick - TabOrder = 2 - end - object AllBtn: TBitBtn - Left = 173 - Height = 27 - Top = 120 - Width = 30 - Caption = 'ALL' - NumGlyphs = 0 - OnClick = AllBtnClick - TabOrder = 3 - end - object GrpInBtn: TBitBtn - Left = 173 - Height = 27 - 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 = GrpInBtnClick - TabOrder = 4 - end - object GrpOutBtn: TBitBtn - Left = 173 - Height = 27 - Top = 240 - 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 = GrpOutBtnClick - TabOrder = 5 - end - object ItemsList: TListBox - Left = 211 - Height = 149 - Top = 35 - Width = 148 - ItemHeight = 0 - TabOrder = 6 - end - object GroupVarEdit: TEdit - Left = 211 - Height = 21 - Top = 224 - Width = 147 - TabOrder = 7 - Text = 'GroupVarEdit' - end - object RefGrpEdit: TEdit - Left = 329 - Height = 21 - Top = 281 - Width = 34 - TabOrder = 8 - Text = 'RefGrpEdit' - end - object TrgtGrpEdit: TEdit - Left = 329 - Height = 21 - Top = 310 - Width = 34 - TabOrder = 9 - Text = 'Edit1' - end - object LevelsEdit: TEdit - Left = 329 - Height = 21 - Top = 344 - Width = 34 - OnExit = LevelsEditExit - TabOrder = 10 - Text = 'Edit1' - end - object GroupBox1: TGroupBox - Left = 368 - Height = 233 - Top = 16 - Width = 160 - Caption = 'Options' - ClientHeight = 215 - ClientWidth = 156 - TabOrder = 11 - object ItemStatsChk: TCheckBox - Left = 7 - Height = 17 - Top = 3 - Width = 88 - Caption = 'Item Statistics' - TabOrder = 0 - end - object TestStatsChk: TCheckBox - Left = 7 - Height = 17 - Top = 23 - Width = 87 - Caption = 'Test Statistics' - TabOrder = 1 - end - object ItemCorrsChk: TCheckBox - Left = 7 - Height = 17 - Top = 47 - Width = 125 - Caption = 'Item Intercorrelations' - TabOrder = 2 - end - object ItemTestChk: TCheckBox - Left = 8 - Height = 17 - Top = 71 - Width = 128 - Caption = 'Item-Test Correlations' - TabOrder = 3 - end - object AlphaChk: TCheckBox - Left = 8 - Height = 17 - Top = 95 - Width = 95 - Caption = 'Alpha Reliability' - TabOrder = 4 - end - object MHChk: TCheckBox - Left = 7 - Height = 17 - Top = 119 - Width = 99 - Caption = 'Mantel-Haenszel' - TabOrder = 5 - end - object LogisticChk: TCheckBox - Left = 8 - Height = 17 - Top = 143 - Width = 111 - Caption = 'Logistic Regression' - TabOrder = 6 - end - object CurvesChk: TCheckBox - Left = 8 - Height = 17 - Top = 167 - Width = 109 - Caption = 'Item Char. Curves' - TabOrder = 7 - end - object CountsChk: TCheckBox - Left = 7 - Height = 17 - Top = 191 - Width = 82 - Caption = 'Level Counts' - TabOrder = 8 - end - end - object LevelScroll: TScrollBar - Left = 376 - Height = 16 - Top = 315 - Width = 89 - Min = 1 - PageSize = 0 - Position = 1 - TabOrder = 12 - OnScroll = LevelScrollScroll - end - object LevelNoEdit: TEdit - Left = 481 - Height = 21 - Top = 313 - Width = 33 - TabOrder = 13 - Text = 'LevelNoEdit' - end - object LowBoundEdit: TEdit - Left = 480 - Height = 21 - Top = 344 - Width = 33 - OnExit = LowBoundEditExit - TabOrder = 14 - Text = 'Edit4' - end - object UpBoundEdit: TEdit - Left = 480 - Height = 21 - Top = 376 - Width = 33 - OnExit = UpBoundEditExit - TabOrder = 15 - Text = 'Edit4' - end - object ResetBtn: TButton - Left = 104 - Height = 32 - Top = 408 - Width = 69 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 16 - end - object CancelBtn: TButton - Left = 192 - Height = 32 - Top = 408 - Width = 69 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 17 - end - object ComputeBtn: TButton - Left = 280 - Height = 32 - Top = 408 - Width = 77 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 18 - end - object ReturnBtn: TButton - Left = 373 - Height = 32 - Top = 408 - Width = 72 - Caption = 'Return' - ModalResult = 1 - OnClick = ReturnBtnClick - TabOrder = 19 - end - object HelpBtn: TButton - Tag = 122 - Left = 8 - Height = 32 - Top = 408 - Width = 82 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 20 - end -end diff --git a/applications/lazstats/source_orig/difunit.lrs b/applications/lazstats/source_orig/difunit.lrs deleted file mode 100644 index 7c2a99012..000000000 --- a/applications/lazstats/source_orig/difunit.lrs +++ /dev/null @@ -1,285 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TDIFFrm','FORMDATA',[ - 'TPF0'#7'TDIFFrm'#6'DIFFrm'#4'Left'#3#140#0#6'Height'#3#199#1#3'Top'#2'c'#5'W' - +'idth'#3#25#2#7'Caption'#6#18'DIF Specifications'#12'ClientHeight'#3#199#1#11 - +'ClientWidth'#3#25#2#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#8'0.9.28.2'#0#6 - +'TLabel'#6'Label1'#4'Left'#2#8#6'Height'#2#14#3'Top'#2#16#5'Width'#2'Z'#7'Ca' - +'ption'#6#19'Available Variables'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4 - +'Left'#3#211#0#6'Height'#2#14#3'Top'#2#16#5'Width'#2'H'#7'Caption'#6#14'Item' - +'s Selected'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#214#0#6'Hei' - +'ght'#2#14#3'Top'#3#208#0#5'Width'#2'U'#7'Caption'#6#17'Grouping Variable'#11 - +'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#3#207#0#6'Height'#2#14#3'Top' - +#3' '#1#5'Width'#2't'#7'Caption'#6#21'Reference Group Code?'#11'ParentColor' - +#8#0#0#6'TLabel'#6'Label5'#4'Left'#3#207#0#6'Height'#2#14#3'Top'#3'@'#1#5'Wi' - +'dth'#2'['#7'Caption'#6#17'Focal Group Code?'#11'ParentColor'#8#0#0#6'TLabel' - +#6'Label6'#4'Left'#3#207#0#6'Height'#2#14#3'Top'#3'`'#1#5'Width'#2'c'#7'Capt' - +'ion'#6#20'No. of Score Levels?'#11'ParentColor'#8#0#0#6'TLabel'#6'Label7'#4 - +'Left'#3'x'#1#6'Height'#2#14#3'Top'#3#8#1#5'Width'#2'w'#7'Caption'#6#24'Ente' - +'r Bounds for Levels:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label8'#4'Left'#3'x' - +#1#6'Height'#2#14#3'Top'#3'('#1#5'Width'#2#28#7'Caption'#6#4'Down'#11'Parent' - +'Color'#8#0#0#6'TLabel'#6'Label9'#4'Left'#3#192#1#6'Height'#2#14#3'Top'#3'(' - +#1#5'Width'#2#14#7'Caption'#6#2'Up'#11'ParentColor'#8#0#0#6'TLabel'#7'Label1' - +'0'#4'Left'#3#232#1#6'Height'#2#14#3'Top'#3'('#1#5'Width'#2#26#7'Caption'#6#5 - +'Level'#11'ParentColor'#8#0#0#6'TLabel'#7'Label11'#4'Left'#3'y'#1#6'Height'#2 - +#14#3'Top'#3'_'#1#5'Width'#2'?'#7'Caption'#6#11'Lower Bound'#11'ParentColor' - +#8#0#0#6'TLabel'#12'UpBoundlabel'#4'Left'#3'u'#1#6'Height'#2#14#3'Top'#3#128 - +#1#5'Width'#2'C'#7'Caption'#6#12'Upper Bound:'#11'ParentColor'#8#0#0#8'TList' - +'Box'#7'VarList'#4'Left'#2#8#6'Height'#3'('#1#3'Top'#2'#'#5'Width'#3#157#0#10 - +'ItemHeight'#2#0#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#9'ItemInBt' - +'n'#4'Left'#3#173#0#6'Height'#2#27#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#14'ItemInBtnClick' - +#8'TabOrder'#2#1#0#0#7'TBitBtn'#10'ItemOutBtn'#4'Left'#3#173#0#6'Height'#2#27 - +#3'Top'#2'H'#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#15'ItemOutBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn' - +#6'AllBtn'#4'Left'#3#173#0#6'Height'#2#27#3'Top'#2'x'#5'Width'#2#30#7'Captio' - +'n'#6#3'ALL'#9'NumGlyphs'#2#0#7'OnClick'#7#11'AllBtnClick'#8'TabOrder'#2#3#0 - +#0#7'TBitBtn'#8'GrpInBtn'#4'Left'#3#173#0#6'Height'#2#27#3'Top'#3#208#0#5'Wi' - +'dth'#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#13 - +'GrpInBtnClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#9'GrpOutBtn'#4'Left'#3#173#0#6 - +'Height'#2#27#3'Top'#3#240#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'NumGlyphs'#2#0#7'OnClick'#7#14'GrpOutBtnClick'#8'TabO' - +'rder'#2#5#0#0#8'TListBox'#9'ItemsList'#4'Left'#3#211#0#6'Height'#3#149#0#3 - +'Top'#2'#'#5'Width'#3#148#0#10'ItemHeight'#2#0#8'TabOrder'#2#6#0#0#5'TEdit' - +#12'GroupVarEdit'#4'Left'#3#211#0#6'Height'#2#21#3'Top'#3#224#0#5'Width'#3 - +#147#0#8'TabOrder'#2#7#4'Text'#6#12'GroupVarEdit'#0#0#5'TEdit'#10'RefGrpEdit' - +#4'Left'#3'I'#1#6'Height'#2#21#3'Top'#3#25#1#5'Width'#2'"'#8'TabOrder'#2#8#4 - +'Text'#6#10'RefGrpEdit'#0#0#5'TEdit'#11'TrgtGrpEdit'#4'Left'#3'I'#1#6'Height' - +#2#21#3'Top'#3'6'#1#5'Width'#2'"'#8'TabOrder'#2#9#4'Text'#6#5'Edit1'#0#0#5'T' - +'Edit'#10'LevelsEdit'#4'Left'#3'I'#1#6'Height'#2#21#3'Top'#3'X'#1#5'Width'#2 - +'"'#6'OnExit'#7#14'LevelsEditExit'#8'TabOrder'#2#10#4'Text'#6#5'Edit1'#0#0#9 - +'TGroupBox'#9'GroupBox1'#4'Left'#3'p'#1#6'Height'#3#233#0#3'Top'#2#16#5'Widt' - +'h'#3#160#0#7'Caption'#6#7'Options'#12'ClientHeight'#3#215#0#11'ClientWidth' - +#3#156#0#8'TabOrder'#2#11#0#9'TCheckBox'#12'ItemStatsChk'#4'Left'#2#7#6'Heig' - +'ht'#2#17#3'Top'#2#3#5'Width'#2'X'#7'Caption'#6#15'Item Statistics'#8'TabOrd' - +'er'#2#0#0#0#9'TCheckBox'#12'TestStatsChk'#4'Left'#2#7#6'Height'#2#17#3'Top' - +#2#23#5'Width'#2'W'#7'Caption'#6#15'Test Statistics'#8'TabOrder'#2#1#0#0#9'T' - +'CheckBox'#12'ItemCorrsChk'#4'Left'#2#7#6'Height'#2#17#3'Top'#2'/'#5'Width'#2 - +'}'#7'Caption'#6#22'Item Intercorrelations'#8'TabOrder'#2#2#0#0#9'TCheckBox' - +#11'ItemTestChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#2'G'#5'Width'#3#128#0#7'C' - +'aption'#6#22'Item-Test Correlations'#8'TabOrder'#2#3#0#0#9'TCheckBox'#8'Alp' - +'haChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#2'_'#5'Width'#2'_'#7'Caption'#6#17 - +'Alpha Reliability'#8'TabOrder'#2#4#0#0#9'TCheckBox'#5'MHChk'#4'Left'#2#7#6 - +'Height'#2#17#3'Top'#2'w'#5'Width'#2'c'#7'Caption'#6#15'Mantel-Haenszel'#8'T' - ,'abOrder'#2#5#0#0#9'TCheckBox'#11'LogisticChk'#4'Left'#2#8#6'Height'#2#17#3 - +'Top'#3#143#0#5'Width'#2'o'#7'Caption'#6#19'Logistic Regression'#8'TabOrder' - +#2#6#0#0#9'TCheckBox'#9'CurvesChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#3#167#0 - +#5'Width'#2'm'#7'Caption'#6#17'Item Char. Curves'#8'TabOrder'#2#7#0#0#9'TChe' - +'ckBox'#9'CountsChk'#4'Left'#2#7#6'Height'#2#17#3'Top'#3#191#0#5'Width'#2'R' - +#7'Caption'#6#12'Level Counts'#8'TabOrder'#2#8#0#0#0#10'TScrollBar'#11'Level' - +'Scroll'#4'Left'#3'x'#1#6'Height'#2#16#3'Top'#3';'#1#5'Width'#2'Y'#3'Min'#2#1 - +#8'PageSize'#2#0#8'Position'#2#1#8'TabOrder'#2#12#8'OnScroll'#7#17'LevelScro' - +'llScroll'#0#0#5'TEdit'#11'LevelNoEdit'#4'Left'#3#225#1#6'Height'#2#21#3'Top' - +#3'9'#1#5'Width'#2'!'#8'TabOrder'#2#13#4'Text'#6#11'LevelNoEdit'#0#0#5'TEdit' - +#12'LowBoundEdit'#4'Left'#3#224#1#6'Height'#2#21#3'Top'#3'X'#1#5'Width'#2'!' - +#6'OnExit'#7#16'LowBoundEditExit'#8'TabOrder'#2#14#4'Text'#6#5'Edit4'#0#0#5 - +'TEdit'#11'UpBoundEdit'#4'Left'#3#224#1#6'Height'#2#21#3'Top'#3'x'#1#5'Width' - +#2'!'#6'OnExit'#7#15'UpBoundEditExit'#8'TabOrder'#2#15#4'Text'#6#5'Edit4'#0#0 - +#7'TButton'#8'ResetBtn'#4'Left'#2'h'#6'Height'#2' '#3'Top'#3#152#1#5'Width'#2 - +'E'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#16#0#0 - +#7'TButton'#9'CancelBtn'#4'Left'#3#192#0#6'Height'#2' '#3'Top'#3#152#1#5'Wid' - +'th'#2'E'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#17#0#0#7 - +'TButton'#10'ComputeBtn'#4'Left'#3#24#1#6'Height'#2' '#3'Top'#3#152#1#5'Widt' - +'h'#2'M'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder' - +#2#18#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3'u'#1#6'Height'#2' '#3'Top'#3#152 - +#1#5'Width'#2'H'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#7'OnClick'#7#14 - +'ReturnBtnClick'#8'TabOrder'#2#19#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2'z'#4'Le' - +'ft'#2#8#6'Height'#2' '#3'Top'#3#152#1#5'Width'#2'R'#7'Caption'#6#4'Help'#7 - +'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#20#0#0#0 -]); diff --git a/applications/lazstats/source_orig/difunit.pas b/applications/lazstats/source_orig/difunit.pas deleted file mode 100644 index fe2c9825d..000000000 --- a/applications/lazstats/source_orig/difunit.pas +++ /dev/null @@ -1,1005 +0,0 @@ -unit DIFUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, Globals, Math, OutPutUnit, MatrixLib, - DataProcs, FunctionsLib, GraphLib, contexthelpunit; - -type DynamicCharArray = array of char; - -type - - { TDIFFrm } - - TDIFFrm = class(TForm) - HelpBtn: TButton; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - ItemStatsChk: TCheckBox; - TestStatsChk: TCheckBox; - ItemCorrsChk: TCheckBox; - ItemTestChk: TCheckBox; - AlphaChk: TCheckBox; - MHChk: TCheckBox; - LogisticChk: TCheckBox; - CurvesChk: TCheckBox; - CountsChk: TCheckBox; - RefGrpEdit: TEdit; - TrgtGrpEdit: TEdit; - LevelsEdit: TEdit; - LevelNoEdit: TEdit; - LowBoundEdit: TEdit; - UpBoundEdit: TEdit; - GroupBox1: TGroupBox; - ItemInBtn: TBitBtn; - ItemOutBtn: TBitBtn; - AllBtn: TBitBtn; - GrpInBtn: TBitBtn; - GrpOutBtn: TBitBtn; - GroupVarEdit: TEdit; - Label1: TLabel; - Label10: TLabel; - Label11: TLabel; - UpBoundlabel: TLabel; - Label2: TLabel; - ItemsList: TListBox; - Label3: TLabel; - Label4: TLabel; - Label5: TLabel; - Label6: TLabel; - Label7: TLabel; - Label8: TLabel; - Label9: TLabel; - LevelScroll: TScrollBar; - VarList: TListBox; - procedure AllBtnClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure UpBoundEditExit(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure GrpInBtnClick(Sender: TObject); - procedure GrpOutBtnClick(Sender: TObject); - procedure ItemInBtnClick(Sender: TObject); - procedure ItemOutBtnClick(Sender: TObject); - procedure LevelScrollScroll(Sender: TObject; ScrollCode: TScrollCode; - var ScrollPos: Integer); - procedure LevelsEditExit(Sender: TObject); - procedure LowBoundEditExit(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure ReturnBtnClick(Sender: TObject); - private - { private declarations } - NoItems : integer; - nolevels : integer; - tmean, tvar, tsd : double; - ColNoSelected : IntDyneVec; - ColLabels, RowLabels : StrDyneVec; - Means, Variances, StdDevs : DblDyneVec; - CorMat : DblDyneMat; // correlations among items and total score - Data : IntDyneMat; //store item scores and total score - Ubounds : IntDyneVec; // upper and lower bounds of score groups - Lbounds : IntdyneVec; - Code : DynamicCharArray; // blank, A, B or C ETS codes - Level10OK : IntdyneMat; // check that each item category >= 10 - RMHRight : IntDyneMat; // no. right for items by score group in reference group - RMHWrong : IntDyneMat; // no. wrong for items by score group in reference group - FMHRight : IntDyneMat; // no. right for items by score group in focus group - FMHWrong : IntDyneMat; // no. wrong for items by score group in focus group - RScrGrpCnt : IntDyneMat; // total responses for score groups in reference group - FScrGrpCnt : IntDyneMat; // total responses for score groups in focus group - NT : IntDyneMat; // total right and wrong in each category of each item - Alpha : DblDyneVec; - AlphaNum : DblDyneVec; - AlphaDen : DblDyneVec; - MHDiff : DblDyneVec; - ExpA : DblDyneMat; - VarA : DblDyneMat; - SumA : DblDyneVec; - SumExpA : DblDyneVec; - SumVarA : DblDyneVec; - ChiSqr : DblDyneVec; - Prob : DblDyneVec; - SEMHDDif : DblDyneVec; - Aster : StrDyneVec; - C : DblDyneVec; - CodeRF : DynamicCharArray; - Tot : IntDyneVec; - procedure AlphaRel(Sender: TObject); - procedure ItemCorrs(Sender: TObject); - procedure ItemTestCorrs(Sender: TObject); - procedure ItemCurves(Sender: TObject); - - public - { public declarations } - end; - -var - DIFFrm: TDIFFrm; - -implementation - -{ TDIFFrm } - -procedure TDIFFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - ItemsList.Clear; - GroupVarEdit.Text := ''; - ItemInBtn.Visible := true; - ItemOutBtn.Visible := false; - AllBtn.Visible := true; - GrpInBtn.Visible := true; - GrpOutBtn.Visible := false; - ItemStatsChk.Checked := true; - TestStatsChk.Checked := false; - ItemCorrsChk.Checked := false; - ItemTestChk.Checked := false; - MHChk.Checked := true; - LogisticChk.Checked := false; - RefGrpEdit.Text := ''; - TrgtGrpEdit.Text := ''; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - if NoVariables > 0 then LevelScroll.Max := NoVariables; - LevelNoEdit.Text := '1'; - LowBoundEdit.Text := '0'; - UpBoundEdit.Text := '2'; - //allocate space on heap - SetLength(ColLabels,NoVariables+1); - SetLength(RowLabels,NoVariables+1); - SetLength(Means,NoVariables); - SetLength(Variances,NoVariables); - SetLength(StdDevs,NoVariables); - SetLength(CorMat,NoVariables,NoVariables); - SetLength(Data,NoCases,NoVariables+3); //group, items, total, flag - SetLength(Lbounds,NoVariables); - SetLength(Ubounds,NoVariables); - SetLength(Tot,NoCases); - SetLength(ColNoSelected,NoVariables); -end; - -procedure TDIFFrm.ReturnBtnClick(Sender: TObject); -begin - ColNoSelected := nil; - C := nil; - SEMHDDif := nil; - Aster := nil; - Prob := nil; - ChiSqr := nil; - SumVarA := nil; - SumExpA := nil; - SumA := nil; - VarA := nil; - ExpA := nil; - CodeRF := nil; - MHDiff := nil; - AlphaDen := nil; - AlphaNum := nil; - Alpha := nil; - NT := nil; - Level10OK := nil; - Code := nil; - FScrGrpCnt := nil; - RScrGrpCnt := nil; - FMHWrong := nil; - FMHRight := nil; - RMHWrong := nil; - RMHRight := nil; - Tot := nil; - Ubounds := nil; - Lbounds := nil; - Data := nil; - CorMat := nil; - StdDevs := nil; - Variances := nil; - Means := nil; - RowLabels := nil; - ColLabels := nil; - DIFfrm.Hide; -end; - -procedure TDIFFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(Self); -end; - -procedure TDIFFrm.GrpInBtnClick(Sender: TObject); -VAR index : integer; -begin - if VarList.ItemIndex < 0 then - begin - GrpInBtn.Visible := false; - exit; - end; - index := VarList.ItemIndex; - GroupVarEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - GrpInBtn.Visible := false; - GrpOutBtn.Visible := true; -end; - -procedure TDIFFrm.GrpOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(GroupVarEdit.Text); - GroupVarEdit.Text := ''; - GrpInBtn.Visible := true; - GrpOutBtn.Visible := false; -end; - -procedure TDIFFrm.ItemInBtnClick(Sender: TObject); -VAR i, index : integer; -begin - if VarList.ItemIndex < 0 then - begin - ItemInBtn.Visible := false; - exit; - end; - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - ItemsList.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - ItemOutBtn.Visible := true; -end; - -procedure TDIFFrm.ItemOutBtnClick(Sender: TObject); -VAR index : integer; -begin - index := ItemsList.ItemIndex; - if index < 0 then - begin - ItemOutBtn.Visible := false; - exit; - end; - VarList.Items.Add(ItemsList.Items.Strings[index]); - ItemsList.Items.Delete(index); - ItemInBtn.Visible := true; -end; - -procedure TDIFFrm.LevelScrollScroll(Sender: TObject; ScrollCode: TScrollCode; - var ScrollPos: Integer); -var - scrlpos : integer; - level : integer; -begin - level := StrToInt(LevelNoEdit.Text); - scrlpos := LevelScroll.Position; - if ((scrlpos > level) and (level <= StrToInt(LevelsEdit.Text))) then - begin - LevelNoEdit.Text := IntToStr(scrlpos); - LowBoundEdit.SetFocus; - exit; - end; - if scrlpos < level then - begin - level := scrlpos; - if level > 0 then - begin - LevelNoEdit.Text := IntToStr(level); - LowBoundEdit.Text := IntToStr(Lbounds[level-1]); - UpBoundEdit.Text := IntToStr(Ubounds[level-1]); - end; - LowBoundEdit.SetFocus; - end; -end; - -procedure TDIFFrm.LevelsEditExit(Sender: TObject); -begin - LevelScroll.Max := StrToInt(LevelsEdit.Text); - LowBoundEdit.SetFocus; -end; - -procedure TDIFFrm.LowBoundEditExit(Sender: TObject); -VAR i : integer; -begin - i := StrToInt(LevelNoEdit.Text); - Lbounds[i-1] := StrToInt(LowBoundEdit.Text); - UpBoundEdit.SetFocus; -end; - -procedure TDIFFrm.ComputeBtnClick(Sender: TObject); -Label LoopStart; -var - i, j, k : integer; - itm : integer; - grpvar : integer; - subjgrp : integer; - value : integer; - subjscore : integer; - scrgrpsize : integer; - lower, upper : integer; - sum : integer; - cellstring : string; - title : string; - nsize : array [1..2] of integer; - Rtm, Wtm : double; - TotPurge : integer; - LoopIt : integer; - RItem, FItem : integer; -begin - LoopIt := 0; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Mantel-Haenszel DIF Analysis adapted by Bill Miller from'); - OutPutFrm.RichEdit.Lines.Add('EZDIF written by Niels G. Waller'); - OutPutFrm.RichEdit.Lines.Add(''); - - NoItems := ItemsList.Items.Count; - for k := 1 to 2 do nsize[k] := 0; - - // get items to analyze and their labels - for i := 1 to NoItems do // items to analyze - begin - for j := 1 to NoVariables do // variables in grid - begin - cellstring := OS3MainFrm.DataGrid.Cells[j,0]; - if cellstring = ItemsList.Items.Strings[i-1] then - begin // matched - save info - ColNoSelected[i-1] := j; - ColLabels[i-1] := cellstring; - RowLabels[i-1] := cellstring; - end; // end match - end; // next j - end; // next i - ColLabels[NoItems] := 'TOTAL'; - RowLabels[NoItems] := 'TOTAL'; - - // get the variable number of the grouping code - grpvar := 0; - for i := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[i,0]; - if cellstring = GroupVarEdit.Text then grpvar := i; - end; - if grpvar = 0 then - begin - ShowMessage('Error - No group variable found.'); - exit; - end; - - // get number of test score levels - nolevels := StrToInt(LevelsEdit.Text); - - // read data (score group and items) - for i := 1 to NoCases do - begin - subjscore := 0; - value := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[grpvar,i]))); - subjgrp := 0; - if value = StrToInt(RefGrpEdit.Text) then subjgrp := 1; // reference grp - if value = StrToInt(TrgtGrpEdit.Text) then subjgrp := 2; // target group - if subjgrp = 0 then - begin - ShowMessage('Error - Bad group code for a subject.'); - exit; - end; - Data[i-1,0] := subjgrp; - nsize[subjgrp] := nsize[subjgrp] + 1; - for j := 1 to NoItems do - begin - itm := ColNoSelected[j-1]; - value := Round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[itm,i]))); - if value = 1 then subjscore := subjscore + 1; - Data[i-1,j] := value; - end; - Tot[i-1] := subjscore; - end; - - // obtain item means, variances, standard deviations for total subjects - for i := 0 to NoItems-1 do - begin - Means[i] := 0.0; - Variances[i] := 0.0; - StdDevs[i] := 0.0; - for j := 0 to NoCases - 1 do - begin - Means[i] := Means[i] + Data[j,i+1]; - Variances[i] := Variances[i] + (Data[j,i+1] * Data[j,i+1]); - end; - Variances[i] := (Variances[i] - (Means[i] * Means[i] / NoCases)) / (NoCases - 1); - if Variances[i] <= 0 then - begin - cellstring := format('Item %d has zero variance. Unselect the item.', - [i+1]); - ShowMessage(cellstring); - ResetBtnClick(Self); - exit; - end; - StdDevs[i] := sqrt(Variances[i]); - Means[i] := Means[i] / NoCases; - end; - - // obtain total score mean, variance and stddev - tmean := 0.0; - tvar := 0.0; - tsd := 0.0; - for i := 0 to NoCases - 1 do - begin - tmean := tmean + Tot[i]; - tvar := tvar + (Tot[i] * Tot[i]); - end; - tvar := (tvar - (tmean * tmean / NoCases)) / (NoCases - 1); - tsd := sqrt(tvar); - tmean := tmean / NoCases; - - // print descriptives if checked - if ItemStatsChk.Checked then - begin - title := 'Total Means'; - DynVectorPrint(Means,NoItems,title,ColLabels,NoCases); - title := 'Total Variances'; - DynVectorPrint(Variances,NoItems,title,ColLabels,NoCases); - title := 'Total Standard Deviations'; - DynVectorPrint(StdDevs,NoItems,title,ColLabels,NoCases); - end; - - // Show total test score statistics if checked - if TestStatsChk.Checked then - begin - cellstring := format('Total Score: Mean = %10.3f, Variance = %10.3f, Std.Dev. = %10.3f', - [tmean, tvar, tsd]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - cellstring := format('Reference group size = %d, Focus group size = %d', - [nsize[1],nsize[2]]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - // get Cronbach alpha for total group if checked - if AlphaChk.Checked then AlphaRel(Self); - - // Get item intercorrelations for total group if checked - if ItemCorrsChk.Checked then - begin - ItemCorrs(Self); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - // Get item-total score correlations for total group if checked - if ItemTestChk.Checked then - begin - ItemTestCorrs(Self); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - // Show upper and lower bounds for score group bins - OutPutFrm.RichEdit.Lines.Add('Conditioning Levels'); - OutPutFrm.RichEdit.Lines.Add('Lower Upper'); - for i := 0 to nolevels-1 do - begin - cellstring := format('%5d %5d',[Lbounds[i],Ubounds[i]]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - - // check for zero variance in each group - for k := 1 to 2 do // group - begin - for i := 0 to NoItems-1 do // item - begin - sum := 0; - for j := 0 to NoCases-1 do // subject - begin - if Data[j,0] = k then // group match ? - begin - sum := sum + Data[j,i+1]; - end; - end; - end; - if ((sum = 0) or (sum = NoVariables)) then - begin - cellstring := format('Item %d in group %d has zero variance.', - [i+1,k]); - ShowMessage(cellstring); - exit; - end; - end; - - // Get count of no. right and wrong for each item in each group - SetLength(RMHRight,nolevels,NoItems); - SetLength(RMHWrong,nolevels,NoItems); - SetLength(FMHRight,nolevels,NoItems); - SetLength(FMHWrong,nolevels,NoItems); - SetLength(RScrGrpCnt,nolevels,NoItems); - SetLength(FScrGrpCnt,nolevels,NoItems); - SetLength(Code,NoItems); - SetLength(Level10OK,nolevels,NoItems); - SetLength(NT,nolevels,NoItems); - SetLength(Alpha,NoItems); - SetLength(AlphaNum,NoItems); - SetLength(AlphaDen,NoItems); - SetLength(MHDiff,NoItems); - SetLength(CodeRF,NoItems); - SetLength(ExpA,nolevels,NoItems); - SetLength(VarA,nolevels,NoItems); - SetLength(SumA,NoItems); - SetLength(SumExpA,NoItems); - SetLength(SumVarA,NoItems); - SetLength(ChiSqr,NoItems); - SetLength(Prob,NoItems); - SetLength(Aster,NoItems); - SetLength(SEMHDDif,NoItems); - SetLength(C,NoItems); - -LoopStart: - // clear arrays - for j := 0 to NoItems-1 do - begin - for k := 0 to nolevels-1 do - begin - RMHRight[k,j] := 0; - RMHWrong[k,j] := 0; - RScrGrpCnt[k,j] := 0; - FMHRight[k,j] := 0; - FMHWrong[k,j] := 0; - FScrGrpCnt[k,j] := 0; - Level10OK[k,j] := 1; - NT[k,j] := 0; - ExpA[k,j] := 0.0; - VarA[k,j] := 0.0; - end; - Alpha[j] := 0.0; - AlphaNum[j] := 0.0; - AlphaDen[j] := 0.0; - MHDiff[j] := 0.0; - CodeRF[j] := ' '; - Prob[j] := 0.0; - end; - - LoopIt := LoopIt + 1; - OutPutFrm.RichEdit.Clear; - cellstring := format('COMPUTING M-H CHI-SQUARE, PASS # %d',[LoopIt]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - for k := 0 to nolevels-1 do - begin - for i := 0 to NoCases-1 do - begin - subjgrp := Data[i,0]; - for j := 0 to NoItems-1 do - begin - RItem := 0; - value := Data[i,j+1]; - if ((LoopIt = 2) and (Code[j] = 'C')) then RItem := value; - if value = 1 then - begin - if ((Tot[i]+RItem >= Lbounds[k]) and - (Tot[i]+RItem <= Ubounds[k])) then - begin - if subjgrp = 1 then - begin - RMHRight[k,j] := RMHRight[k,j] + 1; - RScrGrpCnt[k,j] := RScrGrpCnt[k,j] + 1; - end; // if reference group - if subjgrp = 2 then - begin - FMHRight[k,j] := FMHRight[k,j] + 1; - FScrGrpCnt[k,j] := FScrGrpCnt[k,j] + 1; - end; // if focus group - end; // end if () and () - end; // value = 1 - if value = 0 then - begin - if ((Tot[i]+RItem >= Lbounds[k]) and - (Tot[i]+RItem <= Ubounds[k])) then - begin - if subjgrp = 1 then - begin - RMHWrong[k,j] := RMHWrong[k,j] + 1; - RScrGrpCnt[k,j] := RScrGrpCnt[k,j] + 1; - end; - if subjgrp = 2 then - begin - FMHWrong[k,j] := FMHWrong[k,j] + 1; - FScrGrpCnt[k,j] := FScrGrpCnt[k,j] + 1; - end; - end; - end; // if value = 0 - end; // next j - end; // next i - end; // next k - for j := 0 to NoItems-1 do Code[j] := 'Z'; // clean out ETS code - - // print score group counts for Reference and focus subjects - if CountsChk.Checked then - begin - for i := 0 to nolevels-1 do - RowLabels[i] := format('%3d-%3d',[Lbounds[i],Ubounds[i]]); - DynIntMatPrint(RScrGrpCnt,nolevels,NoItems,'Score Level Counts by Item',RowLabels,ColLabels, - 'Cases in Reference Group'); - DynIntMatPrint(FScrGrpCnt,nolevels,NoItems,'Score Level Counts by Item',RowLabels,ColLabels, - 'Cases in Focus Group'); - end; - - // Plot Item curves if checked - if ((CurvesChk.Checked) and (LoopIt = 1)) then ItemCurves(Self); - - // check for minimum of 10 per category in each item - // compute NT - for j := 0 to NoItems-1 do - begin - for k := 0 to nolevels-1 do - begin - if ((RScrGrpCnt[k,j] < 10) or (FScrGrpCnt[k,j] < 10)) then - Level10OK[k,j] := 0 // insufficient n - else Level10OK[k,j] := 1; // 10 or more - OK - NT[k,j] := RScrGrpCnt[k,j] + FScrGrpCnt[k,j]; - end; - end; - - for k := 0 to nolevels-1 do - begin - if Level10OK[k,0] = 0 then - begin - cellstring := format('Insufficient data found in level: %d - %d', - [Lbounds[k],Ubounds[k]]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - end; - end; - - // compute alpha - for j := 0 to NoItems - 1 do - begin - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - begin - AlphaNum[j] := AlphaNum[j] + (RMHRight[k,j] * FMHWrong[k,j]) / NT[k,j]; - AlphaDen[j] := AlphaDen[j] + (RMHWrong[k,j] * FMHRight[k,j]) / NT[k,j]; - end; - end; - end; - - for j := 0 to NoItems-1 do - begin - if AlphaDen[j] = 0.0 then - begin - cellstring := format('Window too small at item %d level %d', - [j+1,k+1]); - ShowMessage(cellstring); - exit; - end - else begin - Alpha[j] := AlphaNum[j] / AlphaDen[j]; - MHDiff[j] := -2.35 * ln(Alpha[j]); - end; - end; - - // compute expected values - for j := 0 to NoItems-1 do - begin - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - begin - ExpA[k,j] := (RScrGrpCnt[k,j] * (RMHRight[k,j] + FMHRight[k,j] )) / - NT[k,j]; - end; - end; - end; - - // compute variances - for j := 0 to NoItems-1 do - begin - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - begin - Rtm := RMHRight[k,j] + FMHRight[k,j]; - Wtm := RMHWrong[k,j] + FMHWrong[k,j]; - VarA[k,j] := (RScrGrpCnt[k,j] * FScrGrpCnt[k,j] * Rtm * Wtm) / - ( NT[k,j] * NT[k,j] * (NT[k,j]-1) ); - end; - end; - end; - - // compute chi-squares - for j := 0 to NoItems-1 do - begin - SumA[j] := 0.0; - SumExpA[j] := 0.0; - SumVarA[j] := 0.0; - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - begin - SumA[j] := SumA[j] + RMHRight[k,j]; - SumExpA[j] := SumExpA[j] + ExpA[k,j]; - SumVarA[j] := SumVarA[j] + VarA[k,j]; - end; - end; - end; - - for j := 0 to NoItems-1 do - begin - ChiSqr[j] := (sqr((Abs(SumA[j] - SumExpA[j]) - 0.5))) / SumVarA[j]; - Prob[j] := 1.0 - chisquaredprob(ChiSqr[j],1); - if Prob[j] > 0.05 then Aster[j] := ''; - if Prob[j] <= 0.05 then Aster[j] := '*'; - if Prob[j] <= 0.01 then Aster[j] := '**'; - if Prob[j] <= 0.005 then Aster[j] := '***'; - end; - - // compute std. errors - for j := 0 to NoItems-1 do - begin - C[j] := 0.0; - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - C[j] := C[j] + ((RMHRight[k,j] * FMHWrong[k,j]) / NT[k,j]); - end; - end; - - for j := 0 to NoItems - 1 do - begin - SEMHDDif[j] := 0.0; - for k := 0 to nolevels-1 do - begin - if Level10OK[k,j] = 1 then - begin - SEMHDDif[j] := SEMHDDif[j] + ( (RMHRight[k,j] * FMHWrong[k,j] ) - + ( Alpha[j] * RMHWrong[k,j] * FMHRight[k,j])) * - ( RMHRight[k,j] + FMHWrong[k,j] + Alpha[j] * - ( RMHWrong[k,j] + FMHRight[k,j] )) / ( 2.0 * NT[k,j] * NT[k,j]); - end; - end; - end; - - for j := 0 to NoItems-1 do - SEMHDDif[j] := (2.35 / C[j]) * sqrt(SEMHDDif[j]); - - // code results with ETS codes - for j := 0 to NoItems-1 do - begin - if ( (abs(MHDiff[j]) > 1.5) and ((abs(MHDiff[j]) - (1.96 * SEMHDDif[j]) - > 1.0))) then Code[j] := 'C'; - if ((abs(MHDiff[j]) - (1.96 * SEMHDDif[j]) <= 0.0) or - (abs(MHDiff[j]) <= 1.0)) then code[j] := 'A'; - if ((code[j] <> 'A') and (code[j] <> 'C')) then code[j] := 'B'; - end; - - // purge - TotPurge := 0; - for j := 0 to NoItems-1 do - begin - if (code[j] = 'C') then - begin - TotPurge := TotPurge + 1; - for i := 0 to NoCases - 1 do Tot[i] := Tot[i] - Data[i,j+1]; - if Alpha[j] > 1.0 then CodeRF[j] := 'R'; - if Alpha[j] < 1.0 then CodeRF[j] := 'F'; - end; - end; - - // show results -// OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add( - 'CODES ITEM SIG. ALPHA CHI2 P-VALUE MH D-DIF S.E. MH D-DIF'); - for j := 0 to noitems-1 do - begin - cellstring := format('%1s %1s %4d %3s %6.3f %7.3f %6.3f %6.3f %6.3f', - [code[j],CodeRF[j], j+1, Aster[j],Alpha[j],ChiSqr[j],Prob[j],MHDiff[j], - SEMHDDif[j]]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - end; - OutPutFrm.RichEdit.Lines.Add(''); - if LoopIt = 1 then - begin - cellstring := format('No. of items purged in pass 1 = %d',[TotPurge]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - OutPutFrm.RichEdit.Lines.Add('Item Numbers:'); - for j := 0 to NoItems-1 do - begin - if Code[j] = 'C' then - begin - cellstring := format('%d',[j+1]); - OutPutFrm.RichEdit.Lines.Add(cellstring); - end; - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - if LoopIt < 2 then goto LoopStart; -end; - -procedure TDIFFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TDIFFrm.UpBoundEditExit(Sender: TObject); -VAR i : integer; -begin - i := StrToInt(LevelNoEdit.Text); - Ubounds[i-1] := StrToInt(UpBoundEdit.Text); - if i = StrToInt(LevelsEdit.Text) then - begin - ComputeBtn.SetFocus; - exit; - end; - LowBoundEdit.Text := IntToStr(Ubounds[i-1] + 1); - LowBoundEdit.SetFocus; -end; - -procedure TDIFFrm.AllBtnClick(Sender: TObject); -VAR i : integer; -begin - if VarList.Items.Count < 1 then exit; - for i := 0 to VarList.Items.Count - 1 do - ItemsList.Items.Add(VarList.Items.Strings[i]); - VarList.Clear; - ItemInBtn.Visible := false; - ItemOutBtn.Visible := true; -end; - -procedure TDIFfrm.AlphaRel(Sender: TObject); -var - i : integer; - Alpha1, SEMeas : double; - outline : string; -begin - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add(''); - Alpha1 := 0.0; - - for i := 0 to NoItems-1 do - Alpha1 := Alpha1 + variances[i]; // sum of item variances - Alpha1 := Alpha1 / tvar; - Alpha1 := 1.0 - Alpha1; - Alpha1 := (NoItems / (NoItems - 1.0)) * Alpha1; - SEMeas := tsd * sqrt(1.0 - Alpha1); - outline := format('Alpha Reliability Estimate for Test = %6.4f S.E. of Measurement = %8.3f', - [Alpha1,SEMeas]); - OutPutFrm.RichEdit.Lines.Add(outline); -// OutPutFrm.ShowModal; -end; - -procedure TDIFfrm.ItemCorrs(Sender: TObject); -var - i, j, k : integer; - title : string; -begin - // cross-products - for i := 0 to NoItems-1 do - for j := 0 to NoItems-1 do - for k := 0 to NoCases-1 do - CorMat[i,j] := CorMat[i,j] + (Data[k,i+1] * Data[k,j+1]); - // covariances - for i := 0 to NoItems-1 do - for j := 0 to NoItems-1 do - CorMat[i,j] := (CorMat[i,j] - (NoCases * Means[i] * Means[j])) / - (NoCases-1); - - // correlations - for i := 0 to NoItems-1 do - for j := 0 to NoItems-1 do - CorMat[i,j] := CorMat[i,j] / (StdDevs[i] * StdDevs[j]); - - // show results - OutPutFrm.RichEdit.Clear; - title := 'Correlations Among Items'; - MAT_PRINT(CorMat,NoItems,NoItems,title,RowLabels,ColLabels,NoCases); -end; - -procedure TDIFfrm.ItemTestCorrs(Sender: TObject); -var - i, j : integer; - Cors : DblDyneVec; - title : string; -begin - SetLength(Cors,NoItems); - // cross-products - for i := 0 to NoItems-1 do - for j := 0 to NoCases-1 do - Cors[i] := Cors[i] + (Data[j,i+1] * Tot[j]); - // covariances - for i := 0 to NoItems-1 do - Cors[i] := (Cors[i] - (NoCases * Means[i] * tmean)) / (NoCases-1); - // correlations - for i := 0 to NoItems-1 do - Cors[i] := Cors[i] / (StdDevs[i] * tsd); - // show results -// OutPutFrm.RichEdit.Clear; - title := 'Item-Total Correlations'; - DynVectorPrint(Cors,NoItems,title,ColLabels,NoCases); - // release memory - Cors := nil; -end; - -procedure TDIFfrm.ItemCurves(Sender: TObject); -var - i, ii, j : integer; - XPlotPts : DblDyneMat; - YPlotPts : DblDyneMat; - LabelStr, outline, xTitle, yTitle : string; - max : integer; -begin - SetLength(YPlotPts,2,nolevels); - SetLength(XPlotPts,1,nolevels); - - // get maximum no. of scores in either groups bins - for i := 0 to NoItems-1 do - begin - max := 0; - for j := 0 to nolevels-1 do - begin - if RMHRight[j,i] > max then max := RMHRight[j,i]; - if FMHRight[j,i] > max then max := FMHRight[j,i]; - end; - - // Plot reference group in blue, focus group in red - for ii := 1 to 2 do // possible group curves - begin - for j := 0 to nolevels-1 do //get points to plot - begin - XPlotPts[0,j] := Lbounds[j]; - if ii = 1 then YPlotPts[ii-1,j] := RMHRight[j,i]; - if ii = 2 then YPlotPts[ii-1,j] := FMHRight[j,i]; - end; - end; // next group - - // Plot the points - GraphFrm.BackColor := clWhite; - GraphFrm.ShowLeftWall := true; - GraphFrm.ShowRightWall := true; - GraphFrm.ShowBottomWall := true; - GraphFrm.ShowBackWall := true; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlue; - GraphFrm.FloorColor := clBlue; - outline := format('Blue = Reference, Red = Focus for item %d',[i+1]); - GraphFrm.Heading := outline; - xTitle := 'Lower bounds of levels'; - GraphFrm.XTitle := xTitle; - yTitle := 'Frequencies'; - GraphFrm.YTitle := yTitle; - GraphFrm.nosets := 2; - GraphFrm.nbars := nolevels; - GraphFrm.barwideprop := 0.5; - GraphFrm.miny := 0.0; - GraphFrm.maxy := max; - GraphFrm.AutoScale := false; - GraphFrm.GraphType := 5; // 2d line charts - GraphFrm.PtLabels := false; - for ii := 1 to 2 do - begin - if ii = 1 then LabelStr := 'Reference'; - if ii = 2 then LabelStr := 'Focus'; - GraphFrm.SetLabels[ii] := LabelStr; - end; - GraphFrm.Ypoints := YPlotPts; - GraphFrm.Xpoints := XPlotPts; - GraphFrm.ShowModal; - end; // next item - - XPlotPts := nil; - YPlotPts := nil; -end; - -initialization - {$I difunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/distribunit.pas b/applications/lazstats/source_orig/distribunit.pas deleted file mode 100644 index a588a5de8..000000000 --- a/applications/lazstats/source_orig/distribunit.pas +++ /dev/null @@ -1,596 +0,0 @@ -unit DISTRIBUNIT; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, BlankFrmUnit, OutPutUnit, FunctionsLib, Globals, - Printers, Math; - - type - TwoCol = array[1..2,1..100] of double; - -type - - { TDistribFrm } - - TDistribFrm = class(TForm) - AlphaEdit: TEdit; - DF1Edit: TEdit; - DF2Edit: TEdit; - MeanEdit: TEdit; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - GroupBox2: TGroupBox; - AlphaLabel: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - NDChk: TCheckBox; - ChiChk: TCheckBox; - FChk: TCheckBox; - GroupBox1: TGroupBox; - procedure ChiChkClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure FChkClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure NDChkClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - procedure NDPlot(Sender : TObject); - procedure ChiPlot(Sender : TObject); - procedure FPlot(Sender : TObject); - procedure Hscale(Xmin, Xmax : double; Nsteps : integer; - acolor : TColor; FontSize : integer; - X, Y, Xlength : integer; - charLabel : string; Sender : TObject); - procedure Vscale(Ymin, Ymax : double; Nsteps : integer; - acolor : TColor; FontSize : integer; - X, Y, Ylength : integer; - charLabel : string; Sender : TObject); - procedure NormPts(zMin, zMax : double; Npts : integer; - VAR realpts : TwoCol; - Sender : TObject); - procedure PltPts(realpts : TwoCol; - Xmax, Xmin, Ymax, Ymin : double; - Npts, XaxisStart, YaxisStart, XaxisRange : integer; - YaxisRange : integer; - acolor : TColor; Sender : TObject); - procedure ChiPts(cMin, cMax : double; - Npts, df : integer; - VAR realpts : TwoCol; - Sender : TObject); - procedure FPts(FMin, FMax : double; - Npts, df1, df2 : integer; - VAR realpts : TwoCol; - Sender : TObject); - function chi2func(chisqr, df : double) : double; - function Ffunc(F : double; df1, df2 : integer) : double; - - public - { public declarations } - end; - -var - DistribFrm: TDistribFrm; - -implementation - -{ TDistribFrm } - -procedure TDistribFrm.ResetBtnClick(Sender: TObject); -begin - NDChk.Checked := false; - ChiChk.Checked := false; - FChk.Checked := false; - AlphaEdit.Text := '0.05'; - DF1Edit.Text := ''; - DF2Edit.Text := ''; - MeanEdit.Text := ''; - GroupBox2.Visible := false; -end; - -procedure TDistribFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TDistribFrm.NDChkClick(Sender: TObject); -begin - if NDChk.Checked then - begin - GroupBox2.Visible := true; - AlphaLabel.Visible := true; - AlphaEdit.Visible := true; - DF1Edit.Visible := false; - Label2.Visible := false; - Label3.Visible := false; - Label4.Visible := false; - DF2Edit.Visible := false; - MeanEdit.Visible := false; - end - else GroupBox2.Visible := false; -end; - -procedure TDistribFrm.ComputeBtnClick(Sender: TObject); -begin - if NDChk.Checked then - begin - NDPlot(self); - end; - if ChiChk.Checked then - begin - ChiPlot(self); - end; - if FChk.Checked then - begin - FPlot(self); - end; -end; - -procedure TDistribFrm.FChkClick(Sender: TObject); -begin - if FChk.Checked then - begin - GroupBox2.Visible := true; - Label3.Visible := true; - AlphaLabel.Visible := true; - AlphaEdit.Visible := true; - DF1Edit.Visible := true; - DF2Edit.Visible := true; - Label2.Visible := true; - Label4.Visible := false; - MeanEdit.Visible := false; - end - else GroupBox2.Visible := false; -end; - -procedure TDistribFrm.ChiChkClick(Sender: TObject); -begin - if ChiChk.Checked then - begin - GroupBox2.Visible := true; - Label2.Visible := true; - DF1Edit.Visible := true; - Label3.Visible := false; - Label4.Visible := false; - AlphaLabel.Visible := true; - AlphaEdit.Visible := true; - DF2Edit.Visible := false; - MeanEdit.Visible := false; - end - else - begin - GroupBox2.Visible := false; - end; -end; - -procedure TDistribFrm.NDPlot(Sender: TObject); -var - charLabel : string; - Clwidth, Clheight,X, Y, XaxisStart, XaxisEnd, YaxisStart, YaxisEnd : integer; - i, Xrange, Yrange, t : integer; - alpha, h, z, hprop, zprop : double; - realpts : TwoCol; - -begin - for i := 1 to 100 do realpts[1,i] := 0.0; - for i := 1 to 100 do realpts[2,i] := 0.0; - charLabel := 'Normal Distribution. Alpha = '; - BlankFrm.Image1.Canvas.Clear; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - BlankFrm.Image1.Canvas.Clear; - BlankFrm.Image1.Canvas.FloodFill(1,1,clWhite,fsborder); - BlankFrm.Image1.Canvas.Pen.Width := 2; - Clwidth := BlankFrm.Image1.Width; - Clheight := BlankFrm.Image1.Height; - XaxisStart := Clwidth div 8; - XaxisEnd := Clwidth - (Clwidth div 8); - YaxisStart := (Clheight * 7) div 10; - YaxisEnd := Clheight div 10; - Xrange := XaxisEnd - XaxisStart; - Yrange := YaxisStart - YaxisEnd; - alpha := StrToFloat(AlphaEdit.Text); - BlankFrm.Show; - - // Create values of normal curve - NormPts(-4.0, 4.0, 100, realpts, self); - PltPts(realpts, 4.0, -4.0, 0.5, 0.0, 100, XaxisStart, YaxisStart, Xrange, - Yrange, clBlack, self); - - // Draw line for alpha z := 1.645 - charLabel := charLabel + AlphaEdit.Text; - BlankFrm.Caption := charLabel; - z := inversez(1.0 - alpha); - zprop := (4.0 + z) / 8.0; - h := (1.0 / sqrt(2.0 * 3.1415)) * (1.0 / exp(z * z / 2.0)); - hprop := (0.5 - h) / 0.5; - X := round( zprop * Xrange)+ XaxisStart; - Y := YaxisEnd + round( hprop * Yrange); - BlankFrm.Image1.Canvas.MoveTo(X,YaxisStart); - BlankFrm.Image1.Canvas.LineTo(X,Y-10); // alpha cutoff - - // floodfill rejection section with red - BlankFrm.Image1.Canvas.Brush.Color := clRed; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - - // create labeled axis - Hscale(-4.0, 4.0, 11, clWhite, 10, XaxisStart, YaxisStart, Xrange,'z SCALE',self); - Vscale(0.0, 0.5, 11, clWhite, 10, XaxisStart, YaxisStart, Yrange, 'DENSITY',self); - - // Print Heading - t := BlankFrm.Image1.Canvas.TextWidth(charLabel); - X := (BlankFrm.Width div 2) - (t div 2); - BlankFrm.Image1.Canvas.TextOut(X,0,charLabel); - charLabel := 'Critical Value = '; - charLabel := charLabel + format('%6.3f',[z]); - t := BlankFrm.Image1.Canvas.TextWidth(charLabel); - X := (BlankFrm.Image1.Width div 2) - (t div 2); - BlankFrm.Image1.Canvas.TextOut(X,BlankFrm.Image1.Canvas.TextHeight(charLabel),charLabel); -end; - -procedure TDistribFrm.ChiPlot(Sender: TObject); -var - charLabel : string; - Clwidth, Clheight, X, Y, XaxisStart, XaxisEnd, YaxisStart, YaxisEnd : integer; - i, Xrange, Yrange, df, t : integer; - alpha, h, z, hprop, zprop, MaxChi, MaxProb : double; - realpts : TwoCol; - -begin - BlankFrm.Image1.Canvas.Clear; - for i := 1 to 100 do realpts[1,i] := 0.0; - for i := 1 to 100 do realpts[2,i] := 0.0; - charLabel := 'Chi Squared Distribution. Alpha = '; - MaxProb := 0.0; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - BlankFrm.Image1.Canvas.Clear; - BlankFrm.Image1.Canvas.FloodFill(1,1,clWhite,fsborder); - BlankFrm.Image1.Canvas.Pen.Width := 2; - Clwidth := BlankFrm.Image1.Width; - Clheight := BlankFrm.Image1.Height; - XaxisStart := Clwidth div 8; - XaxisEnd := Clwidth - (Clwidth div 8); - YaxisStart := (Clheight * 7) div 10; - YaxisEnd := Clheight div 10; - Xrange := XaxisEnd - XaxisStart; - Yrange := YaxisStart - YaxisEnd; - alpha := StrToFloat(AlphaEdit.Text); - charLabel := charLabel + AlphaEdit.Text; - df := StrToInt(DF1Edit.Text); - if (df < 1) or (df > 100) then exit; - charLabel := charLabel + ' D.F. = '; - charLabel := charLabel + DF1Edit.Text; - BlankFrm.Caption := charLabel; - BlankFrm.Show; - - // Create values of chi-squared curve - MaxChi := 125.0; - ChiPts(0.0, MaxChi, 100, df, realpts, self); - for i := 1 to 100 do - begin - if (realpts[2,i] > MaxProb) then MaxProb := realpts[2,i]; - end; - PltPts(realpts, MaxChi, 0.0, MaxProb, 0.0, 100, XaxisStart, YaxisStart, Xrange, - Yrange, clBlack, self); - - // Draw line for alpha - z := inversechi(1.0-alpha,df); - zprop := z / MaxChi; - h := chi2func(z,df); - hprop := (MaxProb - h) / MaxProb; - X := round( zprop * Xrange)+ XaxisStart; - Y := YaxisEnd + round( hprop * Yrange); - BlankFrm.Image1.Canvas.MoveTo(X,YaxisStart); - BlankFrm.Image1.Canvas.LineTo(X,Y); // alpha cutoff - - // floodfill main section with blue - BlankFrm.Image1.Canvas.Brush.Color := clBlue; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - - // create charLabeled axis - Hscale(0.0, MaxChi, 11, clWhite, 10, XaxisStart, YaxisStart, - Xrange,'CHI SQUARED SCALE',self); - Vscale(0.0, MaxProb, 11, clWhite, 10, XaxisStart, YaxisStart, - Yrange, 'DENSITY',self); - - // Print Heading - t := BlankFrm.Image1.Canvas.TextWidth(charLabel); - X := (BlankFrm.Width div 2) - (t div 2); - BlankFrm.Image1.Canvas.TextOut(X,0,charLabel); - charLabel := 'Critical Value = '; - charLabel := charLabel + format('%6.3f',[z]); - t := BlankFrm.Image1.Canvas.TextWidth(charLabel); - X := (BlankFrm.Image1.Width div 2) - (t div 2); - BlankFrm.Image1.Canvas.TextOut(X,BlankFrm.Image1.Canvas.TextHeight(charLabel),charLabel); -end; - -procedure TDistribFrm.FPlot(Sender: TObject); -var - charLabel : string; - Clwidth, Clheight, X, Y, XaxisStart, XaxisEnd, YaxisStart, YaxisEnd : integer; - i, Xrange, Yrange, t, df1, df2 : integer; - realpts : TwoCol; - alpha, h, F, hprop, Fprop, MaxProb, MaxF : double; - done : boolean; -begin - BlankFrm.Image1.Canvas.Clear; - for i := 1 to 100 do realpts[1,i] := 0.0; - for i := 1 to 100 do realpts[2,i] := 0.0; - MaxProb := 0.0; - charLabel := 'F Distribution. Alpha = '; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - BlankFrm.Image1.Canvas.Clear; - BlankFrm.Image1.Canvas.FloodFill(1,1,clWhite,fsborder); - BlankFrm.Image1.Canvas.Pen.Width := 2; - Clwidth := BlankFrm.Image1.Width; - Clheight := BlankFrm.Image1.Height; - XaxisStart := Clwidth div 8; - XaxisEnd := Clwidth - (Clwidth div 8); - YaxisStart := (Clheight * 7) div 10; - YaxisEnd := Clheight div 10; - Xrange := XaxisEnd - XaxisStart; - Yrange := YaxisStart - YaxisEnd; - alpha := StrToFloat(AlphaEdit.Text); - charLabel := charLabel + AlphaEdit.Text; - df1 := StrToInt(DF1Edit.Text); - charLabel := charLabel + ' D.F.1 = '; - charLabel := charLabel + DF1Edit.Text; - df2 := StrToInt(DF2Edit.Text); - charLabel := charLabel + ' , D.F.2 = '; - charLabel := charLabel + DF2Edit.Text; - BlankFrm.Caption := charLabel; - BlankFrm.Show; - - // Create values of F curve - MaxF := 20.0; - done := false; - while not done do - begin - h := Ffunc(MaxF, df1, df2); - if (h < 0.001) then MaxF := MaxF - 1.0 - else done := true; - end; - - FPts(0.0, MaxF, 100, df1, df2, realpts, self); - for i := 1 to 100 do - begin - if (realpts[2,i] > MaxProb) then MaxProb := realpts[2,i]; - end; - PltPts(realpts, MaxF, 0.0, MaxProb, 0.0, 100, XaxisStart, YaxisStart, Xrange, - Yrange, clBlack, self); - - // Draw line for alpha - F := fpercentpoint(1.0-alpha,df1,df2); - Fprop := F / MaxF; - h := Ffunc(F,df1,df2); - hprop := (MaxProb - h) / MaxProb; - X := round( Fprop * Xrange)+ XaxisStart; - Y := YaxisEnd + round( hprop * Yrange); - BlankFrm.Image1.Canvas.MoveTo(X,YaxisStart); - BlankFrm.Image1.Canvas.LineTo(X,Y); // alpha cutoff - - // floodfill main section with blue - BlankFrm.Canvas.Brush.Color := clBlue; - - // create charLabeled axis - Hscale(0.0, MaxF, 11, clWhite, 10, XaxisStart, YaxisStart, - Xrange,'F SCALE',self); - Vscale(0.0, MaxProb, 11, clWhite, 10, XaxisStart, YaxisStart, - Yrange, 'DENSITY',self); - - // Print Heading - t := BlankFrm.Image1.Canvas.TextWidth(charLabel); - X := (BlankFrm.Image1.Width div 2) - (t div 2); - BlankFrm.Image1.Canvas.TextOut(X,0,charLabel); - charLabel := 'Critical Value = '; - charLabel := charLabel + format('%6.3f',[F]); - t := BlankFrm.Image1.Canvas.TextWidth(charLabel); - X := (BlankFrm.Image1.Width div 2) - (t div 2); - BlankFrm.Image1.Canvas.TextOut(X,BlankFrm.Image1.Canvas.TextHeight(charLabel),charLabel); -end; - -procedure TDistribFrm.Hscale(Xmin, Xmax: double; Nsteps: integer; - acolor: TColor; FontSize: integer; X, Y, Xlength: integer; charLabel: string; - Sender: TObject); -var - i, TickEnd, Xpos, Ypos, TextX : integer; - Xincr, Xval : double; - Svalue, Ast : string; -begin - BlankFrm.Image1.Canvas.MoveTo(X,Y); - BlankFrm.Image1.Canvas.LineTo(X+Xlength,Y); - BlankFrm.Image1.Canvas.Font.Size := FontSize; - BlankFrm.Image1.Canvas.Brush.Color := acolor; - TickEnd := Y + 10; - Xincr := (Xmax - Xmin) / Nsteps; - for i := 0 to Nsteps do - begin - Xpos := round(((Xlength / Nsteps) * i) + X); - BlankFrm.Image1.Canvas.MoveTo(Xpos,Y); - BlankFrm.Image1.Canvas.LineTo(Xpos,TickEnd); - TextX := Xpos - 8; - Xval := Xmin + ( i * Xincr); - Svalue := format('%4.2f',[Xval]); - Ast := Svalue; - BlankFrm.Image1.Canvas.TextOut(TextX, Y+15, Ast); - end; - // print charLabel below X axis - Ypos := Y + 30; - Xpos := round((BlankFrm.Width / 2) - (BlankFrm.Image1.Canvas.TextWidth(charLabel) / 2)); - BlankFrm.Image1.Canvas.TextOut(Xpos,Ypos,charLabel); -end; - -procedure TDistribFrm.Vscale(Ymin, Ymax: double; Nsteps: integer; - acolor: TColor; FontSize: integer; X, Y, Ylength: integer; charLabel: string; - Sender: TObject); -var - TickEnd, Ypos, Xpos, TextY : integer; - Yincr, Yval : double; - Svalue, symbol, Ast : string; - chpixs, i : integer; -begin - BlankFrm.Image1.Canvas.MoveTo(X,Y); - BlankFrm.Image1.Canvas.LineTo(X,Y-Ylength); - BlankFrm.Image1.Canvas.Font.Size := FontSize; - BlankFrm.Image1.Canvas.Brush.Color := acolor; - TickEnd := X - 10; - Yincr := (Ymax - Ymin) / Nsteps; - TextY := 0; - for i := 0 to Nsteps do - begin - Ypos := round(Y - ((Ylength / Nsteps) * i)); - BlankFrm.Image1.Canvas.MoveTo(X,Ypos); - BlankFrm.Image1.Canvas.LineTo(TickEnd,Ypos); - TextY := TickEnd - 30; - Yval := Ymin + ( i * Yincr); - Svalue := format('%4.2f',[Yval]); - Ast := Svalue; - BlankFrm.Image1.Canvas.TextOut(TextY, Ypos-8, Ast); - end; - // print charLabel vertically - Xpos := TextY - 15; - for i := 1 to Length(charLabel) do - begin - chpixs := BlankFrm.Image1.Canvas.TextHeight(charLabel); - Ypos := round(Y - (Ylength / 2) - ( (Length(charLabel) * chpixs) / 2 ) + (chpixs * i)); - symbol := charLabel[i]; -// symbol[2] := 0; - BlankFrm.Image1.Canvas.TextOut(Xpos,Ypos,symbol); - end; -end; - -procedure TDistribFrm.NormPts(zMin, zMax: double; Npts: integer; - var realpts: TwoCol; Sender: TObject); -var - zIncr, z, h : double; - i : integer; -begin - zIncr := (zMax - zMin) / Npts; - for i := 1 to Npts do - begin - z := zMin + (zIncr * i); - h := (1.0 / sqrt(2.0 * 3.14159265358979)) * - ( 1.0 / exp(z * z / 2.0)); - realpts[1,i] := z; - realpts[2,i] := h; - end; -end; - -procedure TDistribFrm.PltPts(realpts: TwoCol; Xmax, Xmin, Ymax, Ymin: double; - Npts, XaxisStart, YaxisStart, XaxisRange: integer; YaxisRange: integer; - acolor: TColor; Sender: TObject); -var - hprop, zprop, z, h : double; - i, X, Y : integer; - intpts : array[1..100] of TPoint; -begin - for i := 1 to Npts do - begin - z := realpts[1,i]; - h := realpts[2,i]; - zprop := (z - Xmin) / (Xmax - Xmin); - X := round((zprop * XaxisRange) + XaxisStart); - hprop := (h - Ymin) / (Ymax - Ymin); - Y := round(YaxisStart - (hprop * YaxisRange)); - intpts[i] := Point(X,Y); - end; - BlankFrm.Image1.Canvas.Pen.Color := acolor; - BlankFrm.Image1.Canvas.Polyline(Slice(intpts,Npts - 1)); -end; - -procedure TDistribFrm.ChiPts(cMin, cMax: double; Npts, df: integer; - var realpts: TwoCol; Sender: TObject); -var - ratio1, ratio2, ratio3, cIncr, chi, h : double; - i : integer; -begin - ratio1 := df / 2.0; - ratio2 := (df - 2.0) / 2.0; - cIncr := (cMax - cMin) / Npts; - for i := 1 to Npts do - begin - chi := cMin + (cIncr * i); -// h := inversechi(chi, df); - ratio3 := chi / 2.0; - h := (1.0 / (power(2.0,ratio1) * exp(lngamma(ratio1)))) * power(chi,ratio2) * ( 1.0 / exp(ratio3)); - realpts[1,i] := chi; - realpts[2,i] := h; - end; -end; - -procedure TDistribFrm.FPts(FMin, FMax: double; Npts, df1, df2: integer; - var realpts: TwoCol; Sender: TObject); -var - FIncr, F, h : double; - i : integer; -begin - FIncr := (FMax - FMin) / Npts; - for i := 1 to Npts do - begin - F := FMin + (FIncr * i); - h := Ffunc(F, df1, df2); - realpts[1,i] := F; - realpts[2,i] := h; - end; -end; - -function TDistribFrm.chi2func(chisqr, df: double): double; -var - ratio1, ratio2, ratio3, h : double; -begin - // Returns the height of the density curve for the chi-squared statistic - ratio1 := df / 2.0; - ratio2 := (df - 2.0) / 2.0; - ratio3 := chisqr / 2.0; - h := (1.0 / (power(2.0,ratio1) * exp(lngamma(ratio1)))) * power(chisqr,ratio2) * ( 1.0 / exp(ratio3)); - Result := h; -end; - -function TDistribFrm.Ffunc(F: double; df1, df2: integer): double; -var - ratio1, ratio2, ratio3, ratio4, h : double; - part1, part2, part3, part4, part5, part6, part7, part8, part9 : double; -begin - // Returns the height of the density curve for the F statistic - ratio1 := (df1 + df2) / 2.0; - ratio2 := (df1 - 2.0) / 2.0; - ratio3 := df1 / 2.0; - ratio4 := df2 / 2.0; - part1 := exp(lngamma(ratio1)); - part2 := power(df1,ratio3); - part3 := power(df2,ratio4); - part4 := exp(lngamma(ratio3)); - part5 := exp(lngamma(ratio4)); - part6 := power(F,ratio2); - part7 := power((F*df1+df2),ratio1); - part8 := (part1 * part2 * part3) / (part4 * part5); - if (part7 = 0.0) then part9 := 0.0 - else part9 := part6 / part7; - h := part8 * part9; -{ - ratio1 := (df1 + df2) / 2.0; - ratio2 := (df1 - 2.0) / 2.0; - ratio3 := df1 / 2.0; - ratio4 := df2 / 2.0; - ffunc := ((gamma(ratio1) * realraise(df1,ratio3) * - realraise(df2,ratio4)) / - (gamma(ratio3) * gamma(ratio4))) * - (realraise(f,ratio2) / realraise((f*df1+df2),ratio1)); -} - Result := h; -end; - -initialization - {$I distribunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/equationunit.lfm b/applications/lazstats/source_orig/equationunit.lfm deleted file mode 100644 index 4787f0e64..000000000 --- a/applications/lazstats/source_orig/equationunit.lfm +++ /dev/null @@ -1,191 +0,0 @@ -object EquationForm: TEquationForm - Left = 244 - Height = 396 - Top = 138 - Width = 592 - Caption = 'Equation Editor' - ClientHeight = 396 - ClientWidth = 592 - OnShow = ResetBtnClick - LCLVersion = '0.9.30' - object Memo1: TMemo - Left = 7 - Height = 184 - Top = 8 - Width = 569 - Lines.Strings = ( - 'You can create a new variable as a combination of other existing variables with this procedure.' - 'First, enter the name of the new variable in the area labeled "New Variable".' - 'Next, enter up to three values for each entry in your equation by selecting an operation, function or' - 'variable from the "drop-down" boxes. You can select:' - '(a) An operation code (+,-,* or /) except for the first one which should be a function or variable name.' - '(b) A function such as sin, cos, sqrt, etc. can be entered first followed by the variable to be acted upon.' - '(c) A variable name from the list of available variables in the drop-down list of variables.' - '(d) For each variable to be entered, click the "Next Entry" button. Following the first entry, an ' - ' operation code must be the first entry.' - 'When done, click the "Finished" button followed by a click of the "Compute button". An image of the' - 'completed function will be displayed before the new values are created.' - ) - TabOrder = 0 - end - object Label1: TLabel - Left = 8 - Height = 16 - Top = 250 - Width = 108 - Caption = 'New Variable Name:' - ParentColor = False - end - object NewVarEdit: TEdit - Left = 8 - Height = 23 - Top = 275 - Width = 127 - TabOrder = 1 - Text = 'NewVarEdit' - end - object Label2: TLabel - Left = 145 - Height = 16 - Top = 278 - Width = 9 - Caption = '=' - ParentColor = False - end - object OpEdit: TEdit - Left = 161 - Height = 23 - Top = 275 - Width = 96 - TabOrder = 2 - Text = 'OpEdit' - end - object FuncEdit: TEdit - Left = 265 - Height = 23 - Top = 275 - Width = 136 - TabOrder = 3 - Text = 'FuncEdit' - end - object VarEdit: TEdit - Left = 409 - Height = 23 - Top = 275 - Width = 168 - TabOrder = 4 - Text = 'VarEdit' - end - object OpsCombo: TComboBox - Left = 162 - Height = 23 - Top = 227 - Width = 94 - AutoDropDown = True - ItemHeight = 15 - Items.Strings = ( - '+' - '-' - '*' - '/' - '' - ) - OnClick = OpsComboClick - OnSelect = OpsComboSelect - TabOrder = 5 - end - object FunctionCombo: TComboBox - Left = 265 - Height = 23 - Top = 226 - Width = 134 - AutoDropDown = True - ItemHeight = 15 - Items.Strings = ( - 'sqr' - 'sqrt' - 'sin' - 'cos' - 'tan' - 'asin' - 'acos' - 'atan' - 'log10' - 'ln' - 'exp' - '1 / X' - '' - ) - OnClick = FunctionComboClick - OnSelect = FunctionComboSelect - TabOrder = 6 - end - object VarCombo: TComboBox - Left = 407 - Height = 23 - Top = 224 - Width = 169 - AutoDropDown = True - ItemHeight = 15 - OnClick = VarComboClick - OnSelect = VarComboSelect - TabOrder = 7 - Text = 'VarCombo' - end - object ResetBtn: TButton - Left = 10 - Height = 32 - Top = 354 - Width = 87 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 8 - end - object CancelBtn: TButton - Left = 161 - Height = 32 - Top = 354 - Width = 87 - Caption = 'Cancel' - ModalResult = 2 - OnClick = CancelBtnClick - TabOrder = 9 - end - object ComputeBtn: TButton - Left = 312 - Height = 32 - Top = 354 - Width = 87 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 10 - end - object ReturnBnt: TButton - Left = 489 - Height = 32 - Top = 354 - Width = 87 - Caption = 'Return' - ModalResult = 1 - OnClick = ReturnBntClick - TabOrder = 11 - end - object NextBtn: TButton - Left = 115 - Height = 29 - Top = 313 - Width = 140 - Caption = 'Continue for next entry' - OnClick = NextBtnClick - TabOrder = 12 - end - object FinishedBtn: TButton - Left = 297 - Height = 29 - Top = 312 - Width = 132 - Caption = 'Finished' - OnClick = FinishedBtnClick - TabOrder = 13 - end -end diff --git a/applications/lazstats/source_orig/equationunit.lrs b/applications/lazstats/source_orig/equationunit.lrs deleted file mode 100644 index 039c02002..000000000 --- a/applications/lazstats/source_orig/equationunit.lrs +++ /dev/null @@ -1,57 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TEquationForm','FORMDATA',[ - 'TPF0'#13'TEquationForm'#12'EquationForm'#4'Left'#3#244#0#6'Height'#3#140#1#3 - +'Top'#3#138#0#5'Width'#3'P'#2#7'Caption'#6#15'Equation Editor'#12'ClientHeig' - +'ht'#3#140#1#11'ClientWidth'#3'P'#2#6'OnShow'#7#13'ResetBtnClick'#10'LCLVers' - +'ion'#6#6'0.9.30'#0#5'TMemo'#5'Memo1'#4'Left'#2#7#6'Height'#3#184#0#3'Top'#2 - +#8#5'Width'#3'9'#2#13'Lines.Strings'#1#6'_You can create a new variable as a' - +' combination of other existing variables with this procedure.'#6'MFirst, en' - +'ter the name of the new variable in the area labeled "New Variable".'#6'eNe' - +'xt, enter up to three values for each entry in your equation by selecting a' - +'n operation, function or'#6'6variable from the "drop-down" boxes. You can' - +' select:'#6'j(a) An operation code (+,-,* or /) except for the first one ' - +'which should be a function or variable name.'#6'm(b) A function such as s' - +'in, cos, sqrt, etc. can be entered first followed by the variable to be act' - +'ed upon.'#6'^(c) A variable name from the list of available variables in ' - +'the drop-down list of variables.'#6'e(d) For each variable to be entered,' - +' click the "Next Entry" button. Following the first entry, an '#6'/ ' - +' operation code must be the first entry.'#6'dWhen done, click the "Finished' - +'" button followed by a click of the "Compute button". An image of the'#6'G' - +'completed function will be displayed before the new values are created.'#0#8 - +'TabOrder'#2#0#0#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'#2#16#3'Top'#3 - +#250#0#5'Width'#2'l'#7'Caption'#6#18'New Variable Name:'#11'ParentColor'#8#0 - +#0#5'TEdit'#10'NewVarEdit'#4'Left'#2#8#6'Height'#2#23#3'Top'#3#19#1#5'Width' - +#2#127#8'TabOrder'#2#1#4'Text'#6#10'NewVarEdit'#0#0#6'TLabel'#6'Label2'#4'Le' - +'ft'#3#145#0#6'Height'#2#16#3'Top'#3#22#1#5'Width'#2#9#7'Caption'#6#1'='#11 - +'ParentColor'#8#0#0#5'TEdit'#6'OpEdit'#4'Left'#3#161#0#6'Height'#2#23#3'Top' - +#3#19#1#5'Width'#2'`'#8'TabOrder'#2#2#4'Text'#6#6'OpEdit'#0#0#5'TEdit'#8'Fun' - +'cEdit'#4'Left'#3#9#1#6'Height'#2#23#3'Top'#3#19#1#5'Width'#3#136#0#8'TabOrd' - +'er'#2#3#4'Text'#6#8'FuncEdit'#0#0#5'TEdit'#7'VarEdit'#4'Left'#3#153#1#6'Hei' - +'ght'#2#23#3'Top'#3#19#1#5'Width'#3#168#0#8'TabOrder'#2#4#4'Text'#6#7'VarEdi' - +'t'#0#0#9'TComboBox'#8'OpsCombo'#4'Left'#3#162#0#6'Height'#2#23#3'Top'#3#227 - +#0#5'Width'#2'^'#12'AutoDropDown'#9#10'ItemHeight'#2#15#13'Items.Strings'#1#6 - +#1'+'#6#1'-'#6#1'*'#6#1'/'#6#0#0#7'OnClick'#7#13'OpsComboClick'#8'OnSelect'#7 - +#14'OpsComboSelect'#8'TabOrder'#2#5#0#0#9'TComboBox'#13'FunctionCombo'#4'Lef' - +'t'#3#9#1#6'Height'#2#23#3'Top'#3#226#0#5'Width'#3#134#0#12'AutoDropDown'#9 - +#10'ItemHeight'#2#15#13'Items.Strings'#1#6#3'sqr'#6#4'sqrt'#6#3'sin'#6#3'cos' - +#6#3'tan'#6#4'asin'#6#4'acos'#6#4'atan'#6#5'log10'#6#2'ln'#6#3'exp'#6#5'1 / ' - +'X'#6#0#0#7'OnClick'#7#18'FunctionComboClick'#8'OnSelect'#7#19'FunctionCombo' - +'Select'#8'TabOrder'#2#6#0#0#9'TComboBox'#8'VarCombo'#4'Left'#3#151#1#6'Heig' - +'ht'#2#23#3'Top'#3#224#0#5'Width'#3#169#0#12'AutoDropDown'#9#10'ItemHeight'#2 - +#15#7'OnClick'#7#13'VarComboClick'#8'OnSelect'#7#14'VarComboSelect'#8'TabOrd' - +'er'#2#7#4'Text'#6#8'VarCombo'#0#0#7'TButton'#8'ResetBtn'#4'Left'#2#10#6'Hei' - +'ght'#2' '#3'Top'#3'b'#1#5'Width'#2'W'#7'Caption'#6#5'Reset'#7'OnClick'#7#13 - +'ResetBtnClick'#8'TabOrder'#2#8#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#161#0#6 - +'Height'#2' '#3'Top'#3'b'#1#5'Width'#2'W'#7'Caption'#6#6'Cancel'#11'ModalRes' - +'ult'#2#2#7'OnClick'#7#14'CancelBtnClick'#8'TabOrder'#2#9#0#0#7'TButton'#10 - +'ComputeBtn'#4'Left'#3'8'#1#6'Height'#2' '#3'Top'#3'b'#1#5'Width'#2'W'#7'Cap' - +'tion'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#10#0#0#7 - +'TButton'#9'ReturnBnt'#4'Left'#3#233#1#6'Height'#2' '#3'Top'#3'b'#1#5'Width' - +#2'W'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#7'OnClick'#7#14'ReturnBntCl' - +'ick'#8'TabOrder'#2#11#0#0#7'TButton'#7'NextBtn'#4'Left'#2's'#6'Height'#2#29 - +#3'Top'#3'9'#1#5'Width'#3#140#0#7'Caption'#6#23'Continue for next entry'#7'O' - +'nClick'#7#12'NextBtnClick'#8'TabOrder'#2#12#0#0#7'TButton'#11'FinishedBtn'#4 - +'Left'#3')'#1#6'Height'#2#29#3'Top'#3'8'#1#5'Width'#3#132#0#7'Caption'#6#8'F' - +'inished'#7'OnClick'#7#16'FinishedBtnClick'#8'TabOrder'#2#13#0#0#0 -]); diff --git a/applications/lazstats/source_orig/equationunit.pas b/applications/lazstats/source_orig/equationunit.pas deleted file mode 100644 index dec64297a..000000000 --- a/applications/lazstats/source_orig/equationunit.pas +++ /dev/null @@ -1,289 +0,0 @@ -unit EquationUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, MainUnit, Globals, OutPutUnit, DataProcs, - DictionaryUnit, contexthelpunit, MatrixLib, Math; - -type - - { TEquationForm } - - TEquationForm = class(TForm) - FinishedBtn: TButton; - NextBtn: TButton; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBnt: TButton; - VarCombo: TComboBox; - FunctionCombo: TComboBox; - OpsCombo: TComboBox; - VarEdit: TEdit; - FuncEdit: TEdit; - OpEdit: TEdit; - Label2: TLabel; - NewVarEdit: TEdit; - Label1: TLabel; - Memo1: TMemo; - procedure CancelBtnClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure FinishedBtnClick(Sender: TObject); - procedure FunctionComboClick(Sender: TObject); - procedure FunctionComboSelect(Sender: TObject); - procedure NextBtnClick(Sender: TObject); - procedure OpsComboClick(Sender: TObject); - procedure OpsComboSelect(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure ReturnBntClick(Sender: TObject); - procedure VarComboClick(Sender: TObject); - procedure VarComboSelect(Sender: TObject); - private - { private declarations } - operations, functions, variables : StrDyneVec; - NoEntries : integer; - selected : IntDyneVec; - public - { public declarations } - end; - -var - EquationForm: TEquationForm; - -implementation - -{ TEquationForm } - -procedure TEquationForm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - NewVarEdit.Text := ''; - OpEdit.Text := ''; - FuncEdit.Text := ''; - VarEdit.Text := ''; - OpsCombo.Text := 'Operations'; - FunctionCombo.Text := 'Functions'; - VarCombo.Clear; - for i := 1 to NoVariables do - VarCombo.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - VarCombo.Text := 'Variables'; - VarCombo.DropDownCount := NoVariables; - SetLength(operations,NoVariables); - SetLength(functions,NoVariables); - SetLength(variables,NoVariables); - NoEntries := 0; -end; - -procedure TEquationForm.ReturnBntClick(Sender: TObject); -begin - variables := nil; - functions := nil; - operations := nil; -end; - -procedure TEquationForm.VarComboClick(Sender: TObject); -VAR index : integer; -begin - index := VarCombo.ItemIndex; - if index < 0 then exit; - VarEdit.Text := VarCombo.Items.Strings[index]; - VarCombo.ItemIndex := -1; -end; - -procedure TEquationForm.VarComboSelect(Sender: TObject); -VAR index : integer; -begin - index := VarCombo.ItemIndex; - if index < 0 then exit; - VarEdit.Text := VarCombo.Items.Strings[index]; - VarCombo.ItemIndex := -1; -end; - -procedure TEquationForm.NextBtnClick(Sender: TObject); -begin - operations[NoEntries] := OpEdit.Text; - if ((NoEntries > 0) and (operations[NoEntries] = '') )then - begin - ShowMessage('ERROR-No operation selected - enter again!'); - exit; - end; - functions[NoEntries] := FuncEdit.Text; - variables[NoEntries] := VarEdit.Text; - if (variables[NoEntries] = '') then - begin - ShowMessage('ERROR-No variable entered - enter again!'); - exit; - end; - NoEntries := NoEntries + 1; - OpEdit.Text := ''; - FuncEdit.Text := ''; - VarEdit.Text := ''; - OpsCombo.Text := 'Operations'; - FunctionCombo.Text := 'Functions'; - VarCombo.Text := 'Variables'; -end; - -procedure TEquationForm.OpsComboClick(Sender: TObject); -VAR index : integer; -begin - index := OpsCombo.ItemIndex; - if index < 0 then exit; - OpEdit.Text := OpsCombo.Items.Strings[index]; - OpsCombo.ItemIndex := -1; -end; - -procedure TEquationForm.OpsComboSelect(Sender: TObject); -VAR index : integer; -begin - index := OpsCombo.ItemIndex; - if index < 0 then exit; - OpEdit.Text := OpsCombo.Items.Strings[index]; - OpsCombo.ItemIndex := -1; -end; - -procedure TEquationForm.FinishedBtnClick(Sender: TObject); -begin - operations[NoEntries] := OpEdit.Text; - if ((NoEntries > 0) and (operations[NoEntries] = '')) then - begin - ShowMessage('ERROR-No operation selected - enter again!'); - exit; - end; - functions[NoEntries] := FuncEdit.Text; - variables[NoEntries] := VarEdit.Text; - if (variables[NoEntries] = '') then - begin - ShowMessage('ERROR-No variable entered - enter again!'); - exit; - end; - NoEntries := NoEntries + 1; - OpsCombo.Text := 'Operations'; - FunctionCombo.Text := 'Functions'; - VarCombo.Text := 'Variables'; -end; - -procedure TEquationForm.FunctionComboClick(Sender: TObject); -VAR index : integer; -begin - index := FunctionCombo.ItemIndex; - if index < 0 then exit; - FuncEdit.Text := FunctionCombo.Items.Strings[index]; - FunctionCombo.ItemIndex := -1; -end; - -procedure TEquationForm.FunctionComboSelect(Sender: TObject); -VAR index : integer; -begin - index := FunctionCombo.ItemIndex; - if index < 0 then exit; - FuncEdit.Text := FunctionCombo.Items.Strings[index]; - FunctionCombo.ItemIndex := -1; -end; - -procedure TEquationForm.ComputeBtnClick(Sender: TObject); -VAR - cellstring, outline : string; - opsitem, funcsitem, col, newcol, i, j, k : integer; - newvalue, xvalue : double; -begin - // get position of selected variables from the main grid - SetLength(selected,NoEntries); - for i := 1 to NoVariables do - begin - cellstring := Trim(OS3MainFrm.DataGrid.Cells[i,0]); - for j := 0 to NoEntries - 1 do - if (cellstring = variables[j]) then selected[j] := i; - end; - - // create a new variable in the main grid - col := NoVariables + 1; - newcol := col; - DictionaryFrm.NewVar(col); - OS3MainFrm.DataGrid.Cells[col,0] := NewVarEdit.Text; - DictionaryFrm.DictGrid.Cells[1,col] := NewVarEdit.Text; - - // for each subject obtain selected variable values and add to newvalue - for i := 1 to NoCases do // subject loop - begin - newvalue := 0.0; - for j := 0 to NoEntries - 1 do // list loop - begin - col := selected[j]; - xvalue := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,i])); - if (functions[j] <> '') then // do the function - begin - for k := 0 to 11 do // get function number - begin - if (functions[j] = FunctionCombo.Items.Strings[k]) then funcsitem := k; - end; - case (funcsitem) of - 0: xvalue *= xvalue; - 1: xvalue := sqrt(xvalue); - 2: xvalue := sin(xvalue); - 3: xvalue := cos(xvalue); - 4: xvalue := tan(xvalue); - 5: xvalue := arcsin(xvalue); - 6: xvalue := arccos(xvalue); - 7: xvalue := arctan(xvalue); - 8: xvalue := log10(xvalue); - 9: xvalue := ln(xvalue); - 10: xvalue := exp(xvalue); - 11: xvalue := 1.0 / xvalue; - end; - end; // end if function - if (operations[j] = '') then newvalue := newvalue + xvalue - else // find operation - begin - for k := 0 to 3 do - begin - if (operations[j] = OpsCombo.Items.Strings[k]) then opsitem := k; - end; - case (opsitem) of - 0: newvalue += xvalue; - 1: newvalue -= xvalue; - 2: newvalue *= xvalue; - 3: newvalue /= xvalue; - end; - end; // end else - end; // end jth variable - OS3MainFrm.DataGrid.Cells[newcol,i] := floattostr(newvalue); - FormatCell(newcol,i); - end; // next subject - - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Equation Used for the New Variable'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := NewVarEdit.Text; - outline := outline +' = '; - for j := 0 to NoEntries - 1 do - begin - outline := outline + functions[j]; - outline := outline + ' '; - outline := outline + variables[j]; - outline := outline + ' '; - if (j < NoEntries-1) then - begin - outline := outline + operations[j+1]; - outline := outline + ' '; - end; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; -end; - -procedure TEquationForm.CancelBtnClick(Sender: TObject); -begin - variables := nil; - functions := nil; - operations := nil; -end; - -initialization - {$I equationunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/errorcurvesunit.pas b/applications/lazstats/source_orig/errorcurvesunit.pas deleted file mode 100644 index 1004c5cd9..000000000 --- a/applications/lazstats/source_orig/errorcurvesunit.pas +++ /dev/null @@ -1,330 +0,0 @@ -unit ERRORCURVESUNIT; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, ExtCtrls, BlankFrmUnit, OutPutUnit, FunctionsLib, Globals; - -type - TwoCol = array[1..2,1..100] of double; - -type - - { TErrorCurvesFrm } - - TErrorCurvesFrm = class(TForm) - NullType: TRadioGroup; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - NullMeanEdit: TEdit; - AltMeanEdit: TEdit; - SDEdit: TEdit; - TypeIEdit: TEdit; - TypeIIEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - Label5: TLabel; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - procedure PltPts(realpts : TwoCol; - Xmax, Xmin, Ymax, Ymin : double; - Npts, XaxisStart, YaxisStart, XaxisRange : integer; - YaxisRange : integer; - acolor : TColor; Sender : TObject); - procedure Hscale(Xmin, Xmax : double; Nsteps : integer; - acolor : TColor; FontSize : integer; - X, Y, Xlength : integer; - charLabel : string; Sender : TObject); - procedure Vscale(Ymin, Ymax : double; Nsteps : integer; - acolor : TColor; FontSize : integer; - X, Y, Ylength : integer; - charLabel : string; Sender : TObject); - procedure NormPts(zMin, zMax : double; Npts : integer; - VAR realpts : TwoCol; - Sender : TObject); - - public - { public declarations } - end; - -var - ErrorCurvesFrm: TErrorCurvesFrm; - -implementation - -{ TErrorCurvesFrm } - -procedure TErrorCurvesFrm.ResetBtnClick(Sender: TObject); -begin - NullMeanEdit.Text := ''; - AltMeanEdit.Text := ''; - SDEdit.Text := ''; - TypeIEdit.Text := '0.05'; - TypeIIEdit.Text := '0.05'; - NullMeanEdit.SetFocus; -end; - -procedure TErrorCurvesFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TErrorCurvesFrm.ComputeBtnClick(Sender: TObject); -var - // generate a null and alternate hypothesis for a specified effect - // size, Type I error rate and Type II error rate using the normal - // distribution z-test. Estimate the N needed. - // Uses the Plot.h header file and form FrmPlot. - Clwidth,Clheight,X,Y,XaxisStart,XaxisEnd,YaxisStart,YaxisEnd : integer; - Xrange, Yrange, t, range, Nsize: integer; - alpha, beta, nullmean, altmean, Diff, StdDev, CriticalX, zalpha : double; - zbeta, Xprop, stderrmean, xlow, xhigh : double; - valuestr, charLabel : string; - realpts : TwoCol; -begin - BlankFrm.Show; - BlankFrm.Image1.Canvas.Clear; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - BlankFrm.Image1.Canvas.Clear; - BlankFrm.Image1.Canvas.FloodFill(1,1,clWhite,fsborder); - alpha := StrToFloat(TypeIEdit.Text); - if NullType.ItemIndex = 1 then alpha := alpha / 2.0; - beta := StrToFloat(TypeIIEdit.Text); - nullmean := StrToFloat(NullMeanEdit.Text); - altmean := StrToFloat(AltMeanEdit.Text); - StdDev := StrToFloat(SDEdit.Text); - zalpha := inversez(1.0 - alpha); - zbeta := inversez(1.0 - beta); - Diff := abs(nullmean - altmean); - Nsize := round((StdDev / Diff) * abs(zbeta + zalpha)); - Nsize := Nsize * Nsize; - CriticalX := zalpha * (StdDev / sqrt(Nsize)) + nullmean; - stderrmean := StdDev / sqrt(Nsize); - Clwidth := BlankFrm.Image1.Width; - Clheight := BlankFrm.Image1.Height; - - // Determine X scale and print it - YaxisStart := (Clheight * 6) div 10; - YaxisEnd := Clheight div 10; - Yrange := YaxisStart - YaxisEnd; - xlow := nullmean - 4 * stderrmean; - xhigh := altmean + 4 * stderrmean; - XaxisStart := Clwidth div 8; - XaxisEnd := Clwidth - (Clwidth div 8); - Xrange := XaxisEnd - XaxisStart; - Hscale(xlow, xhigh, 9, clWhite, 8, XaxisStart, YaxisStart, Xrange,'X SCALE',BlankFrm); - - // Create values of the alternative distribution - Xprop := ( (nullmean + 4*stderrmean) - xlow) / (xhigh - xlow); - range := round(Xprop * Xrange); - NormPts(-4.0, 4.0, 100, realpts, self); - Xprop := ((altmean - 4 * stderrmean) - xlow) / (xhigh - xlow); - X := round((Xprop * Xrange) + XaxisStart); // where to start curve - PltPts(realpts, 4.0, -4.0, 0.5, 0.0, 100, X, YaxisStart, range, - Yrange, clBlack, self); - - //Draw vertical axis at the critical X value - Xprop := (CriticalX - xlow) / (xhigh - xlow); - X := round((Xprop * Xrange) + XaxisStart); - Y := YaxisStart; - BlankFrm.Image1.Canvas.MoveTo(X,Y); - BlankFrm.Image1.Canvas.LineTo(X,YaxisEnd); - charLabel := 'Critical X = '; - valuestr := format('%6.2f',[CriticalX]); - charLabel := charLabel + valuestr; - t := BlankFrm.Image1.Canvas.TextWidth(charLabel) div 2; - BlankFrm.Image1.Canvas.TextOut(X-t,YaxisEnd-15,charLabel); - - // floodfill Alternate distribution area with blue - Xprop := (CriticalX - xlow) / (xhigh - xlow); - X := round((Xprop * Xrange) + XaxisStart); - Y := YaxisStart - 3; - BlankFrm.Image1.Canvas.Brush.Color := clBlue; - BlankFrm.Image1.Canvas.FloodFill(X-2,Y,clBlack,fsBorder ); - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - - // Create values of normal curve for null distribution - NormPts(-4.0, 4.0, 100, realpts, self); - Xprop := ( (nullmean + 4*stderrmean) - xlow) / (xhigh - xlow); - range := round(Xprop * Xrange); - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - PltPts(realpts, 4.0, -4.0, 0.5, 0.0, 100, XaxisStart, YaxisStart, range, - Yrange, clBlack, self); - - //Draw vertical axis at null mean - Xprop := (nullmean - xlow) / (xhigh - xlow); - X := round((Xprop * Xrange) + XaxisStart); - Y := YaxisStart; - BlankFrm.Image1.Canvas.MoveTo(X,Y); - BlankFrm.Image1.Canvas.LineTo(X,YaxisEnd); - charLabel := 'Null Mean'; - t := BlankFrm.Image1.Canvas.TextWidth(charLabel) div 2; - BlankFrm.Image1.Canvas.TextOut(X-t,YaxisEnd,charLabel); - - // floodfill alpha area with red - Xprop := (CriticalX - xlow) / (xhigh - xlow); - X := round((Xprop * Xrange) + XaxisStart); - Y := YaxisStart - 3; - BlankFrm.Image1.Canvas.Brush.Color := clRed; - BlankFrm.Image1.Canvas.FloodFill(X+2,Y,clBlack,fsBorder ); - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - - //Draw vertical axis at alternative mean - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - Xprop := (altmean - xlow) / (xhigh - xlow); - X := round((Xprop * Xrange) + XaxisStart); - Y := YaxisStart; - BlankFrm.Image1.Canvas.MoveTo(X,Y); - BlankFrm.Image1.Canvas.LineTo(X,YaxisEnd); - charLabel := 'Alternative Mean'; - t := BlankFrm.Image1.Canvas.TextWidth(charLabel) div 2; - BlankFrm.Image1.Canvas.TextOut(X-t,YaxisEnd,charLabel); - - // draw the vertical density axis scale values - Vscale(0.0, 0.5, 11, clWhite, 10, XaxisStart, YaxisStart, Yrange, 'DENSITY', self); - - // Print Heading - charLabel := 'Type I and II Error Areas'; - BlankFrm.Caption := charLabel; - charLabel := 'Alpha := '; - charLabel := charLabel + TypeIEdit.Text; - charLabel := charLabel + ', Beta := '; - charLabel := charLabel + TypeIIEdit.Text; - charLabel := charLabel + ', N := '; - charLabel := charLabel + IntToStr(Nsize); - t := BlankFrm.Image1.Canvas.TextWidth(charLabel); - X := round((BlankFrm.Image1.Width / 2) - (t / 2)); - BlankFrm.Image1.Canvas.TextOut(X,0,charLabel); - - // print z scale for the null distribution - Xprop := ( (nullmean + 4*stderrmean) - xlow) / (xhigh - xlow); - range := round(Xprop * Xrange); - Hscale(-4.0, 4.0, 11, clWhite, 8, XaxisStart, YaxisStart+50, range,'NULL Z SCALE', self); - - end; - -procedure TErrorCurvesFrm.PltPts(realpts: TwoCol; Xmax, Xmin, Ymax, - Ymin: double; Npts, XaxisStart, YaxisStart, XaxisRange: integer; - YaxisRange: integer; acolor: TColor; Sender: TObject); -var - hprop, zprop, z, h : double; - i, X, Y : integer; - intpts : array[1..100] of TPoint; -begin - for i := 1 to Npts do - begin - z := realpts[1,i]; - h := realpts[2,i]; - zprop := (z - Xmin) / (Xmax - Xmin); - X := round((zprop * XaxisRange) + XaxisStart); - hprop := (h - Ymin) / (Ymax - Ymin); - Y := round(YaxisStart - (hprop * YaxisRange)); - intpts[i] := Point(X,Y); - end; - BlankFrm.Image1.Canvas.Pen.Color := acolor; - BlankFrm.Image1.Canvas.Polyline(Slice(intpts,Npts - 1)); -end; - -procedure TErrorCurvesFrm.Hscale(Xmin, Xmax: double; Nsteps: integer; - acolor: TColor; FontSize: integer; X, Y, Xlength: integer; charLabel: string; - Sender: TObject); -var - i, TickEnd, Xpos, Ypos, TextX : integer; - Xincr, Xval : double; - Svalue, Ast : string; -begin - BlankFrm.Image1.Canvas.MoveTo(X,Y); - BlankFrm.Image1.Canvas.LineTo(X+Xlength,Y); - BlankFrm.Image1.Canvas.Font.Size := FontSize; - BlankFrm.Image1.Canvas.Brush.Color := acolor; - TickEnd := Y + 10; - Xincr := (Xmax - Xmin) / Nsteps; - for i := 0 to Nsteps + 1 do - begin - Xpos := round(((Xlength / Nsteps) * i) + X); - BlankFrm.Image1.Canvas.MoveTo(Xpos,Y); - BlankFrm.Image1.Canvas.LineTo(Xpos,TickEnd); - TextX := Xpos - 8; - Xval := Xmin + ( i * Xincr); - Svalue := format('%4.2f',[Xval]); - Ast := Svalue; - BlankFrm.Image1.Canvas.TextOut(TextX, Y+15, Ast); - end; - // print label below X axis - Ypos := Y + 30; - Xpos := round((BlankFrm.Image1.Width / 2) - (BlankFrm.Image1.Canvas.TextWidth(charLabel) / 2)); - BlankFrm.Image1.Canvas.TextOut(Xpos,Ypos,charLabel); -end; - -procedure TErrorCurvesFrm.Vscale(Ymin, Ymax: double; Nsteps: integer; - acolor: TColor; FontSize: integer; X, Y, Ylength: integer; charLabel: string; - Sender: TObject); -var - TickEnd, Ypos, Xpos, TextY : integer; - Yincr, Yval : double; - Svalue, symbol, Ast : string; - chpixs, i : integer; -begin - BlankFrm.Image1.Canvas.MoveTo(X,Y); - BlankFrm.Image1.Canvas.LineTo(X,Y-Ylength); - BlankFrm.Image1.Canvas.Font.Size := FontSize; - BlankFrm.Image1.Canvas.Brush.Color := acolor; - TickEnd := X - 10; - Yincr := (Ymax - Ymin) / Nsteps; - TextY := 0; - for i := 0 to Nsteps + 1 do - begin - Ypos := round(Y - ((Ylength / Nsteps) * i)); - BlankFrm.Image1.Canvas.MoveTo(X,Ypos); - BlankFrm.Image1.Canvas.LineTo(TickEnd,Ypos); - TextY := TickEnd - 30; - Yval := Ymin + ( i * Yincr); - Svalue := format('%4.2f',[Yval]); - Ast := Svalue; - BlankFrm.Image1.Canvas.TextOut(TextY, Ypos-8, Ast); - end; - // print label vertically - Xpos := TextY - 15; - for i := 1 to Length(charLabel) do - begin - chpixs := BlankFrm.Image1.Canvas.TextHeight(charLabel); - Ypos := round(Y - (Ylength / 2) - ( (Length(charLabel) * chpixs) / 2 ) + (chpixs * i)); - symbol := charLabel[i]; -// symbol[2] := 0; - BlankFrm.Image1.Canvas.TextOut(Xpos,Ypos,symbol); - end; -end; - -procedure TErrorCurvesFrm.NormPts(zMin, zMax: double; Npts: integer; - var realpts: TwoCol; Sender: TObject); -var - zIncr, z, h : double; - i : integer; -begin - zIncr := (zMax - zMin) / Npts; - for i := 1 to Npts do - begin - z := zMin + (zIncr * i); - h := (1.0 / sqrt(2.0 * 3.14159265358979)) * - ( 1.0 / exp(z * z / 2.0)); - realpts[1,i] := z; - realpts[2,i] := h; - end; -end; - -initialization - {$I errorcurvesunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/essayitemunit.lfm b/applications/lazstats/source_orig/essayitemunit.lfm deleted file mode 100644 index 855ab9026..000000000 --- a/applications/lazstats/source_orig/essayitemunit.lfm +++ /dev/null @@ -1,205 +0,0 @@ -object EssayItemForm: TEssayItemForm - Left = 207 - Height = 499 - Top = 116 - Width = 641 - Caption = 'Essay Item Creation and Editing' - ClientHeight = 499 - ClientWidth = 641 - OnShow = FormShow - LCLVersion = '0.9.30' - object jpegBrowseBtn: TButton - Left = 7 - Height = 30 - Top = 337 - Width = 118 - Caption = 'Browse jpeg Images' - OnClick = jpegBrowseBtnClick - TabOrder = 0 - end - object SelectImageBtn: TButton - Left = 10 - Height = 26 - Top = 408 - Width = 112 - Caption = 'Select Shown Image' - OnClick = SelectImageBtnClick - TabOrder = 1 - end - object Image1: TImage - Left = 138 - Height = 151 - Top = 337 - Width = 211 - end - object ItemSaveBtn: TButton - Left = 368 - Height = 33 - Top = 336 - Width = 111 - Caption = 'Save this item' - OnClick = ItemSaveBtnClick - TabOrder = 2 - end - object PreviousBtn: TButton - Left = 498 - Height = 32 - Top = 337 - Width = 110 - Caption = 'Show Previous Item' - OnClick = PreviousBtnClick - TabOrder = 3 - end - object ShowNextBtn: TButton - Left = 369 - Height = 30 - Top = 392 - Width = 109 - Caption = 'Show Next Item' - OnClick = ShowNextBtnClick - TabOrder = 4 - end - object StartNewBtn: TButton - Left = 498 - Height = 30 - Top = 392 - Width = 111 - Caption = 'Start a new item' - OnClick = StartNewBtnClick - TabOrder = 5 - end - object ReturnBtn: TButton - Left = 432 - Height = 30 - Top = 456 - Width = 111 - Caption = 'Return' - OnClick = ReturnBtnClick - TabOrder = 6 - end - object jpeglabel: TLabel - Left = 10 - Height = 16 - Top = 299 - Width = 225 - Caption = 'jpeg photo to display prior to item (if any):' - ParentColor = False - end - object jpegnameEdit: TEdit - Left = 240 - Height = 23 - Top = 292 - Width = 372 - TabOrder = 7 - Text = 'jpegnameEdit' - end - object TFItemNoLabel: TLabel - Left = 7 - Height = 16 - Top = 179 - Width = 75 - Caption = 'Item Number:' - ParentColor = False - end - object ItemNoEdit: TEdit - Left = 96 - Height = 23 - Top = 172 - Width = 44 - TabOrder = 8 - Text = '1' - end - object ItemCodeLabel: TLabel - Left = 176 - Height = 16 - Top = 179 - Width = 93 - Caption = 'Item Major Code:' - ParentColor = False - end - object MajorCodeEdit: TEdit - Left = 280 - Height = 23 - Top = 172 - Width = 41 - TabOrder = 9 - Text = '1' - end - object MinorCodeLabel: TLabel - Left = 336 - Height = 16 - Top = 177 - Width = 94 - Caption = 'Item Minor Code:' - ParentColor = False - end - object MinorCodeEdit: TEdit - Left = 440 - Height = 23 - Top = 172 - Width = 45 - TabOrder = 10 - Text = '0' - end - object ItemStemLabel: TLabel - Left = 8 - Height = 16 - Top = 220 - Width = 58 - Caption = 'Item Stem:' - ParentColor = False - end - object ItemStemEdit: TEdit - Left = 73 - Height = 23 - Top = 213 - Width = 539 - TabOrder = 11 - Text = 'ItemStemEdit' - end - object AnswerLabel: TLabel - Left = 8 - Height = 16 - Top = 256 - Width = 74 - Caption = 'Short Answer:' - ParentColor = False - end - object AnswerEdit: TEdit - Left = 96 - Height = 23 - Top = 249 - Width = 516 - TabOrder = 12 - end - object Memo1: TMemo - Left = 20 - Height = 133 - Top = 11 - Width = 592 - Lines.Strings = ( - 'Directions: To create an Essay item, you will need to enter the number of an item code which contains' - 'both a major code and a minor code. It is suggested you print all item codes from the options menu on the' - 'main procedure page of the item banking program. You can however, browse the Essay items from this ' - 'form.' - 'After you have selected an item code number, enter the item stem in the space provided. Your item can also' - 'include a jpeg picture prior to the presentation of the item on a test. To find the image, click the jpeg browse' - 'button until you see the image you wish to include. When that item is shown, click the Select button to save' - 'the name of the image file.' - ) - TabOrder = 13 - end - object CodeBrowseBtn: TButton - Left = 502 - Height = 28 - Top = 165 - Width = 106 - Caption = 'Browse Items' - OnClick = CodeBrowseBtnClick - TabOrder = 14 - end - object OpenPictureDialog1: TOpenPictureDialog - left = 412 - top = 471 - end -end diff --git a/applications/lazstats/source_orig/essayitemunit.lrs b/applications/lazstats/source_orig/essayitemunit.lrs deleted file mode 100644 index 4d982ab24..000000000 --- a/applications/lazstats/source_orig/essayitemunit.lrs +++ /dev/null @@ -1,60 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TEssayItemForm','FORMDATA',[ - 'TPF0'#14'TEssayItemForm'#13'EssayItemForm'#4'Left'#3#207#0#6'Height'#3#243#1 - +#3'Top'#2't'#5'Width'#3#129#2#7'Caption'#6#31'Essay Item Creation and Editin' - +'g'#12'ClientHeight'#3#243#1#11'ClientWidth'#3#129#2#6'OnShow'#7#8'FormShow' - +#10'LCLVersion'#6#6'0.9.30'#0#7'TButton'#13'jpegBrowseBtn'#4'Left'#2#7#6'Hei' - +'ght'#2#30#3'Top'#3'Q'#1#5'Width'#2'v'#7'Caption'#6#18'Browse jpeg Images'#7 - +'OnClick'#7#18'jpegBrowseBtnClick'#8'TabOrder'#2#0#0#0#7'TButton'#14'SelectI' - +'mageBtn'#4'Left'#2#10#6'Height'#2#26#3'Top'#3#152#1#5'Width'#2'p'#7'Caption' - +#6#18'Select Shown Image'#7'OnClick'#7#19'SelectImageBtnClick'#8'TabOrder'#2 - +#1#0#0#6'TImage'#6'Image1'#4'Left'#3#138#0#6'Height'#3#151#0#3'Top'#3'Q'#1#5 - +'Width'#3#211#0#0#0#7'TButton'#11'ItemSaveBtn'#4'Left'#3'p'#1#6'Height'#2'!' - +#3'Top'#3'P'#1#5'Width'#2'o'#7'Caption'#6#14'Save this item'#7'OnClick'#7#16 - +'ItemSaveBtnClick'#8'TabOrder'#2#2#0#0#7'TButton'#11'PreviousBtn'#4'Left'#3 - +#242#1#6'Height'#2' '#3'Top'#3'Q'#1#5'Width'#2'n'#7'Caption'#6#18'Show Previ' - +'ous Item'#7'OnClick'#7#16'PreviousBtnClick'#8'TabOrder'#2#3#0#0#7'TButton' - +#11'ShowNextBtn'#4'Left'#3'q'#1#6'Height'#2#30#3'Top'#3#136#1#5'Width'#2'm'#7 - +'Caption'#6#14'Show Next Item'#7'OnClick'#7#16'ShowNextBtnClick'#8'TabOrder' - +#2#4#0#0#7'TButton'#11'StartNewBtn'#4'Left'#3#242#1#6'Height'#2#30#3'Top'#3 - +#136#1#5'Width'#2'o'#7'Caption'#6#16'Start a new item'#7'OnClick'#7#16'Start' - +'NewBtnClick'#8'TabOrder'#2#5#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#176#1#6 - +'Height'#2#30#3'Top'#3#200#1#5'Width'#2'o'#7'Caption'#6#6'Return'#7'OnClick' - +#7#14'ReturnBtnClick'#8'TabOrder'#2#6#0#0#6'TLabel'#9'jpeglabel'#4'Left'#2#10 - +#6'Height'#2#16#3'Top'#3'+'#1#5'Width'#3#225#0#7'Caption'#6'-jpeg photo to d' - +'isplay prior to item (if any):'#11'ParentColor'#8#0#0#5'TEdit'#12'jpegnameE' - +'dit'#4'Left'#3#240#0#6'Height'#2#23#3'Top'#3'$'#1#5'Width'#3't'#1#8'TabOrde' - +'r'#2#7#4'Text'#6#12'jpegnameEdit'#0#0#6'TLabel'#13'TFItemNoLabel'#4'Left'#2 - +#7#6'Height'#2#16#3'Top'#3#179#0#5'Width'#2'K'#7'Caption'#6#12'Item Number:' - +#11'ParentColor'#8#0#0#5'TEdit'#10'ItemNoEdit'#4'Left'#2'`'#6'Height'#2#23#3 - +'Top'#3#172#0#5'Width'#2','#8'TabOrder'#2#8#4'Text'#6#1'1'#0#0#6'TLabel'#13 - +'ItemCodeLabel'#4'Left'#3#176#0#6'Height'#2#16#3'Top'#3#179#0#5'Width'#2']'#7 - +'Caption'#6#16'Item Major Code:'#11'ParentColor'#8#0#0#5'TEdit'#13'MajorCode' - +'Edit'#4'Left'#3#24#1#6'Height'#2#23#3'Top'#3#172#0#5'Width'#2')'#8'TabOrder' - +#2#9#4'Text'#6#1'1'#0#0#6'TLabel'#14'MinorCodeLabel'#4'Left'#3'P'#1#6'Height' - +#2#16#3'Top'#3#177#0#5'Width'#2'^'#7'Caption'#6#16'Item Minor Code:'#11'Pare' - +'ntColor'#8#0#0#5'TEdit'#13'MinorCodeEdit'#4'Left'#3#184#1#6'Height'#2#23#3 - +'Top'#3#172#0#5'Width'#2'-'#8'TabOrder'#2#10#4'Text'#6#1'0'#0#0#6'TLabel'#13 - +'ItemStemLabel'#4'Left'#2#8#6'Height'#2#16#3'Top'#3#220#0#5'Width'#2':'#7'Ca' - +'ption'#6#10'Item Stem:'#11'ParentColor'#8#0#0#5'TEdit'#12'ItemStemEdit'#4'L' - +'eft'#2'I'#6'Height'#2#23#3'Top'#3#213#0#5'Width'#3#27#2#8'TabOrder'#2#11#4 - +'Text'#6#12'ItemStemEdit'#0#0#6'TLabel'#11'AnswerLabel'#4'Left'#2#8#6'Height' - +#2#16#3'Top'#3#0#1#5'Width'#2'J'#7'Caption'#6#13'Short Answer:'#11'ParentCol' - +'or'#8#0#0#5'TEdit'#10'AnswerEdit'#4'Left'#2'`'#6'Height'#2#23#3'Top'#3#249#0 - +#5'Width'#3#4#2#8'TabOrder'#2#12#0#0#5'TMemo'#5'Memo1'#4'Left'#2#20#6'Height' - +#3#133#0#3'Top'#2#11#5'Width'#3'P'#2#13'Lines.Strings'#1#6'fDirections: To ' - +'create an Essay item, you will need to enter the number of an item code whi' - +'ch contains'#6'jboth a major code and a minor code. It is suggested you pr' - +'int all item codes from the options menu on the'#6'emain procedure page of ' - +'the item banking program. You can however, browse the Essay items from th' - +'is '#6#5'form.'#6'kAfter you have selected an item code number, enter the i' - +'tem stem in the space provided. Your item can also'#6'qinclude a jpeg pict' - +'ure prior to the presentation of the item on a test. To find the image, cl' - +'ick the jpeg browse'#6'mbutton until you see the image you wish to include.' - +' When that item is shown, click the Select button to save'#6#27'the name o' - +'f the image file.'#0#8'TabOrder'#2#13#0#0#7'TButton'#13'CodeBrowseBtn'#4'Le' - +'ft'#3#246#1#6'Height'#2#28#3'Top'#3#165#0#5'Width'#2'j'#7'Caption'#6#12'Bro' - +'wse Items'#7'OnClick'#7#18'CodeBrowseBtnClick'#8'TabOrder'#2#14#0#0#18'TOpe' - +'nPictureDialog'#18'OpenPictureDialog1'#4'left'#3#156#1#3'top'#3#215#1#0#0#0 -]); diff --git a/applications/lazstats/source_orig/essayitemunit.pas b/applications/lazstats/source_orig/essayitemunit.pas deleted file mode 100644 index 4f04b044b..000000000 --- a/applications/lazstats/source_orig/essayitemunit.pas +++ /dev/null @@ -1,260 +0,0 @@ -unit EssayItemUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, ExtCtrls, ExtDlgs, outputunit; - -type - - { TEssayItemForm } - - TEssayItemForm = class(TForm) - AnswerEdit: TEdit; - AnswerLabel: TLabel; - CodeBrowseBtn: TButton; - Image1: TImage; - ItemCodeLabel: TLabel; - ItemSaveBtn: TButton; - ItemStemEdit: TEdit; - ItemStemLabel: TLabel; - jpegBrowseBtn: TButton; - jpeglabel: TLabel; - jpegnameEdit: TEdit; - MajorCodeEdit: TEdit; - Memo1: TMemo; - MinorCodeEdit: TEdit; - MinorCodeLabel: TLabel; - OpenPictureDialog1: TOpenPictureDialog; - PreviousBtn: TButton; - ReturnBtn: TButton; - SelectImageBtn: TButton; - ShowNextBtn: TButton; - StartNewBtn: TButton; - ItemNoEdit: TEdit; - TFItemNoLabel: TLabel; - procedure CodeBrowseBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure ItemSaveBtnClick(Sender: TObject); - procedure jpegBrowseBtnClick(Sender: TObject); - procedure PreviousBtnClick(Sender: TObject); - procedure ReturnBtnClick(Sender: TObject); - procedure SelectImageBtnClick(Sender: TObject); - procedure ShowNextBtnClick(Sender: TObject); - procedure StartNewBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - EssayItemForm: TEssayItemForm; - -implementation -uses ItemBankingUnit; - -{ TEssayItemForm } - -procedure TEssayItemForm.ReturnBtnClick(Sender: TObject); -begin - EssayItemForm.Hide; - Close; -end; - -procedure TEssayItemForm.SelectImageBtnClick(Sender: TObject); -begin - jpegnameEdit.Text := OpenPictureDialog1.FileName; -end; - -procedure TEssayItemForm.ShowNextBtnClick(Sender: TObject); -var - count : integer; - itemno : integer; - JPEG : TJPEGImage; -begin - itemno := StrToInt(ItemNoEdit.Text) + 1; - count := ItemBankFrm.BankInfo.NEssayItems; - if count <= itemno then - begin - ItemNoEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].ItemNumber); - MajorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].majorcode) ; - MinorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].minorcode); - ItemStemEdit.Text := ItemBankFrm.EssayInfo[itemno].ItemStem; - AnswerEdit.Text := ItemBankFrm.EssayInfo[itemno].Answer; - jpegnameEdit.Text := ItemBankFrm.EssayInfo[itemno].PicName; - if jpegnameEdit.Text <> 'none' then - begin - JPEG := TJPEGImage.Create; - try - JPEG.LoadFromFile(jpegnameEdit.Text); - Image1.Picture.Assign(JPEG); - finally - JPEG.Free; - Image1.Proportional := true; - end; - end; - end; -end; - -procedure TEssayItemForm.StartNewBtnClick(Sender: TObject); -var - currentno : integer; -begin - currentno := ItemBankFrm.BankInfo.NEssayItems + 1; - ItemNoEdit.Text := IntToStr(currentno); - currentno := StrToInt(MinorCodeEdit.Text); - MinorCodeEdit.Text := IntToStr(currentno + 1); - ItemStemEdit.Text := ''; - AnswerEdit.Text := ''; - jpegnameEdit.Text := 'none'; - Image1.Canvas.Clear; -end; - -procedure TEssayItemForm.ItemSaveBtnClick(Sender: TObject); -var - currentno : integer; - count : integer; -begin - count := ItemBankFrm.BankInfo.NEssayItems; - currentno := StrToInt(ItemNoEdit.Text); - if currentno > count then - begin - ItemBankFrm.BankInfo.NEssayItems := currentno; - ItemBankFrm.NEssayText.Text := IntToStr(currentno); - end; - ItemBankFrm.EssayInfo[currentno].ItemNumber := currentno; - ItemBankFrm.EssayInfo[currentno].majorcode := StrToInt(MajorCodeEdit.Text); - ItemBankFrm.EssayInfo[currentno].minorcode := StrToInt(MinorCodeEdit.Text); - ItemBankFrm.EssayInfo[currentno].ItemStem := ItemStemEdit.Text; - ItemBankFrm.EssayInfo[currentno].Answer := AnswerEdit.text; - ItemBankFrm.EssayInfo[currentno].PicName := jpegnameEdit.Text; -end; - -procedure TEssayItemForm.FormShow(Sender: TObject); -Var - nitems : integer; - JPEG : TJPEGImage; -begin - if ItemBankFrm.BankInfo.NEssayItems > 0 then - begin - nitems := ItemBankFrm.BankInfo.NEssayItems; - ItemNoEdit.Text := '1'; //IntToStr(ItemBankFrm.TFItemInfo[1].ItemNumber); - MajorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[1].majorcode) ; - MinorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[1].minorcode); - ItemStemEdit.Text := ItemBankFrm.EssayInfo[1].ItemStem; - AnswerEdit.Text := ItemBankFrm.EssayInfo[1].Answer; - jpegnameEdit.Text := ItemBankFrm.EssayInfo[1].PicName; - if jpegnameEdit.Text <> 'none' then - begin - JPEG := TJPEGImage.Create; - try - JPEG.LoadFromFile(jpegnameEdit.Text); - Image1.Picture.Assign(JPEG); - finally - JPEG.Free; - Image1.Proportional := true; - end; - end; - end else - begin - ItemNoEdit.Text := '1'; - MajorCodeEdit.Text := '1'; - MinorCodeEdit.Text := '0'; - ItemStemEdit.Text := ''; - AnswerEdit.Text := ''; - jpegnameEdit.Text := 'none'; - Image1.Canvas.Clear; - end; -end; - -procedure TEssayItemForm.CodeBrowseBtnClick(Sender: TObject); -var - count : integer; - i : integer; - outline : string; -begin - OutPutFrm.RichEdit.Clear; - count := ItemBankFrm.BankInfo.NTFItems; - OutPutFrm.RichEdit.Lines.Add('Current Items'); - OutPutFrm.RichEdit.Lines.Add(''); - - for i := 1 to count do - begin - outline := format('Item number %3d',[ItemBankFrm.EssayInfo[i].itemnumber]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Major Code %3d',[ItemBankFrm.EssayInfo[i].majorcode]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Minor Code %3d',[ItemBankFrm.EssayInfo[i].minorcode]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Item Stem %s',[ItemBankFrm.EssayInfo[i].ItemStem]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Breif Answer %s',[ItemBankFrm.EssayInfo[i].Answer]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Graphic Image %s',[ItemBankFrm.EssayInfo[i].PicName]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.ShowModal; -end; - -procedure TEssayItemForm.jpegBrowseBtnClick(Sender: TObject); -VAR - JPEG : TJPEGImage; -begin - OpenPictureDialog1.Options := OpenPictureDialog1.Options+[ofFileMustExist]; - if not OpenPictureDialog1.Execute then exit; - try - JPEG := TJPEGImage.Create; - try - JPEG.LoadFromFile(OpenPictureDialog1.FileName); - Image1.Picture.Assign(JPEG); - finally - JPEG.Free; - end; - except - on E: Exception do begin - MessageDlg('Error','Error: '+E.Message,mtError,[mbOk],0); - end; - end; - Image1.Proportional := true; -end; - -procedure TEssayItemForm.PreviousBtnClick(Sender: TObject); -Var - response : string; - itemno : integer; - JPEG : TJPEGImage; -begin - response := InputBox('Code Number:','Number:','1'); - itemno := StrToInt(response); - if itemno <= ItemBankFrm.BankInfo.NEssayItems then - begin - ItemNoEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].ItemNumber); - MajorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].majorcode); - MinorCodeEdit.Text := IntToStr(ItemBankFrm.EssayInfo[itemno].minorcode); - ItemStemEdit.Text := ItemBankFrm.EssayInfo[itemno].ItemStem ; - AnswerEdit.Text := ItemBankFrm.EssayInfo[itemno].Answer; - jpegnameEdit.Text := ItemBankFrm.EssayInfo[itemno].PicName; - if jpegnameEdit.Text <> 'none' then - begin - JPEG := TJPEGImage.Create; - try - JPEG.LoadFromFile(jpegnameEdit.Text); - Image1.Picture.Assign(JPEG); - finally - JPEG.Free; - Image1.Proportional := true; - end; - end; - end; -end; - -initialization - {$I essayitemunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/fprobunit.lfm b/applications/lazstats/source_orig/fprobunit.lfm deleted file mode 100644 index 027b1c843..000000000 --- a/applications/lazstats/source_orig/fprobunit.lfm +++ /dev/null @@ -1,112 +0,0 @@ -object FForm: TFForm - Left = 288 - Height = 232 - Top = 161 - Width = 322 - Caption = 'Probability of a larger F value' - ClientHeight = 232 - ClientWidth = 322 - OnShow = ResetBtnClick - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 8 - Height = 16 - Top = 16 - Width = 118 - Caption = 'Given: An F statistic = ' - ParentColor = False - end - object FEdit: TEdit - Left = 128 - Height = 23 - Top = 8 - Width = 70 - TabOrder = 0 - Text = 'FEdit' - end - object Label2: TLabel - Left = 8 - Height = 16 - Top = 50 - Width = 118 - Caption = 'with Deg. Freedom of ' - ParentColor = False - end - object DF1Edit: TEdit - Left = 129 - Height = 23 - Top = 41 - Width = 68 - TabOrder = 1 - Text = 'DF1Edit' - end - object Label3: TLabel - Left = 208 - Height = 16 - Top = 48 - Width = 24 - Caption = 'and ' - ParentColor = False - end - object DF2Edit: TEdit - Left = 240 - Height = 23 - Top = 39 - Width = 64 - TabOrder = 2 - Text = 'DF2Edit' - end - object Label4: TLabel - Left = 7 - Height = 16 - Top = 82 - Width = 206 - Caption = 'then the probability of a larger value = ' - ParentColor = False - end - object ProbEdit: TEdit - Left = 239 - Height = 23 - Top = 75 - Width = 64 - TabOrder = 3 - Text = 'ProbEdit' - end - object CancelBtn: TButton - Left = 7 - Height = 33 - Top = 120 - Width = 82 - Cancel = True - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 4 - end - object ResetBtn: TButton - Left = 112 - Height = 33 - Top = 120 - Width = 82 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 5 - end - object ComputeBtn: TButton - Left = 221 - Height = 33 - Top = 120 - Width = 82 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 6 - end - object ReturnBtn: TButton - Left = 112 - Height = 33 - Top = 176 - Width = 77 - Caption = 'Return' - ModalResult = 1 - TabOrder = 7 - end -end diff --git a/applications/lazstats/source_orig/fprobunit.lrs b/applications/lazstats/source_orig/fprobunit.lrs deleted file mode 100644 index 8113a8a7d..000000000 --- a/applications/lazstats/source_orig/fprobunit.lrs +++ /dev/null @@ -1,29 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TFForm','FORMDATA',[ - 'TPF0'#6'TFForm'#5'FForm'#4'Left'#3' '#1#6'Height'#3#232#0#3'Top'#3#161#0#5'W' - +'idth'#3'B'#1#7'Caption'#6#31'Probability of a larger F value'#12'ClientHeig' - +'ht'#3#232#0#11'ClientWidth'#3'B'#1#6'OnShow'#7#13'ResetBtnClick'#10'LCLVers' - +'ion'#6#6'0.9.30'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'#2#16#3'Top'#2 - +#16#5'Width'#2'v'#7'Caption'#6#24'Given: An F statistic = '#11'ParentColor'#8 - +#0#0#5'TEdit'#5'FEdit'#4'Left'#3#128#0#6'Height'#2#23#3'Top'#2#8#5'Width'#2 - +'F'#8'TabOrder'#2#0#4'Text'#6#5'FEdit'#0#0#6'TLabel'#6'Label2'#4'Left'#2#8#6 - +'Height'#2#16#3'Top'#2'2'#5'Width'#2'v'#7'Caption'#6#21'with Deg. Freedom of' - +' '#11'ParentColor'#8#0#0#5'TEdit'#7'DF1Edit'#4'Left'#3#129#0#6'Height'#2#23 - +#3'Top'#2')'#5'Width'#2'D'#8'TabOrder'#2#1#4'Text'#6#7'DF1Edit'#0#0#6'TLabel' - +#6'Label3'#4'Left'#3#208#0#6'Height'#2#16#3'Top'#2'0'#5'Width'#2#24#7'Captio' - +'n'#6#4'and '#11'ParentColor'#8#0#0#5'TEdit'#7'DF2Edit'#4'Left'#3#240#0#6'He' - +'ight'#2#23#3'Top'#2''''#5'Width'#2'@'#8'TabOrder'#2#2#4'Text'#6#7'DF2Edit'#0 - +#0#6'TLabel'#6'Label4'#4'Left'#2#7#6'Height'#2#16#3'Top'#2'R'#5'Width'#3#206 - +#0#7'Caption'#6')then the probability of a larger value = '#11'ParentColor'#8 - +#0#0#5'TEdit'#8'ProbEdit'#4'Left'#3#239#0#6'Height'#2#23#3'Top'#2'K'#5'Width' - +#2'@'#8'TabOrder'#2#3#4'Text'#6#8'ProbEdit'#0#0#7'TButton'#9'CancelBtn'#4'Le' - +'ft'#2#7#6'Height'#2'!'#3'Top'#2'x'#5'Width'#2'R'#6'Cancel'#9#7'Caption'#6#6 - +'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#4#0#0#7'TButton'#8'ResetBtn'#4'Le' - +'ft'#2'p'#6'Height'#2'!'#3'Top'#2'x'#5'Width'#2'R'#7'Caption'#6#5'Reset'#7'O' - +'nClick'#7#13'ResetBtnClick'#8'TabOrder'#2#5#0#0#7'TButton'#10'ComputeBtn'#4 - +'Left'#3#221#0#6'Height'#2'!'#3'Top'#2'x'#5'Width'#2'R'#7'Caption'#6#7'Compu' - +'te'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#6#0#0#7'TButton'#9'Retur' - +'nBtn'#4'Left'#2'p'#6'Height'#2'!'#3'Top'#3#176#0#5'Width'#2'M'#7'Caption'#6 - +#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#7#0#0#0 -]); diff --git a/applications/lazstats/source_orig/fprobunit.pas b/applications/lazstats/source_orig/fprobunit.pas deleted file mode 100644 index d93b80c54..000000000 --- a/applications/lazstats/source_orig/fprobunit.pas +++ /dev/null @@ -1,68 +0,0 @@ -unit FProbUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, functionslib; - -type - - { TFForm } - - TFForm = class(TForm) - CancelBtn: TButton; - ComputeBtn: TButton; - DF1Edit: TEdit; - DF2Edit: TEdit; - ProbEdit: TEdit; - FEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - ResetBtn: TButton; - ReturnBtn: TButton; - procedure ComputeBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - FForm: TFForm; - -implementation - -{ TFForm } - -procedure TFForm.ResetBtnClick(Sender: TObject); -begin - FEdit.Text := ''; - DF1Edit.Text := ''; - DF2Edit.Text := ''; - ProbEdit.Text := ''; -end; - -procedure TFForm.ComputeBtnClick(Sender: TObject); -VAR - F, df1, df2, prob : extended; - outvalue : string; -begin - F := StrToFloat(FEdit.Text); - df1 := StrToFloat(DF1Edit.Text); - df2 := StrToFloat(DF2Edit.Text); - prob := probf(F,df1,df2); - outvalue := format('%6.4f',[prob]); - ProbEdit.Text := outvalue; -end; - -initialization - {$I fprobunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/freqspecsunit.lfm b/applications/lazstats/source_orig/freqspecsunit.lfm deleted file mode 100644 index c54c9d667..000000000 --- a/applications/lazstats/source_orig/freqspecsunit.lfm +++ /dev/null @@ -1,143 +0,0 @@ -object FreqSpecsFrm: TFreqSpecsFrm - Left = 281 - Height = 358 - Top = 107 - Width = 300 - Caption = 'Frequency Specifications' - ClientHeight = 358 - ClientWidth = 300 - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 11 - Height = 16 - Top = 119 - Width = 56 - Caption = 'VARIABLE:' - ParentColor = False - end - object Label2: TLabel - Left = 11 - Height = 16 - Top = 151 - Width = 46 - Caption = 'MINIUM' - ParentColor = False - end - object Label3: TLabel - Left = 11 - Height = 16 - Top = 183 - Width = 60 - Caption = 'MAXIMUM' - ParentColor = False - end - object Label4: TLabel - Left = 11 - Height = 16 - Top = 215 - Width = 39 - Caption = 'RANGE' - ParentColor = False - end - object Label5: TLabel - Left = 11 - Height = 16 - Top = 247 - Width = 79 - Caption = 'INTERVAL SIZE' - ParentColor = False - end - object Label6: TLabel - Left = 11 - Height = 16 - Top = 279 - Width = 84 - Caption = 'NO. INTERVALS' - ParentColor = False - end - object VarName: TEdit - Left = 112 - Height = 23 - Top = 112 - Width = 169 - TabOrder = 0 - end - object Minimum: TEdit - Left = 112 - Height = 23 - Top = 144 - Width = 169 - TabOrder = 1 - end - object Maximum: TEdit - Left = 112 - Height = 23 - Top = 176 - Width = 169 - TabOrder = 2 - end - object Range: TEdit - Left = 112 - Height = 23 - Top = 208 - Width = 169 - TabOrder = 3 - end - object IntSize: TEdit - Left = 112 - Height = 23 - Top = 240 - Width = 169 - OnKeyPress = IntSizeKeyPress - TabOrder = 4 - end - object NoInts: TEdit - Left = 112 - Height = 23 - Top = 272 - Width = 169 - TabOrder = 5 - end - object CancelBtn: TButton - Left = 104 - Height = 32 - Top = 311 - Width = 81 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 6 - end - object OKBtn: TButton - Left = 200 - Height = 31 - Top = 311 - Width = 81 - Caption = 'OK' - ModalResult = 1 - TabOrder = 7 - end - object HelpBtn: TButton - Tag = 123 - Left = 11 - Height = 32 - Top = 311 - Width = 82 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 8 - end - object Memo1: TMemo - Left = 7 - Height = 87 - Top = 1 - Width = 277 - Lines.Strings = ( - 'The number of intervals must be less than or ' - 'equal to the number of cases. To change the' - 'number of intervals, change the interval size' - 'to a larger value. Press the Enter key to make' - 'the number of intervals smaller.' - ) - TabOrder = 9 - end -end diff --git a/applications/lazstats/source_orig/freqspecsunit.lrs b/applications/lazstats/source_orig/freqspecsunit.lrs deleted file mode 100644 index e7147f3b7..000000000 --- a/applications/lazstats/source_orig/freqspecsunit.lrs +++ /dev/null @@ -1,36 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TFreqSpecsFrm','FORMDATA',[ - 'TPF0'#13'TFreqSpecsFrm'#12'FreqSpecsFrm'#4'Left'#3#25#1#6'Height'#3'f'#1#3'T' - +'op'#2'k'#5'Width'#3','#1#7'Caption'#6#24'Frequency Specifications'#12'Clien' - +'tHeight'#3'f'#1#11'ClientWidth'#3','#1#10'LCLVersion'#6#6'0.9.30'#0#6'TLabe' - +'l'#6'Label1'#4'Left'#2#11#6'Height'#2#16#3'Top'#2'w'#5'Width'#2'8'#7'Captio' - +'n'#6#9'VARIABLE:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#11#6 - +'Height'#2#16#3'Top'#3#151#0#5'Width'#2'.'#7'Caption'#6#6'MINIUM'#11'ParentC' - +'olor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#2#11#6'Height'#2#16#3'Top'#3#183#0#5 - +'Width'#2'<'#7'Caption'#6#7'MAXIMUM'#11'ParentColor'#8#0#0#6'TLabel'#6'Label' - +'4'#4'Left'#2#11#6'Height'#2#16#3'Top'#3#215#0#5'Width'#2''''#7'Caption'#6#5 - +'RANGE'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2#11#6'Height'#2#16 - +#3'Top'#3#247#0#5'Width'#2'O'#7'Caption'#6#13'INTERVAL SIZE'#11'ParentColor' - +#8#0#0#6'TLabel'#6'Label6'#4'Left'#2#11#6'Height'#2#16#3'Top'#3#23#1#5'Width' - +#2'T'#7'Caption'#6#13'NO. INTERVALS'#11'ParentColor'#8#0#0#5'TEdit'#7'VarNam' - +'e'#4'Left'#2'p'#6'Height'#2#23#3'Top'#2'p'#5'Width'#3#169#0#8'TabOrder'#2#0 - +#0#0#5'TEdit'#7'Minimum'#4'Left'#2'p'#6'Height'#2#23#3'Top'#3#144#0#5'Width' - +#3#169#0#8'TabOrder'#2#1#0#0#5'TEdit'#7'Maximum'#4'Left'#2'p'#6'Height'#2#23 - +#3'Top'#3#176#0#5'Width'#3#169#0#8'TabOrder'#2#2#0#0#5'TEdit'#5'Range'#4'Lef' - +'t'#2'p'#6'Height'#2#23#3'Top'#3#208#0#5'Width'#3#169#0#8'TabOrder'#2#3#0#0#5 - +'TEdit'#7'IntSize'#4'Left'#2'p'#6'Height'#2#23#3'Top'#3#240#0#5'Width'#3#169 - +#0#10'OnKeyPress'#7#15'IntSizeKeyPress'#8'TabOrder'#2#4#0#0#5'TEdit'#6'NoInt' - +'s'#4'Left'#2'p'#6'Height'#2#23#3'Top'#3#16#1#5'Width'#3#169#0#8'TabOrder'#2 - +#5#0#0#7'TButton'#9'CancelBtn'#4'Left'#2'h'#6'Height'#2' '#3'Top'#3'7'#1#5'W' - +'idth'#2'Q'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#6#0#0#7 - +'TButton'#5'OKBtn'#4'Left'#3#200#0#6'Height'#2#31#3'Top'#3'7'#1#5'Width'#2'Q' - +#7'Caption'#6#2'OK'#11'ModalResult'#2#1#8'TabOrder'#2#7#0#0#7'TButton'#7'Hel' - +'pBtn'#3'Tag'#2'{'#4'Left'#2#11#6'Height'#2' '#3'Top'#3'7'#1#5'Width'#2'R'#7 - +'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#8#0#0#5'TMem' - +'o'#5'Memo1'#4'Left'#2#7#6'Height'#2'W'#3'Top'#2#1#5'Width'#3#21#1#13'Lines.' - +'Strings'#1#6'-The number of intervals must be less than or '#6',equal to th' - +'e number of cases. To change the'#6'-number of intervals, change the inter' - +'val size'#6'/to a larger value. Press the Enter key to make'#6' the number' - +' of intervals smaller.'#0#8'TabOrder'#2#9#0#0#0 -]); diff --git a/applications/lazstats/source_orig/freqspecsunit.pas b/applications/lazstats/source_orig/freqspecsunit.pas deleted file mode 100644 index 6a8652076..000000000 --- a/applications/lazstats/source_orig/freqspecsunit.pas +++ /dev/null @@ -1,67 +0,0 @@ -unit FreqSpecsUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, contexthelpunit; - -type - - { TFreqSpecsFrm } - - TFreqSpecsFrm = class(TForm) - CancelBtn: TButton; - HelpBtn: TButton; - Memo1: TMemo; - OKBtn: TButton; - VarName: TEdit; - Minimum: TEdit; - Maximum: TEdit; - Range: TEdit; - IntSize: TEdit; - NoInts: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - Label5: TLabel; - Label6: TLabel; - procedure HelpBtnClick(Sender: TObject); - procedure IntSizeKeyPress(Sender: TObject; var Key: char); - private - { private declarations } - public - { public declarations } - end; - -var - FreqSpecsFrm: TFreqSpecsFrm; - -implementation - -{ TFreqSpecsFrm } - -procedure TFreqSpecsFrm.IntSizeKeyPress(Sender: TObject; var Key: char); -var - rangeval : double; - increment : double; -begin - if ord(Key) <> 13 then exit; - rangeval := StrToFloat(Range.Text); - increment := StrToFloat(IntSize.Text); - NoInts.Text := FloatToStr(rangeval / increment); -end; - -procedure TFreqSpecsFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -initialization - {$I freqspecsunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/frequnit.lfm b/applications/lazstats/source_orig/frequnit.lfm deleted file mode 100644 index fba4137fc..000000000 --- a/applications/lazstats/source_orig/frequnit.lfm +++ /dev/null @@ -1,235 +0,0 @@ -object FreqFrm: TFreqFrm - Left = 154 - Height = 337 - Top = 92 - Width = 615 - Caption = 'Frequency Distribution' - ClientHeight = 337 - ClientWidth = 615 - OnShow = FormShow - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 9 - Height = 16 - Top = 9 - Width = 121 - Caption = 'AVAILABLE VARIABLES' - ParentColor = False - end - object Label2: TLabel - Left = 208 - Height = 16 - Top = 9 - Width = 132 - Caption = 'VARIABLES TO ANALYZE' - ParentColor = False - end - object VarList: TListBox - Left = 8 - Height = 235 - Top = 23 - Width = 147 - ItemHeight = 0 - MultiSelect = True - TabOrder = 0 - end - object ListBox1: TListBox - Left = 208 - Height = 234 - Top = 25 - Width = 153 - ItemHeight = 0 - TabOrder = 1 - end - object InBtn: TBitBtn - Left = 168 - Height = 30 - Top = 24 - 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 = 2 - end - object OutBtn: TBitBtn - Left = 168 - Height = 30 - Top = 72 - 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 = 3 - end - object AllBtn: TBitBtn - Left = 168 - Height = 30 - Top = 120 - Width = 31 - Caption = 'ALL' - NumGlyphs = 0 - OnClick = AllBtnClick - TabOrder = 4 - end - object NormPltChk: TCheckBox - Left = 400 - Height = 19 - Top = 232 - Width = 149 - Caption = 'Plot Normal Distribution' - TabOrder = 5 - end - object RadioGroup1: TRadioGroup - Left = 390 - Height = 219 - Top = 8 - Width = 208 - AutoFill = True - Caption = 'Plot 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 = 201 - ClientWidth = 204 - Items.Strings = ( - '2D Vertical Bars' - '3D Vertical Bars' - '2D Pie Chart' - 'Exploded Pie Chart' - '2D Line Chart' - '3D Line Chart' - 'Plot 2D Points' - 'Plot 3D Points' - '2D Horizontal Bars' - '3D Horizontal Bars' - ) - TabOrder = 6 - end - object RadioGroup2: TRadioGroup - Left = 392 - Height = 62 - Top = 264 - Width = 206 - AutoFill = True - Caption = 'Plot Type' - 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 = 44 - ClientWidth = 202 - Items.Strings = ( - 'Bar Chart' - 'Histogram' - ) - TabOrder = 7 - end - object ResetBtn: TButton - Left = 153 - Height = 24 - Top = 279 - Width = 71 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 8 - end - object CancelBtn: TButton - Left = 232 - Height = 24 - Top = 280 - Width = 71 - Caption = 'Cancel' - ModalResult = 2 - OnClick = CancelBtnClick - TabOrder = 9 - end - object OKBtn: TButton - Left = 312 - Height = 24 - Top = 279 - Width = 71 - Caption = 'OK' - ModalResult = 1 - OnClick = OKBtnClick - TabOrder = 10 - end -end diff --git a/applications/lazstats/source_orig/frequnit.lrs b/applications/lazstats/source_orig/frequnit.lrs deleted file mode 100644 index cbdaacbca..000000000 --- a/applications/lazstats/source_orig/frequnit.lrs +++ /dev/null @@ -1,148 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TFreqFrm','FORMDATA',[ - 'TPF0'#8'TFreqFrm'#7'FreqFrm'#4'Left'#3#154#0#6'Height'#3'Q'#1#3'Top'#2'\'#5 - +'Width'#3'g'#2#7'Caption'#6#22'Frequency Distribution'#12'ClientHeight'#3'Q' - +#1#11'ClientWidth'#3'g'#2#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#6'0.9.30' - +#0#6'TLabel'#6'Label1'#4'Left'#2#9#6'Height'#2#16#3'Top'#2#9#5'Width'#2'y'#7 - +'Caption'#6#19'AVAILABLE VARIABLES'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2' - +#4'Left'#3#208#0#6'Height'#2#16#3'Top'#2#9#5'Width'#3#132#0#7'Caption'#6#20 - +'VARIABLES TO ANALYZE'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2 - +#8#6'Height'#3#235#0#3'Top'#2#23#5'Width'#3#147#0#10'ItemHeight'#2#0#11'Mult' - +'iSelect'#9#8'TabOrder'#2#0#0#0#8'TListBox'#8'ListBox1'#4'Left'#3#208#0#6'He' - +'ight'#3#234#0#3'Top'#2#25#5'Width'#3#153#0#10'ItemHeight'#2#0#8'TabOrder'#2 - +#1#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#168#0#6'Height'#2#30#3'Top'#2#24#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#2#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3#168#0#6'Heig' - +'ht'#2#30#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#11'OutBtnClick'#8'TabOrder'#2#3#0#0 - +#7'TBitBtn'#6'AllBtn'#4'Left'#3#168#0#6'Height'#2#30#3'Top'#2'x'#5'Width'#2 - +#31#7'Caption'#6#3'ALL'#9'NumGlyphs'#2#0#7'OnClick'#7#11'AllBtnClick'#8'TabO' - +'rder'#2#4#0#0#9'TCheckBox'#10'NormPltChk'#4'Left'#3#144#1#6'Height'#2#19#3 - +'Top'#3#232#0#5'Width'#3#149#0#7'Caption'#6#24'Plot Normal Distribution'#8'T' - +'abOrder'#2#5#0#0#11'TRadioGroup'#11'RadioGroup1'#4'Left'#3#134#1#6'Height'#3 - +#219#0#3'Top'#2#8#5'Width'#3#208#0#8'AutoFill'#9#7'Caption'#6#12'Plot Option' - +'s'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6 - +#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSi' - +'zing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkH' - +'orizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScal' - +'eChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'Chil' - +'dSizing.ControlsPerLine'#2#1#12'ClientHeight'#3#201#0#11'ClientWidth'#3#204 - +#0#13'Items.Strings'#1#6#16'2D Vertical Bars'#6#16'3D Vertical Bars'#6#12'2D' - +' Pie Chart'#6#18'Exploded Pie Chart'#6#13'2D Line Chart'#6#13'3D Line Chart' - +#6#14'Plot 2D Points'#6#14'Plot 3D Points'#6#18'2D Horizontal Bars'#6#18'3D ' - ,'Horizontal Bars'#0#8'TabOrder'#2#6#0#0#11'TRadioGroup'#11'RadioGroup2'#4'Le' - +'ft'#3#136#1#6'Height'#2'>'#3'Top'#3#8#1#5'Width'#3#206#0#8'AutoFill'#9#7'Ca' - +'ption'#6#9'Plot Type'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.T' - +'opBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousCh' - +'ildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28 - +'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVer' - +'tical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenT' - +'opToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight'#2','#11'Cl' - +'ientWidth'#3#202#0#13'Items.Strings'#1#6#9'Bar Chart'#6#9'Histogram'#0#8'Ta' - +'bOrder'#2#7#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#153#0#6'Height'#2#24#3'Top' - +#3#23#1#5'Width'#2'G'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8 - +'TabOrder'#2#8#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#232#0#6'Height'#2#24#3 - +'Top'#3#24#1#5'Width'#2'G'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#7'OnCl' - +'ick'#7#14'CancelBtnClick'#8'TabOrder'#2#9#0#0#7'TButton'#5'OKBtn'#4'Left'#3 - +'8'#1#6'Height'#2#24#3'Top'#3#23#1#5'Width'#2'G'#7'Caption'#6#2'OK'#11'Modal' - +'Result'#2#1#7'OnClick'#7#10'OKBtnClick'#8'TabOrder'#2#10#0#0#0 -]); diff --git a/applications/lazstats/source_orig/frequnit.pas b/applications/lazstats/source_orig/frequnit.pas deleted file mode 100644 index 141841aed..000000000 --- a/applications/lazstats/source_orig/frequnit.pas +++ /dev/null @@ -1,455 +0,0 @@ -unit FreqUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, ExtCtrls, Globals, MainUnit, OutPutUnit, FunctionsLib, - GraphLib, DataProcs; - -type - - { TFreqFrm } - - TFreqFrm = class(TForm) - ResetBtn: TButton; - CancelBtn: TButton; - OKBtn: TButton; - NormPltChk: TCheckBox; - InBtn: TBitBtn; - OutBtn: TBitBtn; - AllBtn: TBitBtn; - Label1: TLabel; - Label2: TLabel; - ListBox1: TListBox; - RadioGroup1: TRadioGroup; - RadioGroup2: TRadioGroup; - VarList: TListBox; - procedure AllBtnClick(Sender: TObject); - procedure CancelBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure InBtnClick(Sender: TObject); - procedure OKBtnClick(Sender: TObject); - procedure OutBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - FreqFrm: TFreqFrm; - -implementation - -{ TFreqFrm } -uses FreqSpecsUnit; - -procedure TFreqFrm.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; - RadioGroup2.ItemIndex := -1; - InBtn.Enabled := true; - OutBtn.Enabled := false; - RadioGroup1.ItemIndex := -1; - NormPltChk.Checked := false; -end; - -procedure TFreqFrm.CancelBtnClick(Sender: TObject); -begin - FreqFrm.Hide; -end; - -procedure TFreqFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TFreqFrm.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 TFreqFrm.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 TFreqFrm.OKBtnClick(Sender: TObject); -label again, cleanup; - -var - i, j, k : integer; - freq : DblDyneVec; - pcnt : DblDyneVec; - cumpcnt : DblDyneVec; - pcntilerank : DblDyneVec; - cumfreq : DblDyneVec; - XValue : DblDyneVec; - value : double; - NoVars : integer; - plottype : integer; - cellval : string; - col : integer; - min, max : double; - range : double; - incrsize : double; - nointervals : double; - nints : integer; - outline : string; -// ColNoSelected : IntDyneVec; - NoSelected : integer; - NormDist : boolean; - Histogram : boolean; - Sumx, Sumx2, Mean, Variance, StdDev, zlow, zhi : double; - X, zproplow, zprophi, zfreq : double; - Ncases : integer; - -begin - if RadioGroup2.ItemIndex = 1 then Histogram := true else Histogram := false; - if NormPltChk.Checked = true then NormDist := true else NormDist := false; - SetLength(freq,NoCases); - SetLength(pcnt,NoCases); - SetLength(cumpcnt,NoCases); - SetLength(pcntilerank,NoCases); - SetLength(cumfreq,NoCases); - SetLength(XValue,NoCases); - - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('FREQUENCY ANALYSIS BY BILL MILLER'); - OutPutFrm.RichEdit.Lines.Add(''); -// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify; - - { Analyze each variable } - NoVars := ListBox1.Items.Count; - for i := 1 to NoVars do - begin - { get column no. of variable } - col := 1; - cellval := ListBox1.Items.Strings[i-1]; - for j := 1 to NoVariables do - begin - if OS3MainFrm.DataGrid.Cells[j,0] = cellval then - begin - col := j; - outline := format('Frequency Analysis for %s',[cellval]); - OutPutFrm.RichEdit.Lines.Add(outline); - break; - end; - end; - NoSelected := 1; - - { get min and max values for variable in col } - min := 1.0e32; - max := -1.0e32; - for j := 1 to NoCases do - begin - if Not ValidValue(j,col) then continue; - value := StrToFloat(OS3MainFrm.DataGrid.Cells[col,j]); - if value > max then max := value; - if value < min then min := value; - end; - range := max - min + 1.0; - incrsize := 1.0; - { if too many increments, set increment size for 15 increments } - if range > 200.0 then incrsize := range / 15; - nointervals := range / incrsize; - nints := round(nointervals); - { Get user's approval and / or changes } - FreqSpecsFrm.VarName.Text := cellval; - FreqSpecsFrm.Minimum.Text := FloatToStr(min); - FreqSpecsFrm.Maximum.Text := FloatToStr(max); - FreqSpecsFrm.range.Text := FloatToStr(range); - FreqSpecsFrm.IntSize.Text := FloatToStr(incrsize); - FreqSpecsFrm.NoInts.Text := IntToStr(nints); -again: FreqSpecsFrm.ShowModal; - incrsize := StrToFloat(FreqSpecsFrm.IntSize.Text); - nointervals := StrToFloat(FreqSpecsFrm.NoInts.Text); - nints := round(nointervals); - if nints+1 > NoCases then - begin - ShowMessage('ERROR! No. of intervals cannot be greater than no. of cases!'); - goto again; - end; - if nints > 200 then - begin - nints := 200; - // Application.MessageBox('Max. increments set to 200','Exceeded Maximum!',MB_OK); - end; - {Now, get frequency of cases in each interval } - for j := 1 to nints+1 do freq[j-1] := 0; - Ncases := 0; - for j := 1 to NoCases do - begin - if Not ValidValue(j,col) then continue; - Ncases := Ncases + 1; - value := StrToFloat(OS3MainFrm.DataGrid.Cells[col,j]); - for k := 1 to nints do - begin - if (value >= min + ((k-1) * incrsize)) and - (value < min + (k * incrsize)) then freq[k-1] := freq[k-1] + 1; - end; - end; - for j := 1 to nints+1 do XValue[j-1] := min + (j-1) * incrsize; - - { get cumulative frequencies and percents to midpoints } - cumfreq[0] := freq[0]; - pcnt[0] := freq[0] / Ncases; - cumpcnt[0] := cumfreq[0] / Ncases; - pcntilerank[0] := (freq[0] / 2.0) / Ncases; - for k := 2 to nints do - begin - cumfreq[k-1] := cumfreq[k-2] + freq[k-1]; - pcnt[k-1] := freq[k-1] / Ncases; - cumpcnt[k-1] := cumfreq[k-1] / Ncases; - pcntilerank[k-1] := (cumfreq[k-2] + freq[k-1] / 2.0) / Ncases; - end; - { Now, print results } - OutPutFrm.RichEdit.Lines.Add(' FROM TO FREQ. PCNT CUM.FREQ. CUM.PCNT. %ILE RANK'); - OutPutFrm.RichEdit.Lines.Add(''); - for k := 1 to nints do - begin - outline := format('%8.2f%8.2f%8.0f%8.2f %8.2f %8.2f %8.2f', - [min+(k-1)*incrsize, // from - min+k*incrsize, // to - freq[k-1], // freq - pcnt[k-1], // pcnt - cumfreq[k-1], // cum.freq. - cumpcnt[k-1], // cum.pcnt. - pcntilerank[k-1]]); // %ile rank - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - { Now, plot values as indicated in options list } - plottype := RadioGroup1.ItemIndex + 1; - if Histogram = true then GraphFrm.barwideprop := 1.0 else - GraphFrm.barwideprop := 0.5; - if NormDist = true then GraphFrm.nosets := 2 else GraphFrm.nosets := 1; - GraphFrm.nbars := nints+1; - GraphFrm.Heading := cellval; - GraphFrm.XTitle := 'Lower Limit Values'; - GraphFrm.YTitle := 'Frequency'; - if NormDist = false then - SetLength(GraphFrm.Ypoints,1,nints+1) - else SetLength(GraphFrm.Ypoints,2,nints+1); - SetLength(GraphFrm.Xpoints,1,nints+1); - for k := 1 to nints+1 do - begin - GraphFrm.Ypoints[0,k-1] := freq[k-1]; - GraphFrm.Xpoints[0,k-1] := XValue[k-1]; - end; - // Create ND plot if checked - if NormDist = true then - begin - OutPutFrm.RichEdit.Lines.Add('Interval ND Freq.'); - // Only use 3Dvertical plots when normal curve desired - RadioGroup1.ItemIndex := 3; - // get mean and standard deviation of xvalues, then height of - // the normal curve for each Normally distributed corresponding - // z score - sumx := 0.0; - sumx2 := 0.0; - for k := 1 to nints do - begin - sumx := sumx + (XValue[k-1] * freq[k-1]); - sumx2 := sumx2 + ((XValue[k-1] * XValue[k-1]) * freq[k-1]); - end; - Mean := sumx / Ncases; - Variance := sumx2 - ((sumx * sumx) / Ncases); - Variance := Variance / (Ncases - 1); - StdDev := sqrt(Variance); - for k := 1 to nints+1 do - begin - X := XValue[k-1] - (incrsize / 2.0); - if StdDev > 0.0 then zlow := (X - Mean) / StdDev - else zlow := 0.0; - X := XValue[k-1] + (incrsize / 2.0); - if StdDev > 0.0 then zhi := (X - Mean) / StdDev - else zhi := 0.0; - // get cum. prop. for this z and translate to frequency - zproplow := probz(zlow); - zprophi := probz(zhi); - zfreq := NoCases * abs(zprophi - zproplow); - GraphFrm.Ypoints[1,k-1] := zfreq; - outline := format(' %2d %6.2f',[k,GraphFrm.Ypoints[1,k-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - if plottype = 1 then - begin - GraphFrm.AutoScale := true; - GraphFrm.GraphType := plottype; // 2d Vertical Bar Chart - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - if plottype = 2 then // 3D vertical bars - begin - { enter parameters for 2 dimension bars in graph package } - GraphFrm.GraphType := plottype; // 3d vertical bars - GraphFrm.AutoScale := true; - GraphFrm.ShowLeftWall := true; - GraphFrm.ShowRightWall := true; - GraphFrm.ShowBottomWall := true; - GraphFrm.ShowBackWall := true; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.ShowModal; - end; - if plottype = 3 then - begin - GraphFrm.AutoScale := true; - GraphFrm.GraphType := plottype; // 2d pie chart - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - if plottype = 4 then - begin - GraphFrm.AutoScale := true; - GraphFrm.GraphType := plottype; // 3d pie chart - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.ShowLeftWall := true; - GraphFrm.ShowRightWall := true; - GraphFrm.ShowBottomWall := true; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - if plottype = 5 then // 2D Line Graph - begin - GraphFrm.AutoScale := true; - GraphFrm.GraphType := plottype; // 2d Lines - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - if plottype = 6 then // 3D Line Chart - begin - GraphFrm.AutoScale := true; - GraphFrm.GraphType := plottype; // 3d Lines - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.ShowLeftWall := true; - GraphFrm.ShowRightWall := true; - GraphFrm.ShowBottomWall := true; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - if plottype = 7 then - begin - GraphFrm.AutoScale := true; - GraphFrm.GraphType := plottype; // 2D Plot - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - if plottype = 8 then - begin - GraphFrm.AutoScale := true; - GraphFrm.GraphType := plottype; // 3D Plot - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.ShowLeftWall := true; - GraphFrm.ShowRightWall := true; - GraphFrm.ShowBottomWall := true; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - if plottype = 9 then - begin - GraphFrm.AutoScale := true; - GraphFrm.GraphType := plottype; // 2d Horizontal Bar Chart - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - if plottype = 10 then - begin - GraphFrm.AutoScale := true; - GraphFrm.GraphType := plottype; // 3d Horizontal Bar Chart - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.ShowLeftWall := true; - GraphFrm.ShowRightWall := true; - GraphFrm.ShowBottomWall := true; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - end; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; - end; // for novars list - -cleanup: - XValue := nil; - cumfreq := nil; - pcntilerank := nil; - cumpcnt := nil; - pcnt := nil; - freq := nil; - FreqFrm.Hide; -end; - -procedure TFreqFrm.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; - -initialization - {$I frequnit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/frmmain.lfm b/applications/lazstats/source_orig/frmmain.lfm deleted file mode 100644 index 207bc4c6b..000000000 --- a/applications/lazstats/source_orig/frmmain.lfm +++ /dev/null @@ -1,919 +0,0 @@ -object PicViewFrm: TPicViewFrm - Left = 0 - Height = 0 - Top = 716 - Width = 0 - HorzScrollBar.Page = 871 - HorzScrollBar.Range = 165 - VertScrollBar.Page = 615 - VertScrollBar.Range = 23 - ActiveControl = LBFiles - Caption = 'Image viewer' - ClientHeight = 0 - ClientWidth = 0 - Font.Height = -13 - Font.Name = 'MS Sans Serif' - Menu = MainMenu1 - OnKeyDown = FormKeyDown - OnShow = FormShow - LCLVersion = '0.9.28.2' - object SPImage: TSplitter - Left = 161 - Height = 0 - Top = 23 - Width = 4 - Beveled = True - end - object ToolBar1: TToolBar - Left = 0 - Height = 29 - Top = 0 - Width = 165 - ButtonHeight = 23 - Caption = 'ToolBar1' - Images = ILMain - ParentShowHint = False - ShowHint = True - TabOrder = 0 - object TBOPen: TToolButton - Left = 1 - Top = 2 - Action = AOpen - end - object TBOpenDir: TToolButton - Left = 24 - Top = 2 - Action = AOpenDir - end - object TBOpenDirRec: TToolButton - Left = 47 - Top = 2 - Action = OpenDirRecursively - end - object ToolButton4: TToolButton - Left = 70 - Top = 2 - Width = 8 - Caption = 'ToolButton4' - ImageIndex = 3 - Style = tbsSeparator - end - object TBPRev: TToolButton - Left = 78 - Top = 2 - Action = APreviousImage - end - object TBNext: TToolButton - Left = 101 - Top = 2 - Action = ANextImage - end - object TBPRevDir: TToolButton - Left = 124 - Top = 2 - Action = APrevImageDir - end - object TBNextDir: TToolButton - Left = 1 - Top = 25 - Action = ANextImageDir - end - object TBDoubleSize: TToolButton - Left = 24 - Top = 25 - Action = ADoubleSize - end - object TBHalfSize: TToolButton - Left = 47 - Top = 25 - Action = AHalfSize - end - object ToolButton3: TToolButton - Left = 70 - Top = 25 - Width = 8 - Caption = 'ToolButton3' - ImageIndex = 10 - Style = tbsSeparator - end - end - object LBFiles: TListBox - Left = 0 - Height = 0 - Top = 23 - Width = 161 - Align = alLeft - ClickOnSelChange = False - Font.Color = clBlack - Font.Height = 15 - Font.Name = 'Arial' - Font.Pitch = fpVariable - ItemHeight = 0 - OnClick = LBFilesClick - OnKeyDown = FormKeyDown - ParentFont = False - TabOrder = 1 - end - object PImage: TPanel - Left = 165 - Height = 0 - Top = 23 - Width = 0 - Align = alClient - ClientHeight = 0 - ClientWidth = 0 - FullRepaint = False - TabOrder = 2 - object ScrollBox1: TScrollBox - Left = 0 - Height = 0 - Top = 0 - Width = 0 - Align = alClient - BorderStyle = bsNone - ClientHeight = 0 - ClientWidth = 0 - TabOrder = 0 - object IMain: TImage - Left = 0 - Height = 0 - Top = 0 - Width = 0 - Align = alClient - Transparent = True - end - end - end - object MainMenu1: TMainMenu - Images = ILMain - left = 32 - top = 32 - object File1: TMenuItem - Caption = '&File' - object MIOpen: TMenuItem - Action = AOpen - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF292429FF4A48 - 4AFF524C52FF4A4C4AFF524C52FF4A4C4AFF524C52FF4A484AFF4A444AFF4140 - 41FF393439FF202020FF808080FF808080FF808080FF808080FF18304AFFC5BE - C5FFA4A5A4FFACAEACFFACAEACFFB4B2B4FFACAAACFFACAAACFF9C999CFF9495 - 9CFF8B8D8BFF4A484AFF808080FF808080FF808080FF808080FF203452FF5255 - 5AFFD5D2D5FFBDBEC5FFCDC6CDFFCDC6CDFFCDC6CDFFC5C2C5FFB4B2B4FFA4A5 - ACFFA4A1A4FF737173FF181418FF808080FF808080FF808080FF18304AFF1830 - 4AFFCDCECDFFCDCECDFFD5D6D5FFDED6DEFFD5D2D5FFD5CED5FFBDBABDFFB4B2 - B4FFA4A1A4FF9C959CFF4A484AFF808080FF808080FF808080FF203452FF417D - BDFF52555AFFDEDADEFFE6DEE6FFE6E2E6FFE6E2E6FFDED6DEFFC5C6C5FFB4B6 - BDFFACAEB4FFA4A1A4FF6A696AFF202020FF808080FF808080FF18304AFF83C6 - FFFF18304AFF808080FFDEDEE6FFEEEAEEFFE6E6E6FFE6E2E6FFC5C6CDFFBDBE - BDFFACAEACFFA4A1A4FF949594FF4A484AFF808080FF808080FF203452FF83C2 - FFFF5289CDFF4A5052FFFFFAFFFFFFF6FFFFF6EEF6FFE6E6E6FFDED6DEFFCDCE - CDFFCDC6CDFFBDBEBDFFBDBABDFFB4B6B4FF313031FF808080FF18304AFF9CD6 - FFFF8BC6FFFF83C6FFFF62AEFFFF62AEFFFF62AEFFFF62AEFFFF62AEFFFF62AE - FFFF62AEFFFF000000FF808080FF808080FF808080FF808080FF203452FF6AA5 - E6FFA4D6FFFF8BC6FFFF6AAAEEFF183452FF203452FF183452FF203452FF1834 - 52FF203452FF808080FF808080FF808080FF808080FF808080FF808080FF2034 - 52FF18304AFF183452FF18304AFF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF0000 - 00FF000000FF000000FF000000FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF000000FF000000FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF000000FF808080FF808080FF808080FF808080FF0000 - 00FF000000FF000000FF000000FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF000000FF000000FF808080FF000000FF0000 - 00FF000000FF808080FF000000FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF000000FF000000FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF - } - OnClick = AOpenExecute - end - object MIOPenDir: TMenuItem - Action = AOpenDir - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FF808080FF808080FF808080FF8080 - 80FF000000FF808080FF00FFFFFF808080FF00FFFFFF808080FF00FFFFFF8080 - 80FF00FFFFFF808080FF00FFFFFF000000FF808080FF808080FF808080FF8080 - 80FF000000FF00FFFFFF808080FF00FFFFFF830000FF00FFFFFF830000FF00FF - FFFF830000FF00FFFFFF808080FF000000FF808080FF808080FF808080FF8080 - 80FF000000FF808080FF00FFFFFF808080FF00FFFFFF830000FF830000FF8300 - 00FF00FFFFFF808080FF00FFFFFF000000FF808080FF808080FF808080FF8080 - 80FF000000FF00FFFFFF808080FF00FFFFFF830000FF830000FF00FFFFFF8300 - 00FF830000FF00FFFFFF808080FF000000FF808080FF808080FF808080FF8080 - 80FF000000FF808080FF00FFFFFF808080FF00FFFFFF830000FF830000FF8300 - 00FF00FFFFFF808080FF00FFFFFF000000FF808080FF808080FF808080FF8080 - 80FF000000FF00FFFFFF808080FF00FFFFFF830000FF00FFFFFF830000FF00FF - FFFF830000FF00FFFFFF808080FF000000FF808080FF808080FF808080FF8080 - 80FF000000FF808080FF00FFFFFF808080FF00FFFFFF808080FF00FFFFFF8080 - 80FF00FFFFFF808080FF00FFFFFF000000FF808080FF808080FF808080FF8080 - 80FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF00FFFFFF808080FF00FFFFFF808080FF000000FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF000000FF000000FF000000FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF - } - OnClick = AOpenDirExecute - end - object MIOpenDirRec: TMenuItem - Action = OpenDirRecursively - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000808080FF8385 - 83FF000808FF808080FF000000FF101010FF000000FF000408FF000000FF0004 - 08FF000000FF808080FF808080FF808080FF808080FF808080FF808080FF8B89 - 8BFF808080FFCDBEC5FFDECED5FFC5B2B4FFE6D2DEFFCDC6CDFFC5C2C5FFC5C6 - C5FF000000FF808080FF808080FF808080FF808080FF808080FF808080FF948D - 8BFFFFFAFFFFD5C6CDFFDECACDFFE6CED5FFD5BEBDFFD5C6CDFFCDC6C5FFDED2 - D5FF080000FF808080FF808080FF808080FF808080FF808080FF808080FF7B7D - 7BFF808080FFCDCECDFFD5CED5FFC5BABDFFDECED5FFDEC6CDFFE6CED5FFD5BE - C5FF100000FF080000FF201010FF808080FF808080FF808080FF808080FF838D - 8BFF808080FFC5C6C5FFC5CACDFFCDCACDFFCDCACDFFD5C2C5FFDECACDFFD5C2 - C5FF080000FFE6DADEFF000000FF808080FF808080FF808080FF808080FF7B85 - 83FF808080FFC5C6C5FFCDD2D5FFCDCECDFFCDC6CDFFCDCACDFFC5C2C5FFC5CA - C5FF000400FFB4BEBDFF000800FF808080FF808080FF808080FF808080FF8B89 - 8BFFFFFAFFFF808080FF808080FF808080FF808080FFFFFAFFFF808080FFFFFA - FFFF000000FFC5CECDFF000000FF000400FF000000FF808080FF808080FF9C81 - 83FF18008BFF10008BFF1800D5FF1000CDFF1800FFFF1000FFFF1800FFFF1000 - FFFF200808FFD5C6CDFF080000FFCDCACDFF000400FF808080FF808080FF9C81 - 83FF948983FF9C898BFF948983FF9C898BFF948983FF9C898BFF948983FF9C89 - 8BFF200000FFF6CED5FF100000FFD5CACDFF000000FF808080FF808080FF8080 - 80FF808080FFAC7D83FFFFFAFFFFFFF2FFFFFFFAFFFFFFF6FFFFFFFAFFFFFFFA - FFFF808080FFFFF2F6FF200000FFDEC2C5FF100008FF808080FF808080FF8080 - 80FF808080FFAC8D94FF10008BFF18008BFF1000CDFF1000D5FF1000FFFF1800 - FFFF1000FFFF1000FFFF180000FFD5C2C5FF080000FF808080FF808080FF8080 - 80FF808080FF83797BFF948183FF9C858BFF9C858BFF948983FF9C898BFF9485 - 83FF94898BFF837D7BFF080400FFDED6D5FF000400FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF94898BFFFFFAFFFF808080FF808080FFFFFA - F6FF808080FF808080FFFFFAF6FF808080FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF9C898BFF18008BFF10008BFF1800D5FF1000 - CDFF1800FFFF1000FFFF1800FFFF1000FFFF180000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF947D83FF9C8183FF9C898BFF948983FF9C89 - 8BFF948983FF9C898BFF948983FF9C898BFF100000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF - } - OnClick = OpenDirRecursivelyExecute - end - object MIClear: TMenuItem - Action = AClear - OnClick = AClearExecute - end - object N1: TMenuItem - Caption = '-' - end - object MIQuit: TMenuItem - Action = AExit - OnClick = AExitExecute - end - end - object MImage: TMenuItem - Caption = '&Image' - object D1: TMenuItem - Action = ADoubleSize - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF000000FF000000FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF000000FF000000FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF000000FF000000FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF000000FF000000FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF838183FF000000FF000000FF000000FF838183FF808080FF00FF - FFFF838183FF000000FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF838183FF837D83FF838183FF7B7D7BFF838183FF000000FF0000 - 00FF00FFFFFF808080FF808080FF808080FF808080FF808080FF808080FF0000 - 00FF838183FF808080FFC5C2C5FF808080FFC5C2C5FF808080FF838183FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF7B7D7BFF8381 - 83FF808080FFC5C2C5FF808080FF0000FFFF808080FFC5C2C5FF808080FF8381 - 83FF837D83FF808080FF808080FF808080FF808080FF808080FF000000FF8381 - 83FFC5C2C5FF808080FFC5C2C5FF0000FFFFC5C2C5FF808080FFC5C2C5FF8381 - 83FF000000FF808080FF808080FF808080FF808080FF808080FF000000FF8381 - 83FF808080FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF808080FF8381 - 83FF000000FF808080FF808080FF808080FF808080FF808080FF000000FF8381 - 83FFC5C2C5FF808080FFC5C2C5FF0000FFFFC5C2C5FF808080FFC5C2C5FF8381 - 83FF000000FF808080FF808080FF808080FF808080FF808080FF7B7D7BFF8381 - 83FF808080FFC5C2C5FF808080FF0000FFFF808080FFC5C2C5FF808080FF8381 - 83FF837D83FF808080FF808080FF808080FF808080FF808080FF808080FF0000 - 00FF838183FF808080FFC5C2C5FF808080FFC5C2C5FF808080FF838183FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF838183FF837D83FF838183FF7B7D7BFF838183FF000000FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF838183FF000000FF000000FF000000FF838183FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF - } - OnClick = ADoubleSizeExecute - end - object MIHalfSize: TMenuItem - Action = AHalfSize - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF000000FF000000FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF000000FF000000FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF000000FF000000FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF000000FF000000FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF838183FF000000FF000000FF000000FF838183FF808080FF00FF - FFFF838183FF000000FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF838183FF837D83FF838183FF7B7D7BFF838183FF000000FF0000 - 00FF00FFFFFF808080FF808080FF808080FF808080FF808080FF808080FF0000 - 00FF838183FFC5C2C5FF808080FFC5C2C5FF808080FFC5C2C5FF838183FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF7B7D7BFF8381 - 83FFC5BEC5FF808080FFBDBEBDFF808080FFC5BEC5FF808080FFBDBEBDFF8381 - 83FF837D83FF808080FF808080FF808080FF808080FF808080FF000000FF8381 - 83FF808080FFC5C2C5FF808080FFC5C2C5FF808080FFC5C2C5FF808080FF8381 - 83FF000000FF808080FF808080FF808080FF808080FF808080FF000000FF8381 - 83FFBDBEBDFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFFC5BEC5FF8381 - 83FF000000FF808080FF808080FF808080FF808080FF808080FF000000FF8381 - 83FF808080FFC5C2C5FF808080FFC5C2C5FF808080FFC5C2C5FF808080FF8381 - 83FF000000FF808080FF808080FF808080FF808080FF808080FF7B7D7BFF8381 - 83FFC5BEC5FF808080FFBDBEBDFF808080FFC5BEC5FF808080FFBDBEBDFF8381 - 83FF837D83FF808080FF808080FF808080FF808080FF808080FF808080FF0000 - 00FF838183FFC5C2C5FF808080FFC5C2C5FF808080FFC5C2C5FF838183FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF838183FF837D83FF838183FF7B7D7BFF838183FF000000FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF838183FF000000FF000000FF000000FF838183FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF - } - OnClick = AHalfSizeExecute - end - object N2: TMenuItem - Caption = '-' - end - object MINextImage: TMenuItem - Action = ANextImage - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF0000FFFF000000FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF0000FFFF0000FFFF0000 - FFFF000000FF000000FF808080FF808080FF808080FF808080FF000000FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF0000FFFF0000FFFF0000 - FFFF0000FFFF0000FFFF000000FF000000FF808080FF808080FF000000FF0000 - FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 - FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF0000FFFF0000FFFF0000 - FFFF0000FFFF0000FFFF000000FF000000FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF0000FFFF0000FFFF0000 - FFFF000000FF000000FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF0000FFFF000000FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF - } - ShortCut = 36882 - OnClick = ANextImageExecute - end - object PreviousImage1: TMenuItem - Action = APreviousImage - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF000000FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF000000FF0000FFFF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF000000FF000000FF0000FFFF0000FFFF0000FFFF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF000000FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 - FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000FF808080FF8080 - 80FF000000FF000000FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF808080FF8080 - 80FF808080FF808080FF000000FF000000FF0000FFFF0000FFFF0000FFFF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF000000FF0000FFFF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF000000FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF - } - ShortCut = 36884 - OnClick = APreviousImageExecute - end - object Nextimagedirectory1: TMenuItem - Action = ANextImageDir - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF808080FFFFFF00FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF838183FF838183FF838183FF838183FF838183FF838183FF8381 - 83FF838183FF838183FF838183FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF7B7D7BFF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF838183FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF000000FF000000FF808080FF000000FF8080 - 80FF808080FF808080FF837D83FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF000000FF000000FF808080FF000000FF0000 - 00FF808080FF808080FF838183FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF000000FF000000FF808080FF000000FF0000 - 00FF000000FF808080FF7B7D7BFF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF000000FF000000FF808080FF000000FF0000 - 00FF808080FF808080FF838183FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF000000FF000000FF808080FF000000FF8080 - 80FF808080FF808080FF837D83FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF838183FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF7B7D7BFF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FFFFFF00FF808080FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF808080FF - } - OnClick = ANextImageDirExecute - end - object Previousimagedirectory1: TMenuItem - Action = APrevImageDir - Bitmap.Data = { - 36040000424D3604000000000000360000002800000010000000100000000100 - 2000000000000004000064000000640000000000000000000000808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF808080FFFFFF00FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF838183FF838183FF838183FF838183FF838183FF838183FF8381 - 83FF838183FF838183FF838183FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF7B7D7BFF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF838183FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF000000FF808080FF000000FF0000 - 00FF808080FF808080FF837D83FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF000000FF000000FF808080FF000000FF0000 - 00FF808080FF808080FF838183FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF000000FF000000FF000000FF808080FF000000FF0000 - 00FF808080FF808080FF7B7D7BFF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF000000FF000000FF808080FF000000FF0000 - 00FF808080FF808080FF838183FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF000000FF808080FF000000FF0000 - 00FF808080FF808080FF837D83FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF838183FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF7B7D7BFF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF000000FFFFFF00FF808080FFFFFF00FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FFFFFF00FF808080FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF808080FF - } - OnClick = APrevImageDirExecute - end - end - end - object ActionList1: TActionList - Images = ILMain - left = 72 - top = 32 - object AOpen: TAction - Caption = '&Open' - HelpType = htKeyword - ImageIndex = 0 - OnExecute = AOpenExecute - ShortCut = 16463 - end - object AOpenDir: TAction - Caption = 'Open &Directory' - HelpType = htKeyword - ImageIndex = 1 - OnExecute = AOpenDirExecute - ShortCut = 16452 - end - object AExit: TAction - Caption = '&Quit' - HelpType = htKeyword - OnExecute = AExitExecute - ShortCut = 16465 - end - object AClear: TAction - Caption = '&Clear list' - HelpType = htKeyword - OnExecute = AClearExecute - ShortCut = 16460 - end - object OpenDirRecursively: TAction - Caption = 'Open Directory &Recursively' - HelpType = htKeyword - ImageIndex = 2 - OnExecute = OpenDirRecursivelyExecute - ShortCut = 16466 - end - object ADoubleSize: TAction - Caption = '&Double size' - HelpType = htKeyword - ImageIndex = 5 - OnExecute = ADoubleSizeExecute - ShortCut = 16427 - end - object AHalfSize: TAction - Caption = '&Half Size' - HelpType = htKeyword - ImageIndex = 6 - OnExecute = AHalfSizeExecute - ShortCut = 16429 - end - object ANextImage: TAction - Caption = '&Next image' - HelpType = htKeyword - ImageIndex = 4 - OnExecute = ANextImageExecute - end - object APreviousImage: TAction - Caption = '&Previous Image' - HelpType = htKeyword - ImageIndex = 3 - OnExecute = APreviousImageExecute - end - object ANextImageDir: TAction - Caption = 'N&ext image directory' - HelpType = htKeyword - ImageIndex = 8 - OnExecute = ANextImageDirExecute - ShortCut = 32846 - end - object APrevImageDir: TAction - Caption = 'Pre&vious image directory' - HelpType = htKeyword - Hint = 'Jump to last image of previous directory' - ImageIndex = 7 - OnExecute = APrevImageDirExecute - ShortCut = 32848 - end - end - object ILMain: TImageList - left = 32 - top = 64 - Bitmap = { - 4C69090000001000000010000000808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF000000FF000000FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF000000FF808080FF000000FF000000FF000000FF808080FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF0000 - 00FF808080FF808080FF808080FF808080FF000000FF000000FF000000FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF000000FF000000FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF000000FF000000FF0000 - 00FF808080FF808080FF808080FF808080FF203452FF18304AFF183452FF1830 - 4AFF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF203452FF6AA5E6FFA4D6FFFF8BC6FFFF6AAA - EEFF183452FF203452FF183452FF203452FF183452FF203452FF808080FF8080 - 80FF808080FF808080FF808080FF18304AFF9CD6FFFF8BC6FFFF83C6FFFF62AE - FFFF62AEFFFF62AEFFFF62AEFFFF62AEFFFF62AEFFFF62AEFFFF000000FF8080 - 80FF808080FF808080FF808080FF203452FF83C2FFFF5289CDFF4A5052FFFFFA - FFFFFFF6FFFFF6EEF6FFE6E6E6FFDED6DEFFCDCECDFFCDC6CDFFBDBEBDFFBDBA - BDFFB4B6B4FF313031FF808080FF18304AFF83C6FFFF18304AFF808080FFDEDE - E6FFEEEAEEFFE6E6E6FFE6E2E6FFC5C6CDFFBDBEBDFFACAEACFFA4A1A4FF9495 - 94FF4A484AFF808080FF808080FF203452FF417DBDFF52555AFFDEDADEFFE6DE - E6FFE6E2E6FFE6E2E6FFDED6DEFFC5C6C5FFB4B6BDFFACAEB4FFA4A1A4FF6A69 - 6AFF202020FF808080FF808080FF18304AFF18304AFFCDCECDFFCDCECDFFD5D6 - D5FFDED6DEFFD5D2D5FFD5CED5FFBDBABDFFB4B2B4FFA4A1A4FF9C959CFF4A48 - 4AFF808080FF808080FF808080FF203452FF52555AFFD5D2D5FFBDBEC5FFCDC6 - CDFFCDC6CDFFCDC6CDFFC5C2C5FFB4B2B4FFA4A5ACFFA4A1A4FF737173FF1814 - 18FF808080FF808080FF808080FF18304AFFC5BEC5FFA4A5A4FFACAEACFFACAE - ACFFB4B2B4FFACAAACFFACAAACFF9C999CFF94959CFF8B8D8BFF4A484AFF8080 - 80FF808080FF808080FF808080FF292429FF4A484AFF524C52FF4A4C4AFF524C - 52FF4A4C4AFF524C52FF4A484AFF4A444AFF414041FF393439FF202020FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF0000 - 00FF000000FF000000FF000000FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF000000FF00FF - FFFF808080FF00FFFFFF808080FF000000FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FF808080FF808080FF808080FF808080FF000000FF808080FF00FF - FFFF808080FF00FFFFFF808080FF00FFFFFF808080FF00FFFFFF808080FF00FF - FFFF000000FF808080FF808080FF808080FF808080FF000000FF00FFFFFF8080 - 80FF00FFFFFF830000FF00FFFFFF830000FF00FFFFFF830000FF00FFFFFF8080 - 80FF000000FF808080FF808080FF808080FF808080FF000000FF808080FF00FF - FFFF808080FF00FFFFFF830000FF830000FF830000FF00FFFFFF808080FF00FF - FFFF000000FF808080FF808080FF808080FF808080FF000000FF00FFFFFF8080 - 80FF00FFFFFF830000FF830000FF00FFFFFF830000FF830000FF00FFFFFF8080 - 80FF000000FF808080FF808080FF808080FF808080FF000000FF808080FF00FF - FFFF808080FF00FFFFFF830000FF830000FF830000FF00FFFFFF808080FF00FF - FFFF000000FF808080FF808080FF808080FF808080FF000000FF00FFFFFF8080 - 80FF00FFFFFF830000FF00FFFFFF830000FF00FFFFFF830000FF00FFFFFF8080 - 80FF000000FF808080FF808080FF808080FF808080FF000000FF808080FF00FF - FFFF808080FF00FFFFFF808080FF00FFFFFF808080FF00FFFFFF808080FF00FF - FFFF000000FF808080FF808080FF808080FF808080FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF947D83FF9C8183FF9C898BFF948983FF9C898BFF948983FF9C898BFF9489 - 83FF9C898BFF100000FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF9C898BFF18008BFF10008BFF1800D5FF1000CDFF1800FFFF1000FFFF1800 - FFFF1000FFFF180000FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF94898BFFFFFAFFFF808080FF808080FFFFFAF6FF808080FF808080FFFFFA - F6FF808080FF000000FF808080FF808080FF808080FF808080FF83797BFF9481 - 83FF9C858BFF9C858BFF948983FF9C898BFF948583FF94898BFF837D7BFF0804 - 00FFDED6D5FF000400FF808080FF808080FF808080FF808080FFAC8D94FF1000 - 8BFF18008BFF1000CDFF1000D5FF1000FFFF1800FFFF1000FFFF1000FFFF1800 - 00FFD5C2C5FF080000FF808080FF808080FF808080FF808080FFAC7D83FFFFFA - FFFFFFF2FFFFFFFAFFFFFFF6FFFFFFFAFFFFFFFAFFFF808080FFFFF2F6FF2000 - 00FFDEC2C5FF100008FF808080FF808080FF9C8183FF948983FF9C898BFF9489 - 83FF9C898BFF948983FF9C898BFF948983FF9C898BFF200000FFF6CED5FF1000 - 00FFD5CACDFF000000FF808080FF808080FF9C8183FF18008BFF10008BFF1800 - D5FF1000CDFF1800FFFF1000FFFF1800FFFF1000FFFF200808FFD5C6CDFF0800 - 00FFCDCACDFF000400FF808080FF808080FF8B898BFFFFFAFFFF808080FF8080 - 80FF808080FF808080FFFFFAFFFF808080FFFFFAFFFF000000FFC5CECDFF0000 - 00FF000400FF000000FF808080FF808080FF7B8583FF808080FFC5C6C5FFCDD2 - D5FFCDCECDFFCDC6CDFFCDCACDFFC5C2C5FFC5CAC5FF000400FFB4BEBDFF0008 - 00FF808080FF808080FF808080FF808080FF838D8BFF808080FFC5C6C5FFC5CA - CDFFCDCACDFFCDCACDFFD5C2C5FFDECACDFFD5C2C5FF080000FFE6DADEFF0000 - 00FF808080FF808080FF808080FF808080FF7B7D7BFF808080FFCDCECDFFD5CE - D5FFC5BABDFFDECED5FFDEC6CDFFE6CED5FFD5BEC5FF100000FF080000FF2010 - 10FF808080FF808080FF808080FF808080FF948D8BFFFFFAFFFFD5C6CDFFDECA - CDFFE6CED5FFD5BEBDFFD5C6CDFFCDC6C5FFDED2D5FF080000FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF8B898BFF808080FFCDBEC5FFDECE - D5FFC5B2B4FFE6D2DEFFCDC6CDFFC5C2C5FFC5C6C5FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF838583FF000808FF808080FF0000 - 00FF101010FF000000FF000408FF000000FF000408FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF000000FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF000000FF0000FFFF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF0000 - 00FF000000FF0000FFFF0000FFFF0000FFFF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF000000FF000000FF0000 - FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF0000FFFF0000FFFF0000 - FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 - FFFF0000FFFF0000FFFF000000FF808080FF808080FF000000FF000000FF0000 - FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF808080FF808080FF808080FF808080FF0000 - 00FF000000FF0000FFFF0000FFFF0000FFFF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF000000FF0000FFFF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF000000FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF000000FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF0000FFFF000000FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF0000FFFF0000FFFF0000FFFF000000FF000000FF8080 - 80FF808080FF808080FF808080FF000000FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 - 00FF000000FF808080FF808080FF000000FF0000FFFF0000FFFF0000FFFF0000 - FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 - FFFF0000FFFF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 - 00FF000000FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF0000FFFF0000FFFF0000FFFF000000FF000000FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF0000FFFF000000FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF000000FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF838183FF0000 - 00FF000000FF000000FF838183FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF000000FF838183FF837D - 83FF838183FF7B7D7BFF838183FF000000FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF838183FF808080FFC5C2 - C5FF808080FFC5C2C5FF808080FF838183FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF7B7D7BFF838183FF808080FFC5C2C5FF8080 - 80FF0000FFFF808080FFC5C2C5FF808080FF838183FF837D83FF808080FF8080 - 80FF808080FF808080FF808080FF000000FF838183FFC5C2C5FF808080FFC5C2 - C5FF0000FFFFC5C2C5FF808080FFC5C2C5FF838183FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF000000FF838183FF808080FF0000FFFF0000 - FFFF0000FFFF0000FFFF0000FFFF808080FF838183FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF000000FF838183FFC5C2C5FF808080FFC5C2 - C5FF0000FFFFC5C2C5FF808080FFC5C2C5FF838183FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF7B7D7BFF838183FF808080FFC5C2C5FF8080 - 80FF0000FFFF808080FFC5C2C5FF808080FF838183FF837D83FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF838183FF808080FFC5C2 - C5FF808080FFC5C2C5FF808080FF838183FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF000000FF838183FF837D - 83FF838183FF7B7D7BFF838183FF000000FF000000FF00FFFFFF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF838183FF0000 - 00FF000000FF000000FF838183FF808080FF00FFFFFF838183FF000000FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF000000FF000000FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF000000FF0000 - 00FF000000FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF0000 - 00FF000000FF000000FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF000000FF000000FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF808080FF808080FF808080FF808080FF838183FF0000 - 00FF000000FF000000FF838183FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF000000FF838183FF837D - 83FF838183FF7B7D7BFF838183FF000000FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF838183FFC5C2C5FF8080 - 80FFC5C2C5FF808080FFC5C2C5FF838183FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF7B7D7BFF838183FFC5BEC5FF808080FFBDBE - BDFF808080FFC5BEC5FF808080FFBDBEBDFF838183FF837D83FF808080FF8080 - 80FF808080FF808080FF808080FF000000FF838183FF808080FFC5C2C5FF8080 - 80FFC5C2C5FF808080FFC5C2C5FF808080FF838183FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF000000FF838183FFBDBEBDFF0000FFFF0000 - FFFF0000FFFF0000FFFF0000FFFFC5BEC5FF838183FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF000000FF838183FF808080FFC5C2C5FF8080 - 80FFC5C2C5FF808080FFC5C2C5FF808080FF838183FF000000FF808080FF8080 - 80FF808080FF808080FF808080FF7B7D7BFF838183FFC5BEC5FF808080FFBDBE - BDFF808080FFC5BEC5FF808080FFBDBEBDFF838183FF837D83FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF000000FF838183FFC5C2C5FF8080 - 80FFC5C2C5FF808080FFC5C2C5FF838183FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF000000FF838183FF837D - 83FF838183FF7B7D7BFF838183FF000000FF000000FF00FFFFFF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF838183FF0000 - 00FF000000FF000000FF838183FF808080FF00FFFFFF838183FF000000FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF000000FF000000FF0000 - 00FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF000000FF0000 - 00FF000000FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF0000 - 00FF000000FF000000FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FF000000FF000000FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF000000FF808080FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FF808080FFFFFF00FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF7B7D - 7BFF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8381 - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF000000FF808080FF000000FF000000FF808080FF808080FF837D - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF000000FF000000FF808080FF000000FF000000FF808080FF808080FF8381 - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF0000 - 00FF000000FF000000FF808080FF000000FF000000FF808080FF808080FF7B7D - 7BFF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF000000FF000000FF808080FF000000FF000000FF808080FF808080FF8381 - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF000000FF808080FF000000FF000000FF808080FF808080FF837D - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8381 - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF7B7D - 7BFF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF838183FF8381 - 83FF838183FF838183FF838183FF838183FF838183FF838183FF838183FF8381 - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FFFFFF00FF808080FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FF808080FFFFFF00FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF7B7D - 7BFF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8381 - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF000000FF000000FF808080FF000000FF808080FF808080FF808080FF837D - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF000000FF000000FF808080FF000000FF000000FF808080FF808080FF8381 - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF000000FF000000FF808080FF000000FF000000FF000000FF808080FF7B7D - 7BFF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF000000FF000000FF808080FF000000FF000000FF808080FF808080FF8381 - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF000000FF000000FF808080FF000000FF808080FF808080FF808080FF837D - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8381 - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF7B7D - 7BFF000000FFFFFF00FF808080FFFFFF00FF000000FF808080FF838183FF8381 - 83FF838183FF838183FF838183FF838183FF838183FF838183FF838183FF8381 - 83FF000000FFFFFF00FF808080FFFFFF00FF000000FF000000FF000000FF0000 - 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 - 00FF000000FFFFFF00FF808080FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF - 00FFFFFF00FFFFFF00FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF808080FF808080FF808080FF808080FF8080 - 80FF808080FF808080FF808080FF - } - end - object ODImage: TOpenDialog - FilterIndex = 0 - Options = [ofAllowMultiSelect, ofEnableSizing, ofViewDetail] - left = 72 - top = 64 - end - object OpenDialog1: TOpenDialog - FilterIndex = 0 - left = 72 - top = 104 - end -end diff --git a/applications/lazstats/source_orig/frmmain.lrs b/applications/lazstats/source_orig/frmmain.lrs deleted file mode 100644 index 3c683968f..000000000 --- a/applications/lazstats/source_orig/frmmain.lrs +++ /dev/null @@ -1,990 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TPicViewFrm','FORMDATA',[ - 'TPF0'#11'TPicViewFrm'#10'PicViewFrm'#4'Left'#2#0#6'Height'#2#0#3'Top'#3#204#2 - +#5'Width'#2#0#18'HorzScrollBar.Page'#3'g'#3#19'HorzScrollBar.Range'#3#165#0 - +#18'VertScrollBar.Page'#3'g'#2#19'VertScrollBar.Range'#2#23#13'ActiveControl' - +#7#7'LBFiles'#7'Caption'#6#12'Image viewer'#12'ClientHeight'#2#0#11'ClientWi' - +'dth'#2#0#11'Font.Height'#2#243#9'Font.Name'#6#13'MS Sans Serif'#4'Menu'#7#9 - +'MainMenu1'#9'OnKeyDown'#7#11'FormKeyDown'#6'OnShow'#7#8'FormShow'#10'LCLVer' - +'sion'#6#8'0.9.28.2'#0#9'TSplitter'#7'SPImage'#4'Left'#3#161#0#6'Height'#2#0 - +#3'Top'#2#23#5'Width'#2#4#7'Beveled'#9#0#0#8'TToolBar'#8'ToolBar1'#4'Left'#2 - +#0#6'Height'#2#29#3'Top'#2#0#5'Width'#3#165#0#12'ButtonHeight'#2#23#7'Captio' - +'n'#6#8'ToolBar1'#6'Images'#7#6'ILMain'#14'ParentShowHint'#8#8'ShowHint'#9#8 - +'TabOrder'#2#0#0#11'TToolButton'#6'TBOPen'#4'Left'#2#1#3'Top'#2#2#6'Action'#7 - +#5'AOpen'#0#0#11'TToolButton'#9'TBOpenDir'#4'Left'#2#24#3'Top'#2#2#6'Action' - +#7#8'AOpenDir'#0#0#11'TToolButton'#12'TBOpenDirRec'#4'Left'#2'/'#3'Top'#2#2#6 - +'Action'#7#18'OpenDirRecursively'#0#0#11'TToolButton'#11'ToolButton4'#4'Left' - +#2'F'#3'Top'#2#2#5'Width'#2#8#7'Caption'#6#11'ToolButton4'#10'ImageIndex'#2#3 - +#5'Style'#7#12'tbsSeparator'#0#0#11'TToolButton'#6'TBPRev'#4'Left'#2'N'#3'To' - +'p'#2#2#6'Action'#7#14'APreviousImage'#0#0#11'TToolButton'#6'TBNext'#4'Left' - +#2'e'#3'Top'#2#2#6'Action'#7#10'ANextImage'#0#0#11'TToolButton'#9'TBPRevDir' - +#4'Left'#2'|'#3'Top'#2#2#6'Action'#7#13'APrevImageDir'#0#0#11'TToolButton'#9 - +'TBNextDir'#4'Left'#2#1#3'Top'#2#25#6'Action'#7#13'ANextImageDir'#0#0#11'TTo' - +'olButton'#12'TBDoubleSize'#4'Left'#2#24#3'Top'#2#25#6'Action'#7#11'ADoubleS' - +'ize'#0#0#11'TToolButton'#10'TBHalfSize'#4'Left'#2'/'#3'Top'#2#25#6'Action'#7 - +#9'AHalfSize'#0#0#11'TToolButton'#11'ToolButton3'#4'Left'#2'F'#3'Top'#2#25#5 - +'Width'#2#8#7'Caption'#6#11'ToolButton3'#10'ImageIndex'#2#10#5'Style'#7#12't' - +'bsSeparator'#0#0#0#8'TListBox'#7'LBFiles'#4'Left'#2#0#6'Height'#2#0#3'Top'#2 - +#23#5'Width'#3#161#0#5'Align'#7#6'alLeft'#16'ClickOnSelChange'#8#10'Font.Col' - +'or'#7#7'clBlack'#11'Font.Height'#2#15#9'Font.Name'#6#5'Arial'#10'Font.Pitch' - +#7#10'fpVariable'#10'ItemHeight'#2#0#7'OnClick'#7#12'LBFilesClick'#9'OnKeyDo' - +'wn'#7#11'FormKeyDown'#10'ParentFont'#8#8'TabOrder'#2#1#0#0#6'TPanel'#6'PIma' - +'ge'#4'Left'#3#165#0#6'Height'#2#0#3'Top'#2#23#5'Width'#2#0#5'Align'#7#8'alC' - +'lient'#12'ClientHeight'#2#0#11'ClientWidth'#2#0#11'FullRepaint'#8#8'TabOrde' - +'r'#2#2#0#10'TScrollBox'#10'ScrollBox1'#4'Left'#2#0#6'Height'#2#0#3'Top'#2#0 - +#5'Width'#2#0#5'Align'#7#8'alClient'#11'BorderStyle'#7#6'bsNone'#12'ClientHe' - +'ight'#2#0#11'ClientWidth'#2#0#8'TabOrder'#2#0#0#6'TImage'#5'IMain'#4'Left'#2 - +#0#6'Height'#2#0#3'Top'#2#0#5'Width'#2#0#5'Align'#7#8'alClient'#11'Transpare' - +'nt'#9#0#0#0#0#9'TMainMenu'#9'MainMenu1'#6'Images'#7#6'ILMain'#4'left'#2' '#3 - +'top'#2' '#0#9'TMenuItem'#5'File1'#7'Caption'#6#5'&File'#0#9'TMenuItem'#6'MI' - +'Open'#6'Action'#7#5'AOpen'#11'Bitmap.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#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255')$)'#255'JHJ'#255'RLR' - +#255'JLJ'#255'RLR'#255'JLJ'#255'RLR'#255'JHJ'#255'JDJ'#255'A@A'#255'949'#255 - +' '#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#24 - +'0J'#255#197#190#197#255#164#165#164#255#172#174#172#255#172#174#172#255#180 - +#178#180#255#172#170#172#255#172#170#172#255#156#153#156#255#148#149#156#255 - +#139#141#139#255'JHJ'#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255' 4R'#255'RUZ'#255#213#210#213#255#189#190#197#255#205#198#205 - +#255#205#198#205#255#205#198#205#255#197#194#197#255#180#178#180#255#164#165 - +#172#255#164#161#164#255'sqs'#255#24#20#24#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#24'0J'#255#24'0J'#255#205#206#205#255#205#206#205#255 - +#213#214#213#255#222#214#222#255#213#210#213#255#213#206#213#255#189#186#189 - +#255#180#178#180#255#164#161#164#255#156#149#156#255'JHJ'#255#128#128#128#255 - +#128#128#128#255#128#128#128#255' 4R'#255'A}'#189#255'RUZ'#255#222#218#222 - +#255#230#222#230#255#230#226#230#255#230#226#230#255#222#214#222#255#197#198 - +#197#255#180#182#189#255#172#174#180#255#164#161#164#255'jij'#255' '#255 - +#128#128#128#255#128#128#128#255#24'0J'#255#131#198#255#255#24'0J'#255#128 - +#128#128#255#222#222#230#255#238#234#238#255#230#230#230#255#230#226#230#255 - +#197#198#205#255#189#190#189#255#172#174#172#255#164#161#164#255#148#149#148 - +#255'JHJ'#255#128#128#128#255#128#128#128#255' 4R'#255#131#194#255#255'R'#137 - +#205#255'JPR'#255#255#250#255#255#255#246#255#255#246#238#246#255#230#230#230 - +#255#222#214#222#255#205#206#205#255#205#198#205#255#189#190#189#255#189#186 - +#189#255#180#182#180#255'101'#255#128#128#128#255#24'0J'#255#156#214#255#255 - ,#139#198#255#255#131#198#255#255'b'#174#255#255'b'#174#255#255'b'#174#255#255 - +'b'#174#255#255'b'#174#255#255'b'#174#255#255'b'#174#255#255#0#0#0#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255' 4R'#255'j'#165 - +#230#255#164#214#255#255#139#198#255#255'j'#170#238#255#24'4R'#255' 4R'#255 - +#24'4R'#255' 4R'#255#24'4R'#255' 4R'#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255' 4R'#255#24'0J' - +#255#24'4R'#255#24'0J'#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#0 - +#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255 - +#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0 - +#0#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128 - +#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#7'OnClick'#7#12'AOpenExecute'#0#0#9'TMenuItem'#9'MIOPenDir'#6'Action'#7#8'A' - +'OpenDir'#11'Bitmap.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#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0 - +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#0#0#0#255#128#128#128#255#0#255#255#255#128#128#128#255#0#255#255 - +#255#128#128#128#255#0#255#255#255#128#128#128#255#0#255#255#255#128#128#128 - +#255#0#255#255#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#0#0#0#255#0#255#255#255#128#128#128#255#0#255#255#255#131#0 - +#0#255#0#255#255#255#131#0#0#255#0#255#255#255#131#0#0#255#0#255#255#255#128 - +#128#128#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#0#0#0#255#128#128#128#255#0#255#255#255#128#128#128#255#0#255 - +#255#255#131#0#0#255#131#0#0#255#131#0#0#255#0#255#255#255#128#128#128#255#0 - +#255#255#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#0#0#0#255#0#255#255#255#128#128#128#255#0#255#255#255#131#0#0 - +#255#131#0#0#255#0#255#255#255#131#0#0#255#131#0#0#255#0#255#255#255#128#128 - +#128#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#0#0#0#255#128#128#128#255#0#255#255#255#128#128#128#255#0#255#255 - +#255#131#0#0#255#131#0#0#255#131#0#0#255#0#255#255#255#128#128#128#255#0#255 - +#255#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#0#0#0#255#0#255#255#255#128#128#128#255#0#255#255#255#131#0#0#255#0 - +#255#255#255#131#0#0#255#0#255#255#255#131#0#0#255#0#255#255#255#128#128#128 - +#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#0#0#0#255#128#128#128#255#0#255#255#255#128#128#128#255#0#255#255#255 - +#128#128#128#255#0#255#255#255#128#128#128#255#0#255#255#255#128#128#128#255 - +#0#255#255#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 - +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#255 - ,#255#255#128#128#128#255#0#255#255#255#128#128#128#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#7'OnClick'#7#15'AOpenDirExecute'#0#0#9'TMenuItem'#12'MIOpenDirRec'#6 - +'Action'#7#18'OpenDirRecursively'#11'Bitmap.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#128#128#128#255#131#133#131#255#0#8#8#255#128 - +#128#128#255#0#0#0#255#16#16#16#255#0#0#0#255#0#4#8#255#0#0#0#255#0#4#8#255#0 - +#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#139#137#139#255#128#128#128#255#205#190#197#255 - +#222#206#213#255#197#178#180#255#230#210#222#255#205#198#205#255#197#194#197 - +#255#197#198#197#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#148#141#139#255#255#250 - +#255#255#213#198#205#255#222#202#205#255#230#206#213#255#213#190#189#255#213 - +#198#205#255#205#198#197#255#222#210#213#255#8#0#0#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +'{}{'#255#128#128#128#255#205#206#205#255#213#206#213#255#197#186#189#255#222 - +#206#213#255#222#198#205#255#230#206#213#255#213#190#197#255#16#0#0#255#8#0#0 - +#255' '#16#16#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#131#141#139#255#128#128#128#255#197#198#197#255#197#202#205#255#205#202 - +#205#255#205#202#205#255#213#194#197#255#222#202#205#255#213#194#197#255#8#0 - +#0#255#230#218#222#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255'{'#133#131#255#128#128#128#255#197#198#197#255#205#210 - +#213#255#205#206#205#255#205#198#205#255#205#202#205#255#197#194#197#255#197 - +#202#197#255#0#4#0#255#180#190#189#255#0#8#0#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#139#137#139#255#255#250#255#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#255#250#255#255#128 - +#128#128#255#255#250#255#255#0#0#0#255#197#206#205#255#0#0#0#255#0#4#0#255#0 - +#0#0#255#128#128#128#255#128#128#128#255#156#129#131#255#24#0#139#255#16#0 - +#139#255#24#0#213#255#16#0#205#255#24#0#255#255#16#0#255#255#24#0#255#255#16 - +#0#255#255' '#8#8#255#213#198#205#255#8#0#0#255#205#202#205#255#0#4#0#255#128 - +#128#128#255#128#128#128#255#156#129#131#255#148#137#131#255#156#137#139#255 - +#148#137#131#255#156#137#139#255#148#137#131#255#156#137#139#255#148#137#131 - +#255#156#137#139#255' '#0#0#255#246#206#213#255#16#0#0#255#213#202#205#255#0 - +#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#172 - +'}'#131#255#255#250#255#255#255#242#255#255#255#250#255#255#255#246#255#255 - +#255#250#255#255#255#250#255#255#128#128#128#255#255#242#246#255' '#0#0#255 - +#222#194#197#255#16#0#8#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#172#141#148#255#16#0#139#255#24#0#139#255#16#0#205#255#16#0 - +#213#255#16#0#255#255#24#0#255#255#16#0#255#255#16#0#255#255#24#0#0#255#213 - +#194#197#255#8#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#131'y{'#255#148#129#131#255#156#133#139#255#156#133#139#255#148 - +#137#131#255#156#137#139#255#148#133#131#255#148#137#139#255#131'}{'#255#8#4 - +#0#255#222#214#213#255#0#4#0#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#148#137#139#255#255#250 - +#255#255#128#128#128#255#128#128#128#255#255#250#246#255#128#128#128#255#128 - +#128#128#255#255#250#246#255#128#128#128#255#0#0#0#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#156#137#139#255#24#0#139#255#16#0#139#255#24#0#213#255#16#0#205#255#24#0#255 - +#255#16#0#255#255#24#0#255#255#16#0#255#255#24#0#0#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#148'}'#131#255#156#129#131#255#156#137#139#255#148#137#131#255#156#137#139 - +#255#148#137#131#255#156#137#139#255#148#137#131#255#156#137#139#255#16#0#0 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - ,#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#7'OnClick'#7#25'OpenDirRecu' - +'rsivelyExecute'#0#0#9'TMenuItem'#7'MIClear'#6'Action'#7#6'AClear'#7'OnClick' - +#7#13'AClearExecute'#0#0#9'TMenuItem'#2'N1'#7'Caption'#6#1'-'#0#0#9'TMenuIte' - +'m'#6'MIQuit'#6'Action'#7#5'AExit'#7'OnClick'#7#12'AExitExecute'#0#0#0#9'TMe' - +'nuItem'#6'MImage'#7'Caption'#6#6'&Image'#0#9'TMenuItem'#2'D1'#6'Action'#7#11 - +'ADoubleSize'#11'Bitmap.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#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#131#129#131#255#0#0 - +#0#255#0#0#0#255#0#0#0#255#131#129#131#255#128#128#128#255#0#255#255#255#131 - +#129#131#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129#131#255#131'}' - +#131#255#131#129#131#255'{}{'#255#131#129#131#255#0#0#0#255#0#0#0#255#0#255 - +#255#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#0#0#0#255#131#129#131#255#128#128#128#255#197 - +#194#197#255#128#128#128#255#197#194#197#255#128#128#128#255#131#129#131#255 - +#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255'{}{'#255#131#129#131#255#128#128#128#255#197 - +#194#197#255#128#128#128#255#0#0#255#255#128#128#128#255#197#194#197#255#128 - +#128#128#255#131#129#131#255#131'}'#131#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129#131#255 - +#197#194#197#255#128#128#128#255#197#194#197#255#0#0#255#255#197#194#197#255 - +#128#128#128#255#197#194#197#255#131#129#131#255#0#0#0#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255 - +#131#129#131#255#128#128#128#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255 - +#255#0#0#255#255#128#128#128#255#131#129#131#255#0#0#0#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255 - +#131#129#131#255#197#194#197#255#128#128#128#255#197#194#197#255#0#0#255#255 - +#197#194#197#255#128#128#128#255#197#194#197#255#131#129#131#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255'{}{'#255#131#129#131#255#128#128#128#255#197#194#197#255#128#128#128#255 - +#0#0#255#255#128#128#128#255#197#194#197#255#128#128#128#255#131#129#131#255 - +#131'}'#131#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129#131#255#128#128#128 - +#255#197#194#197#255#128#128#128#255#197#194#197#255#128#128#128#255#131#129 - +#131#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0 - +#0#255#131#129#131#255#131'}'#131#255#131#129#131#255'{}{'#255#131#129#131 - +#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#131#129#131#255#0#0#0#255#0#0#0#255#0#0#0#255#131 - +#129#131#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#7'OnClick'#7 - +#18'ADoubleSizeExecute'#0#0#9'TMenuItem'#10'MIHalfSize'#6'Action'#7#9'AHalfS' - +'ize'#11'Bitmap.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#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - ,#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0 - +#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#131#129#131#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#131#129#131#255#128#128#128#255#0#255#255#255#131#129#131 - +#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129#131#255#131'}'#131#255 - +#131#129#131#255'{}{'#255#131#129#131#255#0#0#0#255#0#0#0#255#0#255#255#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#0#0#0#255#131#129#131#255#197#194#197#255#128#128#128 - +#255#197#194#197#255#128#128#128#255#197#194#197#255#131#129#131#255#0#0#0 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255'{}{'#255#131#129#131#255#197#190#197#255#128#128#128 - +#255#189#190#189#255#128#128#128#255#197#190#197#255#128#128#128#255#189#190 - +#189#255#131#129#131#255#131'}'#131#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129#131#255#128 - +#128#128#255#197#194#197#255#128#128#128#255#197#194#197#255#128#128#128#255 - +#197#194#197#255#128#128#128#255#131#129#131#255#0#0#0#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255 - +#131#129#131#255#189#190#189#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255 - +#255#0#0#255#255#197#190#197#255#131#129#131#255#0#0#0#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255 - +#131#129#131#255#128#128#128#255#197#194#197#255#128#128#128#255#197#194#197 - +#255#128#128#128#255#197#194#197#255#128#128#128#255#131#129#131#255#0#0#0 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255'{}{'#255#131#129#131#255#197#190#197#255#128#128#128#255#189#190#189 - +#255#128#128#128#255#197#190#197#255#128#128#128#255#189#190#189#255#131#129 - +#131#255#131'}'#131#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129#131#255#197 - +#194#197#255#128#128#128#255#197#194#197#255#128#128#128#255#197#194#197#255 - +#131#129#131#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#0#0#0#255#131#129#131#255#131'}'#131#255#131#129#131#255'{}{'#255#131 - +#129#131#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#131#129#131#255#0#0#0#255#0#0#0#255#0#0#0 - +#255#131#129#131#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#7'O' - +'nClick'#7#16'AHalfSizeExecute'#0#0#9'TMenuItem'#2'N2'#7'Caption'#6#1'-'#0#0 - +#9'TMenuItem'#11'MINextImage'#6'Action'#7#10'ANextImage'#11'Bitmap.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#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - ,#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#255#255#0 - +#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0 - +#255#255#0#0#255#255#0#0#255#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 - +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0 - +#255#255#0#0#255#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#0#0 - +#0#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255 - +#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255 - +#0#0#255#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 - +#0#255#0#0#0#255#0#0#0#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0 - +#0#255#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#0#0#0#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#0#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#0#0#0#255#0#0#255#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#8'ShortCut'#4#18#144#0#0#7'OnClick'#7#17'ANextImageExec' - +'ute'#0#0#9'TMenuItem'#14'PreviousImage1'#6'Action'#7#14'APreviousImage'#11 - +'Bitmap.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#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#255#255#0#0 - +#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#0#0#0#255#0#0#0#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0 - +#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0 - +#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 - ,#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255 - +#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0 - +#255#255#0#0#0#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0 - +#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#0#255#0#0#0#255 - +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#255#255#0#0 - +#255#255#0#0#255#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0 - +#0#255#0#0#0#255#0#0#255#255#0#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#8'ShortCut'#4#20#144#0#0#7'OnClick'#7#21 - +'APreviousImageExecute'#0#0#9'TMenuItem'#19'Nextimagedirectory1'#6'Action'#7 - +#13'ANextImageDir'#11'Bitmap.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#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#255#255#0#255#255#255#0#255#255 - +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 - +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 - +#255#255#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#0#0#0 - +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255 - +#0#255#0#0#0#255#128#128#128#255#131#129#131#255#131#129#131#255#131#129#131 - +#255#131#129#131#255#131#129#131#255#131#129#131#255#131#129#131#255#131#129 - +#131#255#131#129#131#255#131#129#131#255#0#0#0#255#255#255#0#255#128#128#128 - +#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255'{}{'#255#0#0#0#255#255#255#0#255#128#128 - +#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#131#129#131#255#0#0#0#255#255#255#0 - +#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#131'}'#131#255#0#0#0#255#255#255#0#255 - +#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128 - +#128#255#128#128#128#255#131#129#131#255#0#0#0#255#255#255#0#255#128#128#128 - +#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#0#0#0#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128 - +#128#255'{}{'#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128 - +#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#131#129#131 - +#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255 - +#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#131'}'#131#255#0#0 - +#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255 - ,#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#131#129 - +#131#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255'{}{'#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0 - +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#0#255#128 - +#128#128#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255 - +#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 - +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#128 - +#128#128#255#7'OnClick'#7#20'ANextImageDirExecute'#0#0#9'TMenuItem'#23'Previ' - +'ousimagedirectory1'#6'Action'#7#13'APrevImageDir'#11'Bitmap.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#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 - +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 - +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#128#128#128#255 - +#255#255#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255 - +#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255#131#129#131 - +#255#131#129#131#255#131#129#131#255#131#129#131#255#131#129#131#255#131#129 - +#131#255#131#129#131#255#131#129#131#255#131#129#131#255#131#129#131#255#0#0 - +#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255'{}{'#255 - +#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#131 - +#129#131#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255 - +#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#131'}' - +#131#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128 - +#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#131#129#131#255#0#0 - +#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255 - +#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0 - +#0#255#128#128#128#255#128#128#128#255'{}{'#255#0#0#0#255#255#255#0#255#128 - +#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#0#0#0#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#131#129#131#255#0#0#0#255#255#255#0#255#128#128#128#255 - +#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255 - +#128#128#128#255#131'}'#131#255#0#0#0#255#255#255#0#255#128#128#128#255#255 - +#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#131#129#131#255#0#0#0#255#255#255#0#255#128#128 - +#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255'{}{'#255#0#0#0#255#255#255#0#255#128 - +#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#255 - +#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 - +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#255#255#0#255 - +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 - +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 - ,#255#255#255#0#255#255#255#0#255#128#128#128#255#7'OnClick'#7#20'APrevImageD' - +'irExecute'#0#0#0#0#11'TActionList'#11'ActionList1'#6'Images'#7#6'ILMain'#4 - +'left'#2'H'#3'top'#2' '#0#7'TAction'#5'AOpen'#7'Caption'#6#5'&Open'#8'HelpTy' - +'pe'#7#9'htKeyword'#10'ImageIndex'#2#0#9'OnExecute'#7#12'AOpenExecute'#8'Sho' - +'rtCut'#3'O@'#0#0#7'TAction'#8'AOpenDir'#7'Caption'#6#15'Open &Directory'#8 - +'HelpType'#7#9'htKeyword'#10'ImageIndex'#2#1#9'OnExecute'#7#15'AOpenDirExecu' - +'te'#8'ShortCut'#3'D@'#0#0#7'TAction'#5'AExit'#7'Caption'#6#5'&Quit'#8'HelpT' - +'ype'#7#9'htKeyword'#9'OnExecute'#7#12'AExitExecute'#8'ShortCut'#3'Q@'#0#0#7 - +'TAction'#6'AClear'#7'Caption'#6#11'&Clear list'#8'HelpType'#7#9'htKeyword'#9 - +'OnExecute'#7#13'AClearExecute'#8'ShortCut'#3'L@'#0#0#7'TAction'#18'OpenDirR' - +'ecursively'#7'Caption'#6#27'Open Directory &Recursively'#8'HelpType'#7#9'ht' - +'Keyword'#10'ImageIndex'#2#2#9'OnExecute'#7#25'OpenDirRecursivelyExecute'#8 - +'ShortCut'#3'R@'#0#0#7'TAction'#11'ADoubleSize'#7'Caption'#6#12'&Double size' - +#8'HelpType'#7#9'htKeyword'#10'ImageIndex'#2#5#9'OnExecute'#7#18'ADoubleSize' - +'Execute'#8'ShortCut'#3'+@'#0#0#7'TAction'#9'AHalfSize'#7'Caption'#6#11'&Hal' - +'f Size'#8'HelpType'#7#9'htKeyword'#10'ImageIndex'#2#6#9'OnExecute'#7#16'AH' - +'alfSizeExecute'#8'ShortCut'#3'-@'#0#0#7'TAction'#10'ANextImage'#7'Caption'#6 - +#11'&Next image'#8'HelpType'#7#9'htKeyword'#10'ImageIndex'#2#4#9'OnExecute'#7 - +#17'ANextImageExecute'#0#0#7'TAction'#14'APreviousImage'#7'Caption'#6#15'&Pr' - +'evious Image'#8'HelpType'#7#9'htKeyword'#10'ImageIndex'#2#3#9'OnExecute'#7 - +#21'APreviousImageExecute'#0#0#7'TAction'#13'ANextImageDir'#7'Caption'#6#21 - +'N&ext image directory'#8'HelpType'#7#9'htKeyword'#10'ImageIndex'#2#8#9'OnEx' - +'ecute'#7#20'ANextImageDirExecute'#8'ShortCut'#4'N'#128#0#0#0#0#7'TAction'#13 - +'APrevImageDir'#7'Caption'#6#25'Pre&vious image directory'#8'HelpType'#7#9'h' - +'tKeyword'#4'Hint'#6'(Jump to last image of previous directory'#10'ImageInde' - +'x'#2#7#9'OnExecute'#7#20'APrevImageDirExecute'#8'ShortCut'#4'P'#128#0#0#0#0 - +#0#10'TImageList'#6'ILMain'#4'left'#2' '#3'top'#2'@'#6'Bitmap'#10#14'$'#0#0 - +'Li'#9#0#0#0#16#0#0#0#16#0#0#0#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0 - +#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128 - +#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255' 4R'#255 - +#24'0J'#255#24'4R'#255#24'0J'#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255' 4R'#255'j'#165#230 - +#255#164#214#255#255#139#198#255#255'j'#170#238#255#24'4R'#255' 4R'#255#24'4' - +'R'#255' 4R'#255#24'4R'#255' 4R'#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#24'0J'#255#156#214#255#255#139#198 - +#255#255#131#198#255#255'b'#174#255#255'b'#174#255#255'b'#174#255#255'b'#174 - +#255#255'b'#174#255#255'b'#174#255#255'b'#174#255#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255' 4R'#255#131#194#255#255 - +'R'#137#205#255'JPR'#255#255#250#255#255#255#246#255#255#246#238#246#255#230 - +#230#230#255#222#214#222#255#205#206#205#255#205#198#205#255#189#190#189#255 - +#189#186#189#255#180#182#180#255'101'#255#128#128#128#255#24'0J'#255#131#198 - +#255#255#24'0J'#255#128#128#128#255#222#222#230#255#238#234#238#255#230#230 - +#230#255#230#226#230#255#197#198#205#255#189#190#189#255#172#174#172#255#164 - +#161#164#255#148#149#148#255'JHJ'#255#128#128#128#255#128#128#128#255' 4R' - +#255'A}'#189#255'RUZ'#255#222#218#222#255#230#222#230#255#230#226#230#255#230 - +#226#230#255#222#214#222#255#197#198#197#255#180#182#189#255#172#174#180#255 - +#164#161#164#255'jij'#255' '#255#128#128#128#255#128#128#128#255#24'0J'#255 - +#24'0J'#255#205#206#205#255#205#206#205#255#213#214#213#255#222#214#222#255 - +#213#210#213#255#213#206#213#255#189#186#189#255#180#178#180#255#164#161#164 - +#255#156#149#156#255'JHJ'#255#128#128#128#255#128#128#128#255#128#128#128#255 - ,' 4R'#255'RUZ'#255#213#210#213#255#189#190#197#255#205#198#205#255#205#198 - +#205#255#205#198#205#255#197#194#197#255#180#178#180#255#164#165#172#255#164 - +#161#164#255'sqs'#255#24#20#24#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#24'0J'#255#197#190#197#255#164#165#164#255#172#174#172#255#172#174 - +#172#255#180#178#180#255#172#170#172#255#172#170#172#255#156#153#156#255#148 - +#149#156#255#139#141#139#255'JHJ'#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255')$)'#255'JHJ'#255'RLR'#255'JLJ'#255'RLR'#255'JLJ' - +#255'RLR'#255'JHJ'#255'JDJ'#255'A@A'#255'949'#255' '#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#0 - +#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#0#0#0#255#0#255#255#255#128#128#128#255#0 - +#255#255#255#128#128#128#255#0#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0 - +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255 - +#128#128#128#255#0#255#255#255#128#128#128#255#0#255#255#255#128#128#128#255 - +#0#255#255#255#128#128#128#255#0#255#255#255#128#128#128#255#0#255#255#255#0 - +#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0 - +#0#255#0#255#255#255#128#128#128#255#0#255#255#255#131#0#0#255#0#255#255#255 - +#131#0#0#255#0#255#255#255#131#0#0#255#0#255#255#255#128#128#128#255#0#0#0 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0 - +#255#128#128#128#255#0#255#255#255#128#128#128#255#0#255#255#255#131#0#0#255 - +#131#0#0#255#131#0#0#255#0#255#255#255#128#128#128#255#0#255#255#255#0#0#0 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0 - +#255#0#255#255#255#128#128#128#255#0#255#255#255#131#0#0#255#131#0#0#255#0 - +#255#255#255#131#0#0#255#131#0#0#255#0#255#255#255#128#128#128#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255 - +#128#128#128#255#0#255#255#255#128#128#128#255#0#255#255#255#131#0#0#255#131 - +#0#0#255#131#0#0#255#0#255#255#255#128#128#128#255#0#255#255#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0 - +#255#255#255#128#128#128#255#0#255#255#255#131#0#0#255#0#255#255#255#131#0#0 - +#255#0#255#255#255#131#0#0#255#0#255#255#255#128#128#128#255#0#0#0#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#128 - +#128#128#255#0#255#255#255#128#128#128#255#0#255#255#255#128#128#128#255#0 - +#255#255#255#128#128#128#255#0#255#255#255#128#128#128#255#0#255#255#255#0#0 - +#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0 - +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - ,#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#148'}'#131#255#156#129#131#255#156#137 - +#139#255#148#137#131#255#156#137#139#255#148#137#131#255#156#137#139#255#148 - +#137#131#255#156#137#139#255#16#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#156#137#139#255 - +#24#0#139#255#16#0#139#255#24#0#213#255#16#0#205#255#24#0#255#255#16#0#255 - +#255#24#0#255#255#16#0#255#255#24#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#148#137#139#255 - +#255#250#255#255#128#128#128#255#128#128#128#255#255#250#246#255#128#128#128 - +#255#128#128#128#255#255#250#246#255#128#128#128#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#131'y{'#255#148#129#131 - +#255#156#133#139#255#156#133#139#255#148#137#131#255#156#137#139#255#148#133 - +#131#255#148#137#139#255#131'}{'#255#8#4#0#255#222#214#213#255#0#4#0#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#172#141#148#255 - +#16#0#139#255#24#0#139#255#16#0#205#255#16#0#213#255#16#0#255#255#24#0#255 - +#255#16#0#255#255#16#0#255#255#24#0#0#255#213#194#197#255#8#0#0#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#172'}'#131#255#255 - +#250#255#255#255#242#255#255#255#250#255#255#255#246#255#255#255#250#255#255 - +#255#250#255#255#128#128#128#255#255#242#246#255' '#0#0#255#222#194#197#255 - +#16#0#8#255#128#128#128#255#128#128#128#255#156#129#131#255#148#137#131#255 - +#156#137#139#255#148#137#131#255#156#137#139#255#148#137#131#255#156#137#139 - +#255#148#137#131#255#156#137#139#255' '#0#0#255#246#206#213#255#16#0#0#255 - +#213#202#205#255#0#0#0#255#128#128#128#255#128#128#128#255#156#129#131#255#24 - +#0#139#255#16#0#139#255#24#0#213#255#16#0#205#255#24#0#255#255#16#0#255#255 - +#24#0#255#255#16#0#255#255' '#8#8#255#213#198#205#255#8#0#0#255#205#202#205 - +#255#0#4#0#255#128#128#128#255#128#128#128#255#139#137#139#255#255#250#255 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#255#250 - +#255#255#128#128#128#255#255#250#255#255#0#0#0#255#197#206#205#255#0#0#0#255 - +#0#4#0#255#0#0#0#255#128#128#128#255#128#128#128#255'{'#133#131#255#128#128 - +#128#255#197#198#197#255#205#210#213#255#205#206#205#255#205#198#205#255#205 - +#202#205#255#197#194#197#255#197#202#197#255#0#4#0#255#180#190#189#255#0#8#0 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#131#141 - +#139#255#128#128#128#255#197#198#197#255#197#202#205#255#205#202#205#255#205 - +#202#205#255#213#194#197#255#222#202#205#255#213#194#197#255#8#0#0#255#230 - +#218#222#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255'{}{'#255#128#128#128#255#205#206#205#255#213#206#213#255#197#186 - +#189#255#222#206#213#255#222#198#205#255#230#206#213#255#213#190#197#255#16#0 - +#0#255#8#0#0#255' '#16#16#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#148#141#139#255#255#250#255#255#213#198#205#255#222#202#205 - +#255#230#206#213#255#213#190#189#255#213#198#205#255#205#198#197#255#222#210 - +#213#255#8#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#139#137#139#255#128#128#128#255#205 - +#190#197#255#222#206#213#255#197#178#180#255#230#210#222#255#205#198#205#255 - +#197#194#197#255#197#198#197#255#0#0#0#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#131#133#131 - +#255#0#8#8#255#128#128#128#255#0#0#0#255#16#16#16#255#0#0#0#255#0#4#8#255#0#0 - +#0#255#0#4#8#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - ,#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#255#255#0#0#0#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#0#0#0#255#0#0#0#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#0#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#255 - +#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#0#255#0#0#0#255#0#0 - +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#255 - +#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255 - +#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0 - +#0#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#255#255#0#0 - +#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#0#255#0#0#0#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#255#255#0#0#255#255#0#0 - +#255#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0 - +#255#0#0#255#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#255#255#0#0#0#255#0#0 - +#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#255#255#0#0 - +#255#255#0#0#255#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 - +#255#0#0#0#255#0#0#0#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0 - +#255#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0 - +#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255 - +#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255 - +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 - +#255#0#0#0#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0 - +#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0 - +#0#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#0#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0 - ,#0#255#0#0#255#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#131#129#131#255#0#0#0#255#0#0#0#255#0#0#0#255#131#129#131#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#0#0#0#255#131#129#131#255#131'}'#131#255#131#129#131#255'{}{'#255#131 - +#129#131#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#0#0#0#255#131#129#131#255#128#128#128#255#197#194#197#255#128#128#128#255 - +#197#194#197#255#128#128#128#255#131#129#131#255#0#0#0#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255'{}{'#255#131#129#131#255#128#128#128#255#197#194#197#255#128#128#128#255 - +#0#0#255#255#128#128#128#255#197#194#197#255#128#128#128#255#131#129#131#255 - +#131'}'#131#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#0#0#0#255#131#129#131#255#197#194#197#255#128#128#128 - +#255#197#194#197#255#0#0#255#255#197#194#197#255#128#128#128#255#197#194#197 - +#255#131#129#131#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129#131#255#128#128#128 - +#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#128#128#128 - +#255#131#129#131#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129#131#255#197#194#197 - +#255#128#128#128#255#197#194#197#255#0#0#255#255#197#194#197#255#128#128#128 - +#255#197#194#197#255#131#129#131#255#0#0#0#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255'{}{'#255#131#129#131#255 - +#128#128#128#255#197#194#197#255#128#128#128#255#0#0#255#255#128#128#128#255 - +#197#194#197#255#128#128#128#255#131#129#131#255#131'}'#131#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#0#0#0#255#131#129#131#255#128#128#128#255#197#194#197#255#128#128 - +#128#255#197#194#197#255#128#128#128#255#131#129#131#255#0#0#0#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129#131#255#131'}' - +#131#255#131#129#131#255'{}{'#255#131#129#131#255#0#0#0#255#0#0#0#255#0#255 - +#255#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#131#129#131#255 - +#0#0#0#255#0#0#0#255#0#0#0#255#131#129#131#255#128#128#128#255#0#255#255#255 - +#131#129#131#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0 - +#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - ,#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#131#129#131#255 - +#0#0#0#255#0#0#0#255#0#0#0#255#131#129#131#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129 - +#131#255#131'}'#131#255#131#129#131#255'{}{'#255#131#129#131#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129#131 - +#255#197#194#197#255#128#128#128#255#197#194#197#255#128#128#128#255#197#194 - +#197#255#131#129#131#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255'{}{'#255#131#129#131 - +#255#197#190#197#255#128#128#128#255#189#190#189#255#128#128#128#255#197#190 - +#197#255#128#128#128#255#189#190#189#255#131#129#131#255#131'}'#131#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#0#0#0#255#131#129#131#255#128#128#128#255#197#194#197#255#128#128#128#255 - +#197#194#197#255#128#128#128#255#197#194#197#255#128#128#128#255#131#129#131 - +#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#0#0#0#255#131#129#131#255#189#190#189#255#0#0#255#255#0 - +#0#255#255#0#0#255#255#0#0#255#255#0#0#255#255#197#190#197#255#131#129#131 - +#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#0#0#0#255#131#129#131#255#128#128#128#255#197#194#197 - +#255#128#128#128#255#197#194#197#255#128#128#128#255#197#194#197#255#128#128 - +#128#255#131#129#131#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255'{}{'#255#131#129#131#255#197#190#197 - +#255#128#128#128#255#189#190#189#255#128#128#128#255#197#190#197#255#128#128 - +#128#255#189#190#189#255#131#129#131#255#131'}'#131#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#0#0#0#255#131#129#131#255#197#194#197#255#128#128#128#255#197#194#197#255 - +#128#128#128#255#197#194#197#255#131#129#131#255#0#0#0#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#0#0#0#255#131#129#131#255#131'}'#131#255 - +#131#129#131#255'{}{'#255#131#129#131#255#0#0#0#255#0#0#0#255#0#255#255#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#131#129#131#255#0#0#0 - +#255#0#0#0#255#0#0#0#255#131#129#131#255#128#128#128#255#0#255#255#255#131 - +#129#131#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#128#128 - +#128#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 - +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 - +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#128 - +#128#128#255#255#255#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 - +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 - +#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - ,#128#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255'{}{'#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#131#129#131#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0 - +#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128 - +#128#255#131'}'#131#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255 - +#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0 - +#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255#131 - +#129#131#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128 - +#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128#128#255'{}{'#255#0#0#0#255 - +#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#0#0#0#255#0 - +#0#0#255#128#128#128#255#128#128#128#255#131#129#131#255#0#0#0#255#255#255#0 - +#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0#0 - +#255#128#128#128#255#128#128#128#255#131'}'#131#255#0#0#0#255#255#255#0#255 - +#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#131#129#131#255#0#0#0#255 - +#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255'{}{'#255#0#0 - +#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255 - +#131#129#131#255#131#129#131#255#131#129#131#255#131#129#131#255#131#129#131 - +#255#131#129#131#255#131#129#131#255#131#129#131#255#131#129#131#255#131#129 - +#131#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#0#0 - +#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255 - +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#0#255#128#128#128#255#255 - +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 - +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 - +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0 - +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 - +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 - +#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0 - +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0 - +#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255'{}{'#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0 - +#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#131#129#131#255#0#0#0#255#255#255#0#255#128#128#128 - +#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#0#0#0#255#0#0#0#255#128#128#128#255#0#0#0#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#131'}'#131#255#0#0#0#255#255#255#0#255#128#128#128#255 - +#255#255#0#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0 - +#0#255#0#0#0#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#128#128 - +#128#255#131#129#131#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0 - +#255#0#0#0#255#128#128#128#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0 - +#0#255#128#128#128#255#0#0#0#255#0#0#0#255#0#0#0#255#128#128#128#255'{}{'#255 - +#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#0#0 - ,#0#255#0#0#0#255#128#128#128#255#128#128#128#255#131#129#131#255#0#0#0#255 - +#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#0#0#0#255#0#0#0#255#128#128#128#255#0#0#0#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#131'}'#131#255#0#0#0#255#255 - +#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#131#129#131#255 - +#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255'{}{' - +#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0#255#128#128 - +#128#255#131#129#131#255#131#129#131#255#131#129#131#255#131#129#131#255#131 - +#129#131#255#131#129#131#255#131#129#131#255#131#129#131#255#131#129#131#255 - +#131#129#131#255#0#0#0#255#255#255#0#255#128#128#128#255#255#255#0#255#0#0#0 - +#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0 - +#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#255#255#0#255#128#128#128 - +#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255 - +#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255 - +#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#255#255#0#255#128#128 - +#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128 - +#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255 - +#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128#255#128#128#128 - +#255#128#128#128#255#128#128#128#255#0#0#11'TOpenDialog'#7'ODImage'#11'Filte' - +'rIndex'#2#0#7'Options'#11#18'ofAllowMultiSelect'#14'ofEnableSizing'#12'ofVi' - +'ewDetail'#0#4'left'#2'H'#3'top'#2'@'#0#0#11'TOpenDialog'#11'OpenDialog1'#11 - +'FilterIndex'#2#0#4'left'#2'H'#3'top'#2'h'#0#0#0 -]); diff --git a/applications/lazstats/source_orig/frmmain.pas b/applications/lazstats/source_orig/frmmain.pas deleted file mode 100644 index 656be0272..000000000 --- a/applications/lazstats/source_orig/frmmain.pas +++ /dev/null @@ -1,500 +0,0 @@ -{ - *************************************************************************** - * * - * This source is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This code is distributed in the hope that it will be useful, but * - * WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * - * General Public License for more details. * - * * - * A copy of the GNU General Public License is available on the World * - * Wide Web at . You can also * - * obtain it by writing to the Free Software Foundation, * - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * * - *************************************************************************** -} -unit frmmain; - -{$MODE Delphi} - -interface - -uses - LCLIntf,SysUtils, Classes, Graphics, Controls, Forms, FileUtil, - Dialogs, StdCtrls, ComCtrls, ExtCtrls, ActnList, Menus, - LResources, LCLType; - -type - TPicViewFrm = class(TForm) - MainMenu1: TMainMenu; - ToolBar1: TToolBar; - ActionList1: TActionList; - AOpen: TAction; - AOpenDir: TAction; - AExit: TAction; - LBFiles: TListBox; - SPImage: TSplitter; - File1: TMenuItem; - MIOpen: TMenuItem; - MIOPenDir: TMenuItem; - N1: TMenuItem; - MIQuit: TMenuItem; - TBOPen: TToolButton; - TBOpenDir: TToolButton; - ILMain: TImageList; - ODImage: TOpenDialog; - AClear: TAction; - MIOpenDirRec: TMenuItem; - MIClear: TMenuItem; - OpenDirRecursively: TAction; - TBOpenDirRec: TToolButton; - ADoubleSize: TAction; - MImage: TMenuItem; - D1: TMenuItem; - AHalfSize: TAction; - MIHalfSize: TMenuItem; - PImage: TPanel; - ScrollBox1: TScrollBox; - IMain: TImage; - ANextImage: TAction; - APreviousImage: TAction; - ANextImageDir: TAction; - APrevImageDir: TAction; - MINextImage: TMenuItem; - PreviousImage1: TMenuItem; - Nextimagedirectory1: TMenuItem; - Previousimagedirectory1: TMenuItem; - ToolButton4: TToolButton; - TBPRev: TToolButton; - TBNext: TToolButton; - TBPRevDir: TToolButton; - TBNextDir: TToolButton; - TBDoubleSize: TToolButton; - TBHalfSize: TToolButton; - ToolButton3: TToolButton; - N2: TMenuItem; - OpenDialog1: TOpenDialog; - procedure AOpenExecute(Sender: TObject); - procedure LBFilesClick(Sender: TObject); - procedure AOpenDirExecute(Sender: TObject); - procedure AExitExecute(Sender: TObject); - procedure OpenDirRecursivelyExecute(Sender: TObject); - procedure AClearExecute(Sender: TObject); - procedure ADoubleSizeExecute(Sender: TObject); - procedure AHalfSizeExecute(Sender: TObject); - procedure FormKeyDown(Sender: TObject; var Key: Word; - Shift: TShiftState); - procedure FormShow(Sender: TObject); - procedure ANextImageExecute(Sender: TObject); - procedure APreviousImageExecute(Sender: TObject); - procedure ANextImageDirExecute(Sender: TObject); - procedure APrevImageDirExecute(Sender: TObject); - private - FImageScale : Double; - procedure AddFile(FileName: String; ShowFile: Boolean); - procedure ShowFile(Index: Integer); - procedure AddDir(Directory: String; Recurse: Boolean); - procedure RescaleImage(NewScale: Double); - procedure NextImage; - procedure PreviousImage; - procedure NextImageDir; - procedure PreviousImageDir; - Function NextDirIndex(Direction : Integer) : Integer; - procedure ShiftImageIndex(MoveBy: Integer); - procedure ProcessCommandLine; - procedure DoError(Msg: String; Args: array of const); - { Private declarations } - public - { Public declarations } - end; - -var - PicViewFrm: TPicViewFrm; - -implementation - -Const - ImageTypes = '.jpg.jpeg.bmp.xpm.png'; - -resourcestring - SSelectImageDir = 'Select directory to add images from'; - SSelectImageDirRec = 'Select directory to recursively add images from'; - SImageViewer = 'Image viewer'; - SErrNeedArgument = 'Option at position%d (%s) needs an argument'; - -{ [] } -procedure TPicViewFrm.AOpenExecute(Sender: TObject); - -Var - I : Integer; - -begin - With ODImage do - begin - If Execute then - for I:=0 to Files.Count-1 do - AddFile(Files[I],(I=0)) - end; -end; - -procedure TPicViewFrm.AddFile(FileName :String; ShowFile : Boolean); - -Var - Index : Integer; - -begin - ShowFile:=ShowFile or (LBFiles.Items.Count=0); - Index:=LBFiles.Items.Add(FileName); - If ShowFile then - self.ShowFile(Index); -end; - -procedure TPicViewFrm.ShowFile(Index : Integer); - -Var - LoadOK : Boolean; - -begin - If Index=-1 then - begin - IMain.Picture:=Nil; - Caption:=SImageViewer; - end - else - Repeat - Try - LoadOK:=False; - IMain.Align:=AlClient; - Imain.Stretch:=False; - FImageScale:=1.0; - IMain.Picture.LoadFromFile(LBFiles.Items[Index]); - Caption:=SImageViewer+'('+LBFiles.Items[Index]+')'; - LoadOK:=True; - Except - If IndexItemIndex then - LBFiles.Itemindex:=Index; -{ If Not ItemVisible(ItemIndex) then - MakeCurrentVisible;} - end; -end; - -procedure TPicViewFrm.LBFilesClick(Sender: TObject); -begin - ShowFile(LBFiles.ItemIndex); -end; - -procedure TPicViewFrm.AOpenDirExecute(Sender: TObject); - -Var - Dir : String; - -begin - if SelectDirectory(SSelectImageDir,'/',Dir) then - -// if SelectDirectory(SSelectImageDir,'/',Dir,True) then - AddDir(Dir,False); -end; - -procedure TPicViewFrm.AddDir(Directory :String; Recurse : Boolean); - -Var - Info : TSearchRec; - Ext : String; -begin - LBFiles.Items.BeginUpdate; - Try - Directory:=IncludeTrailingBackslash(Directory); - if FindFirstUTF8(Directory+'*.*',0,Info)=0 then - try - Repeat - Ext:=ExtractFileExt(Info.Name); - If Pos(Ext,ImageTypes)<>0 then - AddFile(Directory+Info.Name,False); - until (FindNextUTF8(Info)<>0) - Finally - FindCloseUTF8(Info); - end; - If Recurse then - if FindFirstUTF8(Directory+'*',faDirectory,Info)=0 then - try - Repeat - If (Info.Name<>'.') and (Info.Name<>'') and (info.name<>'..') and - ((Info.Attr and faDirectory)<>0) then - AddDir(Directory+Info.name,True); - until (FindNextUTF8(Info)<>0) - finally - FindCloseUTF8(Info); - end; - Finally - LBFiles.Items.EndUpdate; - end; -end; - -procedure TPicViewFrm.AExitExecute(Sender: TObject); -begin - Close; -end; - -procedure TPicViewFrm.OpenDirRecursivelyExecute(Sender: TObject); - -Var - Dir : String; - -begin - if SelectDirectory(SSelectImageDirRec,'/',Dir) then - AddDir(Dir,True); -end; - -procedure TPicViewFrm.AClearExecute(Sender: TObject); -begin - LBFiles.ItemIndex:=-1; - ShowFile(-1); - LBFiles.Items.Clear; -end; - -procedure TPicViewFrm.ADoubleSizeExecute(Sender: TObject); - -begin - RescaleImage(2.0); -end; - -procedure TPicViewFrm.RescaleImage(NewScale : Double); - -Var - OrgWidth,OrgHeight : Integer; - Rect : TRect; - -begin - OrgWidth:=IMain.Picture.Bitmap.Width; - OrgHeight:=IMain.Picture.Bitmap.Height; - FImageScale:=FImageScale*NewScale; - Rect:=IMain.BoundsRect; - Rect.Right:=Rect.Left+Round(OrgWidth*FImageScale); - Rect.Bottom:=Rect.Top+Round(OrgHeight*FImageScale); - Imain.Align:=AlNone; - IMain.BoundsRect:=Rect; - Imain.Stretch:=True; -end; - -procedure TPicViewFrm.AHalfSizeExecute(Sender: TObject); -begin - RescaleImage(0.5); -end; - -procedure TPicViewFrm.NextImage; - -begin - ShiftImageIndex(1); -end; - -procedure TPicViewFrm.PreviousImage; - -begin - ShiftImageIndex(-1); -end; - -procedure TPicViewFrm.ShiftImageIndex(MoveBy : Integer); - -Var - ImageIndex : Integer; - -begin - ImageIndex:=LBFiles.ItemIndex; - ImageIndex:=ImageIndex+MoveBy; - If ImageIndex<0 then - ImageIndex:=LBFiles.Items.Count-1; - If ImageIndex>=LBFiles.Items.Count then - begin - ImageIndex:=0; - If LBFiles.Items.Count=0 then - ImageIndex:=-1; - end; - ShowFile(ImageIndex); -end; - -procedure TPicViewFrm.FormKeyDown(Sender: TObject; var Key: Word; - Shift: TShiftState); -begin - if (shift=[ssShift]) or (shift=[ssAlt]) then - begin - if (key=VK_Prior) then - begin - RescaleImage(2.0); - Key:=0; - end - else if (key=VK_Next) then - begin - RescaleImage(0.5); - Key:=0; - end - else if (key=VK_Left) then - begin - PreviousImage; - Key:=0; - end - else if (key=VK_right) then - begin - NextImage; - Key:=0; - end - end - else if (shift=[]) then - begin - if Key=VK_UP then - Previousimage - else if Key=VK_DOWN then - NextImage; - end; -end; -procedure TPicViewFrm.DoError(Msg : String; Args : Array Of const); - -begin - ShowMessage(Format(Msg,Args)); -end; - -procedure TPicViewFrm.ProcessCommandLine; - - Function CheckOption(Index : Integer;Short,Long : String): Boolean; - - var - O : String; - - begin - O:=ParamStrUTF8(Index); - Result:=(O='-'+short) or (copy(O,1,Length(Long)+3)=('--'+long+'=')); - end; - - Function OptionArg(Var Index : Integer) : String; - - Var - P : Integer; - - begin - if (Length(ParamStrUTF8(Index))>1) and (ParamStrUTF8(Index)[2]<>'-') then - begin - If Index2 then - begin - P:=Pos('=',ParamStrUTF8(Index)); - If (P=0) then - DoError(SErrNeedArgument,[Index,ParamStrUTF8(Index)]) - else - begin - Result:=ParamStrUTF8(Index); - Delete(Result,1,P); - end; - end; - end; - -Var - I : Integer; - S : String; - FRecursive : Boolean; - -begin - FRecursive:=False; - I:=0; - While (I-1) then - ShowFile(Index); -end; - -Function TPicViewFrm.NextDirIndex(Direction: Integer) : integer; - -Var - Dir : String; - -begin - Result:=-1; - If LBFiles.Itemindex=-1 then - Exit; - Result:=LBFiles.Itemindex; - Dir:=ExtractFilePath(LBFiles.Items[Result]); - Repeat - Result:=Result+Direction; - Until ((Result=-1) or (Result>=LBFiles.Items.Count)) or (Dir<>ExtractFilePath(LBFiles.Items[Result])); - If Result>=LBFiles.Items.Count then - Result:=-1; -end; - -procedure TPicViewFrm.PreviousImageDir; -Var - Index : Integer; - -begin - Index:=NextDirIndex(-1); - If (Index<>-1) then - ShowFile(Index); -end; - -procedure TPicViewFrm.ANextImageExecute(Sender: TObject); -begin - NextImage; -end; - -procedure TPicViewFrm.APreviousImageExecute(Sender: TObject); -begin - PreviousImage -end; - -procedure TPicViewFrm.ANextImageDirExecute(Sender: TObject); -begin - NextImageDir; -end; - -procedure TPicViewFrm.APrevImageDirExecute(Sender: TObject); -begin - PreviousImageDir; -end; - -initialization - {$i frmmain.lrs} - -end. diff --git a/applications/lazstats/source_orig/functionslib.pas b/applications/lazstats/source_orig/functionslib.pas deleted file mode 100644 index f81697a76..000000000 --- a/applications/lazstats/source_orig/functionslib.pas +++ /dev/null @@ -1,2461 +0,0 @@ -unit FunctionsLib; - -{$mode objfpc}{$H+} - -interface - -uses - Forms, Controls, LResources, ExtCtrls, StdCtrls, Classes, SysUtils, Globals, - Graphics, Dialogs, Math, MainUnit, OutPutUnit, dataprocs; - -function chisquaredprob(X : double; k : integer) : double; -function gammln(xx : double) : double; -PROCEDURE matinv(VAR a, vtimesw, v, w: DblDyneMat; n: integer); -FUNCTION sign(a,b: double): double; -FUNCTION isign(a,b : integer): integer; -FUNCTION max(a,b: double): double; -function inversez(prob : double) : double; -function zprob(p : double; VAR errorstate : boolean) : double; -function probz(z : double) : double; -function simpsonintegral(a,b : real) : real; -function zdensity(z : real) : real; -function probf(f,df1,df2 : extended) : extended; -FUNCTION alnorm(x : double; upper : boolean): double; -procedure ppnd7 (p : double; VAR normal_dev : double; VAR ifault : integer); -FUNCTION poly(c : Array of double; nord : integer; x : double): double; // RESULT(fn_val) -procedure swilk (var init : boolean; var x : DblDyneVec; n : integer; n1 : integer; - n2 : integer; var a : DblDyneVec; var w : double; var pw : double; var ifault : integer); -procedure SVDinverse(VAR a : DblDyneMat; N : integer); -function probt(t,df1 : double) : double; -function inverset(Probt, DF : double) : double; -function inversechi(p : double; k : integer) : double; -function STUDENT(q,v,r : real) : real; -function realraise(base,power : double ): double; -function fpercentpoint(p : real; k1,k2 : integer) : real; -function lngamma(w : real) : real; -function betaratio(x,a,b,lnbeta : real) : real; -function inversebetaratio(ratio,a,b,lnbeta : real) : real; -function ProdSums(N, A : double) : double; -function combos(X, N : double) : double; -function ordinate(z : double) : double; -procedure Rank(v1col : integer; VAR Values : DblDyneVec); -procedure PRank(v1col : integer; VAR Values : DblDyneVec); -function UniStats(N : integer; VAR X : DblDyneVec; VAR z : DblDyneVec; - VAR Mean : double; VAR variance : double; VAR SD : double; - VAR Skew : double; VAR Kurtosis : double; VAR SEmean : double; - VAR SESkew : double; VAR SEkurtosis : double; VAR min : double; - VAR max : double; VAR Range : double; VAR MissValue : string) : - integer; -function WholeValue(value : double) : double; -function FractionValue(value : double) : double; -function Quartiles(TypeQ : integer; pcntile : double; N : integer; - VAR values : DblDyneVec) : double; -function KolmogorovProb(z : double) : double; -function KolmogorovTest(na : integer; VAR a : DblDyneVec; nb : integer; - VAR b : DblDyneVec; option : String) : double; -procedure poisson_cdf ( x : integer; a : double; VAR cdf : double ); -procedure poisson_cdf_values (VAR n : integer; VAR a : double; VAR x : integer; - VAR fx : double ); -procedure poisson_cdf_inv (VAR cdf : double; VAR a : double; VAR x : integer ); -procedure poisson_check ( a : double ); -function factorial(x : integer) : integer; -procedure poisson_pdf ( x : integer; VAR a : double; VAR pdf : double ); - -implementation -function chisquaredprob(X : double; k : integer) : double; -var - factor : double; // factor which multiplies sum of series - g : double; // lngamma(k1+1) - k1 : double; // adjusted degrees of freedom - sum : double; // temporary storage for partial sums - term : double; // term of series - x1 : double; // adjusted argument of funtion - chi2prob : double; // chi-squared probability -begin - // the distribution function of the chi-squared distribution based on k d.f. - if (X < 0.01) or (X > 1000.0) then - begin - if X < 0.01 then chi2prob := 0.0001 - else chi2prob := 0.999; - end - else - begin - x1 := 0.5 * X; - k1 := 0.5 * k; - g := gammln(k1 + 1); - factor := exp(k1 * ln(x1) - g - x1); - sum := 0.0; - if factor > 0 then - begin - term := 1.0; - sum := 1.0; - while ((term / sum) > 0.000001) do - begin - k1 := k1 + 1; - term := term * (x1 / k1); - sum := sum + term; - end; - end; - chi2prob := sum * factor; - end; //end if .. else - Result := chi2prob; -end; -//--------------------------------------------------------------------- - -function gammln(xx : double) : double; -var - X, tmp, ser : double; - cof : array[0..5] of double; - j : integer; - -begin - cof[0] := 76.18009173; - cof[1] := -86.50532033; - cof[2] := 24.01409822; - cof[3] := -1.231739516; - cof[4] := 0.00120858003; - cof[5] := -0.00000536382; - - X := xx - 1.0; - tmp := X + 5.5; - tmp := tmp - ((X + 0.5) * ln(tmp)); - ser := 1.0; - for j := 0 to 5 do - begin - X := X + 1.0; - ser := ser + cof[j] / X; - end; - Result := ( -tmp + ln(2.50662827465 * ser) ); -end; -//------------------------------------------------------------------- - -PROCEDURE matinv(VAR a, vtimesw, v, w: DblDyneMat; n: integer); -(* adapted from the singular value decomposition of a matrix *) -(* a is a symetric matrix with the inverse returned in a *) - -LABEL 1,2,3; - -VAR -// vtimesw, v, ainverse : matrix; -// w : vector; - ainverse : array of array of double; - m, nm,l,k,j,its,i: integer; - z,y,x,scale,s,h,g,f,c,anorm: double; - rv1: array of double; - -BEGIN - setlength(rv1,n); - setlength(ainverse,n,n); - m := n; -// mp := n; -// np := n; - g := 0.0; - scale := 0.0; - anorm := 0.0; - FOR i := 0 to n-1 DO BEGIN - l := i+1; - rv1[i] := scale*g; - g := 0.0; - s := 0.0; - scale := 0.0; - IF (i <= m-1) THEN BEGIN - FOR k := i to m-1 DO BEGIN - scale := scale+abs(a[k,i]) - END; - IF (scale <> 0.0) THEN BEGIN - FOR k := i to m-1 DO BEGIN - a[k,i] := a[k,i]/scale; - s := s+a[k,i]*a[k,i] - END; - f := a[i,i]; - g := -sign(sqrt(s),f); - h := f*g-s; - a[i,i] := f-g; - IF (i <> n-1) THEN BEGIN - FOR j := l to n-1 DO BEGIN - s := 0.0; - FOR k := i to m-1 DO BEGIN - s := s+a[k,i]*a[k,j] - END; - f := s/h; - FOR k := i to m-1 DO BEGIN - a[k,j] := a[k,j]+ - f*a[k,i] - END - END - END; - FOR k := i to m-1 DO BEGIN - a[k,i] := scale*a[k,i] - END - END - END; - w[i,i] := scale*g; - g := 0.0; - s := 0.0; - scale := 0.0; - IF ((i <= m-1) AND (i <> n-1)) THEN BEGIN - FOR k := l to n-1 DO BEGIN - scale := scale+abs(a[i,k]) - END; - IF (scale <> 0.0) THEN BEGIN - FOR k := l to n-1 DO BEGIN - a[i,k] := a[i,k]/scale; - s := s+a[i,k]*a[i,k] - END; - f := a[i,l]; - g := -sign(sqrt(s),f); - h := f*g-s; - a[i,l] := f-g; - FOR k := l to n-1 DO BEGIN - rv1[k] := a[i,k]/h - END; - IF (i <> m-1) THEN BEGIN - FOR j := l to m-1 DO BEGIN - s := 0.0; - FOR k := l to n-1 DO BEGIN - s := s+a[j,k]*a[i,k] - END; - FOR k := l to n-1 DO BEGIN - a[j,k] := a[j,k] - +s*rv1[k] - END - END - END; - FOR k := l to n-1 DO BEGIN - a[i,k] := scale*a[i,k] - END - END - END; - anorm := max(anorm,(abs(w[i,i])+abs(rv1[i]))) - END; - FOR i := n-1 DOWNTO 0 DO BEGIN - IF (i < n-1) THEN BEGIN - IF (g <> 0.0) THEN BEGIN - FOR j := l to n-1 DO BEGIN - v[j,i] := (a[i,j]/a[i,l])/g - END; - FOR j := l to n-1 DO BEGIN - s := 0.0; - FOR k := l to n-1 DO BEGIN - s := s+a[i,k]*v[k,j] - END; - FOR k := l to n-1 DO BEGIN - v[k,j] := v[k,j]+s*v[k,i] - END - END - END; - FOR j := l to n-1 DO BEGIN - v[i,j] := 0.0; - v[j,i] := 0.0 - END - END; - v[i,i] := 1.0; - g := rv1[i]; - l := i - END; - FOR i := n-1 DOWNTO 0 DO BEGIN - l := i+1; - g := w[i,i]; - IF (i < n-1) THEN BEGIN - FOR j := l to n-1 DO BEGIN - a[i,j] := 0.0 - END - END; - IF (g <> 0.0) THEN BEGIN - g := 1.0/g; - IF (i <> n-1) THEN BEGIN - FOR j := l to n-1 DO BEGIN - s := 0.0; - FOR k := l to m-1 DO BEGIN - s := s+a[k,i]*a[k,j] - END; - f := (s/a[i,i])*g; - FOR k := i to m-1 DO BEGIN - a[k,j] := a[k,j]+f*a[k,i] - END - END - END; - FOR j := i to m-1 DO BEGIN - a[j,i] := a[j,i]*g - END - END ELSE BEGIN - FOR j := i to m-1 DO BEGIN - a[j,i] := 0.0 - END - END; - a[i,i] := a[i,i]+1.0 - END; - FOR k := n-1 DOWNTO 0 DO BEGIN - FOR its := 1 to 30 DO BEGIN - FOR l := k DOWNTO 0 DO BEGIN - nm := l-1; - IF ((abs(rv1[l])+anorm) = anorm) THEN GOTO 2; - IF ((abs(w[nm,nm])+anorm) = anorm) THEN GOTO 1 - END; -1: -// c := 0.0; - s := 1.0; - FOR i := l to k DO BEGIN - f := s*rv1[i]; - IF ((abs(f)+anorm) <> anorm) THEN BEGIN - g := w[i,i]; - h := sqrt(f*f+g*g); - w[i,i] := h; - h := 1.0/h; - c := (g*h); - s := -(f*h); - FOR j := 0 to m-1 DO BEGIN - y := a[j,nm]; - z := a[j,i]; - a[j,nm] := (y*c)+(z*s); - a[j,i] := -(y*s)+(z*c) - END - END - END; -2: z := w[k,k]; - IF (l = k) THEN BEGIN - IF (z < 0.0) THEN BEGIN - w[k,k] := -z; - FOR j := 0 to n-1 DO BEGIN - v[j,k] := -v[j,k] - END - END; - GOTO 3 - END; - IF (its = 30) THEN BEGIN - { showmessage('No convergence in 30 SVDCMP iterations');} - exit; - END; - x := w[l,l]; - nm := k-1; - y := w[nm,nm]; - g := rv1[nm]; - h := rv1[k]; - f := ((y-z)*(y+z)+(g-h)*(g+h))/(2.0*h*y); - g := sqrt(f*f+1.0); - f := ((x-z)*(x+z)+h*((y/(f+sign(g,f)))-h))/x; - c := 1.0; - s := 1.0; - FOR j := l to nm DO BEGIN - i := j+1; - g := rv1[i]; - y := w[i,i]; - h := s*g; - g := c*g; - z := sqrt(f*f+h*h); - rv1[j] := z; - c := f/z; - s := h/z; - f := (x*c)+(g*s); - g := -(x*s)+(g*c); - h := y*s; - y := y*c; - FOR nm := 0 to n-1 DO BEGIN - x := v[nm,j]; - z := v[nm,i]; - v[nm,j] := (x*c)+(z*s); - v[nm,i] := -(x*s)+(z*c) - END; - z := sqrt(f*f+h*h); - w[j,j] := z; - IF (z <> 0.0) THEN BEGIN - z := 1.0/z; - c := f*z; - s := h*z - END; - f := (c*g)+(s*y); - x := -(s*g)+(c*y); - FOR nm := 0 to m-1 DO BEGIN - y := a[nm,j]; - z := a[nm,i]; - a[nm,j] := (y*c)+(z*s); - a[nm,i] := -(y*s)+(z*c) - END - END; - rv1[l] := 0.0; - rv1[k] := f; - w[k,k] := x - END; -3: END; -{ mat_print(m,a,'U matrix'); - mat_print(n,v,'V matrix'); - writeln(lst,'Diagonal values of W inverse matrix'); - for i := 1 to n do - write(lst,1/w[i]:6:3); - writeln(lst); } - for i := 0 to n-1 do - for j := 0 to n-1 do - begin - if w[j,j] < 1.0e-6 then vtimesw[i,j] := 0 - else vtimesw[i,j] := v[i,j] * (1.0 / w[j,j] ); - end; -{ mat_print(n,vtimesw,'V matrix times w inverse '); } - for i := 0 to m-1 do - for j := 0 to n-1 do - begin - ainverse[i,j] := 0.0; - for k := 0 to m-1 do - begin - ainverse[i,j] := ainverse[i,j] + vtimesw[i,k] * a[j,k] - end; - end; -{ mat_print(n,ainverse,'Inverse Matrix'); } - for i := 0 to n-1 do - for j := 0 to n-1 do - a[i,j] := ainverse[i,j]; - ainverse := nil; - rv1 := nil; -END; -//------------------------------------------------------------------- - -FUNCTION sign(a,b: double): double; -BEGIN - IF (b >= 0.0) THEN sign := abs(a) ELSE sign := -abs(a) -END; -//------------------------------------------------------------------- - -FUNCTION isign(a,b : integer): integer; -BEGIN - IF (b >= 0) then isign := abs(a) ELSE isign := -abs(a) -END; -//------------------------------------------------------------------- - -FUNCTION max(a,b: double): double; -BEGIN - IF (a > b) THEN max := a ELSE max := b -END; -//------------------------------------------------------------------- - -function inversez(prob : double) : double; -var - z, p : double; - flag : boolean; -begin - // obtains the inverse of z, that is, the z for a probability associated - // with a normally distributed z score. - p := prob; - if (prob > 0.5) then p := 1.0 - prob; - z := zprob(p,flag); - if (prob > 0.5) then z := abs(z); - inversez := z; -end; //End of inversez Function -//------------------------------------------------------------------- - -function zprob(p : double; VAR errorstate : boolean) : double; -VAR - z, xp, lim, p0, p1, p2, p3, p4, q0, q1, q2, q3, q4, Y : double; -begin - // value of probability between approx. 0 and .5 entered in p and the - // z value is returned z - errorstate := true; - lim := 1E-19; - p0 := -0.322232431088; - p1 := -1.0; - p2 := -0.342242088547; - p3 := -0.0204231210245; - p4 := -4.53642210148E-05; - q0 := 0.099348462606; - q1 := 0.588581570495; - q2 := 0.531103462366; - q3 := 0.10353775285; - q4 := 0.0038560700634; - xp := 0.0; - if (p > 0.5) then p := 1 - p; - if (p < lim) then z := xp - else - begin - errorstate := false; - if (p = 0.5) then z := xp - else - begin - Y := sqrt(ln(1.0 / (p * p))); - xp := Y + ((((Y * p4 + p3) * Y + p2) * Y + p1) * Y + p0) / - ((((Y * q4 + q3) * Y + q2) * Y + q1) * Y + q0); - if (p < 0.5) then xp := -xp; - z := xp; - end; - end; - zprob := z; -end; // End function zprob -//------------------------------------------------------------------- - -function probz(z : double) : double; -(* the distribution function of the standard normal distribution derived *) -(* by integration using simpson's rule . *) - -begin - Result := 0.5 + simpsonintegral(0.0,z); -end; -//----------------------------------------------------------------------- - -function simpsonintegral(a,b : real) : real; -(* integrates the function f from lower a to upper limit b choosing an *) -(* interval length so that the error is less than a given amount - *) -(* the default value is 1.0e-06 *) -const error = 1.0e-4 ; - -var h : real; (* current length of interval *) - i : integer; (* counter *) - integral : real; (* current approximation to integral *) - lastint : real; (* previous approximation *) - n : integer; (* no. of intervals *) - sum1,sum2,sum4 : real; (* sums of function values *) - -begin - n := 2 ; h := 0.5 * (b - a); - sum1 := h * (zdensity(a) + zdensity(b) ); - sum2 := 0; - sum4 := zdensity( 0.5 * (a + b)); - integral := h * (sum1 + 4 * sum4); - repeat - lastint := integral; n := n + n; h := 0.5*h; - sum2 := sum2 + sum4; - sum4 := 0; i := 1; - repeat - sum4 := sum4 + zdensity(a + i*h); - i := i + 2 - until i > n; - integral := h * (sum1 + 2*sum2 + 4*sum4); - until abs(integral - lastint) < error; - simpsonintegral := integral/3 -end; (* of SimpsonIntegral *) -//--------------------------------------------------------------------- - -function zdensity(z : real) : real; -(* the density function of the standard normal distribution *) -const a = 0.39894228; (* 1 / sqrt(2*pi) *) - -begin - Result := a * exp(-0.5 * z*z ) -end; (* of normal *) -//---------------------------------------------------------------------- - - -function probf(f,df1,df2 : extended) : extended; -var - term1, term2, term3, term4, term5, term6 : extended; - -FUNCTION gammln(xx: extended): extended; - -CONST - stp = 2.50662827465; -// half = 0.5; - one = 1.0; - fpf = 5.5; - -VAR - x,tmp,ser: double; - j: integer; - cof: ARRAY [1..6] OF extended; - -BEGIN - cof[1] := 76.18009173; - cof[2] := -86.50532033; - cof[3] := 24.01409822; - cof[4] := -1.231739516; - cof[5] := 0.120858003e-2; - cof[6] := -0.536382e-5; - x := xx - 1.0; - tmp := x + fpf; - term1 := ln(tmp); - term2 := (x + 0.5) * term1; - tmp := term2 - tmp; - ser := one; - FOR j := 1 to 6 DO BEGIN - x := x + 1.0; - ser := ser + cof[j] / x - END; - gammln := tmp +ln(stp * ser) -END; -//----------------------------------------------------------------- - -FUNCTION betacf(a,b,x: double): extended; -LABEL 1; -CONST - itmax=100; - eps=3.0e-7; -VAR - tem,qap,qam,qab,em,d: extended; - bz,bpp,bp,bm,az,app: extended; - am,aold,ap: extended; - m: integer; - -BEGIN - am := 1.0; - bm := 1.0; - az := 1.0; - qab := a+b; - qap := a+1.0; - qam := a-1.0; - bz := 1.0 - qab * x / qap; - FOR m := 1 to itmax DO BEGIN - em := m; - tem := em+em; - d := em * (b - m) * x / ((qam + tem) * (a + tem)); - ap := az + d * am; - bp := bz + d * bm; - term1 := -(a + em); - term2 := qab + em; - term3 := term1 * term2 * x; - term4 := a + tem; - term5 := qap + tem; - term6 := term4 * term5; - d := term3 / term6; - app := ap + d * az; - bpp := bp + d * bz; - aold := az; - am := ap/bpp; - bm := bp/bpp; - az := app/bpp; - bz := 1.0; - IF ((abs(az-aold)) < (eps*abs(az))) THEN GOTO 1 - END; - { ShowMessage('WARNING! a or b too big, or itmax too small in betacf');} -1: betacf := az -END; - -FUNCTION betai(a,b,x: extended): extended; -VAR - bt: extended; -BEGIN - IF ((x <= 0.0) OR (x >= 1.0)) THEN BEGIN - { ShowMessage('ERROR! Problem in routine BETAI');} - betai := 0.5; - exit; - END; - IF ((x <= 0.0) OR (x >= 1.0)) THEN bt := 0.0 - ELSE - begin - term1 := gammln(a + b) - - gammln(a) - gammln(b); - term2 := a * ln(x); - term3 := b * ln(1.0 - x); - term4 := term1 + term2 + term3; - bt := exp(term4); - term5 := (a + 1.0) / (a + b + 2.0); - end; - IF x < term5 then betai := bt * betacf(a,b,x) / a - ELSE betai := 1.0 - bt * betacf(b,a,1.0-x) / b -END; - -begin { fprob function } - if f <= 0.0 then probf := 1.0 else - probf := (betai(0.5*df2,0.5*df1,df2/(df2+df1*f)) + - (1.0-betai(0.5*df1,0.5*df2,df1/(df1+df2/f))))/2.0; -end; // of fprob function -//-------------------------------------------------------------------- - -FUNCTION alnorm(x : double; upper : boolean): double; -// Algorithm AS66 Applied Statistics (1973) vol.22, no.3 -// Evaluates the tail area of the standardised normal curve -// from x to infinity if upper is .true. or -// from minus infinity to x if upper is .false. -// ELF90-compatible version by Alan Miller -// Latest revision - 29 November 1997 - -label L10, L20, L30, L40; -var - fn_val : double; -// sp : integer; - zero, one, half, con : double; - z, y : double; - up : boolean; - ltone, utzero : double; - p, q, r, a1, a2, a3, b1, b2, c1, c2, c3, c4, c5, c6 : double; - d1, d2, d3, d4, d5 : double; - -begin - zero := 0.0; - one := 1.0; - half := 0.5; - con := 1.28; - ltone := 7.0; - utzero := 18.66; - p := 0.398942280444; - q := 0.39990348504; - r := 0.398942280385; - a1 := 5.75885480458; - a2 := 2.62433121679; - a3 := 5.92885724438; - b1 := -29.8213557807; - b2 := 48.6959930692; - c1 := -3.8052E-8; - c2 := 3.98064794E-4; - c3 := -0.151679116635; - c4 := 4.8385912808; - c5 := 0.742380924027; - c6 := 3.99019417011; - d1 := 1.00000615302; - d2 := 1.98615381364; - d3 := 5.29330324926; - d4 := -15.1508972451; - d5 := 30.789933034; - up := upper; - z := x; - IF(z >= zero) then GOTO L10; - up := NOT up; - z := -z; -L10 : - IF ((z <= ltone) OR (up) AND (z <= utzero)) then GOTO L20; - fn_val := zero; - GOTO L40; -L20 : - y := half*z*z; - IF(z > con) then GOTO L30; - - fn_val := half - z*(p-q*y/(y+a1+b1/(y+a2+b2/(y+a3)))); - GOTO L40; -L30 : - fn_val := r*EXP(-y)/(z+c1+d1/(z+c2+d2/(z+c3+d3/(z+c4+d4/(z+c5+d5/(z+c6)))))); -L40 : - IF(NOT up) then fn_val := one - fn_val; - - result := fn_val; -END; // FUNCTION alnorm -//----------------------------------------------------------------------------------- - -procedure ppnd7 (p : double; VAR normal_dev : double; VAR ifault : integer); -// ALGORITHM AS241 APPL. STATIST. (1988) VOL. 37, NO. 3, 477- 484. -// Produces the normal deviate Z corresponding to a given lower tail area of P; -// Z is accurate to about 1 part in 10**7. - -// This ELF90-compatible version by Alan Miller - 20 August 1996 -// N.B. The original algorithm is as a function; this is a subroutine - -var - zero, one, half, split1, split2, const1, const2, q, r : double; - a0, a1, a2, a3, b1, b2, b3 : double; - c0, c1, c2, c3, d1, d2 : double; - e0, e1, e2, e3, f1, f2 : double; - -begin - zero := 0.0; - one := 1.0; - half := 0.5; - split1 := 0.425; - split2 := 5.0; - const1 := 0.180625; - const2 := 1.6; - a0 := 3.3871327179E+00; - a1 := 5.0434271938E+01; - a2 := 1.5929113202E+02; - a3 := 5.9109374720E+01; - b1 := 1.7895169469E+01; - b2 := 7.8757757664E+01; - b3 := 6.7187563600E+01; - c0 := 1.4234372777E+00; - c1 := 2.7568153900E+00; - c2 := 1.3067284816E+00; - c3 := 1.7023821103E-01; - d1 := 7.3700164250E-01; - d2 := 1.2021132975E-01; - e0 := 6.6579051150E+00; - e1 := 3.0812263860E+00; - e2 := 4.2868294337E-01; - e3 := 1.7337203997E-02; - f1 := 2.4197894225E-01; - f2 := 1.2258202635E-02; - ifault := 0; - q := p - half; - IF (ABS(q) <= split1) THEN - begin - r := const1 - q * q; - normal_dev := q * (((a3 * r + a2) * r + a1) * r + a0) / (((b3 * r + b2) * r + b1) * r + one); - exit; // RETURN - end - ELSE begin - IF (q < zero) THEN r := p ELSE r := one - p; - IF (r <= zero) THEN - begin - ifault := 1; - normal_dev := zero; - exit; //RETURN - END; // IF - r := SQRT(-ln(r)); - IF (r <= split2) THEN - begin - r := r - const2; - normal_dev := (((c3 * r + c2) * r + c1) * r + c0) / ((d2 * r + d1) * r + one); - end - ELSE begin - r := r - split2; - normal_dev := (((e3 * r + e2) * r + e1) * r + e0) / ((f2 * r + f1) * r + one); - END; // IF - IF (q < zero) then normal_dev := - normal_dev; - exit; - end; // if -end; // procedure ppnd7 -//--------------------------------------------------------------------- - -FUNCTION poly(c : Array of double; nord : integer; x : double): double; // RESULT(fn_val) -// Algorithm AS 181.2 Appl. Statist. (1982) Vol. 31, No. 2 -// Calculates the algebraic polynomial of order nored-1 with -// array of coefficients c. Zero order coefficient is c(1) -label 20; -var - fn_val, p : double; - i, j, n2 : integer; - c2 : array[1..6] of double; -begin - // copy into array for access starting at 1 instead of zero - for i := 1 to nord do c2[i] := c[i-1]; - - fn_val := c2[1]; - IF (nord = 1) then - begin - result := fn_val; - exit; // RETURN - end; - p := x * c2[nord]; - IF (nord = 2) then GOTO 20; - n2 := nord - 2; - j := n2 + 1; - for i := 1 to n2 do - begin - p := (p + c2[j])*x; - j := j - 1; - END; // DO -20: fn_val := fn_val + p; - - result := fn_val; -END; // FUNCTION poly -//----------------------------------------------------------------------- - -procedure swilk (var init : boolean; var x : DblDyneVec; n : integer; n1 : integer; - n2 : integer; var a : DblDyneVec; var w : double; var pw : double; var ifault : integer); - -label 70; -// ALGORITHM AS R94 APPL. STATIST. (1995) VOL.44, NO.4 -// Calculates the Shapiro-Wilk W test and its significance level - -// ARGUMENTS: -// INIT Set to .FALSE. on the first call so that weights A(N2) can be -// calculated. Set to .TRUE. on exit unless IFAULT = 1 or 3. -// X(N1) Sample values in ascending order. -// N The total sample size (including any right-censored values). -// N1 The number of uncensored cases (N1 <= N). -// N2 Integer part of N/2. -// A(N2) The calculated weights. -// W The Shapiro-Wilks W-statistic. -// PW The P-value for W. -// IFAULT Error indicator: -// = 0 for no error -// = 1 if N1 < 3 -// = 2 if N > 5000 (a non-fatal error) -// = 3 if N2 < N/2 -// = 4 if N1 > N or (N1 < N and N < 20). -// = 5 if the proportion censored (N - N1)/N > 0.8. -// = 6 if the data have zero range. -// = 7 if the X's are not sorted in increasing order - -// Fortran 90 version by Alan.Miller @ vic.cmis.csiro.au -// Latest revision - 4 December 1998 - -var - summ2, ssumm2, fac, rsn, an, an25, a1, a2, delta, range : double; - sa, sx, ssx, ssa, sax, asa, xsx, ssassx, w1, y, xx, xi : double; - gamma, m, s, ld, bf, z90f, z95f, z99f, zfm, zsd, zbar : double; - ncens, nn2, i, i1, j : integer; - upper : boolean; - c1 : array[1..6] of double; // = [0.0, 0.221157, -0.147981, -2.07119, 4.434685, -2.706056]; - c2 : array[1..6] of double; // = [0.0, 0.042981, -0.293762, -1.752461, 5.682633, -3.582633]; - c3 : array[1..4] of double; // = [0.5440, -0.39978, 0.025054, -0.6714E-3 ]; - c4 : array[1..4] of double; // = [1.3822, -0.77857, 0.062767, -0.0020322]; - c5 : array[1..4] of double; // = [-1.5861, -0.31082, -0.083751, 0.0038915]; - c6 : array[1..3] of double; // = [-0.4803, -0.082676, 0.0030302]; - c7 : array[1..2] of double; // = [0.164, 0.533]; - c8 : array[1..2] of double; // = [0.1736, 0.315]; - c9 : array[1..2] of double; // = [0.256, -0.00635]; - g : array[1..2] of double; // = [-2.273, 0.459]; - z90, z95, z99 : double; - zm, zss : double; - bf1, xx90, xx95 : double; - zero, one, two, three : double; - sqrth, qtr, th, small : double; - pi6, stqr : double; - -begin - upper := true; - z90 := 1.2816; - z95 := 1.6449; - z99 := 2.3263; - zm := 1.7509; - zss := 0.56268; - bf1 := 0.8378; - xx90 := 0.556; - xx95 := 0.622; - zero := 0.0; - one := 1.0; - two := 2.0; - three := 3.0; - sqrth := 0.70711; - qtr := 0.25; - th := 0.375; - small := 1E-19; - pi6 := 1.909859; - stqr := 1.047198; - c1[1] := 0.0; - c1[2] := 0.221157; - c1[3] := -0.147981; - c1[4] := -2.07119; - c1[5] := 4.434685; - c1[6] := -2.706056; - c2[1] := 0.0; - c2[2] := 0.042981; - c2[3] := -0.293762; - c2[4] := -1.752461; - c2[5] := 5.682633; - c2[6] := -3.582633; - c3[1] := 0.5440; - c3[2] := -0.39978; - c3[3] := 0.025054; - c3[4] := -0.6714E-3; - c4[1] := 1.3822; - c4[2] := -0.77857; - c4[3] := 0.062767; - c4[4] := -0.0020322; - c5[1] := -1.5861; - c5[2] := -0.31082; - c5[3] := -0.083751; - c5[4] := 0.0038915; - c6[1] := -0.4803; - c6[2] := -0.082676; - c6[3] := 0.0030302; - c7[1] := 0.164; - c7[2] := 0.533; - c8[1] := 0.1736; - c8[2] := 0.315; - c9[1] := 0.256; - c9[2] := -0.00635; - g[1] := -2.273; - g[2] := 0.459; - - pw := one; - IF (w >= zero) then w := one; - an := n; - ifault := 3; - nn2 := n div 2; - IF (n2 < nn2) then exit; - ifault := 1; - IF (n < 3) then exit; - -// If INIT is false, calculates coefficients for the test - - IF (NOT init) THEN - begin - IF (n = 3) THEN a[1] := sqrth - ELSE begin - an25 := an + qtr; - summ2 := zero; - for i := 1 to n2 do - begin - ppnd7((i - th)/an25, a[i], ifault); - summ2 := summ2 + (a[i] * a[i]); - end; - summ2 := summ2 * two; - ssumm2 := SQRT(summ2); - rsn := one / SQRT(an); - a1 := poly(c1, 6, rsn) - a[1] / ssumm2; - -// Normalize coefficients - - IF (n > 5) THEN - begin - i1 := 3; - a2 := -a[2]/ssumm2 + poly(c2,6,rsn); - fac := SQRT((summ2 - two * a[1] * a[1] - two * a[2] * a[2])/ - (one - two * power(a1,2) - two * power(a2,2))); - a[1] := a1; - a[2] := a2; - end - ELSE begin - i1 := 2; - fac := SQRT((summ2 - two * a[1] * a[1])/ (one - two * a1 * a1)); - a[1] := a1; - END; - for i := i1 to nn2 do a[i] := -a[i]/fac; - END; - init := true; - END; - IF (n1 < 3) then exit; - - ncens := n - n1; - ifault := 4; - IF (ncens < 0) OR ((ncens > 0) AND (n < 20)) then exit; - ifault := 5; - delta := ncens/an; - IF (delta > 0.8) then exit; - -// If W input as negative, calculate significance level of -W - - IF (w < zero) THEN - begin - w1 := one + w; - ifault := 0; - GOTO 70; - END; // IF - -// Check for zero range - - ifault := 6; - range := x[n1] - x[1]; - IF (range < small) then exit; //RETURN - -// Check for correct sort order on range - scaled X - - ifault := 7; - xx := x[1] / range; - sx := xx; - sa := -a[1]; - j := n - 1; - for i := 2 to n1 do - begin - xi := x[i]/range; - IF (xx-xi > small) THEN - begin - { ShowMessage('x[i]s out of order'); // WRITE(*, *) 'x(i)s out of order'} - exit;// RETURN - END; // IF - sx := sx + xi; - IF (i <> j) then sa := sa + SIGN(1, i - j) * a[MIN(i, j)]; - xx := xi; - j := j - 1; - END; // DO - ifault := 0; - IF (n > 5000) then ifault := 2; - -// Calculate W statistic as squared correlation -// between data and coefficients - - sa := sa/n1; - sx := sx/n1; - ssa := zero; - ssx := zero; - sax := zero; - j := n; - for i := 1 to n1 do - begin - IF (i <> j) THEN asa := SIGN(1, i - j) * a[MIN(i, j)] - sa - ELSE asa := -sa; - xsx := x[i]/range - sx; - ssa := ssa + asa * asa; - ssx := ssx + xsx * xsx; - sax := sax + asa * xsx; - j := j - 1; - END; // DO - -// W1 equals (1-W) claculated to avoid excessive rounding error -// for W very near 1 (a potential problem in very large samples) - - ssassx := SQRT(ssa * ssx); - w1 := (ssassx - sax) * (ssassx + sax)/(ssa * ssx); -70: w := one - w1; - -// Calculate significance level for W (exact for N=3) - - IF (n = 3) THEN - begin - pw := pi6 * (ARCSIN(SQRT(w)) - stqr); - exit; //RETURN - END; // IF - y := LN(w1); - xx := LN(an); -// m := zero; -// s := one; - IF (n <= 11) THEN - begin - gamma := poly(g, 2, an); - IF (y >= gamma) THEN - begin - pw := small; - exit; //RETURN - END; // IF - y := -LN(gamma - y); - m := poly(c3, 4, an); - s := EXP(poly(c4, 4, an)); - end - ELSE begin - m := poly(c5, 4, xx); - s := EXP(poly(c6, 3, xx)); - END; // IF - IF (ncens > 0) THEN - begin - -// Censoring by proportion NCENS/N. Calculate mean and sd -// of normal equivalent deviate of W. - - ld := -LN(delta); - bf := one + xx * bf1; - z90f := z90 + bf * power(poly(c7, 2, power(xx90,xx)),ld); - z95f := z95 + bf * power(poly(c8, 2, power(xx95,xx)),ld); - z99f := z99 + bf * power(poly(c9, 2, xx),ld); - -// Regress Z90F,...,Z99F on normal deviates Z90,...,Z99 to get -// pseudo-mean and pseudo-sd of z as the slope and intercept - - zfm := (z90f + z95f + z99f)/three; - zsd := (z90*(z90f-zfm)+z95*(z95f-zfm)+z99*(z99f-zfm))/zss; - zbar := zfm - zsd * zm; - m := m + zbar * s; - s := s * zsd; - END; // IF - pw := alnorm((y - m)/s, upper); -end; // procedure -//----------------------------------------------------------------------- - -procedure SVDinverse(VAR a : DblDyneMat; N : integer); -// a shorter version of the matinv routine that ignores v, w, and vtimes w -// matrices in the singular value decompensation inverse procedure -var - v, w, vtimesw : DblDyneMat; -begin - SetLength(v,N,N); - SetLength(w,N,N); - SetLength(vtimesw,N,N); - matinv(a,vtimesw,v,w,N); -end; -//------------------------------------------------------------------- - -function probt(t,df1 : double) : double; -var - F, prob : double; -begin - // Returns the probability corresponding to a two-tailed t test. - F := t * t; - prob := probf(F,1.0,df1); - Result := prob; -end; -//------------------------------------------------------------------------ - -function inverset(Probt, DF : double) : double; -var - z, W, tValue: double; -begin - // Returns the t value corresponding to a two-tailed t test probability. - z := inversez(Probt); - W := z * ((8.0 * DF + 3.0) / (1.0 + 8.0 * DF)); - tValue := sqrt(DF * (exp(W * W / DF) - 1.0)); - inverset := tValue; -end; -//--------------------------------------------------------------------- - -function inversechi(p : double; k : integer) : double; -var - a1, w, z : double; -begin - z := inversez(p); - a1 := 2.0 / ( 9.0 * k); - w := 1.0 - a1 + z * sqrt(a1); - Result := (k * w * w * w); -end; -//--------------------------------------------------------------------- - -function STUDENT(q,v,r : real) : real; - -{ Yields the probability of a sample value of Q or larger from a population - with r means and degrees of freedom for the mean square error of v.} -var - probq : real; -// done : boolean; - ifault : integer; -// ch : char; - -function alnorm(x: real; upper: boolean): real; -{ algorithm AS 66 from Applied Statistics, 1973, Vol. 22, No.3, pg.424-427 } - -var - ltone, utzero, zero, half, one, con, z, y : real; - up : boolean; - altemp: real; - -begin - // altemp := 0.0; - ltone := 7.0; - utzero := 18.66; - zero := 0.0; - half := 0.5; - one := 1.0; - con := 1.28; - up := upper; - z := x; - if z < zero then - begin - up := not up; - z := -z; - end; - if (z <= ltone) or (up) and (z <= utzero) then - begin - y := half * z * z; - if z > con then - begin - altemp := 0.398942280385 * exp(-y) / - (z - 3.8052e-8 + 1.00000615302 / - (z + 3.98064794e-4 + 1.98615381364 / - (z - 0.151679116635 + 5.29330324926 / - (z + 4.8385912808 - 15.1508972451 / - (z + 0.742380924027 + 30.789933034 / - (z + 3.99019417011)))))); - end - else altemp := half - z * (0.398942280444 - 0.399903438504 * y / - (y + 5.75885480458 - 29.8213557808 / - (y + 2.62433121679 + 48.6959930692 / - (y + 5.92885724438)))); - end - else altemp := zero; - if not up then altemp := one - altemp; - alnorm := altemp; -end; -//---------------------------------------------------------------------------- - -procedure prtrng(q, v, r : real; var ifault : integer; var sumprob : real); - -{ algorithm as 190 appl. Statistics, 1983, Vol.32, No.2 - evaluates the probability from 0 to q for a studentized range having - v degrees of freedom and r samples. } - -label 21, 22, 25; - -var - pcutj, pcutk, step, vmax, zero, fifth, half, one, two : real; - cv1, cv2, cvmax : real; - vw, qw : array[1..30] of real; - cv : array[1..4] of real; - jmin, jmax, kmin, kmax : integer; - g, gmid, r1, c, h, v2, gstep, gk, pk, pk1, pk2, w0, pz : real; - x, hj, ehj, pj : real; - j, jj, jump, k : integer; - -begin - sumprob := 0.0; - pcutj := 0.00003; pcutk := 0.0001; step := 0.45; vmax := 120.0; - zero := 0.0; fifth := 0.2; half := 0.5; one := 1.0; two := 2.0; - cv1 := 0.193064705; cv2 := 0.293525326; cvmax := 0.39894228; - cv[1] := 0.318309886; cv[2] := -0.268132716e-2; - cv[3] := 0.347222222e-2; cv[4] := 0.833333333e-1; - jmin := 3; jmax := 13; kmin := 7; kmax := 15; - { check initial values } -// prtrng := zero; - ifault := 0; - if (v < one) or (r < two) then ifault := 1; - if (q >= zero) and (ifault = 0) then - begin { main body of function } - g := step * realraise(r,-fifth); - gmid := half * ln(r); - r1 := r - one; - c := ln(r * g * cvmax); - if c <= vmax then - begin - h := step * realraise(v,-half); - v2 := v * half; - if v = one then c := cv1; - if v = two then c := cv2; - if NOT ((v = one) or (v = two)) then c := sqrt(v2) * cv[1] / - (one + ((cv[2] / v2 + cv[3]) / v2 + cv[4]) / v2); - c := ln(c * r * g * h); - end; - { compute integral. - Given a row k, the procedure starts at the midpoint and works outward - (index j) in calculating the probability at nodes symetric about the - midpoint. The rows (index k) are also processed outwards symmetrically - about the midpoint. The center row is unpaired. } - gstep := g; - qw[1] := -one; - qw[jmax + 1] := -one; - pk1 := one; - pk2 := one; - for k := 1 to kmax do - begin - gstep := gstep - g; -21: gstep := -gstep; - gk := gmid + gstep; - pk := zero; - if (pk2 > pcutk) or (k <= kmin) then - begin - w0 := c - gk * gk * half; - pz := alnorm(gk,TRUE); - x := alnorm(gk - q,TRUE) - pz; - if (x > zero) then pk := exp(w0 + r1 * ln(x)); - if v <= vmax then - begin - jump := -jmax; - 22: jump := jump + jmax; - for j := 1 to jmax do - begin - jj := j + jump; - if (qw[jj] <= zero) then - begin - hj := h * j; - if j < jmax then qw[jj + 1] := -one; - ehj := exp(hj); - qw[jj] := q * ehj; - vw[jj] := v * (hj + half - ehj * ehj * half); - end; - pj := zero; - x := alnorm(gk - qw[jj],TRUE) - pz; - if x > zero then pj := exp(w0 + vw[jj] + r1 * ln(x)); - pk := pk + pj; - if pj <= pcutj then - begin - if(jj > jmin) or (k > kmin) then goto 25; - end; - end; { for j := 1 to jmax } - 25: h := -h; - if h < zero then goto 22; - end; { if v less than or equal vmax } - end; { if pk2 > pcutk or k <= kmin } - sumprob := sumprob + pk; - if (k <= kmin) or (pk > pcutk) or (pk1 > pcutk) then - begin - pk2 := pk1; - pk1 := pk; - if gstep > zero then goto 21; - end; - end; { for k := 1 to kmax } - end; { main body of function } -// prtrng := sumprob; -end; { of function } - -begin { program main body } - ifault := 0; - probq := 0.0; - prtrng(q,v,r,ifault,probq); - probq := 1.0 - probq; - { if ifault = 1 then ShowMessage('ERROR! Fault in calculating Student Q.');} - student := probq; - end; { end of student function } -//------------------------------------------------------------------- - -function realraise(base,power : double ): double; -begin - if power = 0 then realraise := 1.0 - else if power < 0 then realraise := 1 / realraise(base,-power) - else realraise := exp(power * ln(base)) -end; (* End of realraise *) -//------------------------------------------------------------------- - -function fpercentpoint(p : real; k1,k2 : integer) : real; - -(* Calculates the inverse F distribution function based on k1 and k2 *) -(* degrees of freedom. Uses function lngamma, betaratio and the *) -(* inversebetaratio routines. *) - -var h1,h2 : real; (* half degrees of freedom k1, k2 *) - lnbeta : real; (* log of complete beta function with params h1 and h2 *) - ratio : real; (* beta ratio *) - x : real; (* inverse beta ratio *) - -begin - h1 := 0.5 * k2; - h2 := 0.5 * k1; - ratio := 1 - p; - lnbeta := lngamma(h1) + lngamma(h2) - lngamma(h1 + h2); - x := inversebetaratio(ratio,h1,h2,lnbeta); - fpercentpoint := k2 * (1 - x) / (k1 * x) -end; (* of fpercentpoint *) -//------------------------------------------------------------------- - -function lngamma(w : real) : real; - -(* Calculates the logarithm of the gamma function. w must be such that *) -(* 2*w is an integer > 0. *) - -const a = 0.57236494; (* ln(sqrt(pi)) *) - -var sum:real; (* a temporary store for summation of values *) - -begin - sum := 0; - w := w-1; - while w > 0.0 do - begin - sum := sum + ln(w); - w := w - 1 - end; (* of summation loop *) - if w < 0.0 - then lngamma := sum + a (* note!!! is something is missing here? *) - else lngamma := sum -end; (* of lngamma *) -//------------------------------------------------------------------- - -function betaratio(x,a,b,lnbeta : real) : real; - -(* calculates the incomplete beta function ratio with parameters a *) -(* and b. LnBeta is the logarithm of the complete beta function with *) -(* parameters a and b. *) - -const error = 1.0E-7; - -var c : real; (* c = a + b *) - factor1,factor2,factor3 : real; (* factors multiplying terms in series *) - i,j : integer; (* counters *) - sum : real; (* current sum of series *) - temp : real; (* temporary store for exchanges *) - term : real; (* term of series *) - xlow : boolean; (* status of x which determines the end from which the *) - (* series is evaluated *) - // ylow : real; (* adjusted argument *) - y : real; - -begin - if (x=0) or (x=1) - then - sum := x - else begin - c := a + b; - if a < c*x - then begin - xlow := true; - y := x; - x := 1 - x; - temp := a; - a := b; - b := temp - end - else begin - xlow := false; - y := 1 - x; - end; - term := 1; - j := 0; - sum := 1; - i := trunc(b + c * y) + 1; - factor1 := x/y; - repeat - j := j + 1; - i := i - 1; - if i >= 0 - then begin - factor2 := b - j; - if i = 0 then factor2 := x; - end; - if abs(a+j) < 1.0e-6 then - begin - betaratio := sum; - exit; - end; - term := term*factor2*factor1/(a+j); - sum := sum + term; - until (abs(term) <= sum) and (abs(term) <= error*sum); - factor3 := exp(a*ln(x) + (b-1)*ln(y) - lnbeta); - sum := sum*factor3/a; - if xlow - then sum := 1 - sum; - end; - betaratio := sum; -end; (* of betaratio *) -//------------------------------------------------------------------- - -function inversebetaratio(ratio,a,b,lnbeta : real) : real; - -(* Calculates the inverse of the incomplete beta function ratio with *) -(* parameters a and b. LnBeta is the logarithm of the complete beta *) -(* function with parameters a and b. Uses function betaratio. *) - -const error = 1.0E-7; - -var -// c: real; (* c = a + b *) - largeratio : boolean; - temp1,temp2,temp3,temp4 : real; (* temporary variables *) - x,x1 : real; (* successive estimates of inverse ratio *) - y : real; (* adjustment during newton iteration *) - -begin - if (ratio = 0) or (ratio = 1) - then - x := ratio - else begin - largeratio := false; - if ratio > 0.5 - then begin - largeratio := true; - ratio := 1 - ratio; - temp1 := a; - b := a; - a := temp1 - end; -// c := a + b; - (* calcuates initial estimate for x *) - temp1 := sqrt(-ln(ratio*ratio)); - temp2 := 1.0 + temp1*(0.99229 + 0.04481*temp1); - temp2 := temp1 - (2.30753 + 0.27061*temp1)/temp2; - if (a > 1) and (b > 1) - then begin - temp1 := (temp2*temp2 - 3.0)/6.0; - temp3 := 1.0/(a + a -1.0); - temp4 := 1.0/ (b + b - 1.0); - x1 := 2.0 /(temp3 + temp4); - x := temp1 + 5.0/6.0 - 2.0/(3.0*x1); - x := temp2*sqrt(x1 + temp1)/x1 - x*(temp4 - temp3); - x := a/(a + b*exp(x + x)) - end - else begin - temp1 := b + b; - temp3 := 1.0/(9.0*b); - temp3 := 1.0 - temp3 + temp2*sqrt(temp3); - temp3 := temp1*temp3*temp3*temp3; - if temp3 > 0 - then begin - temp3 := (4.0*a + temp1 - 2.0)/temp3; - if temp3 > 1 then x := 1.0-2.0/(1 + temp3) - else x := exp((ln(ratio*a) + lnbeta)/a) - end - else x := 1.0 - exp((ln((1-ratio)*b) + lnbeta)/b); - end; - - (* Newton iteration *) - repeat - y := betaratio(x,a,b,lnbeta); - y := (y-ratio)*exp((1-a)*ln(x)+(1-b)*ln(1-x)+lnbeta); - temp4 := y; - x1 := x - y; - while (x1 <= 0) or (x1 >= 1) do - begin - temp4 := temp4/2; - x1 := x - temp4 - end; - x := x1; - until abs(y) < error; - if largeratio then x := 1 - x; - end; - inversebetaratio := x -end; (* of inversebetaratio *) -//------------------------------------------------------------------- - -function ProdSums(N, A : double) : double; -var - Total, i : double; -begin - Total := 1.0; - i := A; - while i <= N do - begin - Total := Total * i; - i := i + 1.0; - end; - Result := Total; -end; -//------------------------------------------------------------------- - -function combos(X, N : double) : double; -var - Y, numerator, denominator : double; -begin - Y := N - X; - if Y > X then - begin - numerator := ProdSums(N, Y + 1); - denominator := ProdSums(X, 1); - end - else begin - numerator := ProdSums(N, X + 1); - denominator := ProdSums(Y, 1); - end; - Result := numerator / denominator; -end; -//------------------------------------------------------------------- - -function ordinate(z : double) : double; -var pi : double; -begin - pi := 3.14159; - Result := (1.0 / sqrt(2.0 * pi)) * (1.0 / exp(z * z / 2.0)); -end; // End ord function -//------------------------------------------------------------------- - -procedure Rank(v1col : integer; VAR Values : DblDyneVec); -// calculates the ranks for values stored in the data grid in column v1col -var - pcntiles, CatValues : DblDyneVec; - freq : IntDyneVec; - i, j, nocats : integer; - Temp, cumfreq, upper, lower : double; - -begin - SetLength(freq, NoCases); - SetLength(pcntiles, NoCases); - SetLength(CatValues, NoCases); - - // get values to be sorted into values vector - for i := 1 to NoCases do - Values[i-1] := StrToFloat(OS3MainFrm.DataGrid.Cells[v1col,i]); - - // sort the values - for i := 1 to NoCases - 1 do //order from high to low - begin - for j := i + 1 to NoCases do - begin - if (Values[i-1] < Values[j-1]) then // swap - begin - Temp := Values[i-1]; - Values[i-1] := Values[j-1]; - Values[j-1] := Temp; - end; - end; - end; - - // now get no. of unique values and frequency of each - nocats := 1; - for i := 1 to NoCases do freq[i-1] := 0; - Temp := Values[0]; - CatValues[0] := Temp; - for i := 1 to NoCases do - begin - if (Temp = Values[i-1]) then freq[nocats-1] := freq[nocats-1] + 1 - else // new value - begin - nocats := nocats + 1; - freq[nocats-1] := freq[nocats-1] + 1; - Temp := Values[i-1]; - CatValues[nocats-1] := Temp; - end; - end; - - // get ranks - cumfreq := 0.0; - for i := 1 to nocats do - begin - upper := NoCases-cumfreq; - cumfreq := cumfreq + freq[i-1]; - lower := NoCases - cumfreq + 1; - pcntiles[i-1] := (upper - lower) / 2.0 + lower; - end; - - // convert original values to their corresponding ranks - for i := 1 to NoCases do - begin - Temp := StrToFloat(OS3MainFrm.DataGrid.Cells[v1col,i]); - for j := 1 to nocats do - begin - if (Temp = CatValues[j-1]) then Values[i-1] := pcntiles[j-1]; - end; - end; - - // clean up the heap - CatValues := nil; - pcntiles := nil; - freq := nil; -end; -//-------------------------------------------------------------------- - -procedure PRank(v1col : integer; VAR Values : DblDyneVec); -// computes the percentile ranks of values stored in the data grid -// at column v1col -var - pcntiles, cumfm, CatValues : DblDyneVec; - freq, cumf : IntDyneVec; - Temp : double; - i, j, nocats, ncases : integer; - outline : string; - -begin - SetLength(freq, NoCases); - SetLength(pcntiles, NoCases); - SetLength(cumf, NoCases); - SetLength(cumfm, NoCases); - SetLength(CatValues, NoCases); - ncases := 0; - // get values to be sorted into values vector - for i := 1 to NoCases do - begin - if not ValidValue(i,v1col) then continue; - ncases := ncases + 1; - Values[ncases-1] := StrToFloat(OS3MainFrm.DataGrid.Cells[v1col,i]); - end; - - // sort the values - for i := 1 to ncases - 1 do //order from low to high - begin - for j := i + 1 to ncases do - begin - if (Values[i-1] > Values[j-1]) then // swap - begin - Temp := Values[i-1]; - Values[i-1] := Values[j-1]; - Values[j-1] := Temp; - end; - end; - end; - - // now get no. of unique values and frequency of each - nocats := 1; - for i := 1 to ncases do freq[i-1] := 0; - Temp := Values[0]; - CatValues[0] := Temp; - for i := 1 to ncases do - begin - if (Temp = Values[i-1])then freq[nocats-1] := freq[nocats-1] + 1 - else // new value - begin - nocats := nocats + 1; - freq[nocats-1] := freq[nocats-1] + 1; - Temp := Values[i-1]; - CatValues[nocats-1] := Temp; - end; - end; - - // now get cumulative frequencies - cumf[0] := freq[0]; - for i := 1 to nocats-1 do cumf[i] := freq[i] + cumf[i-1]; - - // get cumulative frequences to midpoints and percentile ranks - cumfm[0] := freq[0] / 2.0; - pcntiles[0] := (cumf[0] / 2.0) / ncases; - for i := 1 to nocats-1 do - begin - cumfm[i] := (freq[i] / 2.0) + cumf[i-1]; - pcntiles[i] := cumfm[i] / ncases; - end; - - OutPutFrm.RichEdit.Lines.Add('PERCENTILE RANKS'); - OutPutFrm.RichEdit.Lines.Add('Score Value Frequency Cum.Freq. Percentile Rank'); - OutPutFrm.RichEdit.Lines.Add('___________ __________ __________ ______________'); - for i := 1 to nocats do - begin - outline := format(' %8.3f %6d %6d %6.2f', - [CatValues[i-1], freq[i-1],cumf[i-1],pcntiles[i-1]*100.0]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - - // convert original values to their corresponding percentile ranks - for i := 1 to ncases do - begin - Temp := StrToFloat(OS3MainFrm.DataGrid.Cells[v1col,i]); - for j := 1 to nocats do - begin - if (Temp = CatValues[j-1]) then Values[i-1] := pcntiles[j-1]; - end; - end; - - // clean up the heap - CatValues := nil; - cumfm := nil; - cumf := nil; - pcntiles := nil; - freq := nil; -end; -//-------------------------------------------------------------------- - -function UniStats(N : integer; VAR X : DblDyneVec; VAR z : DblDyneVec; - VAR Mean : double; VAR variance : double; VAR SD : double; - VAR Skew : double; VAR Kurtosis : double; VAR SEmean : double; - VAR SESkew : double; VAR SEkurtosis : double; VAR min : double; - VAR max : double; VAR Range : double; VAR MissValue : string) : - integer; -VAR - NoGood : integer; // No. of good cases returned by the function - i : integer; // index for loops - num, den, sum, M2, M3, M4, deviation, devsqr : double; - valuestr : string; - -begin - Mean := 0.0; - variance := 0.0; - SD := 0.0; - Skew := 0.0; - Kurtosis := 0.0; - SEmean := 0.0; - SESkew := 0.0; - SEKurtosis := 0.0; - min := 1.0e20; - max := -1.0e20; - range := 0.0; - NoGood := 0; - sum := 0.0; - M2 := 0.0; - M3 := 0.0; - M4 := 0.0; - - for i := 0 to N-1 do - begin - ValueStr := FloatToStr(X[i]); - if Trim(MissValue) = ValueStr then continue; - NoGood := NoGood + 1; - sum := sum + X[i]; - variance := variance + (X[i] * X[i]); - if X[i] < min then min := X[i]; - if X[i] > max then max := X[i]; - end; - - if NoGood > 0 then - begin - Mean := sum / NoGood; - range := max - min; - end; - - if NoGood > 1 then - begin - variance := variance - (sum * sum) / NoGood; - variance := variance / (NoGood - 1); - SD := sqrt(variance); - SEmean := sqrt(variance / NoGood); - for i := 0 to N-1 do - begin - ValueStr := FloatToStr(X[i]); - if Trim(MissValue) = ValueStr then continue; - deviation := X[i] - Mean; - z[i] := deviation / SD; - devsqr := deviation * deviation; - M2 := M2 + devsqr; - M3 := M3 + (deviation * devsqr); - M4 := M4 + (devsqr * devsqr); - end; - end; - if NoGood > 3 then - begin - Skew := (NoGood * M3) / ((NoGood - 1) * (NoGood - 2) * SD * variance); - num := 6.0 * NoGood * (NoGood - 1); - den := (NoGood - 2) * (NoGood + 1) * (NoGood + 3); - SESkew := sqrt(num / den); - Kurtosis := (NoGood * (NoGood + 1) * M4) - (3.0 * M2 * M2 * (NoGood - 1)); - Kurtosis := Kurtosis / ((NoGood - 1) * (NoGood - 2) * (NoGood - 3) * - (variance * variance)); - SeKurtosis := sqrt((4.0 * (NoGood * NoGood - 1) * (SESkew * SESkew)) / - ((NoGood - 3) * (NoGood + 5))); - end; - Result := NoGood; -end; -//------------------------------------------------------------------- - -function WholeValue(value : double) : double; - { split a value into the whole and fractional parts} -VAR - whole : double; -begin - whole := Floor(value); - Result := whole; -end; -//--------------------------------------------------------------------------- -function FractionValue(value : double) : double; - { split a value into the whole and fractional parts } -VAR - fraction : double; -begin - fraction := value - Floor(value); - Result := fraction; -end; -//--------------------------------------------------------------------------- - -Function Quartiles(TypeQ : integer; pcntile : double; N : integer; - VAR values : DblDyneVec) : double; -VAR - whole, fraction, Myresult, np, avalue, avalue1 : double; - i, subscript : integer; - outline : string; -begin -{ for i := 0 to N - 1 do // this is for debugging - begin - outline := format('Value = %8.3f',[values[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; } - case TypeQ of - 1 : np := pcntile * N; - 2 : np := pcntile * (N + 1); - 3 : np := pcntile * N; - 4 : np := pcntile * N; - 5 : np := pcntile * (N - 1); - 6 : np := pcntile * N + 0.5; - 7 : np := pcntile * (N + 1); - 8 : np := pcntile * (N + 1); - end; - whole := WholeValue(np); - fraction := FractionValue(np); - subscript := Trunc(whole) - 1; - avalue := values[subscript]; - avalue1 := values[subscript + 1]; - case TypeQ of - 1 : Myresult := ((1.0 - fraction) * values[subscript]) + - fraction * values[subscript + 1]; - 2 : Myresult := ((1.0 - fraction) * avalue) + - fraction * avalue1; // values[subscript + 1]; - 3 : if (fraction = 0.0) then Myresult := values[subscript] - else Myresult := values[subscript + 1]; - 4 : if (fraction = 0.0) then Myresult := 0.5 * (values[subscript] + values[subscript + 1]) - else Myresult := values[subscript + 1]; - 5 : if (fraction = 0.0) then Myresult := values[subscript + 1] - else Myresult := values[subscript + 1] + fraction * (values[subscript + 2] - - values[subscript + 1]); - 6 : Myresult := values[subscript]; - 7 : if (fraction = 0.0) then Myresult := values[subscript] - else Myresult := fraction * values[subscript] + - (1.0 - fraction) * values[subscript + 1]; - 8 : begin - if (fraction = 0.0) then Myresult := values[subscript]; - if (fraction = 0.5) then Myresult := 0.5 * (values[subscript] + values[subscript + 1]); - if (fraction < 0.5) then Myresult := values[subscript]; - if (fraction > 0.5) then Myresult := values[subscript + 1]; - end; - end; - Result := Myresult; -end; - -function KolmogorovProb(z : double) : double; -VAR - fj : array[0..3] of double; // = {-2,-8,-18,-32}; - r : array[0..4] of double; - u : double; - p, V, t : double; - j, Maxj : integer; -const - w = 2.50662827; - // c1 - -pi**2/8, c2 = 9*c1, c3 = 25*c1 - c1 = -1.2337005501361697; - c2 = -11.103304951225528; - c3 = -30.842513753404244; - - - // Calculates the Kolmogorov distribution function, - // which gives the probability that Kolmogorov's test statistic will exceed - // the value z assuming the null hypothesis. This gives a very powerful - // test for comparing two one-dimensional distributions. - // see, for example, Eadie et al, "statistocal Methods in Experimental - // Physics', pp 269-270). - // - // This function returns the confidence level for the null hypothesis, where: - // z = dn*sqrt(n), and - // dn is the maximum deviation between a hypothetical distribution - // function and an experimental distribution with - // n events - // - // NOTE: To compare two experimental distributions with m and n events, - // use z = sqrt(m*n/(m+n))*dn - // - // Accuracy: The function is far too accurate for any imaginable application. - // Probabilities less than 10^-15 are returned as zero. - // However, remember that the formula is only valid for "large" n. - // Theta function inversion formula is used for z <= 1 - // - // This function was translated by Rene Brun from PROBKL in CERNLIB. - -begin - u := Abs(z); - fj[0] := -2; - fj[1] := -8; - fj[2] := -18; - fj[3] := -32; - if (u < 0.2) then p := 1 - else if (u < 0.755) then - begin - v := 1./(u*u); - p := 1 - w * (Exp(c1 * v) + Exp(c2 * v) + Exp(c3 * v)) / u; - end - else if (u < 6.8116) then - begin - r[1] := 0; - r[2] := 0; - r[3] := 0; - v := u * u; - maxj := round(max(1,(3. / u))); - for j := 0 to maxj -1 do r[j] := Exp(fj[j] * v); - p := 2 * (r[0] - r[1] + r[2] - r[3]); - end - else p := 0; - result := p; -end; - -function KolmogorovTest(na : integer; VAR a : DblDyneVec; nb : integer; - VAR b : DblDyneVec; option : String) : double; -VAR - prob : double; - opt : string; - rna : double; // = na; - rnb : double; // = nb; - sa : double; // = 1./rna; - sb : double; // = 1./rnb; - rdiff, rdmax, x, z : double; - i, ia, ib : integer; - ok : boolean; - bugstr : string; -begin -// Statistical test whether two one-dimensional sets of points are compatible -// with coming from the same parent distribution, using the Kolmogorov test. -// That is, it is used to compare two experimental distributions of unbinned data. -// -// Input: -// a,b: One-dimensional arrays of length na, nb, respectively. -// The elements of a and b must be given in ascending order. -// option is a character string to specify options -// "D" Put out a line of "Debug" printout -// "M" Return the Maximum Kolmogorov distance instead of prob -// -// Output: -// The returned value prob is a calculated confidence level which gives a -// statistical test for compatibility of a and b. -// Values of prob close to zero are taken as indicating a small probability -// of compatibility. For two point sets drawn randomly from the same parent -// distribution, the value of prob should be uniformly distributed between -// zero and one. -// in case of error the function return -1 -// If the 2 sets have a different number of points, the minimum of -// the two sets is used. -// -// Method: -// The Kolmogorov test is used. The test statistic is the maximum deviation -// between the two integrated distribution functions, multiplied by the -// normalizing factor (rdmax*sqrt(na*nb/(na+nb)). -// -// Code adapted by Rene Brun from CERNLIB routine TKOLMO (Fred James) -// (W.T. Eadie, D. Drijard, F.E. James, M. Roos and B. Sadoulet, -// Statistical Methods in Experimental Physics, (North-Holland, -// Amsterdam 1971) 269-271) -// -// Method Improvement by Jason A Detwiler (JADetwiler@lbl.gov) -// ----------------------------------------------------------- -// The nuts-and-bolts of the TMath::KolmogorovTest() algorithm is a for-loop -// over the two sorted arrays a and b representing empirical distribution -// functions. The for-loop handles 3 cases: when the next points to be -// evaluated satisfy a>b, a na) then - begin - ok := TRUE; - break; - end; - end - else if (a[ia-1] > b[ib-1]) then - begin - rdiff := rdiff + sb; - ib := ib + 1; - if (ib > nb) then - begin - ok := TRUE; - break; - end; - end - else - begin - x := a[ia-1]; - while((a[ia-1] = x) and (ia <= na)) do - begin - rdiff := rdiff - sa; - ia := ia + 1; - end; - while ((b[ib-1] = x) and (ib <= nb)) do - begin - rdiff := rdiff + sb; - ib := ib + 1; - end; - if (ia > na) then - begin - ok := TRUE; - break; - end; - if (ib > nb) then - begin - ok := TRUE; - break; - end; - end; - rdmax := Max(rdmax,Abs(rdiff)); - end; -// Should never terminate this loop with ok = kFALSE! - - if (ok) then - begin - rdmax := Max(rdmax,Abs(rdiff)); - z := rdmax * Sqrt(rna * rnb / (rna + rnb)); - prob := KolmogorovProb(z); - end; - // debug printout - if (opt = 'D') then - begin - bugstr := format(' Kolmogorov Probability = %g, Max Dist = %g',[prob,rdmax]); - OutPutFrm.RichEdit.Lines.Add(bugstr); - end; - if(opt = 'M') then result := rdmax - else result := prob; -end; - - -procedure poisson_cdf ( x : integer; a : double; VAR cdf : double ); -VAR - i : integer; - last, new1, sum2 : double; -begin -// -//******************************************************************************* -// -//// POISSON_CDF evaluates the Poisson CDF. -// -// -// Definition: -// -// CDF(X,A) is the probability that the number of events observed -// in a unit time period will be no greater than X, given that the -// expected number of events in a unit time period is A. -// -// Modified: -// -// 28 January 1999 -// -// Author: -// -// John Burkardt -// -// Parameters: -// -// Input, integer X, the argument of the CDF. -// X >= 0. -// -// Input, real A, the parameter of the PDF. -// 0.0E+00 < A. -// -// Output, real CDF, the value of the CDF. -// - if ( x < 0 ) then cdf := 0.0E+00 - else - begin - new1 := exp ( - a ); - sum2 := new1; - for i := 1 to x do - begin - last := new1; - new1 := last * a / i ; - sum2 := sum2 + new1; - end; - cdf := sum2; - end; -end; - -procedure poisson_cdf_values (VAR n : integer; VAR a : double; VAR x : integer; - VAR fx : double ); -VAR - avec : DblDyneVec; - fxvec : DblDyneVec; - xvec : IntDyneVec; -begin - SetLength(avec,21); - SetLength(fxvec,21); - SetLength(xvec,21); - avec[0] := 0.02e0; - avec[1] := 0.10e0; - avec[2] := 0.10e0; - avec[3] := 0.50e0; - avec[4] := 0.50e0; - avec[5] := 0.50e0; - avec[6] := 1.00e0; - avec[7] := 1.00e0; - avec[8] := 1.00e0; - avec[9] := 1.00e0; - avec[10] := 2.00e0; - avec[11] := 2.00e0; - avec[12] := 2.00e0; - avec[13] := 2.00e0; - avec[14] := 5.00E+00; - avec[15] := 5.00E+00; - avec[16] := 5.00E+00; - avec[17] := 5.00E+00; - avec[18] := 5.00E+00; - avec[19] := 5.00E+00; - avec[20] := 5.00E+00; - fxvec[0] := 0.980E+00; - fxvec[1] := 0.905E+00; - fxvec[2] := 0.995E+00; - fxvec[3] := 0.607E+00; - fxvec[4] := 0.910E+00; - fxvec[5] := 0.986E+00; - fxvec[6] := 0.368E+00; - fxvec[7] := 0.736E+00; - fxvec[8] := 0.920E+00; - fxvec[9] := 0.981E+00; - fxvec[10] := 0.135E+00; - fxvec[11] := 0.406E+00; - fxvec[12] := 0.677E+00; - fxvec[13] := 0.857E+00; - fxvec[14] := 0.007E+00; - fxvec[15] := 0.040E+00; - fxvec[16] := 0.125E+00; - fxvec[17] := 0.265E+00; - fxvec[18] := 0.441E+00; - fxvec[19] := 0.616E+00; - fxvec[20] := 0.762E+00; - xvec[0] := 0; - xvec[1] := 0; - xvec[2] := 1; - xvec[3] := 0; - xvec[4] := 1; - xvec[5] := 2; - xvec[6] := 0; - xvec[7] := 1; - xvec[8] := 2; - xvec[9] := 3; - xvec[10] := 0; - xvec[11] := 1; - xvec[12] := 2; - xvec[13] := 3; - xvec[14] := 0; - xvec[15] := 1; - xvec[16] := 2; - xvec[17] := 3; - xvec[18] := 4; - xvec[19] := 5; - xvec[20] := 6; - -// -//******************************************************************************* -// -//// POISSON_CDF_VALUES returns some values of the Poisson CDF. -// -// -// Discussion: -// -// CDF(X)(A) is the probability of at most X successes in unit time, -// given that the expected mean number of successes is A. -// -// Modified: -// -// 28 May 2001 -// -// Reference: -// -// Milton Abramowitz and Irene Stegun, -// Handbook of Mathematical Functions, -// US Department of Commerce, 1964. -// -// Daniel Zwillinger, -// CRC Standard Mathematical Tables and Formulae, -// 30th Edition, CRC Press, 1996, pages 653-658. -// -// Author: -// -// John Burkardt -// -// Parameters: -// -// Input/output, integer N. -// On input, if N is 0, the first test data is returned, and N is set -// to the index of the test data. On each subsequent call, N is -// incremented and that test data is returned. When there is no more -// test data, N is set to 0. -// -// Output, real A, integer X, the arguments of the function. -// -// Output, real FX, the value of the function. -// -// - if ( n < 0 ) then n := 0; - n := n + 1; - if ( n > 21 ) then - begin - n := 0; - a := 0.0; - x := 0; - fx := 0.0E+00; - exit; - end; - - a := avec[n]; - x := xvec[n]; - fx := fxvec[n]; - xvec := nil; - fxvec := nil; - avec := nil; -end; - -procedure poisson_cdf_inv (VAR cdf : double; VAR a : double; VAR x : integer ); -VAR - i, xmax : integer; - last, new1, sum2, sumold : double; -begin -// -//******************************************************************************* -// -//// POISSON_CDF_INV inverts the Poisson CDF. -// -// -// Modified: -// -// 08 December 1999 -// -// Author: -// -// John Burkardt -// -// Parameters: -// -// Input, real CDF, a value of the CDF. -// 0 <= CDF < 1. -// -// Input, real A, the parameter of the PDF. -// 0.0E+00 < A. -// -// Output, integer X, the corresponding argument. -// -// Now simply start at X = 0, and find the first value for which -// CDF(X-1) <= CDF <= CDF(X). -// - xmax := 100; - sum2 := 0.0E+00; - for i := 0 to xmax do - begin - sumold := sum2; - if ( i = 0 ) then - begin - new1 := exp ( - a ); - sum2 := new1; - end - else - begin - last := new1; - new1 := last * a / i; - sum2 := sum2 + new1; - end; - if (( sumold <= cdf) and (cdf <= sum2 )) then - begin - x := i; - exit; - end; - end; - ShowMessage('POISSON_SAMPLE - Warning. Exceeded XMAX = 100'); - x := xmax; -end; - - -procedure poisson_check ( a : double ); -begin -// -//******************************************************************************* -// -//// POISSON_CHECK checks the parameter of the Poisson PDF. -// -// -// Modified: -// -// 08 December 1999 -// -// Author: -// -// John Burkardt -// -// Parameters: -// -// Input, real A, the parameter of the PDF. -// 0.0E+00 < A. -// - if ( a <= 0.0E+00 ) then - ShowMessage('POISSON_CHECK - Fatal error. A <= 0.'); -end; - -function factorial(x : integer) : longint; //integer; -VAR - decx : longint; // integer; - product : longint; //integer; -begin - decx := x; - product := 1; - while (decx > 0) do - begin - product := decx * product; - decx := decx - 1; - end; - result := product; -end; - - -procedure poisson_pdf ( x : integer; VAR a : double; VAR pdf : double ); -begin -// -//******************************************************************************* -// -//// POISSON_PDF evaluates the Poisson PDF. -// -// -// Formula: -// -// PDF(X)(A) = EXP ( - A ) * A**X / X// -// -// Discussion: -// -// PDF(X)(A) is the probability that the number of events observed -// in a unit time period will be X, given the expected number -// of events in a unit time. -// -// The parameter A is the expected number of events per unit time. -// -// The Poisson PDF is a discrete version of the Exponential PDF. -// -// The time interval between two Poisson events is a random -// variable with the Exponential PDF. -// -// Modified: -// -// 01 February 1999 -// -// Author: -// -// John Burkardt -// -// Parameters: -// -// Input, integer X, the argument of the PDF. -// 0 <= X -// -// Input, real A, the parameter of the PDF. -// 0.0E+00 < A. -// -// Output, real PDF, the value of the PDF. -// - if ( x < 0 ) then pdf := 0.0E+00 - else - pdf := exp ( - a ) * power(a,x) / factorial ( x ); -// pdf := exp ( - a ) * power(a,x) / exp(logfactorial( x )); -end; - - -end. - diff --git a/applications/lazstats/source_orig/genkappaunit.lfm b/applications/lazstats/source_orig/genkappaunit.lfm deleted file mode 100644 index b7ed8b0be..000000000 --- a/applications/lazstats/source_orig/genkappaunit.lfm +++ /dev/null @@ -1,385 +0,0 @@ -object GenKappaFrm: TGenKappaFrm - Left = 179 - Height = 358 - Top = 126 - Width = 564 - Caption = 'Generalized Kappa Coefficient' - ClientHeight = 358 - ClientWidth = 564 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 249 - Height = 14 - Top = 24 - Width = 117 - Caption = 'Category Code (1,2,...)' - ParentColor = False - end - object Label2: TLabel - Left = 249 - Height = 14 - Top = 120 - Width = 133 - Caption = 'Object or Subject Classified' - ParentColor = False - end - object Label3: TLabel - Left = 249 - Height = 14 - Top = 216 - Width = 104 - Caption = 'Rater Codes (1,2,...)' - ParentColor = False - end - object Label4: TLabel - Left = 8 - Height = 14 - Top = 9 - Width = 48 - Caption = 'Variables:' - ParentColor = False - end - object VarList: TListBox - Left = 8 - Height = 319 - Top = 24 - Width = 176 - ItemHeight = 0 - TabOrder = 0 - end - object CatIn: TBitBtn - Left = 192 - Height = 33 - Top = 24 - Width = 41 - 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 - } - OnClick = CatInClick - TabOrder = 1 - end - object CatOut: TBitBtn - Left = 192 - Height = 33 - Top = 64 - Width = 41 - 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 - } - OnClick = CatOutClick - TabOrder = 2 - end - object ObjIn: TBitBtn - Left = 192 - Height = 33 - Top = 120 - Width = 41 - 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 - } - OnClick = ObjInClick - TabOrder = 3 - end - object ObjOut: TBitBtn - Left = 192 - Height = 33 - Top = 160 - Width = 41 - 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 - } - OnClick = ObjOutClick - TabOrder = 4 - end - object RaterIn: TBitBtn - Left = 192 - Height = 33 - Top = 216 - Width = 41 - 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 - } - OnClick = RaterInClick - TabOrder = 5 - end - object RaterOut: TBitBtn - Left = 192 - Height = 33 - Top = 256 - Width = 41 - 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 - } - OnClick = RaterOutClick - TabOrder = 6 - end - object CatEdit: TEdit - Left = 249 - Height = 21 - Top = 40 - Width = 170 - TabOrder = 7 - Text = 'CatEdit' - end - object ObjectEdit: TEdit - Left = 248 - Height = 21 - Top = 136 - Width = 170 - TabOrder = 8 - Text = 'Edit1' - end - object RaterEdit: TEdit - Left = 249 - Height = 21 - Top = 232 - Width = 170 - TabOrder = 9 - Text = 'Edit1' - end - object ResetBtn: TButton - Left = 455 - Height = 35 - Top = 120 - Width = 85 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 10 - end - object CancelBtn: TButton - Left = 456 - Height = 35 - Top = 180 - Width = 85 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 11 - end - object ComputeBtn: TButton - Left = 455 - Height = 35 - Top = 240 - Width = 85 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 12 - end - object ReturnBtn: TButton - Left = 456 - Height = 35 - Top = 302 - Width = 85 - Caption = 'Return' - ModalResult = 1 - TabOrder = 13 - end - object HelpBtn: TButton - Tag = 125 - Left = 455 - Height = 33 - Top = 56 - Width = 86 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 14 - end -end diff --git a/applications/lazstats/source_orig/genkappaunit.lrs b/applications/lazstats/source_orig/genkappaunit.lrs deleted file mode 100644 index 8eda460cf..000000000 --- a/applications/lazstats/source_orig/genkappaunit.lrs +++ /dev/null @@ -1,340 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TGenKappaFrm','FORMDATA',[ - 'TPF0'#12'TGenKappaFrm'#11'GenKappaFrm'#4'Left'#3#179#0#6'Height'#3'f'#1#3'To' - +'p'#2'~'#5'Width'#3'4'#2#7'Caption'#6#29'Generalized Kappa Coefficient'#12'C' - +'lientHeight'#3'f'#1#11'ClientWidth'#3'4'#2#6'OnShow'#7#8'FormShow'#10'LCLVe' - +'rsion'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#3#249#0#6'Height'#2#14#3 - +'Top'#2#24#5'Width'#2'u'#7'Caption'#6#23'Category Code (1,2,...)'#11'ParentC' - +'olor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#249#0#6'Height'#2#14#3'Top'#2'x'#5 - +'Width'#3#133#0#7'Caption'#6#28'Object or Subject Classified'#11'ParentColor' - +#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#249#0#6'Height'#2#14#3'Top'#3#216#0#5'W' - +'idth'#2'h'#7'Caption'#6#21'Rater Codes (1,2,...)'#11'ParentColor'#8#0#0#6'T' - +'Label'#6'Label4'#4'Left'#2#8#6'Height'#2#14#3'Top'#2#9#5'Width'#2'0'#7'Capt' - +'ion'#6#10'Variables:'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2 - +#8#6'Height'#3'?'#1#3'Top'#2#24#5'Width'#3#176#0#10'ItemHeight'#2#0#8'TabOrd' - +'er'#2#0#0#0#7'TBitBtn'#5'CatIn'#4'Left'#3#192#0#6'Height'#2'!'#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#7'OnClick'#7#10'CatInCl' - +'ick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#6'CatOut'#4'Left'#3#192#0#6'Height'#2'!' - ,#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#7'OnC' - +'lick'#7#11'CatOutClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#5'ObjIn'#4'Left'#3 - +#192#0#6'Height'#2'!'#3'Top'#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#7'OnClick'#7#10'ObjInClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#6 - +'ObjOut'#4'Left'#3#192#0#6'Height'#2'!'#3'Top'#3#160#0#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#7'OnClick'#7#11'ObjOutClick'#8'Ta' - +'bOrder'#2#4#0#0#7'TBitBtn'#7'RaterIn'#4'Left'#3#192#0#6'Height'#2'!'#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#7'OnClick' - +#7#12'RaterInClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'#8'RaterOut'#4'Left'#3#192 - +#0#6'Height'#2'!'#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#7'OnClick'#7#13'RaterOutClick'#8'TabOrder'#2#6#0#0#5'TE' - ,'dit'#7'CatEdit'#4'Left'#3#249#0#6'Height'#2#21#3'Top'#2'('#5'Width'#3#170#0 - +#8'TabOrder'#2#7#4'Text'#6#7'CatEdit'#0#0#5'TEdit'#10'ObjectEdit'#4'Left'#3 - +#248#0#6'Height'#2#21#3'Top'#3#136#0#5'Width'#3#170#0#8'TabOrder'#2#8#4'Text' - +#6#5'Edit1'#0#0#5'TEdit'#9'RaterEdit'#4'Left'#3#249#0#6'Height'#2#21#3'Top'#3 - +#232#0#5'Width'#3#170#0#8'TabOrder'#2#9#4'Text'#6#5'Edit1'#0#0#7'TButton'#8 - +'ResetBtn'#4'Left'#3#199#1#6'Height'#2'#'#3'Top'#2'x'#5'Width'#2'U'#7'Captio' - +'n'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#10#0#0#7'TButton' - +#9'CancelBtn'#4'Left'#3#200#1#6'Height'#2'#'#3'Top'#3#180#0#5'Width'#2'U'#7 - +'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#11#0#0#7'TButton'#10 - +'ComputeBtn'#4'Left'#3#199#1#6'Height'#2'#'#3'Top'#3#240#0#5'Width'#2'U'#7'C' - +'aption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#12#0#0#7 - +'TButton'#9'ReturnBtn'#4'Left'#3#200#1#6'Height'#2'#'#3'Top'#3'.'#1#5'Width' - +#2'U'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#13#0#0#7'TBut' - +'ton'#7'HelpBtn'#3'Tag'#2'}'#4'Left'#3#199#1#6'Height'#2'!'#3'Top'#2'8'#5'Wi' - +'dth'#2'V'#7'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2 - +#14#0#0#0 -]); diff --git a/applications/lazstats/source_orig/genkappaunit.pas b/applications/lazstats/source_orig/genkappaunit.pas deleted file mode 100644 index 5ea5f8ed3..000000000 --- a/applications/lazstats/source_orig/genkappaunit.pas +++ /dev/null @@ -1,483 +0,0 @@ -unit GenKappaUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, ExtCtrls, Buttons, MainUnit, Globals, OutPutUnit, FunctionsLib, - Math, DictionaryUnit, DataProcs, MatrixLib, contexthelpunit; -type - - { TGenKappaFrm } - - TGenKappaFrm = class(TForm) - HelpBtn: TButton; - Label4: TLabel; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - CatIn: TBitBtn; - CatOut: TBitBtn; - CatEdit: TEdit; - ObjectEdit: TEdit; - RaterEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - ObjIn: TBitBtn; - ObjOut: TBitBtn; - RaterIn: TBitBtn; - RaterOut: TBitBtn; - VarList: TListBox; - procedure CatInClick(Sender: TObject); - procedure CatOutClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure ObjInClick(Sender: TObject); - procedure ObjOutClick(Sender: TObject); - procedure RaterInClick(Sender: TObject); - procedure RaterOutClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - NoCats : integer; - NoObjects : integer; - NoRaters : integer; - function compute_term1(R : IntDyneCube; i, j, k : integer) : double; - function compute_term2(R : IntDyneCube; i, j, l : integer) : double; - function compute_denom(R : IntDyneCube) : double; - function compute_partial_pchance(R : IntDyneCube; i, j : integer; - denom : double) : double; - function compute_partial_pobs(R : IntDyneCube; k, l : integer) : double; - function KappaVariance(R : IntDyneCube; n, m, K1 : integer) : double; - - public - { public declarations } - end; - -var - GenKappaFrm: TGenKappaFrm; - -implementation - -{ TGenKappaFrm } - -procedure TGenKappaFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - CatIn.Visible := true; - CatOut.Visible := false; - ObjIn.Visible := true; - ObjOut.Visible := false; - RaterIn.Visible := true; - RaterOut.Visible := false; - CatEdit.Text := ''; - ObjectEdit.Text := ''; - RaterEdit.Text := ''; - VarList.Clear; - for i := 0 to NoVariables - 1 do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i+1,0]); -end; - -procedure TGenKappaFrm.CatInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - CatEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - CatIn.Visible := false; - CatOut.Visible := true; -end; - -procedure TGenKappaFrm.CatOutClick(Sender: TObject); -begin - VarList.Items.Add(CatEdit.Text); - CatEdit.Text := ''; - CatIn.Visible := true; - CatOut.Visible := false; -end; - -procedure TGenKappaFrm.ComputeBtnClick(Sender: TObject); -VAR - CatCol, ObjCol, RaterCol, frequency, aresult, intvalue, i, j, k, l : integer; - value, rater, category, anobject, theresult : integer; -// int CatCol:=0, ObjCol:=0, RaterCol:=0; -// int value, rater, category, object; - R : IntDyneCube; -// int ***R; - pobs, pchance, kappa, num, denom, partial_pchance, a_priori : double; - average_frequency : DblDyneVec; - outline : array[0..131] of char; - astring : array[0..21] of char; -// char outline[131], astring[21]; - dblvalue, z : double; - strvalue : string; - -begin - CatCol:=0; - ObjCol:=0; - RaterCol:=0; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Generalized Kappa Coefficient Procedure'); - OutPutFrm.RichEdit.Lines.Add('adapted from the program written by Giovanni Flammia'); - OutPutFrm.RichEdit.Lines.Add('copywritten 1995, M.I.T. Lab. for Computer Science'); - OutPutFrm.RichEdit.Lines.Add(''); - - // get columns for the variables - for i := 0 to NoVariables - 1 do - begin - if (OS3MainFrm.DataGrid.Cells[i+1,0] = CatEdit.Text) then CatCol := i+1; - if (OS3MainFrm.DataGrid.Cells[i+1,0] = RaterEdit.Text) then RaterCol := i+1; - if (OS3MainFrm.DataGrid.Cells[i+1,0] = ObjectEdit.Text) then ObjCol := i+1; - end; - if ((CatCol = 0) or (RaterCol = 0) or (ObjCol = 0)) then - begin - ShowMessage('ERROR! One or more variables not defined.'); - exit; - end; - // get max no of codes for objects, raters, categories - NoCats := 0; - NoObjects := 0; - NoRaters := 0; - for i := 0 to NoCases - 1 do - begin - value := StrToInt(Trim(OS3MainFrm.DataGrid.Cells[CatCol,i+1])); -// result := GetValue(i+1,CatCol,intvalue,dblvalue,strvalue); -// if (result :=:= 1) value := 0; -// else value := intvalue; - if (value > NoCats) then NoCats := value; - value := StrToInt(Trim(OS3MainFrm.DataGrid.Cells[ObjCol,i+1])); -// result := GetValue(i+1,ObjCol,intvalue,dblvalue,strvalue); -// if (result :=:= 1) value := 0; -// else value := intvalue; - if (value > NoObjects) then NoObjects := value; - value := StrToInt(Trim(OS3MainFrm.DataGrid.Cells[RaterCol,i+1])); -// result := GetValue(i+1,RaterCol,intvalue,dblvalue,strvalue); -// if (result :=:= 1) value := 0; -// else value := intvalue; - if (value > NoRaters) then NoRaters := value; - end; - - outline := format('%d Raters using %d Categories to rate %d Objects', - [NoRaters, NoCats, NoObjects]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - - // get memory for R and set to zero - SetLength(R,NoRaters+1,NoCats+1,NoObjects+1); - for i := 0 to NoRaters - 1 do - begin - for k := 0 to NoCats - 1 do - begin - for l := 0 to NoObjects - 1 do - begin - R[i,k,l] := 0; - end; - end; - end; - - // get memory for average_frequency - SetLength(average_frequency,NoCats+1); - for k := 0 to NoCats - 1 do average_frequency[k] := 0.0; - - // read data and store in R - for i := 0 to NoCases - 1 do - begin - rater := StrToInt(Trim(OS3MainFrm.DataGrid.Cells[RaterCol,i+1])); - anobject := StrToInt(Trim(OS3MainFrm.DataGrid.Cells[ObjCol,i+1])); - category := StrToInt(Trim(OS3MainFrm.DataGrid.Cells[CatCol,i+1])); - R[rater-1,category-1,anobject-1] := 1; - end; - - //compute chance probability of agreement pchance for all raters - pchance := 0.0; - denom := compute_denom(R); - for i := 0 to NoRaters - 1 do - begin - for j := 0 to NoRaters - 1 do - begin - if (i <> j) then - begin - partial_pchance := compute_partial_pchance(R,i,j,denom); - pchance := pchance + partial_pchance; - end; - end; - for k := 0 to NoCats - 1 do - begin - frequency := 0; - for l := 0 to NoObjects - 1 do - begin - frequency := frequency + R[i,k,l]; - end; - a_priori := frequency / NoObjects; - outline := format('Frequency[%d,%d] := %f',[i+1,k+1,a_priori]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - - for k := 0 to NoCats - 1 do - begin - for l := 0 to NoObjects - 1 do - begin - for i := 0 to NoRaters - 1 do - begin - average_frequency[k] := average_frequency[k] + R[i,k,l]; - end; - end; - end; - - for k := 0 to NoCats - 1 do - begin - average_frequency[k] := average_frequency[k] / (NoObjects * NoRaters); - outline := format('Average_Frequency[%d] := %f',[k+1,average_frequency[k]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - outline := format('PChance := %f',[pchance]); - OutPutFrm.RichEdit.Lines.Add(outline); - - // compute observed probability of agreement among all raters - num := 0.0; - for k := 0 to NoCats - 1 do - begin - for l := 0 to NoObjects - 1 do - begin - num := num + compute_partial_pobs(R,k,l); - end; - end; - if (denom > 0.0) then pobs := num / denom - else pobs := 0.0; - outline := format('PObs := %f',[pobs]); - OutPutFrm.RichEdit.Lines.Add(outline); - - kappa := (pobs - pchance) / (1.0 - pchance); - outline := format('Kappa := %f',[kappa]); - OutPutFrm.RichEdit.Lines.Add(outline); - z := KappaVariance(R,NoObjects,NoRaters,NoCats); - if (z > 0.0) then z := kappa / sqrt(z); - outline := format('z for Kappa := %8.3f with probability > %8.3f',[z,1.0-probz(z)]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - - // clean up space allocated - average_frequency := nil; - R := nil; -end; - -procedure TGenKappaFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TGenKappaFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -function TGenKappaFrm.compute_term1(R : IntDyneCube; i, j, k : integer) : double; -VAR - ii,jj : integer; // range over 0 .. num_coders-1 */ - kk : integer; // range over 0 .. num_categories-1 */ - l,ll : integer; // range over 0 .. num_points-1 */ - denom_i : integer; //:=0; - denom_j : integer; //:=0; - num_i : integer; //:=0; - num_j : integer; //:=0; - -begin - denom_i := 0; - denom_j := 0; - num_i := 0; - num_j := 0; - for kk := 0 to NoCats - 1 do - begin - for ll := 0 to NoObjects - 1 do - begin - denom_i := denom_i + R[i,kk,ll]; - denom_j := denom_j + R[j,kk,ll]; - end; - end; - - for l := 0 to NoObjects - 1 do - begin - num_i := num_i + R[i,k,l]; - num_j := num_j + R[j,k,l]; - end; - - result := ((num_i / denom_i) * (num_j / denom_j)); -end; - -function TGenKappaFrm.compute_term2(R : IntDyneCube; i, j, l : integer) : double; -VAR - sum_i, sum_j, k : integer; -begin - sum_i:=0; - sum_j:=0; - - for k := 0 to NoCats - 1 do - begin - sum_i := sum_i + R[i,k,l]; - sum_j := sum_j + R[j,k,l]; - end; - - result := (sum_i * sum_j ); -end; -//--------------------------------------------------------------------------- - -function TGenKappaFrm.compute_denom(R : IntDyneCube) : double; -VAR - sum : IntDyneVec; - aresult : double; - i, j, k, l : integer; -begin - aresult := 0; - - SetLength(sum,NoObjects); // sum := (int *)calloc(num_points,sizeof(int)); - for l := 0 to NoObjects - 1 do - begin - sum[l] := 0; - for i := 0 to NoRaters - 1 do - begin - for k := 0 to NoCats - 1 do - begin - sum[l] := sum[l] + R[i,k,l]; - end; - end; - end; - for l := 0 to NoObjects - 1 do - begin - aresult := aresult + sum[l] * ( sum[l] - 1); - end; - sum := nil; - result := aresult; -end; - -function TGenKappaFrm.compute_partial_pchance(R : IntDyneCube; i, j : integer; - denom : double) : double; -VAR - term1, term2 : double; - k, l : integer; -begin - term1 := 0; - term2 := 0; - - for k := 0 to NoCats - 1 do - begin - term1 := term1 + compute_term1(R,i,j,k); - end; - - for l := 0 to NoObjects - 1 do - begin - term2 := term2 + compute_term2(R,i,j,l); - end; - if (denom > 0.0) then result := ( term1 * ( term2 / denom ) ) - else result := 0.0; -end; -//--------------------------------------------------------------------------- - -function TGenKappaFrm.compute_partial_pobs(R : IntDyneCube; k, l : integer) : double; -VAR - sum, i : integer; -begin - sum := 0; - - for i := 0 to NoRaters - 1 do - begin - sum := sum + R[i,k,l]; - end; - - result := (sum * (sum - 1)); -end; - -function TGenKappaFrm.KappaVariance(R : IntDyneCube; n, m, K1 : integer) : double; -VAR - xij, variance, term1, term2 : double; - i, j, k : integer; - pj : DblDyneVec; - -begin - // calculates the variance of Kappa - // R contains 1's or 0's for raters, categories and objects (row, col, slice) - // m is number of raters - // n is number of subjects - // K1 is the number of categories - - term1 := 0.0; - term2 := 0.0; - SetLength(pj,K1); - for j := 0 to K1 - 1 do pj[j] := 0.0; - - // get proportion of values in each category - for j := 0 to K1 - 1 do // accross categories - begin - xij := 0.0; - for i := 0 to m - 1 do // accross raters - begin - for k := 0 to n - 1 do // accross objects - begin - xij := xij + R[i,j,k]; - end; - end; - pj[j] := pj[j] + xij; - end; - for j := 0 to K1 - 1 do pj[j] := pj[j] / (n * m); - for j := 0 to K1 - 1 do - begin - term1 := term1 +(pj[j] * (1.0 - pj[j])); - term2 := term2 + (pj[j] * (1.0 - pj[j]) * (1.0 - 2.0 * pj[j])); - end; - term1 := term1 * term1; - if ((term1 > 0) and (term2 > 0)) then - variance := (2.0 / (n * m * (m-1) * term1)) * (term1 - term2) - else variance := 0.0; - pj := nil; - result := variance; -end; - -procedure TGenKappaFrm.ObjInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - - ObjectEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - ObjIn.Visible := false; - ObjOut.Visible := true; -end; - -procedure TGenKappaFrm.ObjOutClick(Sender: TObject); -begin - VarList.Items.Add(ObjectEdit.Text); - ObjectEdit.Text := ''; - ObjIn.Visible := true; - ObjOut.Visible := false; -end; - -procedure TGenKappaFrm.RaterInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - - RaterEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - RaterIn.Visible := false; - RaterOut.Visible := true; - -end; - -procedure TGenKappaFrm.RaterOutClick(Sender: TObject); -begin - VarList.Items.Add(RaterEdit.Text); - RaterEdit.Text := ''; - RaterIn.Visible := true; - RaterOut.Visible := false; -end; - -initialization - {$I genkappaunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/genrndvalsunit.lfm b/applications/lazstats/source_orig/genrndvalsunit.lfm deleted file mode 100644 index a3cafc317..000000000 --- a/applications/lazstats/source_orig/genrndvalsunit.lfm +++ /dev/null @@ -1,272 +0,0 @@ -object GenRndValsFrm: TGenRndValsFrm - Left = 194 - Height = 393 - Top = 111 - Width = 380 - Caption = 'Generate Random Values' - ClientHeight = 393 - ClientWidth = 380 - OnShow = FormShow - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 8 - Height = 16 - Top = 112 - Width = 80 - Caption = 'Variable Label: ' - ParentColor = False - end - object Label2: TLabel - Left = 161 - Height = 16 - Top = 168 - Width = 49 - Caption = 'Between ' - ParentColor = False - end - object Label3: TLabel - Left = 263 - Height = 16 - Top = 168 - Width = 24 - Caption = 'and ' - ParentColor = False - end - object Label4: TLabel - Left = 162 - Height = 16 - Top = 200 - Width = 49 - Caption = 'Between ' - ParentColor = False - end - object Label5: TLabel - Left = 263 - Height = 16 - Top = 200 - Width = 21 - Caption = 'and' - ParentColor = False - end - object Label6: TLabel - Left = 161 - Height = 16 - Top = 233 - Width = 45 - Caption = 'Mean = ' - ParentColor = False - end - object Label7: TLabel - Left = 264 - Height = 16 - Top = 234 - Width = 35 - Caption = 'S.D. = ' - ParentColor = False - end - object Label8: TLabel - Left = 161 - Height = 16 - Top = 270 - Width = 41 - Caption = 'D.F. 1 =' - ParentColor = False - end - object Label9: TLabel - Left = 160 - Height = 16 - Top = 304 - Width = 41 - Caption = 'D.F. 1 =' - ParentColor = False - end - object Label10: TLabel - Left = 264 - Height = 16 - Top = 301 - Width = 41 - Caption = 'D.F. 2 =' - ParentColor = False - end - object RadioGroup1: TRadioGroup - Left = 7 - Height = 91 - Top = 2 - Width = 241 - AutoFill = True - Caption = 'Generate Cases For:' - 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 = 73 - ClientWidth = 237 - Items.Strings = ( - 'All Current Cases' - 'A Specific Number of Cases' - ) - OnClick = RadioGroup1Click - TabOrder = 0 - end - object NoCasesEdit: TEdit - Left = 184 - Height = 23 - Top = 56 - Width = 44 - OnExit = NoCasesEditExit - TabOrder = 1 - Text = 'NoCasesEdit' - end - object LabelEdit: TEdit - Left = 89 - Height = 23 - Top = 101 - Width = 159 - TabOrder = 2 - Text = 'LabelEdit' - end - object RadioGroup2: TRadioGroup - Left = 8 - Height = 200 - Top = 136 - Width = 143 - AutoFill = True - Caption = 'Distribution Shape:' - 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 = 182 - ClientWidth = 139 - Items.Strings = ( - 'Flat - Integer' - 'Flat - Floating Point' - 'Normal z Values' - 'Chi-Squared Values' - 'F Distribution Values' - ) - OnClick = RadioGroup2Click - TabOrder = 3 - end - object LowIntEdit: TEdit - Left = 210 - Height = 23 - Top = 160 - Width = 43 - OnKeyPress = LowIntEditKeyPress - TabOrder = 4 - Text = 'LowIntEdit' - end - object HiIntEdit: TEdit - Left = 307 - Height = 23 - Top = 161 - Width = 47 - TabOrder = 5 - Text = 'HiIntEdit' - end - object LowRealEdit: TEdit - Left = 210 - Height = 23 - Top = 193 - Width = 43 - OnKeyPress = LowRealEditKeyPress - TabOrder = 6 - Text = 'LowRealEdit' - end - object HiRealEdit: TEdit - Left = 306 - Height = 23 - Top = 194 - Width = 46 - TabOrder = 7 - Text = 'HiRealEdit' - end - object zMeanEdit: TEdit - Left = 210 - Height = 23 - Top = 227 - Width = 45 - OnKeyPress = zMeanEditKeyPress - TabOrder = 8 - Text = 'zMeanEdit' - end - object zSDEdit: TEdit - Left = 306 - Height = 23 - Top = 227 - Width = 48 - TabOrder = 9 - Text = 'zSDEdit' - end - object ChiDFEdit: TEdit - Left = 210 - Height = 23 - Top = 262 - Width = 43 - TabOrder = 10 - Text = 'ChiDFEdit' - end - object FDF1Edit: TEdit - Left = 208 - Height = 23 - Top = 294 - Width = 46 - OnKeyPress = FDF1EditKeyPress - TabOrder = 11 - Text = 'FDF1Edit' - end - object FDF2Edit: TEdit - Left = 312 - Height = 23 - Top = 289 - Width = 47 - TabOrder = 12 - Text = 'FDF2Edit' - end - object ResetBtn: TButton - Left = 8 - Height = 31 - Top = 344 - Width = 74 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 13 - end - object CancelBtn: TButton - Left = 104 - Height = 31 - Top = 344 - Width = 74 - Cancel = True - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 14 - end - object ComputeBtn: TButton - Left = 200 - Height = 31 - Top = 344 - Width = 74 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 15 - end - object Return: TButton - Left = 296 - Height = 31 - Top = 344 - Width = 74 - Caption = 'Return' - ModalResult = 1 - TabOrder = 16 - end -end diff --git a/applications/lazstats/source_orig/genrndvalsunit.lrs b/applications/lazstats/source_orig/genrndvalsunit.lrs deleted file mode 100644 index 434d789c4..000000000 --- a/applications/lazstats/source_orig/genrndvalsunit.lrs +++ /dev/null @@ -1,73 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TGenRndValsFrm','FORMDATA',[ - 'TPF0'#14'TGenRndValsFrm'#13'GenRndValsFrm'#4'Left'#3#194#0#6'Height'#3#137#1 - +#3'Top'#2'o'#5'Width'#3'|'#1#7'Caption'#6#22'Generate Random Values'#12'Clie' - +'ntHeight'#3#137#1#11'ClientWidth'#3'|'#1#6'OnShow'#7#8'FormShow'#10'LCLVers' - +'ion'#6#6'0.9.30'#0#6'TLabel'#6'Label1'#4'Left'#2#8#6'Height'#2#16#3'Top'#2 - +'p'#5'Width'#2'P'#7'Caption'#6#16'Variable Label: '#11'ParentColor'#8#0#0#6 - +'TLabel'#6'Label2'#4'Left'#3#161#0#6'Height'#2#16#3'Top'#3#168#0#5'Width'#2 - +'1'#7'Caption'#6#8'Between '#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Lef' - +'t'#3#7#1#6'Height'#2#16#3'Top'#3#168#0#5'Width'#2#24#7'Caption'#6#4'and '#11 - +'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#3#162#0#6'Height'#2#16#3'Top' - +#3#200#0#5'Width'#2'1'#7'Caption'#6#8'Between '#11'ParentColor'#8#0#0#6'TLab' - +'el'#6'Label5'#4'Left'#3#7#1#6'Height'#2#16#3'Top'#3#200#0#5'Width'#2#21#7'C' - +'aption'#6#3'and'#11'ParentColor'#8#0#0#6'TLabel'#6'Label6'#4'Left'#3#161#0#6 - +'Height'#2#16#3'Top'#3#233#0#5'Width'#2'-'#7'Caption'#6#7'Mean = '#11'Parent' - +'Color'#8#0#0#6'TLabel'#6'Label7'#4'Left'#3#8#1#6'Height'#2#16#3'Top'#3#234#0 - +#5'Width'#2'#'#7'Caption'#6#7'S.D. = '#11'ParentColor'#8#0#0#6'TLabel'#6'Lab' - +'el8'#4'Left'#3#161#0#6'Height'#2#16#3'Top'#3#14#1#5'Width'#2')'#7'Caption'#6 - +#8'D.F. 1 ='#11'ParentColor'#8#0#0#6'TLabel'#6'Label9'#4'Left'#3#160#0#6'Hei' - +'ght'#2#16#3'Top'#3'0'#1#5'Width'#2')'#7'Caption'#6#8'D.F. 1 ='#11'ParentCol' - +'or'#8#0#0#6'TLabel'#7'Label10'#4'Left'#3#8#1#6'Height'#2#16#3'Top'#3'-'#1#5 - +'Width'#2')'#7'Caption'#6#8'D.F. 2 ='#11'ParentColor'#8#0#0#11'TRadioGroup' - +#11'RadioGroup1'#4'Left'#2#7#6'Height'#2'['#3'Top'#2#2#5'Width'#3#241#0#8'Au' - +'toFill'#9#7'Caption'#6#19'Generate Cases For:'#28'ChildSizing.LeftRightSpac' - +'ing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizon' - +'tal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'cr' - +'sHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChild' - +'s'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layou' - +'t'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1 - +#12'ClientHeight'#2'I'#11'ClientWidth'#3#237#0#13'Items.Strings'#1#6#17'All ' - +'Current Cases'#6#26'A Specific Number of Cases'#0#7'OnClick'#7#16'RadioGrou' - +'p1Click'#8'TabOrder'#2#0#0#0#5'TEdit'#11'NoCasesEdit'#4'Left'#3#184#0#6'Hei' - +'ght'#2#23#3'Top'#2'8'#5'Width'#2','#6'OnExit'#7#15'NoCasesEditExit'#8'TabOr' - +'der'#2#1#4'Text'#6#11'NoCasesEdit'#0#0#5'TEdit'#9'LabelEdit'#4'Left'#2'Y'#6 - +'Height'#2#23#3'Top'#2'e'#5'Width'#3#159#0#8'TabOrder'#2#2#4'Text'#6#9'Label' - +'Edit'#0#0#11'TRadioGroup'#11'RadioGroup2'#4'Left'#2#8#6'Height'#3#200#0#3'T' - +'op'#3#136#0#5'Width'#3#143#0#8'AutoFill'#9#7'Caption'#6#19'Distribution Sha' - +'pe:'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2 - +#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'Child' - +'Sizing.EnlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.Shrin' - +'kHorizontal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsSc' - +'aleChilds'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'Ch' - +'ildSizing.ControlsPerLine'#2#1#12'ClientHeight'#3#182#0#11'ClientWidth'#3 - +#139#0#13'Items.Strings'#1#6#14'Flat - Integer'#6#21'Flat - Floating Point'#6 - +#15'Normal z Values'#6#18'Chi-Squared Values'#6#21'F Distribution Values'#0#7 - +'OnClick'#7#16'RadioGroup2Click'#8'TabOrder'#2#3#0#0#5'TEdit'#10'LowIntEdit' - +#4'Left'#3#210#0#6'Height'#2#23#3'Top'#3#160#0#5'Width'#2'+'#10'OnKeyPress'#7 - +#18'LowIntEditKeyPress'#8'TabOrder'#2#4#4'Text'#6#10'LowIntEdit'#0#0#5'TEdit' - +#9'HiIntEdit'#4'Left'#3'3'#1#6'Height'#2#23#3'Top'#3#161#0#5'Width'#2'/'#8'T' - +'abOrder'#2#5#4'Text'#6#9'HiIntEdit'#0#0#5'TEdit'#11'LowRealEdit'#4'Left'#3 - +#210#0#6'Height'#2#23#3'Top'#3#193#0#5'Width'#2'+'#10'OnKeyPress'#7#19'LowRe' - +'alEditKeyPress'#8'TabOrder'#2#6#4'Text'#6#11'LowRealEdit'#0#0#5'TEdit'#10'H' - +'iRealEdit'#4'Left'#3'2'#1#6'Height'#2#23#3'Top'#3#194#0#5'Width'#2'.'#8'Tab' - +'Order'#2#7#4'Text'#6#10'HiRealEdit'#0#0#5'TEdit'#9'zMeanEdit'#4'Left'#3#210 - +#0#6'Height'#2#23#3'Top'#3#227#0#5'Width'#2'-'#10'OnKeyPress'#7#17'zMeanEdit' - +'KeyPress'#8'TabOrder'#2#8#4'Text'#6#9'zMeanEdit'#0#0#5'TEdit'#7'zSDEdit'#4 - +'Left'#3'2'#1#6'Height'#2#23#3'Top'#3#227#0#5'Width'#2'0'#8'TabOrder'#2#9#4 - +'Text'#6#7'zSDEdit'#0#0#5'TEdit'#9'ChiDFEdit'#4'Left'#3#210#0#6'Height'#2#23 - +#3'Top'#3#6#1#5'Width'#2'+'#8'TabOrder'#2#10#4'Text'#6#9'ChiDFEdit'#0#0#5'TE' - +'dit'#8'FDF1Edit'#4'Left'#3#208#0#6'Height'#2#23#3'Top'#3'&'#1#5'Width'#2'.' - +#10'OnKeyPress'#7#16'FDF1EditKeyPress'#8'TabOrder'#2#11#4'Text'#6#8'FDF1Edit' - +#0#0#5'TEdit'#8'FDF2Edit'#4'Left'#3'8'#1#6'Height'#2#23#3'Top'#3'!'#1#5'Widt' - +'h'#2'/'#8'TabOrder'#2#12#4'Text'#6#8'FDF2Edit'#0#0#7'TButton'#8'ResetBtn'#4 - +'Left'#2#8#6'Height'#2#31#3'Top'#3'X'#1#5'Width'#2'J'#7'Caption'#6#5'Reset'#7 - +'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#13#0#0#7'TButton'#9'CancelBtn'#4 - +'Left'#2'h'#6'Height'#2#31#3'Top'#3'X'#1#5'Width'#2'J'#6'Cancel'#9#7'Caption' - ,#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#14#0#0#7'TButton'#10'ComputeB' - +'tn'#4'Left'#3#200#0#6'Height'#2#31#3'Top'#3'X'#1#5'Width'#2'J'#7'Caption'#6 - +#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#15#0#0#7'TButton' - +#6'Return'#4'Left'#3'('#1#6'Height'#2#31#3'Top'#3'X'#1#5'Width'#2'J'#7'Capti' - +'on'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#16#0#0#0 -]); diff --git a/applications/lazstats/source_orig/genrndvalsunit.pas b/applications/lazstats/source_orig/genrndvalsunit.pas deleted file mode 100644 index d858afa23..000000000 --- a/applications/lazstats/source_orig/genrndvalsunit.pas +++ /dev/null @@ -1,282 +0,0 @@ -unit GenRndValsUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - ExtCtrls, StdCtrls, Globals, MainUnit, OutPutUnit, FunctionsLib, - DataProcs, DictionaryUnit, Math; - -type - - { TGenRndValsFrm } - - TGenRndValsFrm = class(TForm) - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - Return: TButton; - ChiDFEdit: TEdit; - FDF2Edit: TEdit; - FDF1Edit: TEdit; - Label10: TLabel; - Label8: TLabel; - Label9: TLabel; - zSDEdit: TEdit; - zMeanEdit: TEdit; - HiRealEdit: TEdit; - Label5: TLabel; - Label6: TLabel; - Label7: TLabel; - LowRealEdit: TEdit; - Label4: TLabel; - LowIntEdit: TEdit; - HiIntEdit: TEdit; - Label2: TLabel; - Label3: TLabel; - LabelEdit: TEdit; - Label1: TLabel; - NoCasesEdit: TEdit; - RadioGroup1: TRadioGroup; - RadioGroup2: TRadioGroup; - procedure ComputeBtnClick(Sender: TObject); - procedure FDF1EditKeyPress(Sender: TObject; var Key: char); - procedure FormShow(Sender: TObject); - procedure LowIntEditKeyPress(Sender: TObject; var Key: char); - procedure LowRealEditKeyPress(Sender: TObject; var Key: char); - procedure NoCasesEditExit(Sender: TObject); - procedure RadioGroup1Click(Sender: TObject); - procedure RadioGroup2Click(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure zMeanEditKeyPress(Sender: TObject; var Key: char); - private - { private declarations } - Ncases : integer; - DistType : integer; - public - { public declarations } - end; - -var - GenRndValsFrm: TGenRndValsFrm; - -implementation - -{ TGenRndValsFrm } - -procedure TGenRndValsFrm.RadioGroup1Click(Sender: TObject); -begin - if RadioGroup1.ItemIndex = 1 then - begin - if NoCases <= 0 then - begin - ShowMessage('Error! There are currently no cases!'); - exit; - end - else Ncases := NoCases - end - else NoCasesEdit.SetFocus; -end; - -procedure TGenRndValsFrm.LowIntEditKeyPress(Sender: TObject; var Key: char); -begin - if Ord(Key) = 13 then HiIntEdit.SetFocus; -end; - -procedure TGenRndValsFrm.FDF1EditKeyPress(Sender: TObject; var Key: char); -begin - if Ord(Key) = 13 then FDF2Edit.SetFocus; -end; - -procedure TGenRndValsFrm.ComputeBtnClick(Sender: TObject); -var - i, j : integer; - col : integer; - RndNo : integer; - RealRnd : double; - Range : integer; - MinReal, MaxReal : double; - Mean, StdDev : double; - SumX1, SumX2 : double; - df1, df2 : integer; -begin - if LabelEdit.Text = '' then - begin - ShowMessage('Error. Enter a label for the variable.'); - exit; - end; - if DistType <= 0 then - begin - ShowMessage('First, select a distribution type.'); - exit; - end; - if RadioGroup1.ItemIndex < 0 then - begin - ShowMessage('Select an option for the number of values to generate.'); - exit; - end; - if (RadioGroup1.ItemIndex = 1) and (NoCasesEdit.Text = '') then - begin - ShowMessage('Error! Number of cases not specified.'); - exit; - end - else Ncases := StrToInt(NoCasesEdit.Text); - if NoCases < Ncases then - begin - OS3MainFrm.DataGrid.RowCount := NCases + 1; - OS3MainFrm.NoCasesEdit.Text := IntToStr(NCases); - NoCases := Ncases; - end; - DictionaryFrm.DictGrid.ColCount := 8; - if NoVariables <= 0 then // a new data file - begin - OS3MainFrm.DataGrid.ColCount := 2; - for i := 1 to Ncases do - OS3MainFrm.DataGrid.Cells[0,i] := format('Case %d',[i]); - col := 1; - DictionaryFrm.DictGrid.RowCount := 1; - DictionaryFrm.NewVar(col); - DictionaryFrm.DictGrid.Cells[1,col] := LabelEdit.Text; - OS3MainFrm.DataGrid.Cells[col,0] := LabelEdit.Text; - end - else // existing data file - begin - col := NoVariables + 1; - DictionaryFrm.NewVar(col); - DictionaryFrm.DictGrid.Cells[1,col] := LabelEdit.Text; - OS3MainFrm.DataGrid.Cells[col,0] := LabelEdit.Text; - end; - randomize; - case DistType of - 1 : begin // range of integers - Range := StrToInt(HiIntEdit.Text) - StrToInt(LowIntEdit.Text); - for i := 1 to Ncases do - begin - RndNo := random(Range); - RndNo := RndNo + StrToInt(LowIntEdit.Text); - OS3MainFrm.DataGrid.Cells[col,i] := IntToStr(RndNo); - end; - end; - 2 : begin // range of real random numbers - MinReal := StrToFloat(LowRealEdit.Text); - MaxReal := StrToFloat(HiRealEdit.Text); - Range := round(MaxReal - MinReal); - for i := 1 to Ncases do - begin - RealRnd := random; - RndNo := random(Range); - RealRnd := RndNo + RealRnd + MinReal; - OS3MainFrm.DataGrid.Cells[col,i] := format('%8.3f',[RealRnd]); - end; - end; - 3 : begin // normally distributed z score - Mean := StrToFloat(zMeanEdit.Text); - StdDev := StrToFloat(zSDEdit.Text); - for i := 1 to Ncases do - begin - RealRnd := RandG(Mean,StdDev); - OS3MainFrm.DataGrid.Cells[col,i] := format('%8.3f',[RealRnd]); - end; - end; - 4 : begin // Chi square is a sum of df squared normally distributed z scores - df1 := StrToInt(ChiDFEdit.Text); - for i := 1 to Ncases do - begin - SumX1 := 0.0; - for j := 1 to df1 do - begin - RealRnd := RandG(0.0,1.0); - SumX1 := SumX1 + (RealRnd * RealRnd); - end; - OS3MainFrm.DataGrid.Cells[col,i] := format('%8.3f',[SumX1]); - end; - end; - 5 : begin // F ratio is a ratio of two independent chi-squares - df1 := StrToInt(FDF1Edit.Text); - df2 := StrToInt(FDF2Edit.Text); - for i := 1 to Ncases do - begin - SumX1 := 0.0; - SumX2 := 0.0; - for j := 1 to df1 do - begin - RealRnd := RandG(0.0,1.0); - SumX1 := SumX1 + (RealRnd * RealRnd); - end; - for j := 1 to df2 do - begin - RealRnd := RandG(0.0,1.0); - SumX2 := SumX2 + (RealRnd * RealRnd); - end; - RealRnd := SumX1 / SumX2; - OS3MainFrm.DataGrid.Cells[col,i] := format('%8.3f',[RealRnd]); - end; - end; - end; - NoVariables := col; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); - OS3MainFrm.NoCasesEdit.Text := IntToStr(NoCases); -end; - -procedure TGenRndValsFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TGenRndValsFrm.LowRealEditKeyPress(Sender: TObject; var Key: char); -begin - if Ord(Key) = 13 then HiRealEdit.SetFocus; -end; - -procedure TGenRndValsFrm.NoCasesEditExit(Sender: TObject); -begin - if RadioGroup1.ItemIndex = 1 then Ncases := StrToInt(NoCasesEdit.Text); -end; - -procedure TGenRndValsFrm.RadioGroup2Click(Sender: TObject); -begin - DistType := RadioGroup2.ItemIndex + 1; - case DistType of - 1 : LowIntEdit.SetFocus; - 2 : LowRealEdit.SetFocus; - 3 : zMeanEdit.SetFocus; - 4 : ChiDFEdit.SetFocus; - 5 : FDF1Edit.SetFocus; - else - begin - ShowMessage('Please select a distribution type before pressing Compute.'); - exit; - end; - end; -end; - -procedure TGenRndValsFrm.ResetBtnClick(Sender: TObject); -begin - NoCasesEdit.Text := ''; - RadioGroup1.ItemIndex := -1; - RadioGroup2.ItemIndex := -1; - LabelEdit.Text := ''; - LowIntEdit.Text := ''; - HiIntEdit.Text := ''; - LowRealEdit.Text := ''; - HiRealEdit.Text := ''; - zMeanEdit.Text := ''; - zSDEdit.Text := ''; - ChiDFEdit.Text := ''; - FDF1Edit.Text := ''; - FDF2Edit.Text := ''; - DistType := 0; -end; - -procedure TGenRndValsFrm.zMeanEditKeyPress(Sender: TObject; var Key: char); -begin - if Ord(Key) = 13 then zSDEdit.SetFocus; -end; - -initialization - {$I genrndvalsunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/gensequnit.lfm b/applications/lazstats/source_orig/gensequnit.lfm deleted file mode 100644 index 780ffcfdf..000000000 --- a/applications/lazstats/source_orig/gensequnit.lfm +++ /dev/null @@ -1,128 +0,0 @@ -object GenSeqFrm: TGenSeqFrm - Left = 174 - Height = 192 - Top = 110 - Width = 301 - Caption = 'Generation of Sequential Values' - ClientHeight = 192 - ClientWidth = 301 - OnShow = FormShow - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 9 - Height = 16 - Top = 96 - Width = 100 - Caption = 'Start Sequence At: ' - ParentColor = False - end - object Label2: TLabel - Left = 10 - Height = 16 - Top = 127 - Width = 114 - Caption = 'Increment Values By: ' - ParentColor = False - end - object Label3: TLabel - Left = 8 - Height = 16 - Top = 160 - Width = 107 - Caption = 'New Variable Label: ' - ParentColor = False - end - object RadioGroup1: TRadioGroup - Left = 10 - Height = 71 - Top = 6 - Width = 188 - AutoFill = True - Caption = 'Generate for:' - 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 = 53 - ClientWidth = 184 - Items.Strings = ( - 'All Current Cases' - 'Number of Cases = ' - ) - OnClick = RadioGroup1Click - TabOrder = 0 - end - object NoCasesEdit: TEdit - Left = 144 - Height = 23 - Top = 40 - Width = 42 - OnExit = NoCasesEditExit - TabOrder = 1 - Text = 'NoCasesEdit' - end - object StartAtEdit: TEdit - Left = 150 - Height = 23 - Top = 86 - Width = 41 - TabOrder = 2 - Text = 'StartAtEdit' - end - object IncrEdit: TEdit - Left = 149 - Height = 23 - Top = 120 - Width = 42 - TabOrder = 3 - Text = 'IncrEdit' - end - object LabelEdit: TEdit - Left = 113 - Height = 23 - Top = 153 - Width = 78 - TabOrder = 4 - Text = 'LabelEdit' - end - object ResetBtn: TButton - Left = 209 - Height = 30 - Top = 7 - Width = 80 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 5 - end - object CancelBtn: TButton - Left = 209 - Height = 30 - Top = 48 - Width = 80 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 6 - end - object ComputeBtn: TButton - Left = 209 - Height = 30 - Top = 104 - Width = 80 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 7 - end - object ReturnBtn: TButton - Left = 209 - Height = 30 - Top = 144 - Width = 80 - Caption = 'Return' - ModalResult = 1 - TabOrder = 8 - end -end diff --git a/applications/lazstats/source_orig/gensequnit.lrs b/applications/lazstats/source_orig/gensequnit.lrs deleted file mode 100644 index 44cfc6559..000000000 --- a/applications/lazstats/source_orig/gensequnit.lrs +++ /dev/null @@ -1,37 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TGenSeqFrm','FORMDATA',[ - 'TPF0'#10'TGenSeqFrm'#9'GenSeqFrm'#4'Left'#3#174#0#6'Height'#3#192#0#3'Top'#2 - +'n'#5'Width'#3'-'#1#7'Caption'#6#31'Generation of Sequential Values'#12'Clie' - +'ntHeight'#3#192#0#11'ClientWidth'#3'-'#1#6'OnShow'#7#8'FormShow'#10'LCLVers' - +'ion'#6#6'0.9.30'#0#6'TLabel'#6'Label1'#4'Left'#2#9#6'Height'#2#16#3'Top'#2 - +'`'#5'Width'#2'd'#7'Caption'#6#19'Start Sequence At: '#11'ParentColor'#8#0#0 - +#6'TLabel'#6'Label2'#4'Left'#2#10#6'Height'#2#16#3'Top'#2#127#5'Width'#2'r'#7 - +'Caption'#6#21'Increment Values By: '#11'ParentColor'#8#0#0#6'TLabel'#6'Labe' - +'l3'#4'Left'#2#8#6'Height'#2#16#3'Top'#3#160#0#5'Width'#2'k'#7'Caption'#6#20 - +'New Variable Label: '#11'ParentColor'#8#0#0#11'TRadioGroup'#11'RadioGroup1' - +#4'Left'#2#10#6'Height'#2'G'#3'Top'#2#6#5'Width'#3#188#0#8'AutoFill'#9#7'Cap' - +'tion'#6#13'Generate for:'#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'5' - +#11'ClientWidth'#3#184#0#13'Items.Strings'#1#6#17'All Current Cases'#6#18'Nu' - +'mber of Cases = '#0#7'OnClick'#7#16'RadioGroup1Click'#8'TabOrder'#2#0#0#0#5 - +'TEdit'#11'NoCasesEdit'#4'Left'#3#144#0#6'Height'#2#23#3'Top'#2'('#5'Width'#2 - +'*'#6'OnExit'#7#15'NoCasesEditExit'#8'TabOrder'#2#1#4'Text'#6#11'NoCasesEdit' - +#0#0#5'TEdit'#11'StartAtEdit'#4'Left'#3#150#0#6'Height'#2#23#3'Top'#2'V'#5'W' - +'idth'#2')'#8'TabOrder'#2#2#4'Text'#6#11'StartAtEdit'#0#0#5'TEdit'#8'IncrEdi' - +'t'#4'Left'#3#149#0#6'Height'#2#23#3'Top'#2'x'#5'Width'#2'*'#8'TabOrder'#2#3 - +#4'Text'#6#8'IncrEdit'#0#0#5'TEdit'#9'LabelEdit'#4'Left'#2'q'#6'Height'#2#23 - +#3'Top'#3#153#0#5'Width'#2'N'#8'TabOrder'#2#4#4'Text'#6#9'LabelEdit'#0#0#7'T' - +'Button'#8'ResetBtn'#4'Left'#3#209#0#6'Height'#2#30#3'Top'#2#7#5'Width'#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#209#0#6'Height'#2#30#3'Top'#2'0'#5'Width'#2 - +'P'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#6#0#0#7'TButton' - +#10'ComputeBtn'#4'Left'#3#209#0#6'Height'#2#30#3'Top'#2'h'#5'Width'#2'P'#7'C' - +'aption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#7#0#0#7 - +'TButton'#9'ReturnBtn'#4'Left'#3#209#0#6'Height'#2#30#3'Top'#3#144#0#5'Width' - +#2'P'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#8#0#0#0 -]); diff --git a/applications/lazstats/source_orig/gensequnit.pas b/applications/lazstats/source_orig/gensequnit.pas deleted file mode 100644 index 06e9ad896..000000000 --- a/applications/lazstats/source_orig/gensequnit.pas +++ /dev/null @@ -1,150 +0,0 @@ -unit GenSeqUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - ExtCtrls, StdCtrls, Globals, MainUnit, OutPutUnit, - DictionaryUnit; - - -type - - { TGenSeqFrm } - - TGenSeqFrm = class(TForm) - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - LabelEdit: TEdit; - Label3: TLabel; - StartAtEdit: TEdit; - IncrEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - NoCasesEdit: TEdit; - RadioGroup1: TRadioGroup; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure NoCasesEditExit(Sender: TObject); - procedure RadioGroup1Click(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - Ncases : integer; - public - { public declarations } - end; - -var - GenSeqFrm: TGenSeqFrm; - -implementation - -{ TGenSeqFrm } - -procedure TGenSeqFrm.ResetBtnClick(Sender: TObject); -begin - RadioGroup1.ItemIndex := 1; - NoCasesEdit.Text := ''; - StartAtEdit.Text := ''; - IncrEdit.Text := ''; - LabelEdit.Text := ''; -end; - -procedure TGenSeqFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TGenSeqFrm.ComputeBtnClick(Sender: TObject); -var - i, col : integer; - First, Increment : double; -begin - if StartAtEdit.Text = '' then - begin - ShowMessage('Error! No starting value provided.'); - exit; - end; - if IncrEdit.Text = '' then - begin - ShowMessage('Error! No increment value provided.'); - exit; - end; - if LabelEdit.Text = '' then - begin - ShowMessage('Error! No variable label provided.'); - exit; - end; - if NoCases < Ncases then - begin - OS3MainFrm.DataGrid.RowCount := NCases + 1; - OS3MainFrm.NoCasesEdit.Text := IntToStr(NCases); - NoCases := Ncases; - end; - if NoVariables <= 0 then // a new data file - begin - OS3MainFrm.DataGrid.ColCount := 2; - OS3MainFrm.DataGrid.RowCount := Ncases + 1; - for i := 1 to Ncases do - OS3MainFrm.DataGrid.Cells[0,i] := format('Case %d',[i]); - col := 1; - DictionaryFrm.DictGrid.RowCount := 1; - DictionaryFrm.DictGrid.ColCount := 8; - DictionaryFrm.NewVar(col); - DictionaryFrm.DictGrid.Cells[1,col] := LabelEdit.Text; - OS3MainFrm.DataGrid.Cells[1,0] := LabelEdit.Text; - DictionaryFrm.DictGrid.RowCount := 2; - NoVariables := 1; - - end - else // existing data file - begin - col := NoVariables + 1; - DictionaryFrm.NewVar(col); - DictionaryFrm.DictGrid.Cells[1,col] := LabelEdit.Text; - end; - - First := StrToFloat(StartAtEdit.Text); - Increment := StrToFloat(IncrEdit.Text); - for i := 1 to Ncases do - begin - OS3MainFrm.DataGrid.Cells[col,i] := format('%8.3f',[First]); - First := First + Increment; - end; - OS3MainFrm.NoVarsEdit.Text := IntToStr(NoVariables); -end; - -procedure TGenSeqFrm.NoCasesEditExit(Sender: TObject); -begin - if RadioGroup1.ItemIndex = 1 then Ncases := StrToInt(NoCasesEdit.Text); - if (Ncases <= 0) and (RadioGroup1.ItemIndex = 1) then - begin - ShowMessage('Error! No. of cases to generate not specified.'); - exit; - end; -end; - -procedure TGenSeqFrm.RadioGroup1Click(Sender: TObject); -begin - if RadioGroup1.ItemIndex = 0 then - begin - if NoCases <= 0 then - begin - ShowMessage('Error! There are currently no cases!'); - exit; - end - else Ncases := NoCases; - end - else NoCasesEdit.SetFocus; -end; - -initialization - {$I gensequnit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/glmunit.lfm b/applications/lazstats/source_orig/glmunit.lfm deleted file mode 100644 index 0fc2b1f01..000000000 --- a/applications/lazstats/source_orig/glmunit.lfm +++ /dev/null @@ -1,966 +0,0 @@ -object GLMFrm: TGLMFrm - Left = 53 - Height = 589 - Top = 97 - Width = 857 - Caption = 'General Linear Model' - ClientHeight = 589 - ClientWidth = 857 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 6 - Height = 14 - Top = 66 - Width = 26 - Caption = 'Code' - ParentColor = False - end - object Label2: TLabel - Left = 54 - Height = 14 - Top = 66 - Width = 109 - Caption = 'Continuous Dep. Vars.' - ParentColor = False - end - object Label3: TLabel - Left = 230 - Height = 14 - Top = 68 - Width = 90 - Caption = 'Available Variables' - ParentColor = False - end - object Label4: TLabel - Left = 391 - Height = 14 - Top = 69 - Width = 122 - Caption = 'Fixed Effect Indep. Vars.' - ParentColor = False - end - object Label5: TLabel - Left = 535 - Height = 14 - Top = 67 - Width = 26 - Caption = 'Code' - ParentColor = False - end - object Label6: TLabel - Left = 57 - Height = 14 - Top = 186 - Width = 109 - Caption = 'Categorical Dep. Vars.' - ParentColor = False - end - object Label7: TLabel - Left = 56 - Height = 14 - Top = 288 - Width = 128 - Caption = 'Repeatd Meas. Dep. Vars.' - ParentColor = False - end - object Label8: TLabel - Left = 391 - Height = 14 - Top = 179 - Width = 135 - Caption = 'Random Effect Indep. Vars.' - ParentColor = False - end - object Label9: TLabel - Left = 392 - Height = 14 - Top = 290 - Width = 118 - Caption = 'Covariates (Continuous)' - ParentColor = False - end - object Label10: TLabel - Left = 393 - Height = 14 - Top = 392 - Width = 117 - Caption = 'Repeated Meas. Effects' - ParentColor = False - end - object Label11: TLabel - Left = 601 - Height = 14 - Top = 210 - Width = 131 - Caption = 'List of Defined Interactions' - ParentColor = False - end - object Label12: TLabel - Left = 312 - Height = 14 - Top = 499 - Width = 129 - Caption = 'Order of Indep. Var. Entry' - ParentColor = False - end - object StartInterBtn: TButton - Left = 598 - Height = 19 - Top = 66 - Width = 207 - Caption = 'Begin Definition of an Interaction' - OnClick = StartInterBtnClick - TabOrder = 0 - end - object VarList: TListBox - Left = 216 - Height = 297 - Top = 87 - Width = 128 - ItemHeight = 0 - MultiSelect = True - TabOrder = 1 - end - object DepContList: TListBox - Left = 58 - Height = 81 - Top = 88 - Width = 111 - ItemHeight = 0 - TabOrder = 2 - end - object FixedList: TListBox - Left = 389 - Height = 77 - Top = 86 - Width = 130 - ItemHeight = 0 - OnClick = FixedListClick - TabOrder = 3 - end - object ContDepInBtn: TBitBtn - Left = 175 - Height = 28 - Top = 90 - 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 = ContDepInBtnClick - TabOrder = 4 - end - object ContDepOutBtn: TBitBtn - Left = 176 - Height = 28 - Top = 128 - 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 = ContDepOutBtnClick - TabOrder = 5 - end - object CatDepInBtn: TBitBtn - Left = 175 - Height = 28 - Top = 192 - 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 = CatDepInBtnClick - TabOrder = 6 - end - object CatDepOutBtn: TBitBtn - Left = 175 - Height = 28 - Top = 232 - 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 = CatDepOutBtnClick - TabOrder = 7 - end - object RepDepInBtn: TBitBtn - Left = 175 - Height = 28 - Top = 304 - 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 = RepDepInBtnClick - TabOrder = 8 - end - object ReptDepOutBtn: TBitBtn - Left = 176 - Height = 28 - Top = 344 - 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 = ReptDepOutBtnClick - TabOrder = 9 - end - object FixedIndepInBtn: TBitBtn - Left = 352 - Height = 28 - Top = 90 - 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 = FixedIndepInBtnClick - TabOrder = 10 - end - object FixedIndepOutBtn: TBitBtn - Left = 352 - Height = 28 - Top = 128 - 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 = FixedIndepOutBtnClick - TabOrder = 11 - end - object RndIndepInBtn: TBitBtn - Left = 352 - Height = 28 - Top = 192 - 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 = RndIndepInBtnClick - TabOrder = 12 - end - object RndIndepOutBtn: TBitBtn - Left = 352 - Height = 28 - Top = 232 - 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 = RndIndepOutBtnClick - TabOrder = 13 - end - object CovInBtn: TBitBtn - Left = 352 - Height = 28 - Top = 304 - 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 = CovInBtnClick - TabOrder = 14 - end - object CovOutBtn: TBitBtn - Left = 352 - Height = 28 - Top = 344 - 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 = CovOutBtnClick - TabOrder = 15 - end - object DepCatList: TListBox - Left = 58 - Height = 74 - Top = 201 - Width = 104 - ItemHeight = 0 - TabOrder = 16 - end - object RepeatList: TListBox - Left = 57 - Height = 80 - Top = 303 - Width = 104 - ItemHeight = 0 - TabOrder = 17 - end - object RandomList: TListBox - Left = 392 - Height = 80 - Top = 197 - Width = 127 - ItemHeight = 0 - OnClick = RandomListClick - TabOrder = 18 - end - object CovariateList: TListBox - Left = 393 - Height = 77 - Top = 304 - Width = 125 - ItemHeight = 0 - OnClick = CovariateListClick - TabOrder = 19 - end - object Memo2: TMemo - Left = 5 - Height = 55 - Top = 408 - Width = 338 - Lines.Strings = ( - 'NOTE! Be sure to enter the dependent variable(s) first, then the' - 'independent variables. When defining interactions, enter' - 'two-way interactions first, then three-way, etc.' - ) - TabOrder = 20 - end - object RepTrtList: TListBox - Left = 392 - Height = 54 - Top = 411 - Width = 129 - ItemHeight = 0 - OnClick = RepTrtListClick - TabOrder = 21 - end - object ShowModelBtn: TButton - Left = 6 - Height = 20 - Top = 472 - Width = 66 - Caption = 'Show Model' - OnClick = ShowModelBtnClick - TabOrder = 22 - end - object ModelEdit: TEdit - Left = 79 - Height = 21 - Top = 471 - Width = 764 - TabOrder = 23 - Text = 'ModelEdit' - end - object InterDefList: TListBox - Left = 598 - Height = 70 - Top = 93 - Width = 246 - ItemHeight = 0 - TabOrder = 24 - end - object EndDefBtn: TButton - Left = 598 - Height = 20 - Top = 175 - Width = 211 - Caption = 'End Definititon of an Interaction' - OnClick = EndDefBtnClick - TabOrder = 25 - end - object InteractList: TListBox - Left = 599 - Height = 228 - Top = 232 - Width = 245 - ItemHeight = 0 - TabOrder = 26 - end - object GroupBox1: TGroupBox - Left = 8 - Height = 83 - Top = 499 - Width = 144 - Caption = 'Statistics' - ClientHeight = 65 - ClientWidth = 140 - TabOrder = 27 - object DescChk: TCheckBox - Left = 3 - Height = 17 - Top = 0 - Width = 120 - Caption = 'Means, Var.''s, S.D.''s' - TabOrder = 0 - end - object CorsChk: TCheckBox - Left = 3 - Height = 17 - Top = 21 - Width = 78 - Caption = 'Correlations' - TabOrder = 1 - end - object ResidChk: TCheckBox - Left = 3 - Height = 17 - Top = 44 - Width = 65 - Caption = 'Residuals' - TabOrder = 2 - end - end - object TypeGroup: TRadioGroup - Left = 160 - Height = 81 - Top = 499 - Width = 131 - AutoFill = True - Caption = 'Type of Coding' - 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 = 63 - ClientWidth = 127 - ItemIndex = 1 - Items.Strings = ( - 'Dummy' - 'Effect' - 'Orthogonal' - ) - TabOrder = 28 - end - object IndOrderBox: TListBox - Left = 312 - Height = 67 - Top = 513 - Width = 149 - ItemHeight = 0 - TabOrder = 29 - end - object ResetBtn: TButton - Left = 224 - Height = 33 - Top = 16 - Width = 88 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 30 - end - object CancelBtn: TButton - Left = 112 - Height = 33 - Top = 16 - Width = 88 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 31 - end - object ComputeBtn: TButton - Left = 336 - Height = 33 - Top = 16 - Width = 84 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 32 - end - object ReturnBtn: TButton - Left = 444 - Height = 33 - Top = 16 - Width = 82 - Caption = 'Return' - ModalResult = 1 - TabOrder = 33 - end - object ContDepCode: TListBox - Left = 6 - Height = 76 - Top = 89 - Width = 43 - ItemHeight = 0 - TabOrder = 34 - end - object CatDepCode: TListBox - Left = 6 - Height = 72 - Top = 199 - Width = 44 - ItemHeight = 0 - TabOrder = 35 - end - object ReptDepCode: TListBox - Left = 6 - Height = 78 - Top = 302 - Width = 44 - ItemHeight = 0 - TabOrder = 36 - end - object FixedIndepCode: TListBox - Left = 529 - Height = 74 - Top = 87 - Width = 51 - ItemHeight = 0 - TabOrder = 37 - end - object RndIndepCode: TListBox - Left = 529 - Height = 76 - Top = 200 - Width = 53 - ItemHeight = 0 - TabOrder = 38 - end - object CovariateCode: TListBox - Left = 529 - Height = 75 - Top = 306 - Width = 54 - ItemHeight = 0 - TabOrder = 39 - end - object RepTrtCode: TListBox - Left = 528 - Height = 53 - Top = 409 - Width = 56 - ItemHeight = 0 - TabOrder = 40 - end - object GroupBox2: TGroupBox - Left = 512 - Height = 78 - Top = 499 - Width = 133 - Caption = 'Options' - ClientHeight = 60 - ClientWidth = 129 - TabOrder = 41 - object ShowDesignChk: TCheckBox - Left = 4 - Height = 17 - Top = 8 - Width = 114 - Caption = 'Show Design in Grid' - TabOrder = 0 - end - end - object HelpBtn: TButton - Tag = 126 - Left = 8 - Height = 33 - Top = 16 - Width = 86 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 42 - end -end diff --git a/applications/lazstats/source_orig/glmunit.lrs b/applications/lazstats/source_orig/glmunit.lrs deleted file mode 100644 index 65ac68ce1..000000000 --- a/applications/lazstats/source_orig/glmunit.lrs +++ /dev/null @@ -1,726 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TGLMFrm','FORMDATA',[ - 'TPF0'#7'TGLMFrm'#6'GLMFrm'#4'Left'#2'5'#6'Height'#3'M'#2#3'Top'#2'a'#5'Width' - +#3'Y'#3#7'Caption'#6#20'General Linear Model'#12'ClientHeight'#3'M'#2#11'Cli' - +'entWidth'#3'Y'#3#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#8'0.9.28.2'#0#6'T' - +'Label'#6'Label1'#4'Left'#2#6#6'Height'#2#14#3'Top'#2'B'#5'Width'#2#26#7'Cap' - +'tion'#6#4'Code'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2'6'#6'He' - +'ight'#2#14#3'Top'#2'B'#5'Width'#2'm'#7'Caption'#6#21'Continuous Dep. Vars.' - +#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#230#0#6'Height'#2#14#3 - +'Top'#2'D'#5'Width'#2'Z'#7'Caption'#6#19'Available Variables'#11'ParentColor' - +#8#0#0#6'TLabel'#6'Label4'#4'Left'#3#135#1#6'Height'#2#14#3'Top'#2'E'#5'Widt' - +'h'#2'z'#7'Caption'#6#25'Fixed Effect Indep. Vars.'#11'ParentColor'#8#0#0#6 - +'TLabel'#6'Label5'#4'Left'#3#23#2#6'Height'#2#14#3'Top'#2'C'#5'Width'#2#26#7 - +'Caption'#6#4'Code'#11'ParentColor'#8#0#0#6'TLabel'#6'Label6'#4'Left'#2'9'#6 - +'Height'#2#14#3'Top'#3#186#0#5'Width'#2'm'#7'Caption'#6#22'Categorical Dep. ' - +'Vars.'#11'ParentColor'#8#0#0#6'TLabel'#6'Label7'#4'Left'#2'8'#6'Height'#2#14 - +#3'Top'#3' '#1#5'Width'#3#128#0#7'Caption'#6#24'Repeatd Meas. Dep. Vars.'#11 - +'ParentColor'#8#0#0#6'TLabel'#6'Label8'#4'Left'#3#135#1#6'Height'#2#14#3'Top' - +#3#179#0#5'Width'#3#135#0#7'Caption'#6#26'Random Effect Indep. Vars.'#11'Par' - +'entColor'#8#0#0#6'TLabel'#6'Label9'#4'Left'#3#136#1#6'Height'#2#14#3'Top'#3 - +'"'#1#5'Width'#2'v'#7'Caption'#6#23'Covariates (Continuous)'#11'ParentColor' - +#8#0#0#6'TLabel'#7'Label10'#4'Left'#3#137#1#6'Height'#2#14#3'Top'#3#136#1#5 - +'Width'#2'u'#7'Caption'#6#22'Repeated Meas. Effects'#11'ParentColor'#8#0#0#6 - +'TLabel'#7'Label11'#4'Left'#3'Y'#2#6'Height'#2#14#3'Top'#3#210#0#5'Width'#3 - +#131#0#7'Caption'#6#28'List of Defined Interactions'#11'ParentColor'#8#0#0#6 - +'TLabel'#7'Label12'#4'Left'#3'8'#1#6'Height'#2#14#3'Top'#3#243#1#5'Width'#3 - +#129#0#7'Caption'#6#26'Order of Indep. Var. Entry'#11'ParentColor'#8#0#0#7'T' - +'Button'#13'StartInterBtn'#4'Left'#3'V'#2#6'Height'#2#19#3'Top'#2'B'#5'Width' - +#3#207#0#7'Caption'#6'"Begin Definition of an Interaction'#7'OnClick'#7#18'S' - +'tartInterBtnClick'#8'TabOrder'#2#0#0#0#8'TListBox'#7'VarList'#4'Left'#3#216 - +#0#6'Height'#3')'#1#3'Top'#2'W'#5'Width'#3#128#0#10'ItemHeight'#2#0#11'Multi' - +'Select'#9#8'TabOrder'#2#1#0#0#8'TListBox'#11'DepContList'#4'Left'#2':'#6'He' - +'ight'#2'Q'#3'Top'#2'X'#5'Width'#2'o'#10'ItemHeight'#2#0#8'TabOrder'#2#2#0#0 - +#8'TListBox'#9'FixedList'#4'Left'#3#133#1#6'Height'#2'M'#3'Top'#2'V'#5'Width' - +#3#130#0#10'ItemHeight'#2#0#7'OnClick'#7#14'FixedListClick'#8'TabOrder'#2#3#0 - +#0#7'TBitBtn'#12'ContDepInBtn'#4'Left'#3#175#0#6'Height'#2#28#3'Top'#2'Z'#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#17'ContDepInBtnClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#13 - +'ContDepOutBtn'#4'Left'#3#176#0#6'Height'#2#28#3'Top'#3#128#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#18 - +'ContDepOutBtnClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'#11'CatDepInBtn'#4'Left'#3 - +#175#0#6'Height'#2#28#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'NumGlyphs'#2#0#7'OnClick'#7#16'CatDepInBtnClick'#8'Ta' - +'bOrder'#2#6#0#0#7'TBitBtn'#12'CatDepOutBtn'#4'Left'#3#175#0#6'Height'#2#28#3 - +'Top'#3#232#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#17'CatDepOutBtnClick'#8'TabOrder'#2#7#0#0#7'T' - +'BitBtn'#11'RepDepInBtn'#4'Left'#3#175#0#6'Height'#2#28#3'Top'#3'0'#1#5'Widt' - +'h'#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#16'RepDepInBtnClick'#8'TabOrder'#2#8#0#0#7'TBitBtn'#13'ReptDepOu' - +'tBtn'#4'Left'#3#176#0#6'Height'#2#28#3'Top'#3'X'#1#5'Width'#2' '#10'Glyph.D' - +'ata'#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#18'ReptDepOutBtnC' - +'lick'#8'TabOrder'#2#9#0#0#7'TBitBtn'#15'FixedIndepInBtn'#4'Left'#3'`'#1#6'H' - +'eight'#2#28#3'Top'#2'Z'#5'Width'#2' '#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 - +#255#255#255#0#255#255#255#0#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#20'FixedIndepInBtnClick'#8'TabOrder'#2#10#0#0 - +#7'TBitBtn'#16'FixedIndepOutBtn'#4'Left'#3'`'#1#6'Height'#2#28#3'Top'#3#128#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#21'FixedIndepOutBtnClick'#8'TabOrder'#2#11#0#0#7'TBitB' - +'tn'#13'RndIndepInBtn'#4'Left'#3'`'#1#6'Height'#2#28#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#255#255#255#0#255#255#255#0#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#18 - +'RndIndepInBtnClick'#8'TabOrder'#2#12#0#0#7'TBitBtn'#14'RndIndepOutBtn'#4'Le' - +'ft'#3'`'#1#6'Height'#2#28#3'Top'#3#232#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#19'RndIndepOutBtn' - +'Click'#8'TabOrder'#2#13#0#0#7'TBitBtn'#8'CovInBtn'#4'Left'#3'`'#1#6'Height' - +#2#28#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#255 - +#255#255#0#255#255#255#0#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'CovInBtnClick'#8'TabOrder'#2#14#0#0#7'TBit' - +'Btn'#9'CovOutBtn'#4'Left'#3'`'#1#6'Height'#2#28#3'Top'#3'X'#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#14 - +'CovOutBtnClick'#8'TabOrder'#2#15#0#0#8'TListBox'#10'DepCatList'#4'Left'#2':' - +#6'Height'#2'J'#3'Top'#3#201#0#5'Width'#2'h'#10'ItemHeight'#2#0#8'TabOrder'#2 - +#16#0#0#8'TListBox'#10'RepeatList'#4'Left'#2'9'#6'Height'#2'P'#3'Top'#3'/'#1 - +#5'Width'#2'h'#10'ItemHeight'#2#0#8'TabOrder'#2#17#0#0#8'TListBox'#10'Random' - +'List'#4'Left'#3#136#1#6'Height'#2'P'#3'Top'#3#197#0#5'Width'#2#127#10'ItemH' - +'eight'#2#0#7'OnClick'#7#15'RandomListClick'#8'TabOrder'#2#18#0#0#8'TListBox' - +#13'CovariateList'#4'Left'#3#137#1#6'Height'#2'M'#3'Top'#3'0'#1#5'Width'#2'}' - +#10'ItemHeight'#2#0#7'OnClick'#7#18'CovariateListClick'#8'TabOrder'#2#19#0#0 - +#5'TMemo'#5'Memo2'#4'Left'#2#5#6'Height'#2'7'#3'Top'#3#152#1#5'Width'#3'R'#1 - +#13'Lines.Strings'#1#6'ANOTE! Be sure to enter the dependent variable(s) fi' - +'rst, then the'#6'9independent variables. When defining interactions, enter' - +#6'0two-way interactions first, then three-way, etc.'#0#8'TabOrder'#2#20#0#0 - +#8'TListBox'#10'RepTrtList'#4'Left'#3#136#1#6'Height'#2'6'#3'Top'#3#155#1#5 - +'Width'#3#129#0#10'ItemHeight'#2#0#7'OnClick'#7#15'RepTrtListClick'#8'TabOrd' - +'er'#2#21#0#0#7'TButton'#12'ShowModelBtn'#4'Left'#2#6#6'Height'#2#20#3'Top'#3 - +#216#1#5'Width'#2'B'#7'Caption'#6#10'Show Model'#7'OnClick'#7#17'ShowModelBt' - +'nClick'#8'TabOrder'#2#22#0#0#5'TEdit'#9'ModelEdit'#4'Left'#2'O'#6'Height'#2 - +#21#3'Top'#3#215#1#5'Width'#3#252#2#8'TabOrder'#2#23#4'Text'#6#9'ModelEdit'#0 - +#0#8'TListBox'#12'InterDefList'#4'Left'#3'V'#2#6'Height'#2'F'#3'Top'#2']'#5 - +'Width'#3#246#0#10'ItemHeight'#2#0#8'TabOrder'#2#24#0#0#7'TButton'#9'EndDefB' - +'tn'#4'Left'#3'V'#2#6'Height'#2#20#3'Top'#3#175#0#5'Width'#3#211#0#7'Caption' - +#6'!End Definititon of an Interaction'#7'OnClick'#7#14'EndDefBtnClick'#8'Tab' - +'Order'#2#25#0#0#8'TListBox'#12'InteractList'#4'Left'#3'W'#2#6'Height'#3#228 - +#0#3'Top'#3#232#0#5'Width'#3#245#0#10'ItemHeight'#2#0#8'TabOrder'#2#26#0#0#9 - +'TGroupBox'#9'GroupBox1'#4'Left'#2#8#6'Height'#2'S'#3'Top'#3#243#1#5'Width'#3 - +#144#0#7'Caption'#6#10'Statistics'#12'ClientHeight'#2'A'#11'ClientWidth'#3 - +#140#0#8'TabOrder'#2#27#0#9'TCheckBox'#7'DescChk'#4'Left'#2#3#6'Height'#2#17 - +#3'Top'#2#0#5'Width'#2'x'#7'Caption'#6#21'Means, Var.''s, S.D.''s'#8'TabOrde' - +'r'#2#0#0#0#9'TCheckBox'#7'CorsChk'#4'Left'#2#3#6'Height'#2#17#3'Top'#2#21#5 - +'Width'#2'N'#7'Caption'#6#12'Correlations'#8'TabOrder'#2#1#0#0#9'TCheckBox'#8 - +'ResidChk'#4'Left'#2#3#6'Height'#2#17#3'Top'#2','#5'Width'#2'A'#7'Caption'#6 - +#9'Residuals'#8'TabOrder'#2#2#0#0#0#11'TRadioGroup'#9'TypeGroup'#4'Left'#3 - +#160#0#6'Height'#2'Q'#3'Top'#3#243#1#5'Width'#3#131#0#8'AutoFill'#9#7'Captio' - +'n'#6#14'Type of Coding'#28'ChildSizing.LeftRightSpacing'#2#6#28'ChildSizing' - +'.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHomogenous' - +'ChildResize'#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'#2'?'#11 - +'ClientWidth'#2#127#9'ItemIndex'#2#1#13'Items.Strings'#1#6#5'Dummy'#6#6'Effe' - +'ct'#6#10'Orthogonal'#0#8'TabOrder'#2#28#0#0#8'TListBox'#11'IndOrderBox'#4'L' - +'eft'#3'8'#1#6'Height'#2'C'#3'Top'#3#1#2#5'Width'#3#149#0#10'ItemHeight'#2#0 - +#8'TabOrder'#2#29#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#224#0#6'Height'#2'!'#3 - +'Top'#2#16#5'Width'#2'X'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick' - +#8'TabOrder'#2#30#0#0#7'TButton'#9'CancelBtn'#4'Left'#2'p'#6'Height'#2'!'#3 - +'Top'#2#16#5'Width'#2'X'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrd' - +'er'#2#31#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3'P'#1#6'Height'#2'!'#3'Top' - +#2#16#5'Width'#2'T'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick' - +#8'TabOrder'#2' '#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#188#1#6'Height'#2'!' - +#3'Top'#2#16#5'Width'#2'R'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabO' - +'rder'#2'!'#0#0#8'TListBox'#11'ContDepCode'#4'Left'#2#6#6'Height'#2'L'#3'Top' - ,#2'Y'#5'Width'#2'+'#10'ItemHeight'#2#0#8'TabOrder'#2'"'#0#0#8'TListBox'#10'C' - +'atDepCode'#4'Left'#2#6#6'Height'#2'H'#3'Top'#3#199#0#5'Width'#2','#10'ItemH' - +'eight'#2#0#8'TabOrder'#2'#'#0#0#8'TListBox'#11'ReptDepCode'#4'Left'#2#6#6'H' - +'eight'#2'N'#3'Top'#3'.'#1#5'Width'#2','#10'ItemHeight'#2#0#8'TabOrder'#2'$' - +#0#0#8'TListBox'#14'FixedIndepCode'#4'Left'#3#17#2#6'Height'#2'J'#3'Top'#2'W' - +#5'Width'#2'3'#10'ItemHeight'#2#0#8'TabOrder'#2'%'#0#0#8'TListBox'#12'RndInd' - +'epCode'#4'Left'#3#17#2#6'Height'#2'L'#3'Top'#3#200#0#5'Width'#2'5'#10'ItemH' - +'eight'#2#0#8'TabOrder'#2'&'#0#0#8'TListBox'#13'CovariateCode'#4'Left'#3#17#2 - +#6'Height'#2'K'#3'Top'#3'2'#1#5'Width'#2'6'#10'ItemHeight'#2#0#8'TabOrder'#2 - +''''#0#0#8'TListBox'#10'RepTrtCode'#4'Left'#3#16#2#6'Height'#2'5'#3'Top'#3 - +#153#1#5'Width'#2'8'#10'ItemHeight'#2#0#8'TabOrder'#2'('#0#0#9'TGroupBox'#9 - +'GroupBox2'#4'Left'#3#0#2#6'Height'#2'N'#3'Top'#3#243#1#5'Width'#3#133#0#7'C' - +'aption'#6#7'Options'#12'ClientHeight'#2'<'#11'ClientWidth'#3#129#0#8'TabOrd' - +'er'#2')'#0#9'TCheckBox'#13'ShowDesignChk'#4'Left'#2#4#6'Height'#2#17#3'Top' - +#2#8#5'Width'#2'r'#7'Caption'#6#19'Show Design in Grid'#8'TabOrder'#2#0#0#0#0 - +#7'TButton'#7'HelpBtn'#3'Tag'#2'~'#4'Left'#2#8#6'Height'#2'!'#3'Top'#2#16#5 - +'Width'#2'V'#7'Caption'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2 - +'*'#0#0#0 -]); diff --git a/applications/lazstats/source_orig/glmunit.pas b/applications/lazstats/source_orig/glmunit.pas deleted file mode 100644 index da89e8e14..000000000 --- a/applications/lazstats/source_orig/glmunit.pas +++ /dev/null @@ -1,3297 +0,0 @@ -unit GLMUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - MainUnit, MatrixLib, Globals, OutPutUnit, - Math, DataProcs, FunctionsLib, DictionaryUnit, StdCtrls, Buttons, ExtCtrls, - contexthelpunit; - -type - - { TGLMFrm } - - TGLMFrm = class(TForm) - HelpBtn: TButton; - ShowDesignChk: TCheckBox; - ContDepInBtn: TBitBtn; - GroupBox2: TGroupBox; - RndIndepOutBtn: TBitBtn; - CovInBtn: TBitBtn; - CovOutBtn: TBitBtn; - ContDepOutBtn: TBitBtn; - CatDepInBtn: TBitBtn; - CatDepOutBtn: TBitBtn; - RepDepInBtn: TBitBtn; - ReptDepOutBtn: TBitBtn; - FixedIndepInBtn: TBitBtn; - FixedIndepOutBtn: TBitBtn; - RndIndepInBtn: TBitBtn; - ContDepCode: TListBox; - CatDepCode: TListBox; - ReptDepCode: TListBox; - FixedIndepCode: TListBox; - RndIndepCode: TListBox; - CovariateCode: TListBox; - RepTrtCode: TListBox; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - DescChk: TCheckBox; - CorsChk: TCheckBox; - Label12: TLabel; - IndOrderBox: TListBox; - TypeGroup: TRadioGroup; - ResidChk: TCheckBox; - EndDefBtn: TButton; - GroupBox1: TGroupBox; - InterDefList: TListBox; - Label11: TLabel; - InteractList: TListBox; - ShowModelBtn: TButton; - DepContList: TListBox; - ModelEdit: TEdit; - FixedList: TListBox; - Label10: TLabel; - Label6: TLabel; - DepCatList: TListBox; - Label7: TLabel; - Label8: TLabel; - Label9: TLabel; - CovariateList: TListBox; - RepTrtList: TListBox; - Memo2: TMemo; - RandomList: TListBox; - RepeatList: TListBox; - VarList: TListBox; - StartInterBtn: TButton; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - Label5: TLabel; - procedure CatDepInBtnClick(Sender: TObject); - procedure CatDepOutBtnClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure ContDepInBtnClick(Sender: TObject); - procedure ContDepOutBtnClick(Sender: TObject); - procedure CovariateListClick(Sender: TObject); - procedure CovInBtnClick(Sender: TObject); - procedure CovOutBtnClick(Sender: TObject); - procedure EndDefBtnClick(Sender: TObject); - procedure FixedIndepInBtnClick(Sender: TObject); - procedure FixedIndepOutBtnClick(Sender: TObject); - procedure FixedListClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure RandomListClick(Sender: TObject); - procedure RepDepInBtnClick(Sender: TObject); - procedure ReptDepOutBtnClick(Sender: TObject); - procedure RepTrtListClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure RndIndepInBtnClick(Sender: TObject); - procedure RndIndepOutBtnClick(Sender: TObject); - procedure ShowModelBtnClick(Sender: TObject); - procedure StartInterBtnClick(Sender: TObject); - private - { private declarations } - IntDef : boolean; - DefLine : integer; // number of interaction terms - 1 - NoInterDefs : integer; // number of interactions in the model - NContDep : integer; // no. of continuous dependent variables - NCatDep : integer; // no. of categorical dependent variables - NReptDep : integer; // no. of repeated dependent variables - NFixedIndep : integer; // no. of fixed effect independent variables - NRndIndep : integer; // no. of random effect independent variables - NCovIndep : integer; // no. of covariate independent variables - model : integer; // 1 if multreg, 2 if canonical - novars : integer; // total no. of vectors in analysis grid - totalobs : integer; // total no. of data grid observations - gencount, oldcount : integer; // no. columns generated in datagrid - ContDepID : IntDyneVec; // grid col. no.s of continuous dependent var.s - CatDepID : IntDyneVec; // grid col. no.s of categorical dependent var.s - ReptDepID : IntDyneVec; // grid col. no.s of repeated dep. variables - FixedIndepID : IntDyneVec; // grid col. no.s of fixed independent var.s - RndIndepID : IntDyneVec; // grid col. no.s of random independent var.s - CovIndepID : IntDyneVec; // grid col. no.s of covariates - DataGrid : DblDyneMat; // array for generated vectors and values - GenLabels : StrDyneVec; // array of labels for data matrix - ContDepPos : IntDyneVec; // datagrid position of continuous variables - CatDepPos : IntDyneVec; // beginning datagrid position of categorical var. vectors - ReptDepPos : IntDyneVec; // datagrid position of repeated variable - ReptIndepPos : IntDyneVec; // datagrid pos. of subject vectors - ReptTrtPos : IntDyneVec; // datagrid pos. of repeated treatment vectors - FixedIndepPos : IntDyneVec; // datagrid position of first vector for cat indep. var. - RndIndepPos : IntDyneVec; // datagrid position of first vector for rnd. indep. var. - CovIndepPos : IntDyneVec; // datagrid positions of covariates - InteractPos : IntDyneVec; // datagrid positions of interactions - Labels : StrDyneVec; // labels for the analyses - ColSelected : IntDyneVec; // datagrid columns of variables in the analysis - NFixVecIndep : IntDyneVec; // no. of vectors for fixed independent vars. - NRndVecIndep : IntDyneVec; // no. of vectors for random indep. vars. - NFixVecDep : IntDyneVec; // no. of vectors for fixed dependent vars. - NInteractVecs : IntDyneVec; // no. of vectors for each interaction - OldR2 : double; // Previously obtained R^2 for stepwise addition - R2 : double; // Squared mult. R obtained from RegAnal - rmatrix : DblDyneMat; // correlation matrix - indmatrix : DblDyneMat; // correlations among independent variable - rxy : DblDyneVec; // correlations between dependent and independent var.s - invmatrix : DblDyneMat; // inverse of independent correlations - means : DblDyneVec; // means of variables - Vars : DblDyneVec; // variances of variables - StdDevs : DblDyneVec; // standard deviations of variables - B : DblDyneVec; // raw regression coefficients - Beta : DblDyneVec; // standardized regression coefficients - workmat : DblDyneMat; // work matrix for inverse referenced at 1 (not zero) - TypeISS : DblDyneVec; // Incremental SS - TypeIISS : DblDyneVec; // Unique SS - TypeIMS : DblDyneVec; // Incremental SS - TypeIIMS : DblDyneVec; // Unique MS - TypeIDF1 : DblDyneVec; // numerator d.f. for incremental ms - TypeIIDF1 : DblDyneVec; // numerator d.f. for unique ms - TypeIDF2 : DblDyneVec; // denominator d.f. for incremental ms - TypeIIDF2 : DblDyneVec; // denominator d.f. for unique ms - TypeIF : DblDyneVec; // F for incremental ms - TypeIProb : DblDyneVec; // Probability of F for incremental ms - TypeIIF : DblDyneVec; // F for unique MS - TypeIIProb : DblDyneVec; // Probability for unique ms - - procedure AllocateIDMem; - procedure GetIDs; - function GetVarCount : integer; - procedure AllocateGridMem; - procedure DeallocateGridMem; - procedure DeallocateIDMem; - procedure DummyCodes(min : integer; max : integer; VAR CodePattern : IntDyneMat); - procedure EffectCodes(min : integer; max : integer; VAR CodePattern : IntDyneMat); - procedure OrthogCodes(min : integer; max : integer; VAR CodePattern : IntDyneMat); - procedure RegAnal(Nentered : integer); - procedure PartIEntry; - procedure PartIIEntry; - procedure ModelIAnalysis; - procedure ModelIIAnalysis; - procedure ModelIIIAnalysis; - function CntIntActVecs(linestr : string) : integer; - procedure GenInterVecs(linestr : string); - procedure CanCor(NLeft : integer; NRight : integer; - GridPlace : IntDyneVec); - - public - { public declarations } - end; - -var - GLMFrm: TGLMFrm; - -implementation - -{ TGLMFrm } - -procedure TGLMFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Items.Clear; - DepCatList.Items.Clear; - DepContList.Items.Clear; - RepeatList.Items.Clear; - RepTrtList.Items.Clear; - RepTrtCode.Items.Clear; - FixedList.Items.Clear; - RandomList.Items.Clear; - CovariateList.Items.Clear; - InterDefList.Items.Clear; - InteractList.Items.Clear; - ContDepCode.Items.Clear; - CatDepCode.Items.Clear; - ReptDepCode.Items.Clear; - FixedIndepCode.Items.Clear; - RndIndepCode.Items.Clear; - CovariateCode.Items.Clear; - IndOrderBox.Items.Clear; - ModelEdit.Text := ''; - NContDep := 0; - NCatDep := 0; - NReptDep := 0; - NFixedIndep := 0; - NRndIndep := 0; - NCovIndep := 0; - DescChk.Checked := false; - CorsChk.Checked := false; - ResidChk.Checked := false; - TypeGroup.ItemIndex := 0; - ContDepOutBtn.Visible := false; - CatDepOutBtn.Visible := false; - ReptDepOutBtn.Visible := false; - FixedIndepOutBtn.Visible := false; - RndIndepOutBtn.Visible := false; - CovOutBtn.Visible := false; - IntDef := false; - DefLine := 0; - NoInterDefs := 0; - for i := 1 to NoVariables do VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TGLMFrm.RndIndepInBtnClick(Sender: TObject); -var - index : integer; - codestr : string; - -begin - index := VarList.ItemIndex; - if index >= 0 then - begin - RandomList.Items.Add(VarList.Items.Strings[index]); - VarList.Items.Delete(index); - NRndIndep := NRndIndep + 1; - codestr := format('IR%d',[NRndIndep]); - RndIndepCode.Items.Add(codestr); - IndOrderBox.Items.Add(codestr); - RndIndepOutBtn.Visible := true; - end; -end; - -procedure TGLMFrm.RndIndepOutBtnClick(Sender: TObject); -var - i, index : integer; - cellstring : string; - -begin - index := RandomList.ItemIndex; - if index >= 0 then - begin - VarList.Items.Add(RandomList.Items.Strings[index]); - RandomList.Items.Delete(index); - cellstring := RndIndepCode.Items.Strings[index]; - RndIndepCode.Items.Delete(index); - for i := 0 to IndOrderBox.Items.Count - 1 do - if cellstring = IndOrderBox.Items.Strings[i] then - IndOrderBox.Items.Delete(i); - NRndIndep := NRndIndep - 1; - if RandomList.ItemIndex < 0 then RndIndepOutBtn.Visible := false; - end; -end; - -procedure TGLMFrm.ShowModelBtnClick(Sender: TObject); -var - i : integer; - codestr : string; - -begin - // add all dependent variable codes - if NContDep > 0 then - begin - for i := 0 to NContDep - 1 do - begin - ModelEdit.Text := ModelEdit.Text + ContDepCode.Items.Strings[i]; - if i < NContDep - 1 then ModelEdit.Text := ModelEdit.Text + ' + '; - end; - end; - if NCatDep > 0 then - begin - if ModelEdit.Text <> '' then ModelEdit.Text := ModelEdit.Text + ' + '; - for i := 0 to NCatDep - 1 do - begin - ModelEdit.Text := ModelEdit.Text + CatDepCode.Items.Strings[i]; - if i < NCatDep - 1 then ModelEdit.Text := ModelEdit.Text + ' + '; - end; - end; - if NReptDep > 0 then - begin - if ModelEdit.Text <> '' then ModelEdit.Text := ModelEdit.Text + ' + '; - ModelEdit.Text := ModelEdit.Text + 'Rep'; - end; - - // now add the independent variable codes - ModelEdit.Text := ModelEdit.Text + ' = '; - if NFixedIndep > 0 then - begin - for i := 0 to NFixedIndep - 1 do - begin - ModelEdit.Text := ModelEdit.Text + FixedIndepCode.Items.Strings[i]; - if i < NFixedIndep - 1 then - ModelEdit.Text := ModelEdit.Text + ' + '; - end; - end; - if NRndIndep > 0 then - begin - if NFixedIndep > 0 then ModelEdit.Text := ModelEdit.Text + ' + '; - for i := 0 to NRndIndep - 1 do - begin - ModelEdit.Text := ModelEdit.Text + RndIndepCode.Items.Strings[i]; - if i < NRndIndep - 1 then - ModelEdit.Text := ModelEdit.Text + ' + '; - end; - end; - if NCovIndep > 0 then - begin - if (NFixedIndep > 0) or (NRndIndep > 0) then - ModelEdit.Text := ModelEdit.Text + ' + '; - for i := 0 to NCovIndep - 1 do - begin - ModelEdit.Text := ModelEdit.Text + CovariateCode.Items.Strings[i]; - if i < NCovIndep - 1 then - ModelEdit.Text := ModelEdit.Text + ' + '; - end; - end; - - // now add interactions - if NoInterDefs > 0 then - begin - ModelEdit.Text := ModelEdit.Text + ' + '; - for i := 0 to NoInterDefs - 1 do - begin - ModelEdit.Text := ModelEdit.Text + InterActList.Items.Strings[i]; - if i < NoInterDefs - 1 then - ModelEdit.Text := ModelEdit.Text + ' + '; - end; - end; - - // Now add person vectors - if NReptDep > 0 then - begin - ModelEdit.Text := ModelEdit.Text + ' + '; - for i := 0 to NReptDep - 1 do - begin - codestr := format('IP%d',[i+1]); - ModelEdit.Text := ModelEdit.Text + codestr; - if i < NReptDep - 1 then - ModelEdit.Text := ModelEdit.Text + ' + '; - end; - end; - // Now add repeated treatments - if NReptDep > 0 then - begin - ModelEdit.Text := ModelEdit.Text + ' + '; - for i := 0 to NReptDep - 1 do - begin - codestr := format('IR%d',[i+1]); - ModelEdit.Text := ModelEdit.Text + codestr; - if i < NReptDep - 1 then - ModelEdit.Text := ModelEdit.Text + ' + '; - end; - end; -end; - -procedure TGLMFrm.StartInterBtnClick(Sender: TObject); -begin - IntDef := true; -end; - -procedure TGLMFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TGLMFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TGLMFrm.RandomListClick(Sender: TObject); -VAR index : integer; -begin - if IntDef then - begin - index := RandomList.ItemIndex; - InterDefList.Items.Add(RndIndepCode.Items.Strings[index]); - DefLine := DefLine + 1; // counter for number of terms - 1 - end; -end; - -procedure TGLMFrm.RepDepInBtnClick(Sender: TObject); -var - index, i : integer; - codestr : string; - -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - RepeatList.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - NReptDep := NReptDep + 1; - codestr := format('DR%d',[NReptDep]); - if NReptDep = 1 then - begin - ReptDepCode.Items.Add(codestr); - codestr := format('IP%d',[NReptDep]); - IndOrderBox.Items.Add(codestr); - codestr := format('IR%d',[NReptDep]); - IndOrderBox.Items.Add(codestr); - RepTrtCode.Items.Add(codestr); - codestr := format('Rep.Trt.%d',[NReptDep]); - RepTrtList.Items.Add(codestr); - end; - index := index - 1; - i := 0; - end - else i := i + 1; - end; - ReptDepOutBtn.Visible := true; -end; - -procedure TGLMFrm.ReptDepOutBtnClick(Sender: TObject); -VAR index : integer; -begin - index := RepeatList.ItemIndex; - if index >= 0 then - begin - VarList.Items.Add(RepeatList.Items.Strings[index]); - RepeatList.Items.Delete(index); - ReptDepCode.Items.Delete(index); - NReptDep := NReptDep - 1; - if RepeatList.ItemIndex < 0 then ReptDepOutBtn.Visible := false; - end; -end; - -procedure TGLMFrm.RepTrtListClick(Sender: TObject); -VAR index : integer; -begin - if IntDef then - begin - index := RepTrtList.ItemIndex; - InterDefList.Items.Add(RepTrtCode.Items.Strings[index]); - DefLine := DefLine + 1; // counter for number of terms - end; -end; - -procedure TGLMFrm.ContDepInBtnClick(Sender: TObject); -var - index : integer; - codestr : string; - -begin - index := VarList.ItemIndex; - if index >= 0 then - begin - DepContList.Items.Add(VarList.Items.Strings[index]); - VarList.Items.Delete(index); - ContDepOutBtn.Visible := true; - NContDep := NContDep + 1; - codestr := format('DC%d',[NContDep]); - ContDepCode.Items.Add(codestr); - end; -end; - -procedure TGLMFrm.CatDepInBtnClick(Sender: TObject); -var - index : integer; - codestr : string; - -begin - index := VarList.ItemIndex; - if index >= 0 then - begin - DepCatList.Items.Add(VarList.Items.Strings[index]); - VarList.Items.Delete(index); - NCatDep := NCatDep + 1; - codestr := format('DF%d',[NCatDep]); - CatDepCode.Items.Add(codestr); - CatDepOutBtn.Visible := true; - end; -end; - -procedure TGLMFrm.CatDepOutBtnClick(Sender: TObject); -VAR index : integer; -begin - index := DepCatList.ItemIndex; - if index >= 0 then - begin - VarList.Items.Add(DepCatList.Items.Strings[index]); - DepCatList.Items.Delete(index); - CatDepCode.Items.Delete(index); - NCatDep := NCatDep - 1; - if DepCatList.ItemIndex < 0 then CatDepOutBtn.Visible := false; - end; -end; - -procedure TGLMFrm.ComputeBtnClick(Sender: TObject); -var - i, j : integer; // no. of variables in the analysis - cellstring : string; - -begin - if (NContDep > 0) and (NReptDep > 0) then - begin - ShowMessage('ERROR! One cannot have both continuous and repeated dependent variables!'); - exit; - end; - gencount := 0; // counter for generated variables - totalobs := 0; // initialize total no. of observations in data grid - AllocateIDMem; // get heap space for arrays - GetIDs; // get var. no.s of dependent and independent variables - novars := GetVarCount; // get total no. of variables to generate - AllocateGridMem; // create data array for values and codes - // Note, the Data Grid first subscript is row (subject) and second the var. - if (NCatDep > 0) or (NContDep > 1) then model := 2 - else model := 1; // use mult.reg for model 1, canonical reg. for model 2 - if NReptDep > 0 then model := 3; - - // This procedure first creates the vectors of dependent variables then the - // vectors for independent variables. A case no. is placed in the first - // column of a data grid followed by the dependent variables and then the - // independent variables. If multiple dependent variables are created, the - // type of analysis is a canonical correlation analysis, otherwise a - // multiple regression analysis. Analyses are performed to obtain both - // Type I SS's and Type II SS's (stepwise addition and unique contribution) - - // PART I. ENTRY OF DEPENDENT VARIABLES (AND OBSERVATION NO.) - // Place case labels in data grid and for repeated measures, spread out - // the repeated measures over NoCases * No. repeated measures - PartIEntry; - - // PART II. CREATION OF INDEPENDENT VARIABLE VECTORS - // First, if there are repeated measures, generate (n - 1) person vectors - PartIIEntry; - - // Now, do the analyses - if model = 1 then ModelIAnalysis; // models with 1 dependent variable - if model = 2 then ModelIIAnalysis; // models with 2 or more dependent var.s - if model = 3 then ModelIIIAnalysis; // Repeated measures designs - - // Place generated data into the main form's grid - if ShowDesignChk.Checked then - begin - if NoVariables < gencount then - begin - j := NoVariables; - for i := j+1 to gencount do - begin - DictionaryFrm.NewVar(j); - end; - end; - OS3MainFrm.DataGrid.RowCount := totalobs+1; - for i := 1 to totalobs do - for j := 1 to gencount do - OS3MainFrm.DataGrid.Cells[j,i] := FloatToStr(DataGrid[i-1,j-1]); - for i := 1 to gencount do - begin - OS3MainFrm.DataGrid.Cells[i,0] := GenLabels[i-1]; - DictionaryFrm.Defaults(Self,i); - DictionaryFrm.DictGrid.Cells[1,i] := GenLabels[i-1]; - end; - for i := 1 to totalobs do - begin - cellstring := format('CASE%d',[i]); - OS3MainFrm.DataGrid.Cells[0,i] := cellstring; - end; - OS3MainFrm.NoCasesEdit.Text := IntToStr(totalobs); - OS3MainFrm.NoVarsEdit.Text := IntToStr(gencount); - NoVariables := gencount; - NoCases := totalobs; - OS3MainFrm.FileNameEdit.Text := ''; - end; - - DeallocateGridMem; // free up heap allocated to data array - DeallocateIDMem; // free up heap space -end; - -procedure TGLMFrm.ContDepOutBtnClick(Sender: TObject); -VAR index : integer; -begin - index := DepContList.ItemIndex; - if index >= 0 then - begin - VarList.Items.Add(DepContList.Items.Strings[index]); - DepContList.Items.Delete(index); - ContDepCode.Items.Delete(index); - NContDep := NContDep - 1; - if DepContList.ItemIndex < 0 then ContDepOutBtn.Visible := false; - end; -end; - -procedure TGLMFrm.CovariateListClick(Sender: TObject); -VAR index : integer; -begin - if IntDef then - begin - index := CovariateList.ItemIndex; - InterDefList.Items.Add(CovariateCode.Items.Strings[index]); - DefLine := DefLine + 1; // counter for number of terms - 1 - end; -end; - -procedure TGLMFrm.CovInBtnClick(Sender: TObject); -var - index : integer; - codestr : string; - -begin - index := VarList.ItemIndex; - if index >= 0 then - begin - CovariateList.Items.Add(VarList.Items.Strings[index]); - VarList.Items.Delete(index); - NCovIndep := NCovIndep + 1; - codestr := format('IC%d',[NCovIndep]); - CovariateCode.Items.Add(codestr); - IndOrderBox.Items.Add(codestr); - CovOutBtn.Visible := true; - end; -end; - -procedure TGLMFrm.CovOutBtnClick(Sender: TObject); -var - i, index : integer; - cellstring : string; - -begin - index := CovariateList.ItemIndex; - if index >= 0 then - begin - VarList.Items.Add(CovariateList.Items.Strings[index]); - CovariateList.Items.Delete(index); - cellstring := CovariateCode.Items.Strings[index]; - CovariateCode.Items.Delete(index); - for i := 0 to IndOrderBox.Items.Count - 1 do - if cellstring = IndOrderBox.Items.Strings[i] then - IndOrderBox.Items.Delete(i); - NCovIndep := NCovIndep - 1; - if CovariateList.ItemIndex < 0 then CovOutBtn.Visible := false; - end; -end; - -procedure TGLMFrm.EndDefBtnClick(Sender: TObject); -var - index : integer; - nolines : integer; - LineStr : string; - -begin - LineStr := ''; - nolines := InterDefList.Items.Count; - if nolines > 0 then - begin - for index := 0 to nolines - 1 do - begin - LineStr := LineStr + InterDefList.Items.Strings[index]; - if index < nolines - 1 then LineStr := LineStr + ' * '; - end; - InteractList.Items.Add(LineStr); - IndOrderBox.Items.Add(LineStr); - NoInterDefs := NoInterDefs + 1; - end; - InterDefList.Clear; -end; - -procedure TGLMFrm.FixedIndepInBtnClick(Sender: TObject); -var - index, i : integer; - codestr : string; - -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - FixedList.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - NFixedIndep := NFixedIndep + 1; - codestr := format('IF%d',[NFixedIndep]); - FixedIndepCode.Items.Add(codestr); - IndOrderBox.Items.Add(codestr); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - FixedIndepOutBtn.Visible := true; -end; - -procedure TGLMFrm.FixedIndepOutBtnClick(Sender: TObject); -var - i, index : integer; - cellstring : string; - -begin - index := FixedList.ItemIndex; - if index >= 0 then - begin - VarList.Items.Add(FixedList.Items.Strings[index]); - FixedList.Items.Delete(index); - cellstring := FixedIndepCode.Items.Strings[index]; - FixedIndepCode.Items.Delete(index); - NFixedIndep := NFixedIndep - 1; - for i := 0 to IndOrderBox.Items.Count - 1 do - if IndOrderBox.Items.Strings[i] = cellstring then - IndOrderBox.Items.Delete(i); - if FixedList.ItemIndex < 0 then FixedIndepOutBtn.Visible := false; - end; -end; - -procedure TGLMFrm.FixedListClick(Sender: TObject); -VAR index : integer; -begin - if IntDef then - begin - index := FixedList.ItemIndex; - InterDefList.Items.Add(FixedIndepCode.Items.Strings[index]); - DefLine := DefLine + 1; // counter for number of terms - end; -end; - -procedure TGLMFrm.AllocateIDMem; -begin - if NContDep > 0 then - begin - SetLength(ContDepID,NContDep); - SetLength(ContDepPos,NContDep); - end; - if NCatDep > 0 then - begin - SetLength(CatDepID,NCatDep); - SetLength(CatDepPos,NCatDep); - SetLength(NFixVecDep,NCatDep); - end; - if NReptDep > 0 then - begin - SetLength(ReptDepID,NReptDep); - SetLength(ReptDepPos,NReptDep); - SetLength(ReptIndepPos,NoCases); - SetLength(ReptTrtPos,NReptDep); - end; - if NFixedIndep > 0 then - begin - SetLength(FixedIndepID,NFixedIndep); - SetLength(FixedIndepPos,NFixedIndep); - SetLength(NFixVecIndep,NFixedIndep); - end; - if NRndIndep > 0 then - begin - SetLength(RndIndepID,NRndIndep); - SetLength(RndIndepPos,NRndIndep); - SetLength(NRndVecIndep,NRndIndep); - end; - if NCovIndep > 0 then - begin - SetLength(CovIndepID,NCovIndep); - SetLength(CovIndepPos,NCovIndep); - end; - if NoInterDefs > 0 then - begin - SetLength(NInteractVecs,NoInterDefs); - SetLength(InteractPos,NoInterDefs); - end; -end; - -procedure TGLMFrm.GetIDs; -var - cellstring : string; - i, j : integer; - -begin - if NContDep > 0 then - begin - for i := 0 to NContDep - 1 do - begin - cellstring := DepContList.Items.Strings[i]; - for j := 1 to NoVariables do - begin - if cellstring = OS3MainFrm.DataGrid.Cells[j,0] then - ContDepID[i] := j; - end; - end; - end; - if NCatDep > 0 then - begin - for i := 0 to NCatDep - 1 do - begin - cellstring := DepCatList.Items.Strings[i]; - for j := 1 to NoVariables do - begin - if cellstring = OS3MainFrm.DataGrid.Cells[j,0] then - CatDepID[i] := j; - end; - end; - end; - if NReptDep > 0 then - begin - for i := 0 to NReptDep - 1 do - begin - cellstring := RepeatList.Items.Strings[i]; - for j := 1 to NoVariables do - begin - if cellstring = OS3MainFrm.DataGrid.Cells[j,0] then - ReptDepID[i] := j; - end; - end; - end; - if NFixedIndep > 0 then - begin - for i := 0 to NFixedIndep - 1 do - begin - cellstring := FixedList.Items.Strings[i]; - for j := 1 to NoVariables do - begin - if cellstring = OS3MainFrm.DataGrid.Cells[j,0] then - FixedIndepID[i] := j; - end; - end; - end; - if NRndIndep > 0 then - begin - for i := 0 to NRndIndep - 1 do - begin - cellstring := RandomList.Items.Strings[i]; - for j := 1 to NoVariables do - begin - if cellstring = OS3MainFrm.DataGrid.Cells[j,0] then - RndIndepID[i] := j; - end; - end; - end; - if NCovIndep > 0 then - begin - for i := 0 to NCovIndep - 1 do - begin - cellstring := CovariateList.Items.Strings[i]; - for j := 1 to NoVariables do - begin - if cellstring = OS3MainFrm.DataGrid.Cells[j,0] then - CovIndepID[i] := j; - end; - end; - end; -end; - -function TGLMFrm.GetVarCount: integer; -var - count, i, j, col, nvectors : integer; - min, max : integer; // use to get no. of coding vectors for categorical var.s - group : integer; - linestr : string; - -begin - count := 1; // one column for case id's - count := count + NContDep + NCovIndep; // sum of continuous variables - if NReptDep > 0 then count := count + 1; // one col. for repeated dep. measure - // plus person vectors for repeated measures (independent predictors) - if NReptDep > 0 then count := count + (NoCases - 1); // person vectors - if NReptDep > 0 then count := count + (NreptDep - 1); // repeated treatment vectors - if NCatDep > 0 then // calculate min and max for each var. to get no. of vectors - begin - for i := 0 to NCatDep - 1 do - begin - col := CatDepID[i]; - min := round(StrToFloat(OS3MainFrm.DataGrid.Cells[col,1])); - max := min; - for j := 1 to NoCases do - begin - group := round(StrToFLoat(OS3MainFrm.DataGrid.Cells[col,j])); - if group < min then min := group; - if group > max then max := group; - end; - count := count + (max - min); // 1 less than the no. of groups - NFixVecDep[i] := count; - end; - end; - - if NFixedIndep > 0 then // add no. of vectors to count - begin - for i := 0 to NFixedIndep - 1 do - begin - col := FixedIndepID[i]; - min := round(StrToFloat(OS3MainFrm.DataGrid.Cells[col,1])); - max := min; - for j := 1 to NoCases do - begin - group := round(StrToFloat(OS3MainFrm.DataGrid.Cells[col,j])); - if group < min then min := group; - if group > max then max := group; - end; - count := count + (max - min); // 1 less than the no. of groups - NFixVecIndep[i] := max - min; - end; - end; - - if NRndIndep > 0 then // add no. of vectors to count - begin - for i := 0 to NRndIndep - 1 do - begin - col := RndIndepID[i]; - min := round(StrToFloat(OS3MainFrm.DataGrid.Cells[col,1])); - max := min; - for j := 1 to NoCases do - begin - group := round(StrToFloat(OS3MainFrm.DataGrid.Cells[col,j])); - if group < min then min := group; - if group > max then max := group; - end; - count := count + (max - min); // 1 less than the no. of groups - NRndVecIndep[i] := max - min; - end; - end; - - if NoInterDefs > 0 then // get no. of vectors for each interaction - begin - for i := 0 to NoInterDefs - 1 do - begin - linestr := InterActList.Items.Strings[i]; - // parse the line for variable definitions and get no. of columns - // and vectors for the products of these variables - nvectors := CntIntActVecs(linestr); - NInteractVecs[i] := nvectors; - count := count + nvectors; - end; - end; - Result := count; -end; - -procedure TGLMFrm.AllocateGridMem; -var - norows : integer; - -begin - if NReptDep > 0 then norows := NoCases * NReptDep - else norows := NoCases; - SetLength(DataGrid,norows+1,novars+4); // grid data for generated data - SetLength(GenLabels,novars+4); // column labels of new data grid - SetLength(Labels,novars+4); // labels of variables entered into analysis - SetLength(ColSelected,novars+4); // datagrid columns selected for analysis -end; - -procedure TGLMFrm.DeallocateGridMem; -begin - ColSelected := nil; - Labels := nil; - GenLabels := nil; - DataGrid := nil; -end; - -procedure TGLMFrm.DeallocateIDMem; -begin - InteractPos := nil; - NInteractVecs := nil; - CovIndepPos := nil; - CovIndepID := nil; - NRndVecIndep := nil; - RndIndepPos := nil; - RndIndepID := nil; - NFixVecIndep := nil; - FixedIndepPos := nil; - FixedIndepID := nil; - ReptTrtPos := nil; - ReptIndepPos := nil; - ReptDepPos := nil; - ReptDepID := nil; - NFixVecDep := nil; - CatDepPos := nil; - CatDepID := nil; - ContDepPos := nil; - ContDepID := nil; -end; - -procedure TGLMFrm.DummyCodes(min: integer; max: integer; - var CodePattern: IntDyneMat); -var - ngrps : integer; - vects : integer; - i, j : integer; - -begin - ngrps := max - min + 1; - vects := ngrps - 1; - for j := 1 to vects do - begin - for i := 1 to ngrps do - begin - if i = j then CodePattern[i,j] := 1 else CodePattern[i,j] := 0; - end; - end; -end; - -procedure TGLMFrm.EffectCodes(min: integer; max: integer; - var CodePattern: IntDyneMat); -var - ngrps : integer; - vects : integer; - i, j : integer; - -begin - ngrps := max - min + 1; - vects := ngrps - 1; - for i := 1 to ngrps do - begin - for j := 1 to vects do - begin - if i = j then CodePattern[i,j] := 1; - if i = ngrps then CodePattern[i,j] := -1; - if (i <> j) and (i <> ngrps) then CodePattern[i,j] := 0; - end; - end; -end; - -procedure TGLMFrm.OrthogCodes(min: integer; max: integer; - var CodePattern: IntDyneMat); -var - ngrps : integer; - vects : integer; - i, j : integer; - -begin - ngrps := max - min + 1; - vects := ngrps - 1; - for i := 1 to ngrps do - begin - for j := 1 to vects do - begin - if i <= j then CodePattern[i,j] := 1; - if i-1 = j then CodePattern[i,j] := -j; - if i > j+1 then CodePattern[i,j] := 0; - end; - end; -end; - -procedure TGLMFrm.RegAnal(Nentered: integer); -var - i, j, nvars, ncases : integer; - title : string; - -begin - nvars := Nentered; - ncases := totalobs; - SetLength(rmatrix,nvars+1,nvars+1); - SetLength(indmatrix,nvars-1,nvars-1); - SetLength(rxy,nvars); - SetLength(invmatrix,nvars,nvars); - SetLength(B,nvars); - SetLength(Beta,nvars); - SetLength(means,nvars); - SetLength(Vars,nvars); - SetLength(StdDevs,nvars); - SetLength(workmat,nvars,nvars); - - DynCorrelations(nvars,ColSelected,DataGrid,rmatrix,means,vars,StdDevs,ncases,3); - OutPutFrm.RichEdit.Clear; - title := 'Means'; - if DescChk.Checked then DynVectorPrint(means,Nentered,title,Labels,ncases); - title := 'Correlations'; - if CorsChk.Checked then - MAT_PRINT(rmatrix,Nentered,Nentered,title,Labels,Labels,ncases); - for i := 1 to nvars - 1 do - begin - rxy[i-1] := rmatrix[i,0]; // r's with dependent var - for j := 1 to nvars - 1 do - begin - indmatrix[i-1,j-1] := rmatrix[i,j]; // intercorr.s of indep. var.s - workmat[i-1,j-1] := rmatrix[i,j]; // used to get inverse - end; - end; - SVDinverse(workmat,nvars-1); - // Copy inverse to zero indexed matrix - for i := 1 to nvars-1 do - for j := 1 to nvars-1 do invmatrix[i-1,j-1] := workmat[i-1,j-1]; - title := 'inverse of indep. matrix'; - // get betas and squared multiple correlation - R2 := 0.0; - for i := 1 to nvars-1 do - begin - Beta[i-1] := 0.0; - for j := 1 to nvars-1 do Beta[i-1] := Beta[i-1] + invmatrix[i-1,j-1] * rxy[j-1]; - R2 := R2 + Beta[i-1] * rxy[i-1]; - end; -// outline := format('Squared Multiple Correlation = %6.4f',[R2]); -// OutPutFrm.RichEdit.Lines.Add(outline); -// title := 'Standardized regression coefficients'; -// DynVectorPrint(Beta,Nentered-1,title,Labels,ncases); - // get raw coefficients - for i := 1 to nvars - 1 do - begin - if StdDevs[i] > 0.0 then - B[i-1] := Beta[i-1] * (StdDevs[0] / StdDevs[i]) - else B[i-1] := 0.0; - end; -// title := 'Raw regression coefficients'; -// DynVectorPrint(B,Nentered-1,title,Labels,ncases); -// OutPutFrm.ShowModal; -end; - -procedure TGLMFrm.PartIEntry; -var - i, j, k, vect : integer; - min, max, group, ngrps : integer; - CodePattern : IntDyneMat; - cellstring: string; - -begin - if NReptDep > 0 then // create observations for each replication of the N cases - begin - for i := 1 to NreptDep do - begin - ReptDepPos[i-1] := i; // datagrid pos. of a repeated measure - for j := 1 to NoCases do - begin - DataGrid[totalobs,gencount] := j; // case no. in col. 0 - k := ReptDepID[i-1]; - DataGrid[totalobs,gencount+1] := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,j])); - totalobs := totalobs + 1; - end; - end; // next i repeated measure - gencount := gencount + 2; - end - else - begin // no repeated measures - just need case numbers in data grid pos 0 - for i := 1 to NoCases do DataGrid[i-1,gencount] := i; - totalobs := NoCases; - gencount := gencount + 1; - end; - GenLabels[0] := 'Obs.'; - if NReptDep > 0 then GenLabels[1] := 'Repeated'; - - // Enter the continuous dependent variables into the data grid - if NContDep > 0 then - begin - for j := 1 to NContDep do - begin - ContDepPos[j-1] := gencount; - for i := 1 to NoCases do - begin - k := ContDepID[j-1]; - DataGrid[i-1,gencount] := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,i])); - end; - GenLabels[gencount] := ContDepCode.Items.Strings[j-1]; - gencount := gencount + 1; - end; - end; // end if NContDep > 0 - - // Enter categorical dependent variables in the data grid - if NCatDep > 0 then - begin - // get no. of categories - 1 for no of vectors to generate for each - // categorical variable - for j := 1 to NCatDep do - begin - CatDepPos[j-1] := gencount; - k := CatDepID[j-1]; - min := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,1]))); - max := min; - for i := 1 to NoCases do - begin - group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,i]))); - if group > max then max := group; - if group < min then min := group; - end; - ngrps := max-min+1; - SetLength(CodePattern,ngrps+1,ngrps+1); - if TypeGroup.ItemIndex = 0 then // dummy coding - DummyCodes(min,max,CodePattern); - if TypeGroup.ItemIndex = 1 then // effect coding - EffectCodes(min,max,CodePattern); - if TypeGroup.ItemIndex = 2 then // orthogonal coding - OrthogCodes(min,max,CodePattern); - // Now, generate vectors for the categorical variable j - for vect := 1 to (max - min) do // vector no. - begin - for i := 1 to NoCases do - begin - group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,i]))); - DataGrid[i-1,gencount + vect - 1] := CodePattern[group,vect]; - end; - cellstring := format('%s_%d',[CatDepCode.Items.Strings[j-1],vect]); - GenLabels[gencount + vect - 1] := cellstring; - end; - gencount := gencount + (max - min); // new no. of variables - end; // next categorical variable j - end; // if no. of dependent categorical variables greater than zero - codepattern := nil; -end; - -procedure TGLMFrm.PartIIEntry; -var - i, j, k, vect, lastdep, row : integer; - min, max, group, ngrps : integer; - CodePattern : IntDyneMat; - cellstring : string; - value : double; - -begin - lastdep := gencount; // datagrid position of last dependent variable - // This section develops vectors for the independent variables. If there - // are repeated measures, generate person vectors first. - if NReptDep > 0 then - begin - min := 1; - max := NoCases; - ngrps := max-min+1; - SetLength(CodePattern,ngrps+1,ngrps+1); - if TypeGroup.ItemIndex = 0 then // dummy coding - DummyCodes(min,max,CodePattern); - if TypeGroup.ItemIndex = 1 then // effect coding - EffectCodes(min,max,CodePattern); - if TypeGroup.ItemIndex = 2 then // orthogonal coding - OrthogCodes(min,max,CodePattern); - for vect := 1 to (max - min) do // vector no. - begin - for i := 1 to totalobs do // NoCases - begin - group := round(DataGrid[i-1,0]); - DataGrid[i-1,gencount + vect - 1] := CodePattern[group,vect]; - end; - ReptIndepPos[vect-1] := gencount + vect - 1; - cellstring := format('p%d',[vect]); - GenLabels[gencount + vect - 1] := cellstring; - end; - gencount := gencount + (max - min); // new no. of variables - end; // end generation of person codes - - // generate vectors for the repeated treatments if replications used - if NReptDep > 0 then - begin - min := 1; - max := NReptDep; - ngrps := max-min+1; - SetLength(CodePattern,ngrps+1,ngrps+1); - if TypeGroup.ItemIndex = 0 then // dummy coding - DummyCodes(min,max,CodePattern); - if TypeGroup.ItemIndex = 1 then // effect coding - EffectCodes(min,max,CodePattern); - if TypeGroup.ItemIndex = 2 then // orthogonal coding - OrthogCodes(min,max,CodePattern); - for vect := 1 to (max - min) do // vector no. - begin - for i := 1 to totalobs do // NoCases - begin - group := ((i - 1) div NoCases) + 1; - DataGrid[i-1,gencount + vect - 1] := CodePattern[group,vect]; - end; - ReptTrtPos[vect-1] := gencount + vect - 1; - cellstring := format('IR_%d',[vect]); - GenLabels[gencount + vect - 1] := cellstring; - end; - gencount := gencount + (max - min); // new no. of variables - end; - - oldcount := gencount; - // Next, add vectors for independent fixed categorical variables - if NFixedIndep > 0 then - begin - // get no. of categories - 1 for no of vectors to generate for each - // categorical variable - for j := 1 to NFixedIndep do - begin - FixedIndepPos[j-1] := gencount; // first vector position in datagrid - k := FixedIndepID[j-1]; - min := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,1]))); - max := min; - for i := 1 to NoCases do - begin - group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,i]))); - if group > max then max := group; - if group < min then min := group; - end; - ngrps := max-min+1; - SetLength(CodePattern,ngrps+1,ngrps+1); - if TypeGroup.ItemIndex = 0 then // dummy coding - DummyCodes(min,max,CodePattern); - if TypeGroup.ItemIndex = 1 then // effect coding - EffectCodes(min,max,CodePattern); - if TypeGroup.ItemIndex = 2 then // orthogonal coding - OrthogCodes(min,max,CodePattern); - // Now, generate vectors for the categorical variable j - for vect := 1 to (max - min) do // vector no. - begin - for i := 1 to NoCases do - begin - group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,i]))); - DataGrid[i-1,gencount + vect - 1] := CodePattern[group,vect]; - end; - cellstring := format('%s_%d',[FixedIndepCode.Items.Strings[j-1],vect]); - GenLabels[gencount + vect - 1] := cellstring; - end; - gencount := gencount + (max - min); // new no. of variables - end; // next categorical variable j - end; // end generation of fixed effect codes - - // Next, add vectors for independent random categorical variables - oldcount := gencount; - if NRndIndep > 0 then - begin - // get no. of categories - 1 for no of vectors to generate for each - // categorical variable - for j := 1 to NRndIndep do - begin - RndIndepPos[j-1] := gencount; // pos. of first vector in datagrid - k := RndIndepID[j-1]; - min := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,1]))); - max := min; - for i := 1 to NoCases do - begin - group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,i]))); - if group > max then max := group; - if group < min then min := group; - end; - ngrps := max-min+1; - SetLength(CodePattern,ngrps+1,ngrps+1); - if TypeGroup.ItemIndex = 0 then // dummy coding - DummyCodes(min,max,CodePattern); - if TypeGroup.ItemIndex = 1 then // effect coding - EffectCodes(min,max,CodePattern); - if TypeGroup.ItemIndex = 2 then // orthogonal coding - OrthogCodes(min,max,CodePattern); - // Now, generate vectors for the categorical variable j - for vect := 1 to (max - min) do // vector no. - begin - for i := 1 to NoCases do - begin - group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,i]))); - DataGrid[i-1,gencount + vect - 1] := CodePattern[group,vect]; - end; - cellstring := format('%s_%d',[RndIndepCode.Items.Strings[j-1],vect]); - GenLabels[gencount + vect - 1] := cellstring; - end; - gencount := gencount + (max - min); // new no. of variables - end; // next categorical variable j - end; // end generation of random effect codes - - - // Next, add covariates - if NCovIndep > 0 then - begin - for j := 1 to NCovIndep do - begin - CovIndepPos[j-1] := gencount; - for i := 1 to NoCases do - begin - k := CovIndepID[j-1]; - DataGrid[i-1,gencount] := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[k,i])); - end; - GenLabels[gencount] := CovariateCode.Items.Strings[j-1]; - gencount := gencount + 1; - end; - end; // end generation of covariate codes - - // if repeated measures used, copy generated vectors for each replication - if NReptDep > 0 then - begin - for j := 1 to NReptDep - 1 do - begin - for i := 1 to NoCases do - begin - for k := lastdep + (NoCases-1) +(NReptDep-1) + 1 to gencount do - begin - value := DataGrid[i-1,k-1]; - row := (j * NoCases) + i - 1; - DataGrid[row,k-1] := value; - end; // next k column in data grid - end; // next case - end; // next repeated measure - end; // if repeated measures used - - // Now generate product vectors for the interactions - if NoInterDefs > 0 then - begin - for j := 0 to NoInterDefs - 1 do - begin - // parse an interaction line into components (abbreviations) and - // get product of vectors corresponding to each - InteractPos[j] := gencount; - cellstring := InteractList.Items.Strings[j]; - GenInterVecs(cellstring); - gencount := gencount + NInteractVecs[j]; - end; - end; // end generation of interaction codes - codepattern := nil; -end; - -procedure TGLMFrm.ModelIAnalysis; -var - block, i, j, k, NEntered, index, noblocks, priorentered : integer; - cellstring : string; - labelstr : string; - outline : string; - R, R2Increment, SSx, sum, constant, FullR2 : double; - df1, df2, F, FProbF, StdErrB,OldDF1, PredSS, PredMS : double; - SSt, VarEst, SSres, StdErrEst, AdjR2 : double; - -begin - NEntered := 0; - OldDF1 := 0.0; - priorentered := 0; - OldR2 := 0; - // enter the dependent variable first - if NContDep > 0 then - begin - ColSelected[0] := ContDepPos[0]; - Labels[0] := GenLabels[1]; - end - else begin - ColSelected[0] := ReptDepPos[0]; - Labels[0] := GenLabels[1]; - end; - NEntered := NEntered + 1; - - // Enter independent variables as indicated in indorderbox then interactions - // until the total model is analyzed. Then delete each term to get a - // restricted model and compare to the full model. - noblocks := IndOrderBox.Items.Count; - SetLength(TypeISS,noblocks); - SetLength(TypeIISS,noblocks); - SetLength(TypeIMS,noblocks); - SetLength(TypeIIMS,noblocks); - SetLength(TypeIDF1,noblocks); - SetLength(TypeIDF2,noblocks); - SetLength(TypeIIDF1,noblocks); - SetLength(TypeIIDF2,noblocks); - SetLength(TypeIF,noblocks); - SetLength(TypeIProb,noblocks); - SetLength(TypeIIF,noblocks); - SetLength(TypeIIProb,noblocks); - - for block := 0 to noblocks - 1 do - begin - // get index of the abbreviation of term to enter and find corresponding - // vector(s) to place in the equation - cellstring := IndOrderBox.Items.Strings[block]; - // check for covariates first - if NCovIndep > 0 then - begin - for i := 0 to NCovIndep-1 do - begin - if cellstring = CovariateCode.Items.Strings[i] then // matched! - begin - index := i; // index of covariate code - ColSelected[NEntered] := CovIndepPos[index]; - labelstr := format('%s',[CovariateCode.Items.Strings[index]]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - break; - end; - end; - end; - // check for fixed effect variables next - if NFixedIndep > 0 then - begin - for i := 0 to NFixedIndep-1 do - begin - if cellstring = FixedIndepCode.Items.Strings[i] then - begin - index := i; - for j := 0 to NFixVecIndep[index]-1 do - begin - ColSelected[NEntered] := FixedIndepPos[index] + j; - labelstr := format('%s_%d',[FixedIndepCode.Items.Strings[index],j+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - break; - end; - end; - end; - // Check for random effects variables next - if NRndIndep > 0 then - begin - for i := 0 to NRndIndep-1 do - begin - if cellstring = RndIndepCode.Items.Strings[i] then - begin - index := i; - for j := 0 to NRndVecIndep[index]-1 do - begin - ColSelected[NEntered] := RndIndepPos[index] + j; - labelstr := format('%s_%d',[RndIndepCode.Items.Strings[index],j+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - break; - end; - end; - end; - // check for interactions next - if NoInterDefs > 0 then - begin - for i := 0 to NoInterDefs-1 do - begin - if cellstring = InteractList.Items.Strings[i] then - begin - for j := 0 to NInteractVecs[i]-1 do - begin - ColSelected[NEntered] := InteractPos[i] + j; - labelstr := format('%s%d_%d',['IA',i+1,j+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - break; - end; - end; - end; // check for interaction variables - - // check for repeated measures variables (person codes) - if NReptDep > 0 then - begin // look for 'IP' in cellstring - labelstr := copy(cellstring,0,2); - if labelstr = 'IP' then // person vectors were generated - begin - for i := 0 to NoCases - 2 do - begin - ColSelected[NEntered] := ReptIndepPos[i]; - Labels[NEntered] := GenLabels[ReptIndepPos[i]]; - NEntered := NEntered + 1; - end; - end; - end; - - // check for repeated treatments - if NReptDep > 0 then - begin // look for 'IR' in cellstring - labelstr := copy(cellstring,0,2); - if labelstr = 'IR' then // repeated treatment vectors were generated - begin - for i := 0 to NReptDep - 2 do - begin - ColSelected[NEntered] := ReptTrtPos[i]; - Labels[NEntered] := GenLabels[ReptTrtPos[i]]; - NEntered := NEntered + 1; - end; - end; - end; - - RegAnal(NEntered); - R := sqrt(R2); - df1 := Nentered - 1; // no. of independent variables - df2 := totalobs - df1 - 1; // N - no. independent - 1 - SSt := (totalobs-1) * Vars[0]; - SSres := SSt * (1.0 - R2); - VarEst := SSres / df2; - if (VarEst > 0.0) then StdErrEst := sqrt(VarEst) - else - begin - ShowMessage('ERROR! Error in computing variance estimate.'); - StdErrEst := 0.0; - end; - if (R2 < 1.0) and (df2 > 0.0) then F := (R2 / df1) / ((1.0-R2)/ df2) - else F := 0.0; - FProbF := probf(F,df1,df2); - AdjR2 := 1.0 - (1.0 - R2) * (totalobs - 1) / df2; -// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify; - outline := format('%8s%10s%10s%12s%5s%5s',['R','R2','F','Prob.>F','DF1','DF2']); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%8.3f%10.3f%10.3f%10.3f%5.0f%5.0f', - [R,R2,F,FProbF,df1,df2]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Adjusted R Squared = %5.3f',[AdjR2]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Std. Error of Estimate = %10.3f',[StdErrEst]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Variable Beta B Std.Error t Prob.>t'); - df1 := 1.0; - sum := 0.0; - for i := 0 to Nentered - 2 do - begin - SSx := (totalobs-1) * Vars[i+1]; - sum := sum + B[i] * means[i+1]; - if invmatrix[i,i] > 1.0e-15 then - begin - StdErrB := VarEst / (SSx * (1.0 / invmatrix[i,i])); - StdErrB := sqrt(StdErrB); - if StdErrB > 0.0 then F := B[i] / StdErrB else F := 0.0; - FProbF := probf(F*F,df1,df2); - end - else begin - StdErrB := 0.0; - F := 0.0; - FProbF := 0.0; - end; - cellstring := format('%10s',[Labels[i+1]]); - outline := format('%10s%10.3f%10.3f%10.3f%10.3f%10.3f', - [cellstring, Beta[i] ,B[i], StdErrB, F, FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - constant := means[0] - sum; - outline := format('Constant = %10.3f',[constant]); - OutPutFrm.RichEdit.Lines.Add(outline); - - // test increment in R2 for this block - R2Increment := R2 - OldR2; - if priorentered > 0 then - df1 := (NEntered-1) - (priorentered-1) - else df1 := NEntered - 1; - df2 := totalobs - NEntered; - TypeIDF1[block] := df1; - TypeIDF2[block] := df2; - TypeISS[block] := (R2 - OldR2) * SSt; - TypeIMS[block] := TypeISS[block] / df1; - F := ((R2 - OldR2)/ df1) / ((1.0 - R2) / df2); - TypeIF[block] := F; - FProbF := probf(F,df1,df2); - TypeIProb[block] := FProbF; - outline := format('Increment in Squared R = %10.3f',[R2Increment]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('F with degrees freedom %4.0f and %4.0f = %10.3f, Prob.>F = %10.3f', - [df1,df2,F,FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - OldR2 := R2; - priorentered := NEntered; - // setup for next block analysis - WorkMat := nil; - StdDevs := nil; - Vars := nil; - means := nil; - Beta := nil; - B := nil; - invmatrix := nil; - rxy := nil; - indmatrix := nil; - rmatrix := nil; - end; // next variable block - - // Next, obtain the unique (Type II values) by elimination of each block - // from the full model and testing the decrement in R2 - FullR2 := R2; // save previously obtained full model R2 - for i := 0 to NoBlocks - 1 do - begin - NEntered := 0; - // enter the dependent variable first - if NContDep > 0 then - begin - ColSelected[0] := ContDepPos[0]; - Labels[0] := GenLabels[1]; - end - else begin - ColSelected[0] := ReptDepPos[0]; - Labels[0] := GenLabels[1]; - end; - NEntered := NEntered + 1; - for block := 0 to NoBlocks - 1 do - begin - if i = block then continue // delete this block - else - begin // enter the remaining blocks - cellstring := IndOrderBox.Items.Strings[block]; - // if a covariate, include it - if NCovIndep > 0 then - begin - for j := 0 to NCovIndep-1 do - begin - if cellstring = CovariateCode.Items.Strings[j] then // matched! - begin - index := j; // index of covariate code - ColSelected[NEntered] := CovIndepPos[index]; - labelstr := format('%s',[CovariateCode.Items.Strings[index]]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - break; - end; - end; - end; - // check for fixed effect variables next - if NFixedIndep > 0 then - begin - for j := 0 to NFixedIndep-1 do - begin - if cellstring = FixedIndepCode.Items.Strings[j] then - begin - index := j; - for k := 0 to NFixVecIndep[index]-1 do - begin - ColSelected[NEntered] := FixedIndepPos[index] + k; - labelstr := format('%s_%d',[FixedIndepCode.Items.Strings[index],k+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - break; - end; - end; - end; - // Check for random effects variables next - if NRndIndep > 0 then - begin - for j := 0 to NRndIndep-1 do - begin - if cellstring = RndIndepCode.Items.Strings[j] then - begin - index := j; - for k := 0 to NRndVecIndep[index]-1 do - begin - ColSelected[NEntered] := RndIndepPos[index] + k; - labelstr := format('%s_%d',[RndIndepCode.Items.Strings[index],k+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - end; - break; - end; - end; - // check for interactions next - if NoInterDefs > 0 then - begin - for j := 0 to NoInterDefs-1 do - begin - if cellstring = InteractList.Items.Strings[j] then - begin - for k := 0 to NInteractVecs[j]-1 do - begin - ColSelected[NEntered] := InteractPos[j] + k; - labelstr := format('%s%d_%d',['IA',j+1,k+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - break; - end; // end if - end; // next j - end; // end if interdefs > 0 - end; // entry of remaining blocks - end; // enter next block not equal to block i - - RegAnal(NEntered); // compute restricted model - if R2 > 0.0 then R := sqrt(R2) else R := 0.0; - df1 := Nentered; // no. of independent variables - df2 := totalobs - df1 - 1; // N - no. independent - 1 - SSt := (totalobs-1) * Vars[0]; - SSres := SSt * (1.0 - R2); - VarEst := SSres / df2; - if (VarEst > 0.0) then StdErrEst := sqrt(VarEst) - else - begin - ShowMessage('ERROR! Error in computing variance estimate.'); - StdErrEst := 0.0; - end; - if (R2 < 1.0) and (df2 > 0.0) then F := (R2 / df1) / ((1.0-R2)/ df2) - else F := 0.0; - FProbF := probf(F,df1,df2); - AdjR2 := 1.0 - (1.0 - R2) * (totalobs - 1) / df2; -// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify; - outline := format('%8s%10s%10s%12s%5s%5s',['R','R2','F','Prob.>F','DF1','DF2']); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%8.3f%10.3f%10.3f%10.3f%5.0f%5.0f', - [R,R2,F,FProbF,df1,df2]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Adjusted R Squared = %5.3f',[AdjR2]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Std. Error of Estimate = %10.3f',[StdErrEst]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Variable Beta B Std.Error t Prob.>t'); - df1 := 1.0; - sum := 0.0; - for j := 0 to Nentered - 2 do - begin - SSx := (totalobs-1) * Vars[j+1]; - sum := sum + B[j] * means[j+1]; - if invmatrix[j,j] > 1.0e-18 then - StdErrB := VarEst / (SSx * (1.0 / invmatrix[j,j])) - else StdErrB := 0.0; - if StdErrB > 0.0 then StdErrB := sqrt(StdErrB); - if StdErrB > 0.0 then F := B[j] / StdErrB else F := 0.0; - FProbF := probf(F*F,df1,df2); - cellstring := format('%10s',[Labels[j+1]]); - outline := format('%10s%10.3f%10.3f%10.3f%10.3f%10.3f', - [cellstring, Beta[j] ,B[j], StdErrB, F, FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - constant := means[0] - sum; - outline := format('Constant = %10.3f',[constant]); - OutPutFrm.RichEdit.Lines.Add(outline); - - // Now compute unique contribution of block left out (Type II) - R2Increment := FullR2 - R2; - df1 := (novars - 2) - (NEntered - 1); // k1 - k2 - df2 := totalobs - (novars - 2) - 1; - TypeIIDF1[i] := df1; - TypeIIDF2[i] := df2; - TypeIISS[i] := (FullR2 - R2) * SSt; - TypeIIMS[i] := TypeIISS[i] / df1; - F := ((FullR2 - R2)/ df1) / ((1.0 - FullR2) / df2); - TypeIIF[i] := F; - FProbF := probf(F,df1,df2); - TypeIIProb[i] := FProbF; - outline := format('Decrement in Squared R = %10.3f',[R2Increment]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('F with degrees freedom %4.0f and %4.0f = %10.3f, Prob.>F = %10.3f', - [df1,df2,F,FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - // setup for next block analysis - WorkMat := nil; - StdDevs := nil; - Vars := nil; - means := nil; - Beta := nil; - B := nil; - invmatrix := nil; - rxy := nil; - indmatrix := nil; - rmatrix := nil; - end; // next i block selected for elimination - - // Show summary table of Type I and Type II tests - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Summary Table for GLM Effects'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Incremental Effects.'); - OutPutFrm.RichEdit.Lines.Add('SOURCE DF1 DF2 SS MS F PROB>F'); - for i := 0 to NoBlocks - 1 do - begin - cellstring := IndOrderBox.Items.Strings[i]; - outline := format('%10s %3.0f %3.0f %10.3f %10.3f %10.3f %6.3f', - [cellstring,TypeIDF1[i],TypeIDF2[i],TypeISS[i],TypeIMS[i],TypeIF[i],TypeIProb[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Unique Effects.'); - OutPutFrm.RichEdit.Lines.Add('SOURCE DF1 DF2 SS MS F PROB>F'); - for i := 0 to NoBlocks - 1 do - begin - cellstring := IndOrderBox.Items.Strings[i]; - outline := format('%10s %3.0f %3.0f %10.3f %10.3f %10.3f %6.3f', - [cellstring,TypeIIDF1[i],TypeIIDF2[i],TypeIISS[i],TypeIIMS[i],TypeIIF[i],TypeIIProb[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; - - // Show Anova Results for fixed and/or covariates - OutPutFrm.RichEdit.Clear; - if (NRndIndep = 0) and (NReptDep = 0) then // must be fixed and/or covariate only design - begin - if (NFixedIndep > 0) or (NCovIndep > 0) then // fixed effects - begin - df1 := novars - 2; // k1 (note: novars contains ID variable, dep, independents) - PredSS := SSt * FullR2; - PredMS := PredSS / df1; - df2 := totalobs - df1 - 1; // residual df - SSres := SSt * (1.0 - FullR2); - VarEst := SSres / df2; // ms residual - F := PredMS / VarEst; - FProbF := probf(F,df1,df2); - OutPutFrm.RichEdit.Lines.Add('SOURCE DF SS MS F PROB>F'); - outline := format('%20s %3.0f %10.3f %10.3f %10.3f %6.3f', - ['Full Model',df1,PredSS,PredMS,F,FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - for i := 0 to NoBlocks - 1 do - begin - F := TypeIMS[i] / VarEst; - FProbF := probf(F,TypeIDF1[i],df2); - cellstring := IndOrderBox.Items.Strings[i]; - outline := format('%20s %3.0f %10.3f %10.3f %10.3f %6.3f', - [cellstring,TypeIDF1[i],TypeISS[i],TypeIMS[i],F,FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - outline := format('%20s %3.0f %10.3f %10.3f', - ['Residual',df2,SSres,VarEst]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%20s %3d %10.3f', - ['Total',totalobs-1,SSt]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - end; - end; - - // Show Anova Results for random effects and/or covariates - OutPutFrm.RichEdit.Clear; - if (NFixedIndep = 0) and (NReptDep = 0) then // must be random only or covariate only design - begin - if (NRndIndep > 0) or (NCovIndep > 0) then // random and/or covariate effects - begin - df1 := novars - 2; // k1 (note: novars contains ID variable, dep, independents) - PredSS := SSt * FullR2; - PredMS := PredSS / df1; - df2 := totalobs - df1 - 1; // residual df - SSres := SSt * (1.0 - FullR2); - VarEst := SSres / df2; // ms residual - F := PredMS / VarEst; - FProbF := probf(F,df1,df2); - OutPutFrm.RichEdit.Lines.Add('SOURCE DF SS MS F PROB>F'); - outline := format('%20s %3.0f %10.3f %10.3f %10.3f %6.3f', - ['Full Model',df1,PredSS,PredMS,F,FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - for i := 0 to NoBlocks - 1 do - begin - F := TypeIMS[i] / VarEst; - FProbF := probf(F,TypeIDF1[i],df2); - outline := format('%20s %3.0f %10.3f %10.3f %10.3f %6.3f', - [Labels[i+1],TypeIDF1[i],TypeISS[i],TypeIMS[i],F,FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - outline := format('%20s %3.0f %10.3f %10.3f', - ['Residual',df2,SSres,VarEst]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%20s %3d %10.3f', - ['Total',totalobs-1,SSt]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - end; - end; - - // show effects for repeated measures ANOVA (and covariates) - OutPutFrm.RichEdit.Clear; - if NReptDep > 0 then - begin - df1 := novars - 2; // k1 (note: novars contains ID variable, dep, independents) - PredSS := SSt * FullR2; - PredMS := PredSS / df1; - df2 := totalobs - df1 - 1; // residual df - SSres := SSt * (1.0 - FullR2); - VarEst := SSres / df2; // ms residual - F := PredMS / VarEst; - FProbF := probf(F,df1,df2); - OutPutFrm.RichEdit.Lines.Add('SOURCE DF SS MS F PROB>F'); - outline := format('%20s %3.0f %10.3f %10.3f %10.3f %6.3f', - ['Full Model',df1,PredSS,PredMS,F,FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - for i := 0 to NoBlocks - 1 do - begin - F := TypeIMS[i] / VarEst; - FProbF := probf(F,TypeIDF1[i],df2); - outline := format('%20s %3.0f %10.3f %10.3f %10.3f %6.3f', - [Labels[i+1],TypeIDF1[i],TypeISS[i],TypeIMS[i],F,FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - outline := format('%20s %3.0f %10.3f %10.3f', - ['Residual',df2,SSres,VarEst]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%20s %3d %10.3f', - ['Total',totalobs-1,SSt]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - end; - - // clean up the heap - TypeIIProb := nil; - TypeIIF := nil; - TypeIProb := nil; - TypeIF := nil; - TypeIIDF2 := nil; - TypeIIDF1 := nil; - TypeIDF2 := nil; - TypeIDF1 := nil; - TypeIIMS := nil; - TypeIMS := nil; - TypeIISS := nil; - TypeISS := nil; -end; - -procedure TGLMFrm.ModelIIAnalysis; -var - block, i, j, NEntered, index, noblocks : integer; - NLeft, NRight : integer; - cellstring : string; - labelstr : string; - -begin - NEntered := 0; - OldR2 := 0; - // enter the dependent variables first - if NContDep > 0 then - begin - for i := 0 to NContDep - 1 do - begin - ColSelected[i] := ContDepPos[i]; - Labels[i] := GenLabels[i+1]; - NEntered := NEntered + 1; - end; - end; - if NReptDep > 0 then - begin - for i := 0 to NReptDep - 1 do - begin - ColSelected[NEntered+i] := ReptDepPos[i]; - Labels[NEntered+i] := GenLabels[NEntered+i+1]; - NEntered := NEntered + 1; - end; - end; - if NCatDep > 0 then - begin - for i := 0 to NCatDep - 1 do - begin - for j := 0 to NFixVecDep[i]-1 do - begin - ColSelected[NEntered+j] := CatDepPos[j]; - Labels[NEntered+j] := GenLabels[NEntered+j+1]; - NEntered := NEntered + 1; - end; - end; - end; - - // Enter the no. of dependent variables in the left list box of canonical - NLeft := NEntered; - - // Enter independent variables as indicated in indorderbox then interactions - // until the total model is analyzed. Then delete each term to get a - // restricted model and compare to the full model. - noblocks := IndOrderBox.Items.Count; - SetLength(TypeISS,noblocks); - SetLength(TypeIISS,noblocks); - SetLength(TypeIMS,noblocks); - SetLength(TypeIIMS,noblocks); - SetLength(TypeIDF1,noblocks); - SetLength(TypeIDF2,noblocks); - SetLength(TypeIIDF1,noblocks); - SetLength(TypeIIDF2,noblocks); - SetLength(TypeIF,noblocks); - SetLength(TypeIProb,noblocks); - SetLength(TypeIIF,noblocks); - SetLength(TypeIIProb,noblocks); - - for block := 0 to noblocks - 1 do - begin - // get index of the abbreviation of term to enter and find corresponding - // vector(s) to place in the equation - cellstring := IndOrderBox.Items.Strings[block]; - // check for covariates first - if NCovIndep > 0 then - begin - for i := 0 to NCovIndep-1 do - begin - if cellstring = CovariateCode.Items.Strings[i] then // matched! - begin - index := i; // index of covariate code - ColSelected[NEntered] := CovIndepPos[index]; - labelstr := format('%s',[CovariateCode.Items.Strings[index]]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - break; - end; - end; - end; - // check for fixed effect variables next - if NFixedIndep > 0 then - begin - for i := 0 to NFixedIndep-1 do - begin - if cellstring = FixedIndepCode.Items.Strings[i] then - begin - index := i; - for j := 0 to NFixVecIndep[index]-1 do - begin - ColSelected[NEntered] := FixedIndepPos[index] + j; - labelstr := format('%s_%d',[FixedIndepCode.Items.Strings[index],j+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - break; - end; - end; - end; - // Check for random effects variables next - if NRndIndep > 0 then - begin - for i := 0 to NRndIndep-1 do - begin - if cellstring = RndIndepCode.Items.Strings[i] then - begin - index := i; - for j := 0 to NRndVecIndep[index]-1 do - begin - ColSelected[NEntered] := RndIndepPos[index] + j; - labelstr := format('%s_%d',[RndIndepCode.Items.Strings[index],j+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - end; - break; - end; - end; - // check for interactions next - if NoInterDefs > 0 then - begin - for i := 0 to NoInterDefs-1 do - begin - if cellstring = InteractList.Items.Strings[i] then - begin - for j := 0 to NInteractVecs[i]-1 do - begin - ColSelected[NEntered] := InteractPos[i] + j; - labelstr := format('%s%d_%d',['IA',i+1,j+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - end; - break; - end; - end; // check for interaction variables - - // check for repeated measures variables (person codes) - if NReptDep > 0 then - begin // look for 'IP' in cellstring - labelstr := copy(cellstring,0,2); - if labelstr = 'IP' then // person vectors were generated - begin - for i := 0 to NoCases - 2 do - begin - ColSelected[NEntered] := ReptIndepPos[i]; - Labels[NEntered] := GenLabels[ReptIndepPos[i]]; - NEntered := NEntered + 1; - end; - end; - end; - - // Enter the independent variables in the right list of canonical. - NRight := NEntered - NLeft; - - // call cancor routine for this block - cancor(NLeft,NRight,ColSelected); - end; // next block - - TypeIIProb := nil; - TypeIIF := nil; - TypeIProb := nil; - TypeIIDF2 := nil; - TypeIIDF1 := nil; - TypeIDF2 := nil; - TypeIDF1 := nil; - TypeIIMS := nil; - TYPEIMS := nil; - TypeIISS := nil; - TypeISS := nil; -end; - -procedure TGLMFrm.ModelIIIAnalysis; -var - block, i, j, k, NEntered, index, noblocks, priorentered : integer; - cellstring : string; - labelstr : string; - outline, effstr : string; - R, R2Increment, SSx, sum, constant, FullR2 : double; - df1, df2, F, FProbF, StdErrB,OldDF1, PredSS, PredMS : double; - SSt, VarEst, SSres, StdErrEst, AdjR2 : double; - dfbetween, dferrbetween, dfwithin, dferrwithin : double; - ssbetween, sserrbetween, mserrbetween, sswithin, sserrwithin, mserrwithin : double; - betweenblock : integer; - totalss, totaldf : double; - -begin - OldDF1 := 0.0; - priorentered := 0; - OldR2 := 0; - ColSelected[0] := ReptDepPos[0]; - Labels[0] := GenLabels[1]; - // Complete an individual regression analysis for each between subjects var. - // Enter each block containing between subjects variance including: - // (1) covariates - // (2) person vectors - // (3) fixed or random factors - // (4) the interactions among only fixed or random effects - noblocks := IndOrderBox.Items.Count; - SetLength(TypeISS,noblocks); // use for between subject effects - SetLength(TypeIISS,noblocks);// use for within subject effects - SetLength(TypeIMS,noblocks); - SetLength(TypeIIMS,noblocks); - SetLength(TypeIDF1,noblocks); - SetLength(TypeIDF2,noblocks); - SetLength(TypeIIDF1,noblocks); - SetLength(TypeIIDF2,noblocks); - SetLength(TypeIF,noblocks); - SetLength(TypeIProb,noblocks); - SetLength(TypeIIF,noblocks); - SetLength(TypeIIProb,noblocks); - - for i := 0 to noblocks - 1 do - begin - TypeISS[i] := -1.0; // store indicator for block (-1 indicates no use) - TypeIISS[i] := -1.0; - end; - - for block := 0 to noblocks - 1 do - begin - ColSelected[0] := ReptDepPos[0]; - Labels[0] := GenLabels[1]; - NEntered := 1; - cellstring := IndOrderBox.Items.Strings[block]; - effstr := cellstring; - j := Pos('IR',cellstring); - if j <> 0 then continue; - // check for repeated measures variables (person codes) - if NReptDep > 0 then - begin // look for 'IP' in cellstring - labelstr := copy(cellstring,0,2); - if labelstr = 'IP' then // person vectors were generated - begin - betweenblock := block; // save block no. of between subject vectors - for i := 0 to NoCases - 2 do - begin - ColSelected[NEntered] := ReptIndepPos[i]; - Labels[NEntered] := GenLabels[ReptIndepPos[i]]; - NEntered := NEntered + 1; - end; - end; - end; - // check for fixed effect variables next - if NFixedIndep > 0 then - begin - for i := 0 to NFixedIndep-1 do - begin - if cellstring = FixedIndepCode.Items.Strings[i] then - begin - index := i; - for j := 0 to NFixVecIndep[index]-1 do - begin - ColSelected[NEntered] := FixedIndepPos[index] + j; - labelstr := format('%s_%d',[FixedIndepCode.Items.Strings[index],j+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - break; - end; - end; - end; - // Check for random effects variables next - if NRndIndep > 0 then - begin - for i := 0 to NRndIndep-1 do - begin - if cellstring = RndIndepCode.Items.Strings[i] then - begin - index := i; - for j := 0 to NRndVecIndep[index]-1 do - begin - ColSelected[NEntered] := RndIndepPos[index] + j; - labelstr := format('%s_%d',[RndIndepCode.Items.Strings[index],j+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - break; - end; - end; - end; - // check for interactions next - if NoInterDefs > 0 then - begin - for i := 0 to NoInterDefs-1 do - begin - if cellstring = InteractList.Items.Strings[i] then - begin - // eliminate any interactions containing 'IR' - j := Pos('IR',cellstring); - if j <> 0 then continue; - for j := 0 to NInteractVecs[i]-1 do - begin - ColSelected[NEntered] := InteractPos[i] + j; - labelstr := format('%s%d_%d',['IA',i+1,j+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - break; - end; - end; - end; // check for interaction variables - // check for covariates - if NCovIndep > 0 then - begin - for i := 0 to NCovIndep-1 do - begin - if cellstring = CovariateCode.Items.Strings[i] then // matched! - begin - index := i; // index of covariate code - ColSelected[NEntered] := CovIndepPos[index]; - labelstr := format('%s',[CovariateCode.Items.Strings[index]]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - break; - end; - end; - end; - - // do reg analysis and save sum of squares - RegAnal(NEntered); - R := sqrt(R2); - df1 := Nentered - 1; // no. of independent variables - TypeIDF1[block] := df1; - df2 := totalobs - df1 - 1; // N - no. independent - 1 - SSt := (totalobs-1) * Vars[0]; - SSres := SSt * (1.0 - R2); - VarEst := SSres / df2; - if (VarEst > 0.0) then StdErrEst := sqrt(VarEst) - else - begin - ShowMessage('ERROR! Error in computing variance estimate.'); - StdErrEst := 0.0; - end; - if (R2 < 1.0) and (df2 > 0.0) then F := (R2 / df1) / ((1.0-R2)/ df2) - else F := 0.0; - FProbF := probf(F,df1,df2); - AdjR2 := 1.0 - (1.0 - R2) * (totalobs - 1) / df2; -// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify; - outline := format('%8s%10s%10s%12s%5s%5s',['R','R2','F','Prob.>F','DF1','DF2']); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%8.3f%10.3f%10.3f%10.3f%5.0f%5.0f', - [R,R2,F,FProbF,df1,df2]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Adjusted R Squared = %5.3f',[AdjR2]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Std. Error of Estimate = %10.3f',[StdErrEst]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Variable Beta B Std.Error t Prob.>t'); - df1 := 1.0; - sum := 0.0; - for i := 0 to Nentered - 2 do - begin - SSx := (totalobs-1) * Vars[i+1]; - sum := sum + B[i] * means[i+1]; - if invmatrix[i,i] > 1.0e-15 then - begin - StdErrB := VarEst / (SSx * (1.0 / invmatrix[i,i])); - StdErrB := sqrt(StdErrB); - if StdErrB > 0.0 then F := B[i] / StdErrB else F := 0.0; - FProbF := probf(F*F,df1,df2); - end - else begin - StdErrB := 0.0; - F := 0.0; - FProbF := 0.0; - end; - cellstring := format('%10s',[Labels[i+1]]); - outline := format('%10s%10.3f%10.3f%10.3f%10.3f%10.3f', - [cellstring, Beta[i] ,B[i], StdErrB, F, FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - constant := means[0] - sum; - outline := format('Constant = %10.3f',[constant]); - OutPutFrm.RichEdit.Lines.Add(outline); - TypeISS[block] := R2 * SST; - OutPutFrm.RichEdit.Lines.Add('BETWEEN SUBJECT EFFECT:'); - outline := format('SS for %-10s = %10.3f',[effstr,TypeISS[block]]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('SS TOTAL = %10.3f',[SST]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - end; - - // Summarize between subject effects - totalss := 0.0; - totaldf := 0.0; - for i := 0 to noblocks - 1 do - begin - if TypeISS[i] < 0.0 then continue; - if betweenblock = i then - begin - ssbetween := TypeISS[i]; - dfbetween := TypeIDF1[i]; - end - else - begin - totalss := totalss + TypeISS[i]; - totaldf := totaldf + TypeIDF1[i]; - end; - end; - sserrbetween := ssbetween - totalss; - dferrbetween := dfbetween - totaldf; - mserrbetween := sserrbetween / dferrbetween; - - OutPutFrm.RichEdit.Lines.Clear; - OutPutFrm.RichEdit.Lines.Add(' SUMMARY OF BETWEEN SUBJECT EFFECTS'); - outline := 'SOURCE DF SS MS F PROB.>F'; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('%-19s %3.0f %9.3f',['Between Subjects',dfbetween, ssbetween]); - OutPutFrm.RichEdit.Lines.Add(outline); - for i := 0 to noblocks - 1 do - begin - if TypeISS[i] < 0.0 then continue; - if betweenblock = i then continue; // already done above - TypeIMS[i] := TypeISS[i] / TypeIDF1[i]; - TypeIF[i] := TypeIMS[i] / mserrbetween; - TypeIDF2[i] := dferrbetween; - TypeIProb[i] := probf(TypeIF[i],TypeIDF1[i],TypeIDF2[i]); - outline := format('%19s %3.0f %9.3f %9.3f %9.3f %9.3f', - [IndOrderBox.Items.Strings[i],TypeIDF1[i],TypeISS[i],TypeIMS[i], - TypeIF[i],TypeIProb[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - outline := format('%19s %3.0f %9.3f %9.3f',['Error Between', dferrbetween, - sserrbetween, mserrbetween]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - - // Now, get within subject effects - sswithin := SST - SSbetween; - dfwithin := totalobs - dfbetween - 1; - for block := 0 to noblocks - 1 do - begin - ColSelected[0] := ReptDepPos[0]; - Labels[0] := GenLabels[1]; - NEntered := 1; - cellstring := IndOrderBox.Items.Strings[block]; - effstr := cellstring; - j := Pos('IR',cellstring); - if j = 0 then continue; // only select those for rep. treatments or interactions - - // check for treatments - if NReptDep > 0 then - begin // look for 'IR' in cellstring - labelstr := copy(cellstring,0,2); - if labelstr = 'IR' then // repeated treatment vectors were generated - begin - for i := 0 to NReptDep - 2 do - begin - ColSelected[NEntered] := ReptTrtPos[i]; - Labels[NEntered] := GenLabels[ReptTrtPos[i]]; - NEntered := NEntered + 1; - end; - end; - end; - // check for interactions next - if NoInterDefs > 0 then - begin - for i := 0 to NoInterDefs-1 do - begin - if cellstring = InteractList.Items.Strings[i] then - begin - for j := 0 to NInteractVecs[i]-1 do - begin - ColSelected[NEntered] := InteractPos[i] + j; - labelstr := format('%s%d_%d',['IA',i+1,j+1]); - Labels[NEntered] := labelstr; - NEntered := NEntered + 1; - end; - break; - end; - end; - end; // check for interaction variables - // do reg analysis and save sum of squares - if NEntered < 2 then continue; - RegAnal(NEntered); - R := sqrt(R2); - df1 := Nentered - 1; // no. of independent variables - TypeIIDF1[block] := df1; - df2 := totalobs - df1 - 1; // N - no. independent - 1 - SSt := (totalobs-1) * Vars[0]; - SSres := SSt * (1.0 - R2); - VarEst := SSres / df2; - if (VarEst > 0.0) then StdErrEst := sqrt(VarEst) - else - begin - ShowMessage('ERROR! Error in computing variance estimate.'); - StdErrEst := 0.0; - end; - if (R2 < 1.0) and (df2 > 0.0) then F := (R2 / df1) / ((1.0-R2)/ df2) - else F := 0.0; - FProbF := probf(F,df1,df2); - AdjR2 := 1.0 - (1.0 - R2) * (totalobs - 1) / df2; -// OutPutFrm.RichEdit.ParaGraph.Alignment := taLeftJustify; - outline := format('%8s%10s%10s%12s%5s%5s',['R','R2','F','Prob.>F','DF1','DF2']); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%8.3f%10.3f%10.3f%10.3f%5.0f%5.0f', - [R,R2,F,FProbF,df1,df2]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Adjusted R Squared = %5.3f',[AdjR2]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Std. Error of Estimate = %10.3f',[StdErrEst]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Variable Beta B Std.Error t Prob.>t'); - df1 := 1.0; - sum := 0.0; - for i := 0 to Nentered - 2 do - begin - SSx := (totalobs-1) * Vars[i+1]; - sum := sum + B[i] * means[i+1]; - if invmatrix[i,i] > 1.0e-15 then - begin - StdErrB := VarEst / (SSx * (1.0 / invmatrix[i,i])); - StdErrB := sqrt(StdErrB); - if StdErrB > 0.0 then F := B[i] / StdErrB else F := 0.0; - FProbF := probf(F*F,df1,df2); - end - else begin - StdErrB := 0.0; - F := 0.0; - FProbF := 0.0; - end; - cellstring := format('%10s',[Labels[i+1]]); - outline := format('%10s%10.3f%10.3f%10.3f%10.3f%10.3f', - [cellstring, Beta[i] ,B[i], StdErrB, F, FProbF]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - constant := means[0] - sum; - outline := format('Constant = %10.3f',[constant]); - OutPutFrm.RichEdit.Lines.Add(outline); - TypeIISS[block] := R2 * SST; - OutPutFrm.RichEdit.Lines.Add('WITHIN SUBJECT EFFECT:'); - outline := format('SS for %-10s = %10.3f',[effstr,TypeIISS[block]]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('SS TOTAL = %10.3f',[SST]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - end; - totalss := 0.0; - totaldf := 0.0; - for i := 0 to noblocks - 1 do // add sums of squares for within effects - begin - if TypeIISS[i] < 0.0 then continue; - totalss := totalss + TypeIISS[i]; - totaldf := totaldf + TypeIIDF1[i]; - end; - sserrwithin := sswithin - totalss; - dferrwithin := dfwithin - totaldf; - mserrwithin := sserrwithin / dferrwithin; - - OutPutFrm.RichEdit.Lines.Clear; - OutPutFrm.RichEdit.Lines.Add(' SUMMARY OF WITHIN SUBJECT EFFECTS'); - outline := 'SOURCE DF SS MS F PROB.>F'; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('%-19s %3.0f %9.3f',['Within Subjects',dfwithin, sswithin]); - OutPutFrm.RichEdit.Lines.Add(outline); - for i := 0 to noblocks - 1 do - begin - if TypeIISS[i] < 0.0 then continue; - TypeIIMS[i] := TypeIISS[i] / TypeIIDF1[i]; - TypeIIF[i] := TypeIIMS[i] / mserrwithin; - TypeIIDF2[i] := dferrwithin; - TypeIIProb[i] := probf(TypeIIF[i],TypeIIDF1[i],TypeIIDF2[i]); - outline := format('%19s %3.0f %9.3f %9.3f %9.3f %9.3f', - [IndOrderBox.Items.Strings[i],TypeIIDF1[i],TypeIISS[i],TypeIIMS[i], - TypeIIF[i],TypeIIProb[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - outline := format('%19s %3.0f %9.3f %9.3f',['Error Within', dferrwithin, - sserrwithin, mserrwithin]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('%19s %3d %9.3f',['TOTAL',totalobs-1,SST]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - - // clean up the heap - TypeIIProb := nil; - TypeIIF := nil; - TypeIProb := nil; - TypeIF := nil; - TypeIIDF2 := nil; - TypeIIDF1 := nil; - TypeIDF2 := nil; - TypeIDF1 := nil; - TypeIIMS := nil; - TypeIMS := nil; - TypeIISS := nil; - TypeISS := nil; -end; - -function TGLMFrm.CntIntActVecs(linestr: string): integer; -var - i, j, listcnt, varcount : integer; - cellstring : string; - asterisk : string; - blank : string; - abbrevList : array[1..5] of string; - vectcnt : array[1..5] of integer; - newline : string; - -begin - asterisk := '*'; - blank := ' '; - listcnt := 0; - cellstring := ''; - newline := ''; - for i := 1 to 5 do vectcnt[i] := 0; - // first, delete imbedded blanks that were there for readability - for i := 1 to length(linestr) do - begin - if linestr[i] <> blank then newline := newline + linestr[i]; - end; - // Now, strip out substrings to each asterisk or end of string - while length(newline) > 0 do - begin - i := pos(asterisk,newline); - if i > 0 then // an asterisk found - begin - cellstring := copy(newline,0,i-1); // get abbreviation - delete(newline,1,i); // delete abbreviation and asterisk - listcnt := listcnt + 1; - AbbrevList[listcnt] := cellstring; - end - else begin // must be last abbreviation - cellstring := newline; - listcnt := listcnt + 1; - AbbrevList[listcnt] := cellstring; - newline := ''; - end; - end; - // now get the associated number of columns for each abbreviation in the list - for i := 1 to listcnt do - begin - cellstring := AbbrevList[i]; - // check for covariates - if NCovIndep > 0 then - begin - for j := 0 to NCovIndep - 1 do - begin - if cellstring = CovariateCode.Items.Strings[j] then - vectcnt[i] := 1; - end; - end; - // check for fixed effect vectors - if NFixedIndep > 0 then - begin - for j := 0 to NFixedIndep - 1 do - begin - if cellstring = FixedIndepCode.Items.Strings[j] then - vectcnt[i] := NFixVecIndep[j]; - end; - end; - // check for random effect vectors - if NRndIndep > 0 then - begin - for j := 0 to NRndIndep - 1 do - begin - if cellstring = RndIndepCode.Items.Strings[j] then - vectcnt[i] := NRndVecIndep[j]; - end; - end; - // check for repeated measures effect vectors - if NReptDep > 0 then - begin - if cellstring = RepTrtCode.Items.Strings[0] then - vectcnt[i] := NReptDep - 1; - end; - end; // next i in listcnt - // get total interaction vector count - varcount := 1; - for i := 1 to listcnt do varcount := varcount * vectcnt[i]; - Result := varcount; -end; - -procedure TGLMFrm.GenInterVecs(linestr: string); -var - i, j, k, l, m, n, col, listcnt, pos1, pos2, pos3, pos4, pos5, novectors : integer; - cellstring : string; - asterisk : string; - blank : string; - abbrevList : array[1..5] of string; - vectcnt : array[1..5] of integer; - fromcol : array[1..5] of integer; - newline : string; - product : double; - -begin - asterisk := '*'; - blank := ' '; - listcnt := 0; - cellstring := ''; - newline := ''; - // first, delete imbedded blanks that were there for readability - for i := 1 to length(linestr) do - begin - if linestr[i] <> blank then newline := newline + linestr[i]; - end; - // Now, strip out substrings to each asterisk or end of string - while length(newline) > 0 do - begin - i := pos(asterisk,newline); - if i > 0 then // an asterisk found - begin - cellstring := copy(newline,0,i-1); // get abbreviation - delete(newline,1,i); // delete abbreviation and asterisk - listcnt := listcnt + 1; - AbbrevList[listcnt] := cellstring; - end - else begin // must be last abbreviation - cellstring := newline; - listcnt := listcnt + 1; - AbbrevList[listcnt] := cellstring; - newline := ''; - end; - end; - // now generate the associated number of columns for each abbreviation in the list - for i := 1 to listcnt do - begin - cellstring := AbbrevList[i]; - // check for covariates - if NCovIndep > 0 then - begin - for j := 0 to NCovIndep - 1 do - begin - if cellstring = CovariateCode.Items.Strings[j] then - begin - vectcnt[i] := 1; - fromcol[i] := CovIndepPos[j]; - break; - end; - end; - end; - // check for fixed effect vectors - if NFixedIndep > 0 then - begin - for j := 0 to NFixedIndep - 1 do - begin - if cellstring = FixedIndepCode.Items.Strings[j] then - begin - vectcnt[i] := NFixVecIndep[j]; - fromcol[i] := FixedIndepPos[j]; - break; - end; - end; - end; - // check for random effect vectors - if NRndIndep > 0 then - begin - for j := 0 to NRndIndep - 1 do - begin - if cellstring = RndIndepCode.Items.Strings[j] then - begin - vectcnt[i] := NRndVecIndep[j]; - fromcol[i] := RndIndepPos[j]; - break; - end; - end; - end; - // check for repeated measures - if NReptDep > 0 then - begin - if cellstring = RepTrtCode.Items.Strings[0] then - begin - vectcnt[i] := NReptDep - 1; - fromcol[i] := ReptTrtPos[0]; - end; - end; - end; // next i in listcnt - - // now generate the product vectors for 2-way interactions - col := gencount; - for i := 1 to vectcnt[1] do - begin - pos1 := fromcol[1] + i - 1; - for j := 1 to vectcnt[2] do - begin - pos2 := fromcol[2] + j - 1; - for m := 0 to totalobs - 1 do - datagrid[m,col] := datagrid[m,pos1] * datagrid[m,pos2]; - cellstring := format('%s_%d*%s_%d',[AbbrevList[1],i,AbbrevList[2],j]); - GenLabels[col] := cellstring; - col := col + 1; - end; - end; - - if listcnt = 3 then // Do 3-way interactions - begin - col := gencount; - for i := 1 to vectcnt[1] do - begin - pos1 := fromcol[1] + i - 1; - for j := 1 to vectcnt[2] do - begin - pos2 := fromcol[2] + j - 1; - for k := 1 to vectcnt[3] do - begin - pos3 := fromcol[3] + k - 1; - for m := 0 to totalobs - 1 do - datagrid[m,col] := datagrid[m,pos1] * datagrid[m,pos2] * datagrid[m,pos3]; - cellstring := format('%s*%s*%s',[GenLabels[pos1],GenLabels[pos2],GenLabels[pos3]]); - GenLabels[col] := cellstring; - col := col + 1; - end; // next k - end; // next j - end; // next i - end; // if listcnt = 3 - - if listcnt = 4 then // Do 4-way interactions - begin - col := gencount; - for i := 1 to vectcnt[1] do - begin - pos1 := fromcol[1] + i - 1; - for j := 1 to vectcnt[2] do - begin - pos2 := fromcol[2] + j - 1; - for k := 1 to vectcnt[3] do - begin - pos3 := fromcol[3] + k - 1; - for l := 1 to vectcnt[4] do - begin - pos4 := fromcol[4] + l - 1; - for m := 0 to totalobs - 1 do - datagrid[m,col] := datagrid[m,pos1] * - datagrid[m,pos2] * datagrid[m,pos3] * datagrid[m,pos4]; - cellstring := format('%s*%s*%s*%s',[GenLabels[pos1], - GenLabels[pos2],GenLabels[pos3],GenLabels[pos4]]); - GenLabels[col] := cellstring; - col := col + 1; - end; // next l - end; // next k - end; // next j - end; // next i - end; // if listcnt = 3 - - if listcnt = 5 then // Do 5-way interactions - begin - col := gencount; - for i := 1 to vectcnt[1] do - begin - pos1 := fromcol[1] + i - 1; - for j := 1 to vectcnt[2] do - begin - pos2 := fromcol[2] + j - 1; - for k := 1 to vectcnt[3] do - begin - pos3 := fromcol[3] + k - 1; - for l := 1 to vectcnt[4] do - begin - pos4 := fromcol[4] + l - 1; - for n := 1 to vectcnt[5] do - begin - pos5 := fromcol[5] + n - 1; - for m := 0 to totalobs - 1 do - datagrid[m,col] := datagrid[m,pos1] * - datagrid[m,pos2] * datagrid[m,pos3] * - datagrid[m,pos4] * datagrid[m,pos5]; - cellstring := format('%s*%s*%s*%s*%s',[GenLabels[pos1], - GenLabels[pos2],GenLabels[pos3],GenLabels[pos4], - GenLabels[pos5]]); - GenLabels[col] := cellstring; - col := col + 1; - end; // next n - end; // next l - end; // next k - end; // next j - end; // next i - end; // if listcnt = 3 -end; - -procedure TGLMFrm.CanCor(NLeft: integer; NRight: integer; GridPlace: IntDyneVec); -label cleanup; -var - i, j, k, count, a_size, b_size, no_factors, 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 : IntDyneVec; - a_vars, b_vars : StrDyneVec; - selected : IntDyneVec; - RowLabels, ColLabels : StrDyneVec; - CanLabels : StrDyneVec; - NCases : integer; - title : string; - errorcode : boolean; - -begin - count := 0; - 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 := NLeft; - b_size:= NRight; - novars:= a_size + b_size; - - // allocate memory for matrices and vectors - SetLength(raa,NLeft+1,NLeft+1); - SetLength(rbb,NRight+1,NRight+1); - SetLength(rab,NLeft+1,NRight+1); - SetLength(rba,NRight+1,NLeft+1); - SetLength(bigmat,novars+1,novars+1); - SetLength(prod,novars+1,novars+1); - SetLength(first_prod,novars+1,novars+1); - SetLength(second_prod,novars+1,novars+1); - SetLength(char_equation,novars+1,novars+1); - SetLength(raainv,NLeft,NLeft); - SetLength(rbbinv,NRight,NRight); - 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,NLeft+1,NLeft+1); - SetLength(b_cors,NRight+1,NRight+1); - 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,NLeft); - SetLength(b_vars,NRight); - SetLength(CanLabels,novars); - SetLength(RowLabels,novars); - SetLength(ColLabels,novars); - SetLength(selected,novars); - - //------------ WORK STARTS HERE! ------------------------------------- - - // Build labels for canonical functions 1 to novars - if b_size < a_size then - for i := 0 to b_size-1 do CanLabels[i] := 'CanVar' + IntToStr(i+1) - else for i := 0 to a_size-1 do CanLabels[i] := 'CanVar' + IntToStr(i+1); - - for i := 0 to a_size - 1 do // identify left variables - begin - a_vars[i] := Labels[i]; - selected[i] := GridPlace[i]; - end; - - for i := 0 to b_size - 1 do // identify right variables - begin - b_vars[i] := Labels[NLeft+i]; - selected[NLeft+i] := GridPlace[NLeft+i]; - end; - - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('CANONICAL CORRELATION ANALYSIS'); - OutPutFrm.RichEdit.Lines.Add(''); - count := NoCases; - // Get means, standard deviations, etc. for total matrix - IER := Dyncorrelations(novars,selected,datagrid,bigmat,mean,variance,stddev,totalobs,3); - if (IER = 1)then - begin - ShowMessage('ERROR! Zero variance found for a variable-terminating'); - goto cleanup; - end; - - //partition matrix into quadrants - for i := 0 to a_size - 1 do - for j := 0 to a_size - 1 do raa[i,j]:= bigmat[i,j]; - - for i := a_size to novars - 1 do - for j := a_size to novars - 1 do - rbb[i-a_size,j-a_size] := bigmat[i,j]; - - for i := 0 to a_size - 1 do - for j := a_size to novars - 1 do - rab[i,j-a_size] := bigmat[i,j]; - - for i := a_size to novars - 1 do - for j := 0 to a_size - 1 do - rba[i-a_size,j] := bigmat[i,j]; - - if CorsChk.Checked then - begin - title := 'Left Correlation Matrix'; - MAT_PRINT(raa,NLeft,NLeft,title,a_vars,a_vars,totalobs); - title := 'Right Correlation Matrix'; - MAT_PRINT(rbb,NRight,NRight,title,b_vars,b_vars,totalobs); - title := 'Left-Right Correlation Matrix'; - MAT_PRINT(rab,NLeft,NRight,title,a_vars,b_vars,totalobs); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - // get inverses of left and right hand matrices raa and rbb - for i := 0 to a_size-1 do - for j := 0 to a_size-1 do - tempmat[i,j] := raa[i,j]; - SVDInverse(tempmat,a_size); - for i := 0 to a_size-1 do - for j := 0 to a_size-1 do raainv[i,j] := tempmat[i,j]; - if CorsChk.Checked then - begin - title := 'Inverse of Left Matrix'; - MAT_PRINT(raainv,a_size,a_size,title,a_vars,a_vars,totalobs); - end; - - for i := 0 to b_size-1 do - for j := 0 to b_size-1 do - tempmat[i,j] := rbb[i,j]; // inverse uses 1 offset - SVDInverse(tempmat,b_size); - for i := 0 to b_size-1 do // reset to 0 offset - for j := 0 to b_size - 1 do rbbinv[i,j] := tempmat[i,j]; - if CorsChk.Checked then - begin - title := 'Inverse of Right Matrix'; - MAT_PRINT(rbbinv,b_size,b_size,title,b_vars,b_vars,totalobs); - end; - - // get products of raainv x rab and the rbbinv x rba matrix - for i := 0 to b_size-1 do - for j := 0 to a_size-1 do first_prod[i,j] := 0.0; - MatAxB(first_prod,rbbinv,rba,b_size,b_size,b_size,a_size,errorcode); - for i := 0 to a_size-1 do - for j := 0 to b_size-1 do second_prod[i,j] := 0.0; - 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,b_vars,a_vars,totalobs); - title := 'Left Inverse x Left-Right Matrix'; - MAT_PRINT(second_prod,a_size,b_size,title,a_vars,b_vars,totalobs); - - //get characteristic equations matrix (product of last two product matrices - //The product should yeild rows and cols representing the smaller of the two sets - for i := 0 to b_size-1 do - for j := 0 to b_size - 1 do char_equation[i,j] := 0.0; - 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,totalobs); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - // now get roots and vectors of the characteristic equation using - // NonSymRoots routine - minroot := 0.0; - for i := 0 to b_size - 1 do - begin - roots[i] := 0.0; - pcnt_trace[i] := 0.0; - for j := 0 to b_size - 1 do eigenvectors[i,j] := 0.0; - end; - trace := 0.0; - no_factors := b_size; - Dynnonsymroots(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 - for i := 0 to b_size - 1 do // transpose eigenvectors - for j := 0 to b_size - 1 do eigentrans[j,i] := eigenvectors[i,j]; - for i := 0 to b_size - 1 do - for j := 0 to b_size-1 do tempmat[i,j] := 0.0; - MatAxB(tempmat,eigentrans,rbb,b_size,b_size,b_size,b_size,errorcode); - for i := 0 to b_size-1 do - for j := 0 to b_size-1 do theta[i,j] := 0.0; - MatAxB(theta,tempmat,eigenvectors,b_size,b_size,b_size,b_size,errorcode); - for j := 0 to b_size - 1 do - begin - q := 1.0 / sqrt(theta[j,j]); - for i := 0 to b_size - 1 do - begin - norm_b[i,j] := eigenvectors[i,j] * q; - raw_b[i,j] := norm_b[i,j] / stddev[a_size+i]; - end; - end; - for i := 0 to a_size - 1 do - for j := 0 to b_size - 1 do norm_a[i,j] := 0.0; - MatAxB(norm_a,second_prod,norm_b,a_size,b_size,b_size,b_size,errorcode); - for j := 0 to b_size-1 do - begin - for i := 0 to a_size-1 do - begin - norm_a[i,j] := norm_a[i,j] * (1.0 / sqrt(roots[j])); - raw_a[i,j] := norm_a[i,j] / stddev[i]; - end; - end; - - // Compute the correlations between variables and canonical variables - for i := 0 to a_size-1 do - for j := 0 to b_size-1 do a_cors[i,j] := 0.0; - MatAxB(a_cors,raa,norm_a,a_size,a_size,a_size,b_size,errorcode); - for j := 0 to b_size-1 do - begin - q := 0.0; - for i := 0 to a_size-1 do q := q + norm_a[i,j] * a_cors[i,j]; - q := 1.0 / sqrt(q); - for i := 0 to a_size-1 do a_cors[i,j] := a_cors[i,j] * q; - end; - for i := 0 to b_size-1 do - for j := 0 to b_size-1 do b_cors[i,j] := 0.0; - MatAxB(b_cors,rbb,norm_b,b_size,b_size,b_size,b_size,errorcode); - for j := 0 to b_size-1 do - begin - q := 0.0; - for i := 0 to b_size-1 do q := q + norm_b[i,j] * b_cors[i,j]; - q := 1.0 / sqrt(q); - for i := 0 to b_size-1 do b_cors[i,j] := b_cors[i,j] * q; - end; - - // Compute the Proportions of Variance (PVs) and Redundancy Coefficients - for j := 0 to b_size-1 do - begin - pv_a[j] := 0.0; - for i := 0 to a_size-1 do pv_a[j] := pv_a[j] + (a_cors[i,j] * a_cors[i,j]); - pv_a[j] := pv_a[j] / a_size; - rd_a[j] := pv_a[j] * roots[j]; - end; - for j := 0 to b_size-1 do - begin - pv_b[j] := 0.0; - for i := 0 to b_size-1 do pv_b[j] := pv_b[j] + (b_cors[i,j] * b_cors[i,j]); - pv_b[j] := pv_b[j] / b_size; - rd_b[j] := pv_b[j] * roots[j]; - end; - - // Compute tests of the roots - q := a_size + b_size + 1; - q := -(count - 1.0 - (q / 2.0)); - k := 0; - for i := 0 to b_size-1 do - begin - w := 1.0; - for j := i to b_size-1 do w := w * (1.0 - roots[j]); - root_chi[i] := q * ln(w); - root_df[i] := (a_size - i) * (b_size - i); - chi_prob[i] := 1.0 - chisquaredprob(root_chi[i],root_df[i]); - if (chi_prob[i] < critical_prob) then k := k + 1; - end; - Roys := roots[1] / (1.0 - roots[1]); - Lambda := 1.0; - for i := 0 to b_size-1 do - begin - Hroot := roots[i] / (1.0 - roots[i]); - 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 := 0 to b_size-1 do - begin - outline := format('%2d %10.6f %8.3f %7.3f %8.3f %2d %8.3f', - [i+1, sqrt(roots[i]), roots[i], pcnt_trace[i], root_chi[i], root_df[i], chi_prob[i]]); - 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 CorsChk.Checked then - begin - title := 'Eigenvectors'; - MAT_PRINT(eigenvectors,b_size,b_size,title,CanLabels,CanLabels,totalobs); - OutPutFrm.ShowModal(); - OutPutFrm.RichEdit.Clear; - end; - - title := 'Standardized Right Side Weights'; - MAT_PRINT(norm_a,a_size,b_size,title,RowLabels,CanLabels,totalobs); - title := 'Standardized Left Side Weights'; - MAT_PRINT(norm_b,b_size,b_size,title,ColLabels,CanLabels,totalobs); - OutPutFrm.ShowModal; - title := 'Raw Right Side Weights'; - MAT_PRINT(raw_a,a_size,b_size,title,RowLabels,CanLabels,totalobs); - title := 'Raw Left Side Weights'; - MAT_PRINT(raw_b,b_size,b_size,title,ColLabels,CanLabels,totalobs); - OutPutFrm.ShowModal; - title := 'Right Side Correlations with Function'; - MAT_PRINT(a_cors,a_size,b_size,title,RowLabels,CanLabels,totalobs); - title := 'Left Side Correlations with Function'; - MAT_PRINT(b_cors,b_size,b_size,title,ColLabels,CanLabels,totalobs); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - if CorsChk.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 := 0 to b_size-1 do - begin - outline := format('%10d %10.5f %10.5f',[i,pv_a[i],rd_a[i]]); - 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 := 0 to b_size-1 do - begin - outline := format('%10d %10.5f %10.5f',[i,pv_b[i],rd_b[i]]); - 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; - bigmat := nil; - rba := nil; - rab := nil; - rbb := nil; - raa := nil; -end; - -initialization - {$I glmunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/globals.pas b/applications/lazstats/source_orig/globals.pas deleted file mode 100644 index 0e3388d9d..000000000 --- a/applications/lazstats/source_orig/globals.pas +++ /dev/null @@ -1,60 +0,0 @@ -unit Globals; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils; -const TOL = 0.0005; - -Type IntDyneVec = array of integer; - -Type DblDyneVec = array of double; - -Type BoolDyneVec = array of boolean; - -Type DblDyneMat = array of array of double; - -Type IntDyneMat = array of array of integer; - -Type DblDyneCube = array of array of array of double; - -Type IntDyneCube = array of array of array of integer; - -Type DblDyneQuad = array of array of array of array of double; - -Type IntDyneQuad = array of array of array of array of integer; - -Type StrDyneVec = array of string; - -Type StrDyneMat = array of array of string; - -Type CharDyneVec = array of char; - - type POINT3D = record - x, y, z : double; - end; - - type POINTint = record - x, y : integer; - end; - -var - NoCases : integer; - NoVariables : integer; - VarDefined : array[0..500] of boolean; - TempStream : TMemoryStream; - TempVarItm : TMemoryStream; - DictLoaded : boolean; - FilterOn : boolean; - FilterCol : integer; - OpenStatPath : string; - AItems : array[0..8] of string; - LoggedOn : boolean = false; - - -implementation - -end. - diff --git a/applications/lazstats/source_orig/gradebookunit.lfm b/applications/lazstats/source_orig/gradebookunit.lfm deleted file mode 100644 index 942347054..000000000 --- a/applications/lazstats/source_orig/gradebookunit.lfm +++ /dev/null @@ -1,192 +0,0 @@ -object GradebookFrm: TGradebookFrm - Left = 22 - Height = 541 - Top = 86 - Width = 956 - Caption = 'Gradebook' - ClientHeight = 522 - ClientWidth = 956 - Menu = MainMenu1 - OnCreate = FormCreate - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 46 - Height = 25 - Top = 13 - Width = 247 - Caption = 'YOUR GRADEBOOK FOR:' - Font.CharSet = ANSI_CHARSET - Font.Color = clBlack - Font.Height = -21 - Font.Name = 'Times New Roman' - Font.Pitch = fpVariable - Font.Quality = fqDraft - Font.Style = [fsBold, fsItalic] - ParentColor = False - ParentFont = False - end - object Label2: TLabel - Left = 8 - Height = 14 - Top = 48 - Width = 21 - Caption = 'File:' - ParentColor = False - end - object Label3: TLabel - Left = 56 - Height = 14 - Top = 80 - Width = 179 - Caption = 'Directory (click folder icon to change)' - ParentColor = False - end - object FileNameEdit: TEdit - Left = 40 - Height = 21 - Top = 46 - Width = 252 - TabOrder = 0 - Text = 'FileNameEdit' - end - object DirectoryEdit1: TDirectoryEdit - Left = 8 - Height = 21 - Top = 104 - Width = 284 - Directory = 'C:' - ShowHidden = False - ButtonWidth = 23 - NumGlyphs = 0 - TabOrder = 1 - OnChange = DirectoryEdit1Change - end - object FileListBox1: TFileListBox - Left = 7 - Height = 293 - Top = 145 - Width = 287 - Directory = 'C:\Windows\system32' - ItemHeight = 13 - TabOrder = 2 - end - object ResetBtn: TButton - Left = 8 - Height = 29 - Top = 447 - Width = 98 - Caption = 'Start New' - TabOrder = 3 - end - object ExitBtn: TButton - Left = 9 - Height = 29 - Top = 480 - Width = 97 - Caption = 'Exit' - ModalResult = 1 - OnClick = ExitBtnClick - TabOrder = 4 - end - object Grid: TStringGrid - Left = 320 - Height = 504 - Top = 0 - Width = 628 - ColCount = 58 - FixedCols = 0 - Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing, goTabs, goSmoothScroll] - RowCount = 41 - TabOrder = 5 - OnExit = GridExit - end - object RadioGroup1: TRadioGroup - Left = 129 - Height = 61 - Top = 447 - Width = 163 - AutoFill = True - Caption = 'Name Protection:' - 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 = 159 - ItemIndex = 1 - Items.Strings = ( - 'Turn ON' - 'Turn OFF' - ) - OnClick = RadioGroup1Click - TabOrder = 6 - end - object MainMenu1: TMainMenu - left = 304 - object FilesMenu: TMenuItem - Caption = 'Files' - object NewGBMnu: TMenuItem - Caption = 'New Grade Book' - OnClick = NewGBMnuClick - end - object OpenGBMnu: TMenuItem - Caption = 'Open Existing Grade Book' - OnClick = OpenGBMnuClick - end - object SaveGBMnu: TMenuItem - Caption = 'Save Grade Book' - OnClick = SaveGBMnuClick - end - object ExitMnu: TMenuItem - Caption = 'Exit' - OnClick = ExitMnuClick - end - end - object EditMnu: TMenuItem - Caption = 'Edit' - object DelRowMnu: TMenuItem - Caption = 'Delete Current Row' - OnClick = DelRowMnuClick - end - end - object ComputeMenu: TMenuItem - Caption = 'Compute' - object TestAnalMnu: TMenuItem - Caption = 'Analyze a Test' - OnClick = TestAnalMnuClick - end - object CompScrMnu: TMenuItem - Caption = 'Calc. Composite Score' - OnClick = CompScrMnuClick - end - end - object ReportsMenu: TMenuItem - Caption = 'Reports' - object StudRptsMnu: TMenuItem - Caption = 'Individual Student Reports' - OnClick = StudRptsMnuClick - end - object ClassRptMnu: TMenuItem - Caption = 'Class Report' - OnClick = ClassRptMnuClick - end - end - object HelpMenu: TMenuItem - Caption = 'Help' - Visible = False - end - end - object SaveDialog1: TSaveDialog - left = 189 - top = 1 - end - object OpenDialog1: TOpenDialog - left = 258 - top = 1 - end -end diff --git a/applications/lazstats/source_orig/gradebookunit.lrs b/applications/lazstats/source_orig/gradebookunit.lrs deleted file mode 100644 index 04a983210..000000000 --- a/applications/lazstats/source_orig/gradebookunit.lrs +++ /dev/null @@ -1,59 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TGradebookFrm','FORMDATA',[ - 'TPF0'#13'TGradebookFrm'#12'GradebookFrm'#4'Left'#2#22#6'Height'#3#29#2#3'Top' - +#2'V'#5'Width'#3#188#3#7'Caption'#6#9'Gradebook'#12'ClientHeight'#3#10#2#11 - +'ClientWidth'#3#188#3#4'Menu'#7#9'MainMenu1'#8'OnCreate'#7#10'FormCreate'#6 - +'OnShow'#7#8'FormShow'#10'LCLVersion'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4 - +'Left'#2'.'#6'Height'#2#25#3'Top'#2#13#5'Width'#3#247#0#7'Caption'#6#19'YOUR' - +' GRADEBOOK FOR:'#12'Font.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clB' - +'lack'#11'Font.Height'#2#235#9'Font.Name'#6#15'Times New Roman'#10'Font.Pitc' - +'h'#7#10'fpVariable'#12'Font.Quality'#7#7'fqDraft'#10'Font.Style'#11#6'fsBol' - +'d'#8'fsItalic'#0#11'ParentColor'#8#10'ParentFont'#8#0#0#6'TLabel'#6'Label2' - +#4'Left'#2#8#6'Height'#2#14#3'Top'#2'0'#5'Width'#2#21#7'Caption'#6#5'File:' - +#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#2'8'#6'Height'#2#14#3'Top' - +#2'P'#5'Width'#3#179#0#7'Caption'#6'''Directory (click folder icon to change' - +')'#11'ParentColor'#8#0#0#5'TEdit'#12'FileNameEdit'#4'Left'#2'('#6'Height'#2 - +#21#3'Top'#2'.'#5'Width'#3#252#0#8'TabOrder'#2#0#4'Text'#6#12'FileNameEdit'#0 - +#0#14'TDirectoryEdit'#14'DirectoryEdit1'#4'Left'#2#8#6'Height'#2#21#3'Top'#2 - +'h'#5'Width'#3#28#1#9'Directory'#6#2'C:'#10'ShowHidden'#8#11'ButtonWidth'#2 - +#23#9'NumGlyphs'#2#0#8'TabOrder'#2#1#8'OnChange'#7#20'DirectoryEdit1Change'#0 - +#0#12'TFileListBox'#12'FileListBox1'#4'Left'#2#7#6'Height'#3'%'#1#3'Top'#3 - +#145#0#5'Width'#3#31#1#9'Directory'#6#19'C:\Windows\system32'#10'ItemHeight' - +#2#13#8'TabOrder'#2#2#0#0#7'TButton'#8'ResetBtn'#4'Left'#2#8#6'Height'#2#29#3 - +'Top'#3#191#1#5'Width'#2'b'#7'Caption'#6#9'Start New'#8'TabOrder'#2#3#0#0#7 - +'TButton'#7'ExitBtn'#4'Left'#2#9#6'Height'#2#29#3'Top'#3#224#1#5'Width'#2'a' - +#7'Caption'#6#4'Exit'#11'ModalResult'#2#1#7'OnClick'#7#12'ExitBtnClick'#8'Ta' - +'bOrder'#2#4#0#0#11'TStringGrid'#4'Grid'#4'Left'#3'@'#1#6'Height'#3#248#1#3 - +'Top'#2#0#5'Width'#3't'#2#8'ColCount'#2':'#9'FixedCols'#2#0#7'Options'#11#15 - +'goFixedVertLine'#15'goFixedHorzLine'#10'goVertLine'#10'goHorzLine'#13'goRan' - +'geSelect'#9'goEditing'#6'goTabs'#14'goSmoothScroll'#0#8'RowCount'#2')'#8'Ta' - +'bOrder'#2#5#6'OnExit'#7#8'GridExit'#0#0#11'TRadioGroup'#11'RadioGroup1'#4'L' - +'eft'#3#129#0#6'Height'#2'='#3'Top'#3#191#1#5'Width'#3#163#0#8'AutoFill'#9#7 - +'Caption'#6#16'Name Protection:'#28'ChildSizing.LeftRightSpacing'#2#6#28'Chi' - +'ldSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizontal'#7#24'crsHo' - +'mogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsHomogenousChil' - +'dResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds'#26'ChildSizi' - +'ng.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7#29'cclLeft' - +'ToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'ClientHeight' - +#2'+'#11'ClientWidth'#3#159#0#9'ItemIndex'#2#1#13'Items.Strings'#1#6#7'Turn ' - +'ON'#6#8'Turn OFF'#0#7'OnClick'#7#16'RadioGroup1Click'#8'TabOrder'#2#6#0#0#9 - +'TMainMenu'#9'MainMenu1'#4'left'#3'0'#1#0#9'TMenuItem'#9'FilesMenu'#7'Captio' - +'n'#6#5'Files'#0#9'TMenuItem'#8'NewGBMnu'#7'Caption'#6#14'New Grade Book'#7 - +'OnClick'#7#13'NewGBMnuClick'#0#0#9'TMenuItem'#9'OpenGBMnu'#7'Caption'#6#24 - +'Open Existing Grade Book'#7'OnClick'#7#14'OpenGBMnuClick'#0#0#9'TMenuItem'#9 - +'SaveGBMnu'#7'Caption'#6#15'Save Grade Book'#7'OnClick'#7#14'SaveGBMnuClick' - +#0#0#9'TMenuItem'#7'ExitMnu'#7'Caption'#6#4'Exit'#7'OnClick'#7#12'ExitMnuCli' - +'ck'#0#0#0#9'TMenuItem'#7'EditMnu'#7'Caption'#6#4'Edit'#0#9'TMenuItem'#9'Del' - +'RowMnu'#7'Caption'#6#18'Delete Current Row'#7'OnClick'#7#14'DelRowMnuClick' - +#0#0#0#9'TMenuItem'#11'ComputeMenu'#7'Caption'#6#7'Compute'#0#9'TMenuItem'#11 - +'TestAnalMnu'#7'Caption'#6#14'Analyze a Test'#7'OnClick'#7#16'TestAnalMnuCli' - +'ck'#0#0#9'TMenuItem'#10'CompScrMnu'#7'Caption'#6#21'Calc. Composite Score'#7 - +'OnClick'#7#15'CompScrMnuClick'#0#0#0#9'TMenuItem'#11'ReportsMenu'#7'Caption' - +#6#7'Reports'#0#9'TMenuItem'#11'StudRptsMnu'#7'Caption'#6#26'Individual Stud' - +'ent Reports'#7'OnClick'#7#16'StudRptsMnuClick'#0#0#9'TMenuItem'#11'ClassRpt' - +'Mnu'#7'Caption'#6#12'Class Report'#7'OnClick'#7#16'ClassRptMnuClick'#0#0#0#9 - +'TMenuItem'#8'HelpMenu'#7'Caption'#6#4'Help'#7'Visible'#8#0#0#0#11'TSaveDial' - +'og'#11'SaveDialog1'#4'left'#3#189#0#3'top'#2#1#0#0#11'TOpenDialog'#11'OpenD' - +'ialog1'#4'left'#3#2#1#3'top'#2#1#0#0#0 -]); diff --git a/applications/lazstats/source_orig/gradebookunit.pas b/applications/lazstats/source_orig/gradebookunit.pas deleted file mode 100644 index 7e8e125c4..000000000 --- a/applications/lazstats/source_orig/gradebookunit.pas +++ /dev/null @@ -1,902 +0,0 @@ -unit gradebookunit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - Menus, StdCtrls, EditBtn, FileCtrl, ComCtrls, Grids, ExtCtrls, MainUnit, - Globals, DataProcs, FunctionsLib, DictionaryUnit, outputunit, graphlib, - gradingunit; - - Type - TestRcd = Record - TestNo : integer; - NoItems : integer; - Mean, Variance, StdDev : double; - KR21Rel : double; - Weight : double; - end; - - Type DblDyneMat = array of array of double; - Type DblDyneVec = array of double; - -type - - { TGradebookFrm } - - TGradebookFrm = class(TForm) - ExitBtn: TButton; - Label3: TLabel; - ExitMnu: TMenuItem; - CompScrMnu: TMenuItem; - ClassRptMnu: TMenuItem; - EditMnu: TMenuItem; - DelRowMnu: TMenuItem; - OpenDialog1: TOpenDialog; - SaveDialog1: TSaveDialog; - StudRptsMnu: TMenuItem; - TestAnalMnu: TMenuItem; - SaveGBMnu: TMenuItem; - OpenGBMnu: TMenuItem; - NewGBMnu: TMenuItem; - RadioGroup1: TRadioGroup; - ResetBtn: TButton; - DirectoryEdit1: TDirectoryEdit; - FileListBox1: TFileListBox; - FileNameEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - MainMenu1: TMainMenu; - FilesMenu: TMenuItem; - ComputeMenu: TMenuItem; - HelpMenu: TMenuItem; - ReportsMenu: TMenuItem; - Grid: TStringGrid; - procedure ClassRptMnuClick(Sender: TObject); - procedure CompScrMnuClick(Sender: TObject); - procedure DelRowMnuClick(Sender: TObject); - procedure DirectoryEdit1Change(Sender: TObject); - procedure ExitBtnClick(Sender: TObject); - procedure ExitMnuClick(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure GridExit(Sender: TObject); - procedure NewGBMnuClick(Sender: TObject); - procedure OpenGBMnuClick(Sender: TObject); - procedure RadioGroup1Click(Sender: TObject); - procedure SaveGBMnuClick(Sender: TObject); - procedure StudRptsMnuClick(Sender: TObject); - procedure TestAnalMnuClick(Sender: TObject); - - private - { private declarations } - Test : TestRcd; - TestNo, GridCol, GridRow, NoTests : integer; - - public - { public declarations } - nints, tno, NoStudents, nitems : integer; - freq : array[0..50] of double; - scores : array[0..50] of double; - sortedraw : DblDyneVec; - pcntiles : DblDyneMat; - tscores : DblDyneVec; - zscores : DblDyneVec; - pcntilerank : array[0..50] of double; - - end; - -var - GradebookFrm: TGradebookFrm; - -implementation - -{ TGradebookFrm } - -procedure TGradebookFrm.ExitBtnClick(Sender: TObject); -var response : string ; -begin - response := InputBox('SAVE','Save gradebook (Y or N)?','N'); - if response = 'Y' then SaveGBMnuClick(Self); - Close; -end; - -procedure TGradebookFrm.ExitMnuClick(Sender: TObject); -var response : string ; -begin - response := InputBox('SAVE','Save gradebook (Y or N)?','N'); - if response = 'Y' then SaveGBMnuClick(Self); - Close; -end; - -procedure TGradebookFrm.DirectoryEdit1Change(Sender: TObject); -begin - DirectoryEdit1.Directory := GetCurrentDir; - FileListBox1.Directory := DirectoryEdit1.Directory; -end; - -procedure TGradebookFrm.DelRowMnuClick(Sender: TObject); -VAR - row, i, j : integer; -begin - row := Grid.Row; - for i := 0 to 57 do Grid.Cells[i,row] := ''; - if Grid.Cells[0,row+1] <> '' then - begin - for i := row + 1 to NoStudents do - begin - for j := 0 to 57 do Grid.Cells[j,i-1] := Grid.Cells[j,i]; - end; - for j := 0 to 57 do Grid.Cells[j,NoStudents] := ''; - NoStudents := NoStudents - 1; - end; -end; - -procedure TGradebookFrm.CompScrMnuClick(Sender: TObject); -var - ncats, i, j, k, NoVars, count, IER, col : integer; - DataMat : array[1..50,1..10] of double; - Rmat, RelMat : array[1..10,1..10] of double; - Weights, Reliabilities, VectProd, means, variances, stddevs : array[1..10] of double; - X, Y, CompRel, numerator, denominator, compscore : double; - outline, cellstring : string; - title : string; - RowLabels : array[1..10] of string; - response : string; - nomiss : integer; - found : boolean; - -begin - OutPutFrm.RichEdit.Clear; - NoVars := 0; - // get number of tests - for i := 1 to 10 do - begin - tno := i * 5 - 5; - col := tno + 3; // column of raw scores for test number - found := false; - for j := 1 to NoStudents do - begin - if Grid.Cells[col,j] <> '' then found := true; - end; - if found then - begin - NoVars := NoVars + 1; - RowLabels[NoVars] := 'Test ' + IntToStr(NoVars); - end; - end; - count := NoStudents; - - // get data - for i := 1 to NoVars do - begin - nomiss := 0; - tno := i * 5 - 5; - col := tno + 3; // column of raw scores for test number - for j := 1 to NoStudents do - begin - if Grid.Cells[col,j] <> '' then - DataMat[j,i] := StrToFloat(Grid.Cells[col,j]) - else nomiss := nomiss + 1; - end; - if nomiss >= NoStudents then NoVars := NoVars - 1; - end; - - OutPutFrm.RichEdit.Lines.Add('Composite Test Reliability'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'File Analyzed: ' + FileNameEdit.Text; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - - // get correlation matrix - for i := 1 to NoVars do - begin - means[i] := 0.0; - variances[i] := 0.0; - for j := 1 to NoVars do Rmat[i,j] := 0.0; - end; - - for i := 1 to NoStudents do // get cross-products matrix - begin - for j := 1 to NoVars do - begin - X := DataMat[i,j]; - means[j] := means[j] + X; - variances[j] := variances[j] + (X * X); - for k := 1 to NoVars do - begin - Y := DataMat[i,k]; - Rmat[j,k] := Rmat[j,k] + (X * Y); - end; - end; - end; - - for j := 1 to NoVars do // calculate variances and standard dev.s - begin - variances[j] := variances[j] - (means[j] * means[j] / NoStudents); - variances[j] := variances[j] / (NoStudents - 1.0); - if variances[j] <= 0.0 then - begin - ShowMessage('No variance found in test '+ IntToStr(j)); - exit; - end - else stddevs[j] := sqrt(variances[j]); - end; - - for j := 1 to NoVars do // get variance-covariance matrix - begin - for k := 1 to NoVars do - begin - Rmat[j,k] := Rmat[j,k] - (means[j] * means[k] / NoStudents); - Rmat[j,k] := Rmat[j,k] / (NoStudents - 1.0); - end; - end; - - for j := 1 to NoVars do // get correlation matrix - for k := 1 to NoVars do Rmat[j,k] := Rmat[j,k] / (stddevs[j] * stddevs[k]); - - for j := 1 to NoVars do means[j] := means[j] / NoStudents; - - OutPutFrm.RichEdit.Lines.Add(''); - title := 'Correlations Among Tests'; - OutPutFrm.RichEdit.Lines.Add(title); - outline := 'Test No.'; - for j := 1 to NoVars do - outline := outline + format('%7s',[rowlabels[j]]); - OutPutFrm.RichEdit.Lines.Add(outline); - for j := 1 to NoVars do - begin - outline := format('%8s',[rowlabels[j]]); - for k := 1 to NoVars do - begin - outline := outline + format('%7.3f',[Rmat[j,k]]); - end; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - outline := 'Means '; - for j := 1 to NoVars do outline := outline + format('%7.2f',[means[j]]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := 'Std.Devs'; - for j := 1 to NoVars do outline := outline + format('%7.2f',[stddevs[j]]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - - for i := 1 to NoVars do - for j := 1 to NoVars do - RelMat[i,j] := Rmat[i,j]; - for i := 1 to NoVars do - begin - response := InputBox('No. of items in Test ' + IntToStr(i),'Number:','0'); - nitems := StrToInt(response); - Reliabilities[i] := (nitems / (nitems-1) * - (1.0 - (means[i] * (nitems - means[i]))/(nitems * variances[i]))); - RelMat[i,i] := Reliabilities[i]; - cellstring := 'Weight for Test ' + IntToStr(i); - response := InputBox(cellstring,'Weight:','1'); - Weights[i] := StrToFloat(response); - end; - // get numerator and denominator of composite reliability - for i := 1 to NoVars do VectProd[i] := 0.0; - numerator := 0.0; - denominator := 0.0; - for i := 1 to NoVars do - for j := 1 to NoVars do - VectProd[i] := VectProd[i] + (Weights[i] * RelMat[j,i]); - for i := 1 to NoVars do numerator := numerator + (VectProd[i] * Weights[i]); - - for i := 1 to NoVars do VectProd[i] := 0.0; - for i := 1 to NoVars do - for j := 1 to NoVars do - VectProd[i] := VectProd[i] + (Weights[i] * Rmat[j,i]); - for i := 1 to NoVars do denominator := denominator + - (VectProd[i] * Weights[i]); - CompRel := numerator / denominator; - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'Test No. Weight Reliability'; - OutPutFrm.RichEdit.Lines.Add(outline); - for i := 1 to NoVars do - begin - outline := format(' %3d %6.2f %6.2f',[i,Weights[i],Reliabilities[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - outline := format('Composite reliability = %6.3f',[CompRel]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - response := InputBox('COMPOSITE','Save the composit score?','Yes'); - if response = 'Yes' then - begin - col := 53; - for i := 1 to NoStudents do - begin - X := 0.0; - for j := 1 to NoVars do - X := X + (DataMat[i,j] * Weights[j]); - Grid.Cells[col,i] := FloatToStr(X); - end; - end; -end; - -procedure TGradebookFrm.ClassRptMnuClick(Sender: TObject); -VAR - i, j, pos : integer; - outline : string; - valstr : string; - raw, z, t, p : double; - -begin - // confirm no. of students - NoStudents := 0; - for i := 1 to 40 do - begin - if Grid.Cells[0,i] <> '' then NoStudents := NoStudents + 1; - end; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Class Report'); - for i := 1 to NoStudents do - begin - outline := Grid.Cells[1,i] + ' '; - if Grid.Cells[2,i] <> '' then outline := outline + Grid.Cells[2,i] + ' '; - outline := outline + Grid.Cells[0,i]; - outline := 'Report for: ' + outline; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('TEST RAW Z T PERCENTILE GRADE'); - OutPutFrm.RichEdit.Lines.Add(' NO. SCORE SCORE SCORE RANK'); - for j := 0 to 10 do - begin - pos := j * 5 + 3; - valstr := format('%3d ',[j+1]); - outline := valstr; - if Grid.Cells[pos,i] <> '' then - begin - raw := StrToFloat(Grid.Cells[pos,i]); - z := StrToFloat(Grid.Cells[pos+1,i]); - t := strToFloat(Grid.Cells[pos+2,i]); - p := StrToFloat(Grid.Cells[pos+3,i]); - valstr := format('%10.0f',[raw]); - outline := outline + valstr; - valstr := format('%9.3f %9.3f %9.3f %3s',[z, t, p, Grid.Cells[pos+4,i]]); - outline := outline + valstr; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; -end; - -procedure TGradebookFrm.FormCreate(Sender: TObject); -begin - FileListBox1.Directory := DirectoryEdit1.Directory; -end; - -procedure TGradebookFrm.FormShow(Sender: TObject); -begin - Grid.ColWidths[0] := 100; - Grid.Cells[0,0] := 'Last Name'; - Grid.ColWidths[1] := 100; - Grid.Cells[1,0] := 'First Name'; - Grid.ColWidths[2] := 40; - Grid.Cells[2,0] := 'M.I.'; - Grid.ColWidths[3] := 60; - Grid.Cells[3,0] := 'Test 1 Raw'; - Grid.ColWidths[4] := 50; - Grid.Cells[4,0] := 'Test 1 z'; - Grid.ColWidths[5] := 50; - Grid.Cells[5,0] := 'Test 1 T'; - Grid.ColWidths[6] := 55; - Grid.Cells[6,0] := '%ile Rank'; - Grid.ColWidths[7] := 50; - Grid.Cells[7,0] := 'Grade 1'; - Grid.ColWidths[8] := 60; - Grid.Cells[8,0] := 'Test 2 Raw'; - Grid.ColWidths[9] := 50; - Grid.Cells[9,0] := 'Test 2 z'; - Grid.ColWidths[10] := 50; - Grid.Cells[10,0] := 'Test 2 T'; - Grid.ColWidths[11] := 55; - Grid.Cells[11,0] := '%ile Rank'; - Grid.ColWidths[12] := 50; - Grid.Cells[12,0] := 'Grade 2'; - Grid.ColWidths[13] := 60; - Grid.Cells[13,0] := 'Test 3 Raw'; - Grid.ColWidths[14] := 50; - Grid.Cells[14,0] := 'Test 3 z'; - Grid.ColWidths[15] := 50; - Grid.Cells[15,0] := 'Test 3 T'; - Grid.ColWidths[16] := 55; - Grid.Cells[16,0] := '%ile Rank'; - Grid.ColWidths[17] := 50; - Grid.Cells[17,0] := 'Grade 3'; - Grid.ColWidths[18] := 60; - Grid.Cells[18,0] := 'Test 4 Raw'; - Grid.ColWidths[19] := 50; - Grid.Cells[19,0] := 'Test 4 z'; - Grid.ColWidths[20] := 50; - Grid.Cells[20,0] := 'Test 4 T'; - Grid.ColWidths[21] := 55; - Grid.Cells[21,0] := '%ile Rank'; - Grid.ColWidths[22] := 50; - Grid.Cells[22,0] := 'Grade 4'; - Grid.ColWidths[23] := 60; - Grid.Cells[23,0] := 'Test 5 Raw'; - Grid.ColWidths[24] := 50; - Grid.Cells[24,0] := 'Test 5 z'; - Grid.ColWidths[25] := 50; - Grid.Cells[25,0] := 'Test 5 T'; - Grid.ColWidths[26] := 55; - Grid.Cells[26,0] := '%ile Rank'; - Grid.ColWidths[27] := 50; - Grid.Cells[27,0] := 'Grade 5'; - Grid.ColWidths[28] := 60; - Grid.Cells[28,0] := 'Test 6 Raw'; - Grid.ColWidths[29] := 50; - Grid.Cells[29,0] := 'Test 6 z'; - Grid.ColWidths[30] := 50; - Grid.Cells[30,0] := 'Test 6 T'; - Grid.ColWidths[31] := 55; - Grid.Cells[31,0] := '%ile Rank'; - Grid.ColWidths[32] := 50; - Grid.Cells[32,0] := 'Grade 6'; - Grid.ColWidths[33] := 60; - Grid.Cells[33,0] := 'Test 7 Raw'; - Grid.ColWidths[34] := 50; - Grid.Cells[34,0] := 'Test 7 z'; - Grid.ColWidths[35] := 50; - Grid.Cells[35,0] := 'Test 7 T'; - Grid.ColWidths[36] := 55; - Grid.Cells[36,0] := '%ile Rank'; - Grid.ColWidths[37] := 50; - Grid.Cells[37,0] := 'Grade 7'; - Grid.ColWidths[38] := 60; - Grid.Cells[38,0] := 'Test 8 Raw'; - Grid.ColWidths[39] := 50; - Grid.Cells[39,0] := 'Test 8 z'; - Grid.ColWidths[40] := 50; - Grid.Cells[40,0] := 'Test 8 T'; - Grid.ColWidths[41] := 55; - Grid.Cells[41,0] := '%ile Rank'; - Grid.ColWidths[42] := 50; - Grid.Cells[42,0] := 'Grade 8'; - Grid.ColWidths[43] := 60; - Grid.Cells[43,0] := 'Test 9 Raw'; - Grid.ColWidths[44] := 50; - Grid.Cells[44,0] := 'Test 9 z'; - Grid.ColWidths[45] := 50; - Grid.Cells[45,0] := 'Test 9 T'; - Grid.ColWidths[46] := 55; - Grid.Cells[46,0] := '%ile Rank'; - Grid.ColWidths[47] := 50; - Grid.Cells[47,0] := 'Grade 9'; - Grid.ColWidths[48] := 60; - Grid.Cells[48,0] := 'Test 10 Raw'; - Grid.ColWidths[49] := 50; - Grid.Cells[49,0] := 'Test 10 z'; - Grid.ColWidths[50] := 50; - Grid.Cells[50,0] := 'Test 10 T'; - Grid.ColWidths[51] := 55; - Grid.Cells[51,0] := '%ile Rank'; - Grid.ColWidths[52] := 50; - Grid.Cells[52,0] := 'Grade 10'; - Grid.ColWidths[53] := 60; - Grid.Cells[53,0] := 'Total Raw'; - Grid.ColWidths[54] := 50; - Grid.Cells[54,0] := 'Total z'; - Grid.ColWidths[55] := 50; - Grid.Cells[55,0] := 'Total T'; - Grid.ColWidths[56] := 55; - Grid.Cells[56,0] := '%ile Rank'; - Grid.ColWidths[57] := 60; - Grid.Cells[57,0] := 'Final Grade'; -end; - -procedure TGradebookFrm.GridExit(Sender: TObject); -begin - GridCol := Grid.Col; - GridRow := Grid.Row; - if (Grid.Cells[GridCol,GridRow] = ' ') then exit else - begin - NoStudents := GridRow; - if GridCol > 3 then - begin - GridCol := GridCol - 3; - if (GridCol >= 1) and (GridCol <= 5) then - begin - TestNo := 1; - exit; - end; - if (GridCol >= 6) and (GridCol <= 10) then - begin - TestNo := 2; - exit; - end; - if (GridCol >= 11) and (GridCol <= 15) then - begin - TestNo := 3; - exit; - end; - if (GridCol >= 16) and (GridCol <= 20) then - begin - TestNo := 4; - exit; - end; - if (GridCol >= 21) and (GridCol <= 25) then - begin - TestNo := 5; - exit; - end; - if (GridCol >= 26) and (GridCol <= 30) then - begin - TestNo := 6; - exit; - end; - if (GridCol >= 31) and (GridCol <= 35) then - begin - TestNo := 7; - exit; - end; - if (GridCol >= 36) and (GridCol <= 40) then - begin - TestNo := 8; - exit; - end; - if (GridCol >= 41) and (GridCol <= 45) then - begin - TestNo := 9; - exit; - end; - if (GridCol >= 46) and (GridCol <= 50) then - begin - TestNo := 10; - exit; - end; - if (GridCol >= 51) and (GridCol <= 55) then - begin - TestNo := 11; - exit; - end; - end; - end; - if TestNo > NoTests then NoTests := TestNo; -end; - -procedure TGradebookFrm.NewGBMnuClick(Sender: TObject); -VAR - i, j : integer; -begin - for i := 1 to 40 do - begin - for j := 0 to 57 do Grid.Cells[j,i] := ''; - end; - GradebookFrm.FileNameEdit.text := ''; -end; - -procedure TGradebookFrm.OpenGBMnuClick(Sender: TObject); -var - FName : string; - Book : textfile; - row : integer; - i, j, k : integer; - cellstr : string; -begin - OpenDialog1.DefaultExt := '.GBK'; - OpenDialog1.Filter := 'ALL (*.*)|*.*|Grade Book (*.GBK)|*.GBK'; - OpenDialog1.FilterIndex := 2; - if OpenDialog1.Execute then - begin - FName := OpenDialog1.FileName; - GradebookFrm.FileNameEdit.text := FName; - AssignFile(Book,FName); - Reset(Book); - readln(Book,NoStudents); - for i := 1 to 40 do - begin - for j := 0 to 57 do - begin - readln(Book,cellstr); - Grid.Cells[j,i] := cellstr; - end; - end; - CloseFile(Book); - end; -end; - -procedure TGradebookFrm.RadioGroup1Click(Sender: TObject); -begin - if RadioGroup1.ItemIndex = 1 then Grid.FixedCols := 0 else Grid.FixedCols := 3; -end; - -procedure TGradebookFrm.SaveGBMnuClick(Sender: TObject); -var - FName : string; - Book : textfile; - row : integer; - i, j, k : integer; - cellstr : string; -begin - // confirm no. of students - NoStudents := 0; - for i := 1 to 40 do - begin - if Grid.Cells[0,i] <> '' then NoStudents := NoStudents + 1; - end; - SaveDialog1.DefaultExt := '.GBK'; - SaveDialog1.Filter := 'ALL (*.*)|*.*|Grade Book (*.GBK)|*.GBK'; - SaveDialog1.FilterIndex := 2; - if SaveDialog1.Execute then - begin -// GetNoRecords; - FName := SaveDialog1.FileName; - AssignFile(Book,FName); - Rewrite(Book); - writeln(Book,NoStudents); - for i := 1 to 40 do - begin - for j := 0 to 57 do - begin - cellstr := Grid.Cells[j,i]; - writeln(Book,cellstr); - end; - end; - CloseFile(Book); - end; - GradebookFrm.FileNameEdit.text := ''; -end; - -procedure TGradebookFrm.StudRptsMnuClick(Sender: TObject); -VAR - i, j, pos : integer; - outline : string; - valstr : string; - raw, z, t, p : double; -begin - // confirm no. of students - NoStudents := 0; - for i := 1 to 40 do - begin - if Grid.Cells[0,i] <> '' then NoStudents := NoStudents + 1; - end; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Individual Student Report'); - for i := 1 to NoStudents do - begin - outline := Grid.Cells[1,i] + ' '; - if Grid.Cells[2,i] <> '' then outline := outline + Grid.Cells[2,i] + ' '; - outline := outline + Grid.Cells[0,i]; - outline := 'Report for: ' + outline; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('TEST RAW Z T PERCENTILE GRADE'); - OutPutFrm.RichEdit.Lines.Add(' NO. SCORE SCORE SCORE RANK'); - for j := 0 to 10 do - begin - pos := j * 5 + 3; - valstr := format('%3d ',[j+1]); - outline := valstr; - if Grid.Cells[pos,i] <> '' then - begin - raw := StrToFloat(Grid.Cells[pos,i]); - z := StrToFloat(Grid.Cells[pos+1,i]); - t := strToFloat(Grid.Cells[pos+2,i]); - p := StrToFloat(Grid.Cells[pos+3,i]); - valstr := format('%10.0f',[raw]); - outline := outline + valstr; - valstr := format('%9.3f %9.3f %9.3f %3s',[z, t, p, Grid.Cells[pos+4,i]]); - outline := outline + valstr; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; -end; - -procedure TGradebookFrm.TestAnalMnuClick(Sender: TObject); -label again; -VAR - i, j, k, col : integer; - X, mean, variance, stddev, Xtemp : double; - z, t, pcntile : double; - response : string; - grades : array [0..40] of string; - cumfreq : array[0..50] of double; - cumfreqmid : array[0..50] of double; - pcnt : array[0..50] of double; - cumpcnt : array[0..50] of double; - ncnt : integer; - outline : string; - KR21 : double; - minf, maxf : double; - -begin - response := InputBox('Which test (number)','TEST:','0'); - if StrToInt(response) = 0 then - begin - ShowMessage('You must select a test no. between 1 and 11'); - exit; - end; - tno := StrToInt(response); - tno := tno * 5 - 5; - col := tno + 3; // column of raw scores for test number tno - // get no. of students - NoStudents := 0; - for i := 1 to 40 do - begin - if Grid.Cells[col,i] = '' then continue else NoStudents := NoStudents + 1; - end; - SetLength(sortedraw,41); - SetLength(pcntiles,41,41); - SetLength(tscores,41); - SetLength(zscores,41); - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Test Analysis Results'); - mean := 0.0; - variance := 0.0; - for i := 1 to NoStudents do - begin - X := StrToFloat(Grid.Cells[col,i]); - sortedraw[i-1] := X; - mean := mean + X; - variance := variance + (X * X); - end; - variance := variance - (mean * mean / NoStudents); - Variance := Variance / (NoStudents - 1.0); - stddev := sqrt(variance); - mean := mean / NoStudents; - outline := format('Mean = %8.2f, Variance = %8.3f, Std.Dev. = %8.3f', - [mean,variance,stddev]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - response := InputBox('No. of Test Items or maximum score possible','Number:','0'); - nitems := StrToInt(response); - if nitems = 0 then - begin - ShowMessage('Enter the maximum score or no. of items!'); - exit; - end; - KR21 := (nitems / (nitems-1) * - (1.0 - (mean * (nitems - mean))/(nitems * variance))); - outline := format('Kuder-Richardson Formula 21 Reliability Estimate = %6.4f',[KR21]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - - // get z scores and T scores - for i := 1 to NoStudents do - begin - z := (sortedraw[i-1] - mean) / stddev; - outline := format('%5.3f',[z]); - Grid.Cells[col+1,i] := outline; - t := z * 10 + 50; - outline := format('%5.1f',[t]); - Grid.Cells[col+2,i] := outline; - end; - // sort raw scores in ascending order - for i := 1 to NoStudents-1 do - begin - for j := i + 1 to NoStudents do - begin - if sortedraw[i-1] > sortedraw[j-1] then // switch - begin - Xtemp := sortedraw[i-1]; - sortedraw[i-1] := sortedraw[j-1]; - sortedraw[j-1] := Xtemp; - end; - end; - end; - // get percentile rank - ncnt := NoStudents; - nints := 1; - for i := 1 to ncnt do freq[i-1] := 0; - X := sortedraw[0]; - Scores[0] := X; - for i := 1 to ncnt do - begin - if (X = sortedraw[i-1])then freq[nints-1] := freq[nints-1] + 1 - else // new value - begin - nints := nints + 1; - freq[nints-1] := freq[nints-1] + 1; - X := sortedraw[i-1]; - Scores[nints-1] := X; - end; - end; - // get min and max frequencies - minf := NoStudents; - maxf := 0; - for i := 0 to nints - 1 do - begin - if freq[i] > maxf then maxf := freq[i]; - if freq[i] < minf then minf := freq[i]; - end; - // now get cumulative frequencies - cumfreq[0] := freq[0]; - for i := 1 to nints-1 do cumfreq[i] := freq[i] + cumfreq[i-1]; - - // get cumulative frequences to midpoints and percentile ranks - cumfreqmid[0] := freq[0] / 2.0; - pcntilerank[0] := (cumfreq[0] / 2.0) / ncnt; - for i := 1 to nints-1 do - begin - cumfreqmid[i] := (freq[i] / 2.0) + cumfreq[i-1]; - pcntilerank[i] := cumfreqmid[i] / ncnt; - end; - - OutPutFrm.RichEdit.Lines.Add('PERCENTILE RANKS'); - OutPutFrm.RichEdit.Lines.Add('Score Value Frequency Cum.Freq. Percentile Rank'); - OutPutFrm.RichEdit.Lines.Add('___________ __________ __________ ______________'); - for i := 1 to nints do - begin - outline := format(' %8.3f %6.2f %6.2f %6.2f', - [Scores[i-1], freq[i-1],cumfreq[i-1],pcntilerank[i-1]*100.0]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - - // get grades - gradingfrm.ShowModal; - - // Now place results in testgrid - for i := 1 to ncnt do - begin - X := StrToFloat(Grid.Cells[col,i]); - for j := 0 to nints do - begin - if X = scores[j] then - Gradebookfrm.Grid.Cells[col+3,i] := format('%5.2f',[pcntilerank[j]*100.0]); - end; - end; - OutPutFrm.ShowModal; - - // graph raw scores - if maxf = minf then exit; - GraphFrm.Heading := 'Frequency of Raw Scores'; - GraphFrm.XTitle := 'Category'; - GraphFrm.YTitle := 'Frequency'; - SetLength(GraphFrm.Ypoints,1,nints); - SetLength(GraphFrm.Xpoints,1,nints); - for k := 1 to nints do - begin -// GraphFrm.PointLabels[k-1] := GradingSpecs[p].GridData[k,1]; - GraphFrm.Ypoints[0,k-1] := freq[k]; - GraphFrm.Xpoints[0,k-1] := Scores[k]; -// GraphFrm.Ypoints[0,k-1] := freq[k]; -// GraphFrm.Xpoints[0,k-1] := k; - end; - // enter parameters for 2 dimension bars in graph package - GraphFrm.barwideprop := 0.5; - GraphFrm.nosets := 1; - GraphFrm.miny := minf; - GraphFrm.maxy := maxf; - GraphFrm.nbars := nints-1; - GraphFrm.GraphType := 2; // 3d bars - GraphFrm.AutoScale := false; // use min and max - GraphFrm.ShowLeftWall := true; - GraphFrm.ShowRightWall := true; - GraphFrm.ShowBottomWall := true; - GraphFrm.ShowBackWall := true; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.PtLabels := true; - GraphFrm.ShowModal; - - GraphFrm.Ypoints := nil; - GraphFrm.Xpoints := nil; - -// cleanup - sortedraw := nil; -// grades := nil; - zscores := nil; - tscores := nil; - pcntiles := nil; -end; - - -initialization - {$I gradebookunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/gradingunit.lfm b/applications/lazstats/source_orig/gradingunit.lfm deleted file mode 100644 index 937fe7aef..000000000 --- a/applications/lazstats/source_orig/gradingunit.lfm +++ /dev/null @@ -1,241 +0,0 @@ -object gradingfrm: Tgradingfrm - Left = 102 - Height = 494 - Top = 109 - Width = 706 - Caption = 'Specification for Grades' - ClientHeight = 494 - ClientWidth = 706 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 16 - Height = 14 - Top = 122 - Width = 28 - Caption = 'Score' - ParentColor = False - end - object Label2: TLabel - Left = 80 - Height = 14 - Top = 122 - Width = 52 - Caption = 'Frequency' - ParentColor = False - end - object Label3: TLabel - Left = 160 - Height = 14 - Top = 122 - Width = 60 - Caption = 'Grade Given' - ParentColor = False - end - object TopScoreLabel: TLabel - Left = 344 - Height = 14 - Top = 122 - Width = 49 - Caption = 'Top Score' - ParentColor = False - end - object DownThroughLabel: TLabel - Left = 432 - Height = 14 - Top = 122 - Width = 71 - Caption = 'Down Through' - ParentColor = False - end - object Label4: TLabel - Left = 520 - Height = 14 - Top = 122 - Width = 64 - Caption = 'No. Assigned' - ParentColor = False - end - object Label5: TLabel - Left = 256 - Height = 14 - Top = 122 - Width = 35 - Caption = 'Grades' - ParentColor = False - end - object DistUseGroup: TRadioGroup - Left = 8 - Height = 111 - Top = 3 - Width = 212 - AutoFill = True - Caption = 'To Assign Grades Use:' - 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 = 93 - ClientWidth = 208 - Items.Strings = ( - 'Raw Test Scores' - 'z Scores' - 'T Scores' - 'Percentile Rank Scores' - ) - OnClick = DistUseGroupClick - TabOrder = 0 - end - object CategoriesGroup: TRadioGroup - Left = 233 - Height = 112 - Top = 2 - Width = 279 - AutoFill = True - Caption = 'Use the following Grade Categories:' - 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 = 94 - ClientWidth = 275 - Items.Strings = ( - 'A, B, C, D, F' - 'A, A-, B+, B, B-, C+, C, C-, D+, D, D-, F' - ) - OnClick = CategoriesGroupClick - TabOrder = 1 - end - object ScoresGrid: TStringGrid - Left = 8 - Height = 294 - Top = 137 - Width = 136 - ColCount = 2 - FixedCols = 0 - FixedRows = 0 - TabOrder = 2 - end - object GradesGrid: TStringGrid - Left = 159 - Height = 294 - Top = 137 - Width = 74 - ColCount = 1 - FixedCols = 0 - FixedRows = 0 - TabOrder = 3 - end - object TopScoreGrid: TStringGrid - Left = 344 - Height = 298 - Top = 138 - Width = 71 - ColCount = 1 - FixedCols = 0 - FixedRows = 0 - TabOrder = 4 - end - object LowScoreGrid: TStringGrid - Left = 432 - Height = 298 - Top = 138 - Width = 67 - ColCount = 1 - FixedCols = 0 - FixedRows = 0 - Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goEditing, goSmoothScroll] - TabOrder = 5 - OnKeyDown = LowScoreGridKeyDown - end - object SaveBtn: TButton - Left = 608 - Height = 32 - Top = 122 - Width = 77 - Caption = 'Save Specs.' - OnClick = SaveBtnClick - TabOrder = 6 - end - object LoadBtn: TButton - Left = 608 - Height = 32 - Top = 176 - Width = 77 - Caption = 'Load Specs.' - OnClick = LoadBtnClick - TabOrder = 7 - end - object ResetBtn: TButton - Left = 608 - Height = 32 - Top = 232 - Width = 77 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 8 - end - object Cancelbtn: TButton - Left = 608 - Height = 32 - Top = 288 - Width = 77 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 9 - end - object ReturnBtn: TButton - Left = 608 - Height = 32 - Top = 399 - Width = 77 - Caption = 'Return' - ModalResult = 1 - TabOrder = 10 - end - object AssignedGrid: TStringGrid - Left = 520 - Height = 299 - Top = 138 - Width = 68 - ColCount = 1 - FixedCols = 0 - FixedRows = 0 - TabOrder = 11 - end - object Grades: TStringGrid - Left = 256 - Height = 296 - Top = 138 - Width = 72 - ColCount = 1 - FixedCols = 0 - FixedRows = 0 - TabOrder = 12 - end - object ComputeBtn: TButton - Left = 608 - Height = 29 - Top = 344 - Width = 77 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 13 - end - object OpenDialog1: TOpenDialog - left = 552 - top = 448 - end - object SaveDialog1: TSaveDialog - left = 640 - top = 448 - end -end diff --git a/applications/lazstats/source_orig/gradingunit.lrs b/applications/lazstats/source_orig/gradingunit.lrs deleted file mode 100644 index 549c2ff22..000000000 --- a/applications/lazstats/source_orig/gradingunit.lrs +++ /dev/null @@ -1,68 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('Tgradingfrm','FORMDATA',[ - 'TPF0'#11'Tgradingfrm'#10'gradingfrm'#4'Left'#2'f'#6'Height'#3#238#1#3'Top'#2 - +'m'#5'Width'#3#194#2#7'Caption'#6#24'Specification for Grades'#12'ClientHeig' - +'ht'#3#238#1#11'ClientWidth'#3#194#2#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6 - +#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#16#6'Height'#2#14#3'Top'#2'z'#5 - +'Width'#2#28#7'Caption'#6#5'Score'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2' - +#4'Left'#2'P'#6'Height'#2#14#3'Top'#2'z'#5'Width'#2'4'#7'Caption'#6#9'Freque' - +'ncy'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#3#160#0#6'Height'#2 - +#14#3'Top'#2'z'#5'Width'#2'<'#7'Caption'#6#11'Grade Given'#11'ParentColor'#8 - +#0#0#6'TLabel'#13'TopScoreLabel'#4'Left'#3'X'#1#6'Height'#2#14#3'Top'#2'z'#5 - +'Width'#2'1'#7'Caption'#6#9'Top Score'#11'ParentColor'#8#0#0#6'TLabel'#16'Do' - +'wnThroughLabel'#4'Left'#3#176#1#6'Height'#2#14#3'Top'#2'z'#5'Width'#2'G'#7 - +'Caption'#6#12'Down Through'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Lef' - +'t'#3#8#2#6'Height'#2#14#3'Top'#2'z'#5'Width'#2'@'#7'Caption'#6#12'No. Assig' - +'ned'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#3#0#1#6'Height'#2#14 - +#3'Top'#2'z'#5'Width'#2'#'#7'Caption'#6#6'Grades'#11'ParentColor'#8#0#0#11'T' - +'RadioGroup'#12'DistUseGroup'#4'Left'#2#8#6'Height'#2'o'#3'Top'#2#3#5'Width' - +#3#212#0#8'AutoFill'#9#7'Caption'#6#21'To Assign Grades Use:'#28'ChildSizing' - +'.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.' - +'EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVer' - +'tical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14 - +'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'Chil' - +'dSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Controls' - +'PerLine'#2#1#12'ClientHeight'#2']'#11'ClientWidth'#3#208#0#13'Items.Strings' - +#1#6#15'Raw Test Scores'#6#8'z Scores'#6#8'T Scores'#6#22'Percentile Rank Sc' - +'ores'#0#7'OnClick'#7#17'DistUseGroupClick'#8'TabOrder'#2#0#0#0#11'TRadioGro' - +'up'#15'CategoriesGroup'#4'Left'#3#233#0#6'Height'#2'p'#3'Top'#2#2#5'Width'#3 - +#23#1#8'AutoFill'#9#7'Caption'#6'#Use the following Grade Categories:'#28'Ch' - +'ildSizing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'Chi' - +'ldSizing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.E' - +'nlargeVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizon' - +'tal'#7#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChild' - +'s'#18'ChildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizin' - +'g.ControlsPerLine'#2#1#12'ClientHeight'#2'^'#11'ClientWidth'#3#19#1#13'Item' - +'s.Strings'#1#6#13'A, B, C, D, F'#6')A, A-, B+, B, B-, C+, C, C-, D+, D, D-,' - +' F'#0#7'OnClick'#7#20'CategoriesGroupClick'#8'TabOrder'#2#1#0#0#11'TStringG' - +'rid'#10'ScoresGrid'#4'Left'#2#8#6'Height'#3'&'#1#3'Top'#3#137#0#5'Width'#3 - +#136#0#8'ColCount'#2#2#9'FixedCols'#2#0#9'FixedRows'#2#0#8'TabOrder'#2#2#0#0 - +#11'TStringGrid'#10'GradesGrid'#4'Left'#3#159#0#6'Height'#3'&'#1#3'Top'#3#137 - +#0#5'Width'#2'J'#8'ColCount'#2#1#9'FixedCols'#2#0#9'FixedRows'#2#0#8'TabOrde' - +'r'#2#3#0#0#11'TStringGrid'#12'TopScoreGrid'#4'Left'#3'X'#1#6'Height'#3'*'#1 - +#3'Top'#3#138#0#5'Width'#2'G'#8'ColCount'#2#1#9'FixedCols'#2#0#9'FixedRows'#2 - +#0#8'TabOrder'#2#4#0#0#11'TStringGrid'#12'LowScoreGrid'#4'Left'#3#176#1#6'He' - +'ight'#3'*'#1#3'Top'#3#138#0#5'Width'#2'C'#8'ColCount'#2#1#9'FixedCols'#2#0#9 - +'FixedRows'#2#0#7'Options'#11#15'goFixedVertLine'#15'goFixedHorzLine'#10'goV' - +'ertLine'#10'goHorzLine'#13'goRangeSelect'#9'goEditing'#14'goSmoothScroll'#0 - +#8'TabOrder'#2#5#9'OnKeyDown'#7#19'LowScoreGridKeyDown'#0#0#7'TButton'#7'Sav' - +'eBtn'#4'Left'#3'`'#2#6'Height'#2' '#3'Top'#2'z'#5'Width'#2'M'#7'Caption'#6 - +#11'Save Specs.'#7'OnClick'#7#12'SaveBtnClick'#8'TabOrder'#2#6#0#0#7'TButton' - +#7'LoadBtn'#4'Left'#3'`'#2#6'Height'#2' '#3'Top'#3#176#0#5'Width'#2'M'#7'Cap' - +'tion'#6#11'Load Specs.'#7'OnClick'#7#12'LoadBtnClick'#8'TabOrder'#2#7#0#0#7 - +'TButton'#8'ResetBtn'#4'Left'#3'`'#2#6'Height'#2' '#3'Top'#3#232#0#5'Width'#2 - +'M'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#8#0#0 - +#7'TButton'#9'Cancelbtn'#4'Left'#3'`'#2#6'Height'#2' '#3'Top'#3' '#1#5'Width' - +#2'M'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#9#0#0#7'TButt' - +'on'#9'ReturnBtn'#4'Left'#3'`'#2#6'Height'#2' '#3'Top'#3#143#1#5'Width'#2'M' - +#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#10#0#0#11'TStringG' - +'rid'#12'AssignedGrid'#4'Left'#3#8#2#6'Height'#3'+'#1#3'Top'#3#138#0#5'Width' - +#2'D'#8'ColCount'#2#1#9'FixedCols'#2#0#9'FixedRows'#2#0#8'TabOrder'#2#11#0#0 - +#11'TStringGrid'#6'Grades'#4'Left'#3#0#1#6'Height'#3'('#1#3'Top'#3#138#0#5'W' - +'idth'#2'H'#8'ColCount'#2#1#9'FixedCols'#2#0#9'FixedRows'#2#0#8'TabOrder'#2 - +#12#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3'`'#2#6'Height'#2#29#3'Top'#3'X'#1 - +#5'Width'#2'M'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'Ta' - +'bOrder'#2#13#0#0#11'TOpenDialog'#11'OpenDialog1'#4'left'#3'('#2#3'top'#3#192 - +#1#0#0#11'TSaveDialog'#11'SaveDialog1'#4'left'#3#128#2#3'top'#3#192#1#0#0#0 -]); diff --git a/applications/lazstats/source_orig/gradingunit.pas b/applications/lazstats/source_orig/gradingunit.pas deleted file mode 100644 index 64b40cac7..000000000 --- a/applications/lazstats/source_orig/gradingunit.pas +++ /dev/null @@ -1,404 +0,0 @@ -unit gradingunit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - ExtCtrls, StdCtrls, Grids, outputunit; - -type - - { Tgradingfrm } - - Tgradingfrm = class(TForm) - ComputeBtn: TButton; - Label4: TLabel; - AssignedGrid: TStringGrid; - Label5: TLabel; - Grades: TStringGrid; - OpenDialog1: TOpenDialog; - SaveBtn: TButton; - LoadBtn: TButton; - ResetBtn: TButton; - Cancelbtn: TButton; - ReturnBtn: TButton; - DistUseGroup: TRadioGroup; - CategoriesGroup: TRadioGroup; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - DownThroughLabel: TLabel; - SaveDialog1: TSaveDialog; - ScoresGrid: TStringGrid; - GradesGrid: TStringGrid; - TopScoreGrid: TStringGrid; - LowScoreGrid: TStringGrid; - TopScoreLabel: TLabel; - procedure CategoriesGroupClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure DistUseGroupClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure LoadBtnClick(Sender: TObject); - procedure LowScoreGridExit(Sender: TObject); - procedure LowScoreGridKeyDown(Sender: TObject; var Key: Word; - Shift: TShiftState); - procedure ResetBtnClick(Sender: TObject); - procedure SaveBtnClick(Sender: TObject); - private - { private declarations } - nints : integer; - ncases : integer; - col : integer; - ncats : integer; - sorted : array[0..50] of double; - public - { public declarations } - end; - -var - gradingfrm: Tgradingfrm; - -implementation -uses gradebookunit; - -{ Tgradingfrm } - -procedure Tgradingfrm.DistUseGroupClick(Sender: TObject); -VAR - i, j, btn, nscores : integer; - RawScores : array[0..50] of double; - RawFreq : array[0..50] of double; - temp, X, Y : double; -begin - if DistUseGroup.ItemIndex < 0 then exit; - col := gradebookfrm.tno + 3; // column of raw scores for test number tno - btn := DistUseGroup.ItemIndex; - nscores := gradebookfrm.nints; - ScoresGrid.RowCount := nscores; - ncases := gradebookfrm.NoStudents; - case btn of - 0 : TopScoreGrid.Cells[0,0] := IntToStr(gradebookfrm.nitems); - 1 : TopScoreGrid.Cells[0,0] := FloatToStr(3.0); - 2 : TopScoreGrid.Cells[0,0] := FloatToStr(90.0); - 3 : TopScoreGrid.Cells[0,0] := FloatToStr(100.0); - end; - - case btn of - 0 : for i := 1 to ncases do RawScores[i-1] := StrToFloat(gradebookfrm.Grid.Cells[col,i]); - 1 : for i := 1 to ncases do RawScores[i-1] := StrToFloat(gradebookfrm.Grid.Cells[col+1,i]); - 2 : for i := 1 to ncases do RawScores[i-1] := StrToFloat(gradebookfrm.Grid.Cells[col+2,i]); - 3 : for i := 1 to ncases do RawScores[i-1] := StrToFloat(gradebookfrm.Grid.Cells[col+3,i]); - end; - - // sort RawScores into ascending order - for i := 1 to ncases - 1 do - begin - for j := i+1 to ncases do - begin - X := RawScores[i-1]; - Y := RawScores[j-1]; - if RawScores[i-1] < RawScores[j-1] then // switch - begin - temp := RawScores[i-1]; - RawScores[i-1] := RawScores[j-1]; - RawScores[j-1] := temp; - end; - end; - end; - - // get frequency of each score - nints := 1; - for i := 1 to ncases do RawFreq[i-1] := 0; - X := RawScores[0]; - Sorted[0] := X; - for i := 1 to ncases do - begin - if (X = RawScores[i-1])then RawFreq[nints-1] := RawFreq[nints-1] + 1 - else // new value - begin - nints := nints + 1; - RawFreq[nints-1] := RawFreq[nints-1] + 1; - X := RawScores[i-1]; - Sorted[nints-1] := X; - end; - end; - - // put data in grid -// AssignedGrid.RowCount := nints + 1; - ScoresGrid.RowCount := nints+1; - GradesGrid.RowCount := nints + 1; - for i := 0 to nints-1 do - begin - ScoresGrid.Cells[0,i] := FloatToStr(Sorted[i]); - ScoresGrid.Cells[1,i] := FloatToStr(RawFreq[i]); - end; -end; - -procedure Tgradingfrm.FormShow(Sender: TObject); -VAR - i, j : integer; -begin - DistUseGroup.ItemIndex := -1; - CategoriesGroup.ItemIndex := -1; - for i := 0 to ScoresGrid.RowCount-1 do - for j := 0 to 1 do ScoresGrid.Cells[j,i] := ''; - ScoresGrid.RowCount := 5; - for i := 0 to Grades.RowCount-1 do Grades.Cells[0,i] := ''; - Grades.RowCount := 5; - for i := 0 to GradesGrid.RowCount-1 do GradesGrid.Cells[0,i] := ''; - GradesGrid.RowCount := 5; - for i := 0 to TopScoreGrid.RowCount-1 do TopScoreGrid.Cells[0,i] := ''; - TopScoreGrid.RowCount := 5; - for i := 0 to LowScoreGrid.RowCount-1 do LowScoreGrid.Cells[0,i] := ''; - LowScoreGrid.RowCount := 5; - for i := 0 to AssignedGrid.RowCount-1 do AssignedGrid.Cells[0,i] := ''; - AssignedGrid.RowCount := 5; -end; - -procedure Tgradingfrm.LoadBtnClick(Sender: TObject); -var - FName : string; - Grading : textfile; - i, j, choice : integer; - cellstring, outline, valstr : string; -begin - OutPutFrm.RichEdit.Clear; - OpenDialog1.DefaultExt := '.GRD'; - OpenDialog1.Filter := 'ALL (*.*)|*.*|Test Grading (*.GRD)|*.GRD'; - OpenDialog1.FilterIndex := 2; - if OpenDialog1.Execute then - begin -// GetNoRecords; - FName := OpenDialog1.FileName; - AssignFile(Grading,FName); - Reset(Grading); - readln(Grading,ncases); - readln(Grading,nints); - readln(Grading,col); - readln(Grading,choice); - cellstring := format('Distribution used index = %2d',[choice]); - OutPutFrm.RichEdit.Lines.Add(cellstring); -// DistUseGroup.ItemIndex := choice; - readln(Grading,choice); - cellstring := format('Category index = %2d',[choice]); - OutPutFrm.RichEdit.Lines.Add(cellstring); -// CategoriesGroup.ItemIndex := choice; - readln(Grading,choice); - OutPutFrm.RichEdit.Lines.Add('Top Score Low Score'); - if choice = 0 then - begin - for i := 0 to 4 do - begin - readln(Grading,cellstring); - outline := format('%10s ',[cellstring]); -// TopScoreGrid.Cells[0,i] := cellstring; - readln(Grading,cellstring); - valstr := format('%10s',[cellstring]); - outline := outline + valstr; -// LowScoreGrid.Cells[0,i] := cellstring; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end else - begin - for i := 0 to 11 do - begin - readln(Grading,cellstring); - outline := format('%10s',[cellstring]); -// TopScoreGrid.Cells[0,i] := cellstring; - readln(Grading,cellstring); - valstr := format('%10s',[cellstring]); - outline := outline + valstr; -// LowScoreGrid.Cells[0,i] := cellstring; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Assigned Grid'); - for i := 0 to nints-1 do - begin - readln(Grading,cellstring); - outline := cellstring; - OutPutFrm.RichEdit.Lines.Add(outline); -// AssignedGrid.Cells[0,i] := cellstring; - end; -// readln(Grading,cellstring); - OutPutFrm.RichEdit.Lines.Add('Score Frequency'); - for i := 0 to nints - 1 do - begin - outline := ''; - for j := 0 to 1 do - begin - readln(Grading,cellstring); - valstr := format('%10s ',[cellstring]); - outline := outline + valstr; -// ScoresGrid.Cells[j,i] := cellstring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - OutPutFrm.ShowModal; - CloseFile(Grading); -end; - -procedure Tgradingfrm.LowScoreGridExit(Sender: TObject); - -begin - -end; - -procedure Tgradingfrm.LowScoreGridKeyDown(Sender: TObject; var Key: Word; - Shift: TShiftState); -VAR - i, row, naffected, freq, intervals, sum : integer; - lowval, hival, score1 : double; - -begin - if Key = 13 then // enter key - begin - intervals := ScoresGrid.RowCount-1; - row := LowScoreGrid.Row; - freq := 0; - lowval := StrToFloat(LowScoreGrid.Cells[0,row]); - hival := StrToFloat(TopScoreGrid.Cells[0,row]); - for i := 0 to intervals-1 do - begin - score1 := StrToFloat(ScoresGrid.Cells[0,i]); - if (score1 >= lowval) and (score1 <= hival) then - freq := freq + StrToInt(ScoresGrid.Cells[1,i]); - end; - AssignedGrid.Cells[0,row] := IntToStr(freq); - if row < ncats-1 then - begin - if DistUseGroup.ItemIndex = 1 then // z score - TopScoreGrid.Cells[0,row+1] := FloatToStr(lowval-0.001); - if DistUseGroup.ItemIndex = 0 then // raw score - TopScoreGrid.Cells[0,row+1] := FloatToStr(lowval-1); - if DistUseGroup.ItemIndex = 2 then // T score - TopScoreGrid.Cells[0,row+1] := FloatToStr(lowval-0.1); - if DistUseGroup.ItemIndex = 3 then // Percentile rank - TopScoreGrid.Cells[0,row+1] := FloatToStr(lowval-0.01); - end; - end; -end; - -procedure Tgradingfrm.ResetBtnClick(Sender: TObject); -begin - FormShow(self); -end; - -procedure Tgradingfrm.SaveBtnClick(Sender: TObject); -var - FName : string; - Grading : textfile; - i, j : integer; -begin - SaveDialog1.DefaultExt := '.GRD'; - SaveDialog1.Filter := 'ALL (*.*)|*.*|Test Grading (*.GRD)|*.GRD'; - SaveDialog1.FilterIndex := 2; - if SaveDialog1.Execute then - begin - FName := SaveDialog1.FileName; - AssignFile(Grading,FName); - Rewrite(Grading); - writeln(Grading,ncases); - writeln(Grading,nints); - writeln(Grading,col); - writeln(Grading,DistUseGroup.ItemIndex); - writeln(Grading,CategoriesGroup.ItemIndex); - if CategoriesGroup.ItemIndex = 0 then - begin - for i := 0 to 4 do - begin - writeln(Grading,TopScoreGrid.Cells[0,i]); - writeln(Grading,LowScoreGrid.Cells[0,i]); - end; - end else - begin - for i := 0 to 11 do - begin - writeln(Grading,TopScoreGrid.Cells[0,i]); - writeln(Grading,LowScoreGrid.Cells[0,i]); - end; - end; - for i := 0 to AssignedGrid.RowCount-1 do - writeln(Grading,AssignedGrid.Cells[0,i]); - for i := 0 to ScoresGrid.RowCount - 1 do - begin - for j := 0 to 1 do writeln(Grading,ScoresGrid.Cells[j,i]); - end; - end; - CloseFile(Grading); -end; - - -procedure Tgradingfrm.CategoriesGroupClick(Sender: TObject); -VAR - btn : integer; -begin - btn := CategoriesGroup.ItemIndex; - if btn = 0 then ncats := 5 else ncats := 12; - if btn = 0 then Grades.RowCount := 5 else Grades.RowCount := 12; - if btn = 0 then TopScoreGrid.RowCount := 5 else TopScoreGrid.RowCount := 12; - if btn = 0 then LowScoreGrid.RowCount := 5 else LowScoreGrid.RowCount := 12; - if btn = 0 then AssignedGrid.RowCount := 5 else AssignedGrid.RowCount := 12; - if btn = 0 then - begin - Grades.Cells[0,0] := 'A'; - Grades.Cells[0,1] := 'B'; - Grades.Cells[0,2] := 'C'; - Grades.Cells[0,3] := 'D'; - Grades.Cells[0,4] := 'F'; - end; - if btn = 1 then - begin - Grades.Cells[0,0] := 'A'; - Grades.Cells[0,1] := 'A-'; - Grades.Cells[0,2] := 'B+'; - Grades.Cells[0,3] := 'B'; - Grades.Cells[0,4] := 'B-'; - Grades.Cells[0,5] := 'C+'; - Grades.Cells[0,6] := 'C'; - Grades.Cells[0,7] := 'C-'; - Grades.Cells[0,8] := 'D+'; - Grades.Cells[0,9] := 'D'; - Grades.Cells[0,10] := 'D-'; - Grades.Cells[0,11] := 'F'; - end; -end; - -procedure Tgradingfrm.ComputeBtnClick(Sender: TObject); -VAR - i, j, rows : integer; - X, Y, low, hi : double; -begin - // build AssignedGrid of grades for each Score in the ScoresGrid - for i := 0 to ncats - 1 do - begin - hi := StrToFloat(TopScoreGrid.Cells[0,i]); - low := StrToFloat(LowScoreGrid.Cells[0,i]); - for j := 0 to nints-1 do - begin - X := StrToFloat(ScoresGrid.Cells[0,j]); - if (X >= low) and (X <= hi) then GradesGrid.cells[0,j] := Grades.cells[0,i]; - end; - end; - - // Now assign grades in the gradebook - for i := 1 to ncases do // gradebook grade cells - begin - Y := StrToFloat(gradebookfrm.grid.Cells[col,i]); - for j := 0 to nints - 1 do // Grade of values in the ScoreGrid - begin - X := StrToFloat(ScoresGrid.Cells[0,j]); - if X = Y then gradebookfrm.Grid.Cells[col+4,i] := gradesGrid.Cells[0,j]; - end; - end; -end; - -initialization - {$I gradingunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/graphlib.lfm b/applications/lazstats/source_orig/graphlib.lfm deleted file mode 100644 index cddc35355..000000000 --- a/applications/lazstats/source_orig/graphlib.lfm +++ /dev/null @@ -1,56 +0,0 @@ -object GraphFrm: TGraphFrm - Left = 76 - Height = 494 - Top = 112 - Width = 721 - Caption = 'Graphic Display' - ClientHeight = 494 - ClientWidth = 721 - OnShow = FormShow - LCLVersion = '0.9.30' - object Image1: TImage - Left = 0 - Height = 454 - Top = 0 - Width = 721 - Align = alClient - end - object Panel1: TPanel - Left = 0 - Height = 40 - Top = 454 - Width = 721 - Align = alBottom - ClientHeight = 40 - ClientWidth = 721 - TabOrder = 0 - object PrintBtn: TButton - Left = 391 - Height = 21 - Top = 9 - Width = 79 - Caption = 'Print' - OnClick = PrintBtnClick - TabOrder = 0 - end - object ReturnBtn: TButton - Left = 497 - Height = 20 - Top = 9 - Width = 75 - Caption = 'Return' - ModalResult = 1 - OnClick = ReturnBtnClick - TabOrder = 1 - end - object SaveBtn: TButton - Left = 288 - Height = 21 - Top = 9 - Width = 75 - Caption = 'Save Image' - OnClick = SaveBtnClick - TabOrder = 2 - end - end -end diff --git a/applications/lazstats/source_orig/graphlib.lrs b/applications/lazstats/source_orig/graphlib.lrs deleted file mode 100644 index 6eaf8c813..000000000 --- a/applications/lazstats/source_orig/graphlib.lrs +++ /dev/null @@ -1,17 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TGraphFrm','FORMDATA',[ - 'TPF0'#9'TGraphFrm'#8'GraphFrm'#4'Left'#2'L'#6'Height'#3#238#1#3'Top'#2'p'#5 - +'Width'#3#209#2#7'Caption'#6#15'Graphic Display'#12'ClientHeight'#3#238#1#11 - +'ClientWidth'#3#209#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#198#1#3'Top'#2#0#5'Width'#3#209#2 - +#5'Align'#7#8'alClient'#0#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6'Height'#2'('#3 - +'Top'#3#198#1#5'Width'#3#209#2#5'Align'#7#8'alBottom'#12'ClientHeight'#2'(' - +#11'ClientWidth'#3#209#2#8'TabOrder'#2#0#0#7'TButton'#8'PrintBtn'#4'Left'#3 - +#135#1#6'Height'#2#21#3'Top'#2#9#5'Width'#2'O'#7'Caption'#6#5'Print'#7'OnCli' - +'ck'#7#13'PrintBtnClick'#8'TabOrder'#2#0#0#0#7'TButton'#9'ReturnBtn'#4'Left' - +#3#241#1#6'Height'#2#20#3'Top'#2#9#5'Width'#2'K'#7'Caption'#6#6'Return'#11'M' - +'odalResult'#2#1#7'OnClick'#7#14'ReturnBtnClick'#8'TabOrder'#2#1#0#0#7'TButt' - +'on'#7'SaveBtn'#4'Left'#3' '#1#6'Height'#2#21#3'Top'#2#9#5'Width'#2'K'#7'Cap' - +'tion'#6#10'Save Image'#7'OnClick'#7#12'SaveBtnClick'#8'TabOrder'#2#2#0#0#0#0 -]); diff --git a/applications/lazstats/source_orig/graphlib.pas b/applications/lazstats/source_orig/graphlib.pas deleted file mode 100644 index f6c7db675..000000000 --- a/applications/lazstats/source_orig/graphlib.pas +++ /dev/null @@ -1,1583 +0,0 @@ -unit GraphLib; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - ExtCtrls, StdCtrls, Globals, Printers, Math, OutPutUnit; - - -type - - { TGraphFrm } - - TGraphFrm = class(TForm) - SaveBtn: TButton; - Image1: TImage; - PrintBtn: TButton; - ReturnBtn: TButton; - Panel1: TPanel; - procedure FormShow(Sender: TObject); - procedure PrintBtnClick(Sender: TObject); - procedure ReturnBtnClick(Sender: TObject); - procedure SaveBtnClick(Sender: TObject); - private - { private declarations } - ImageWidth : integer; - ImageHeight : integer; - XOffset : integer; - YOffset : integer; - XAxisLength : integer; - YAxisLength : integer; - DegAngle : real; - RadAngle : real; - TanAngle : real; - BarWidth : integer; - XStart : integer; - XEnd : integer; - YStart : integer; - YEnd : integer; - Gtype : integer; - NoBars : integer; - NSets : integer; - YMax : real; - YMin : real; - XProp : real; - Colors : Array[0..11] of integer; - - procedure Bar2D(Sender: TObject); - procedure Bar3D(Sender: TObject); - procedure Pie2D(Sender: TObject); - procedure Pie3D(Sender: TObject); - procedure Line2D(Sender: TObject); - procedure Line3D(Sender: TObject); - procedure Plot2D(Sender: TObject); - procedure Plot3D(Sender: TObject); - procedure MakeXAxis(Sender: TObject); - procedure MakeYAxis(Sender: TObject); - procedure MakeHXaxis(Sender: TObject); - procedure MakeHYaxis(Sender: TObject); - function DegToRad(Deg : real; Sender: TObject): real; - procedure HBar2D(Sender: TObject); - procedure HBar3D(Sender: TObject); - procedure Walls(Sender: TObject); - procedure pBar2D(Sender: TObject); - procedure pBar3D(Sender: TObject); - procedure pPie2D(Sender: TObject); - procedure pExPie(Sender: TObject); - procedure pLine2D(Sender: TObject); - procedure pLine3D(Sender: TObject); - procedure pPlot2D(Sender: TObject); - procedure pPlot3D(Sender: TObject); - procedure pMakeXAxis(Sender: TObject); - procedure pMakeYaxis(Sender: TObject); - procedure pMakeHXaxis(Sender: TObject); - procedure pMakeHYaxis(Sender: TObject); - procedure pHBar2D(Sender: TObject); - procedure pHBar3D(Sender: TObject); - procedure pWalls(Sender: TObject); - - public - { public declarations } - nosets : integer; //number of data sets to plot - nbars : integer; // maximum number of bars to plot in any set - Heading : String; // Major Heading for graph - XTitle : string; // title for x-axis - YTitle : string; // title for vertical axis - barwideprop : real; // proportional width of bar (0 to 1.0) - GraphType : integer; //1=2dbar,2=3dbar,3=2dpie,4=3dpie,5=2dline,6=3dline - //7=2dpoints,8=3dpoints - Ypoints, Xpoints : DblDyneMat; - SetLabels : array[1..20] of string[21]; // labels for multiple sets - PointLabels : array[1..1000] of string[3]; // individual point labels - PtLabels : boolean; // true to print point labels (for 2D Plot only) - AutoScale : boolean; // if true, program uses computed min and max values - ShowLeftWall : boolean; - ShowRightWall : boolean; - ShowBottomWall : boolean; - ShowBackWall : boolean; - BackColor : integer; - WallColor : integer; - FloorColor : integer; - miny : double; // specified by user if autoscale is false - maxy : double; // specified by user if autoscale is false - - end; - -var - GraphFrm: TGraphFrm; - -implementation - -{ TGraphFrm } - -procedure TGraphFrm.PrintBtnClick(Sender: TObject); -begin - Printer.Orientation := poLandscape; - ImageWidth := Printer.PageWidth - 100; - ImageHeight := Printer.PageHeight - 100; - XOffset := ImageWidth div 10; - YOffset := ImageHeight div 10; - XStart := Xoffset; - XEnd := ImageWidth - XOffset; - XAxisLength := XEnd - XStart; - YStart := ImageHeight - YOffset; - YEnd := YOffset; - YAxisLength := YStart - YEnd; - DegAngle := 45.0; - RadAngle := DegToRad(DegAngle,Self); - TanAngle := Tan(RadAngle); - NoBars := nbars; - NSets := nosets; - XProp := barwideprop; - BarWidth := XAxisLength div NoBars; - // draw border around graph - Printer.BeginDoc; - BackColor := clWhite; - Printer.Canvas.Brush.Color := BackColor; - Printer.Canvas.Rectangle(100,100,ImageWidth,ImageHeight); - Printer.Canvas.TextOut(ImageWidth div 2,YEnd - 100,Heading); - GraphFrm.Caption := Heading; - if (GType < 1) or (GType > 10) then - begin -// Application.MessageBox('No graph type defined.','ERROR!',MB_OK); - Printer.Enddoc; - exit; - end - else case GType of - 1 : pBar2D(self); // two dimension vertical bars - 2 : pBar3D(self); // three dimension vertical bars - 3 : pPie2D(self); // two dimension pie chart - 4 : pExPie(self); // exploded pie chart - 5 : pLine2D(self); // Two dimension lines - 6 : pLine3D(self); // three dimension lines - 7 : pPlot2D(self); // two dimension points - 8 : pPlot3D(self); // three dimension points - 9 : pHBar2D(self); // Two dimension horizontal bars - 10: pHBar3D(self); // Three dimension horizontal bars - end; - Printer.EndDoc; { finish printing } - Printer.Orientation := poPortrait; - -end; - -procedure TGraphFrm.FormShow(Sender: TObject); -var - i, j : integer; - -begin - Gtype := 1; // default type is a 2 dimension bar graph - ImageWidth := Image1.Width; - ImageHeight := Image1.Height; - XOffset := ImageWidth div 10; - YOffset := ImageHeight div 10; - XStart := Xoffset; - XEnd := ImageWidth - XOffset; - XAxisLength := XEnd - XStart; - YStart := ImageHeight - YOffset; - YEnd := YOffset; - YAxisLength := YStart - YEnd; - DegAngle := 45.0; - RadAngle := DegToRad(DegAngle,Self); - TanAngle := Tan(RadAngle); - NoBars := nbars; - NSets := nosets; - XProp := barwideprop; - BarWidth := XAxisLength div NoBars; - GType := GraphType; - Colors[1] := clRed; - Colors[2] := clBlue; - Colors[3] := clGreen; - Colors[4] := clNavy; - Colors[5] := clTeal; - Colors[6] := clAqua; - Colors[7] := clLime; - Colors[8] := clFuchsia; - Colors[9] := clGray; - Colors[10] := clPurple; - Colors[11] := clOlive; - Colors[0] := clMaroon; - // draw border around graph - Image1.Canvas.Brush.Color := BackColor; - Image1.Canvas.Rectangle(0,0,ImageWidth,ImageHeight); - Image1.Canvas.TextOut(ImageWidth div 2,0,Heading); - GraphFrm.Caption := Heading; - if AutoScale = true then - begin - YMin := YPoints[0,0]; - YMax := YMin; - for i := 1 to NSets do - begin - for j := 2 to NoBars do - begin - if YPoints[i-1,j-1] > YMax then YMax := YPoints[i-1,j-1]; - if YPoints[i-1,j-1] < YMin then YMin := YPoints[i-1,j-1]; - end; - end; - end - else - begin - YMin := miny; - YMax := maxy; - end; - if (GType < 1) or (GType > 10) then - begin -// Application.MessageBox('No graph type defined.','ERROR!',MB_OK); - exit; - end - else case GType of - 1 : Bar2D(self); - 2 : Bar3D(self); - 3 : Pie2D(self); - 4 : Pie3D(self); - 5 : Line2D(self); - 6 : Line3D(self); - 7 : Plot2D(self); - 8 : Plot3D(self); - 9 : HBar2D(self); - 10: HBar3D(self); - end; -end; - -procedure TGraphFrm.ReturnBtnClick(Sender: TObject); -begin - GraphFrm.Hide; -end; - -procedure TGraphFrm.SaveBtnClick(Sender: TObject); -VAR - response : string; -begin - response := InputBox('NAME?','Name of bitmap file:','image.bmp'); - Image1.Picture.SaveToFile(response); -end; - -procedure TGraphFrm.Bar2D(Sender: TObject); -var - j : integer; - x1, y1, x2, y2 : integer; - bwidth : integer; - xpos : integer; - yprop : real; - ydist : real; -begin - MakeXAxis(self); - MakeYAxis(self); - { Make bar for each y data point } - for j := 1 to NoBars do - begin - Image1.Canvas.Brush.Color := Colors[j mod 12]; - bwidth := round(XProp * BarWidth); - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x1 := xpos - (bwidth div 2); - x2 := x1 + bwidth; - y1 := YStart; -// yprop := (YPoints[1]^[j]- YMin) / (YMax - YMin); - yprop := (YPoints[0,j-1] - YMin) / (YMax - YMin); - ydist := yprop * YAxisLength; - y2 := YStart - round(ydist); - Image1.Canvas.Polygon([Point(x1,y1),Point(x2,y1),Point(x2,y2),Point(x1,y2)]); - end; -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.HBar2D(Sender: TObject); -var - j : integer; - x1, y1, x2, y2 : integer; - bwidth : integer; - ypos : integer; - xdist : real; - yprop : real; -begin - BarWidth := YAxisLength div NoBars; - MakeHXAxis(self); - MakeHYAxis(self); - { Make bar for each y data point } - for j := 1 to NoBars do - begin - Image1.Canvas.Brush.Color := Colors[j mod 12]; - bwidth := round(XProp * BarWidth); - ypos := YStart - (BarWidth * j) + (BarWidth div 2); // bar center - y1 := ypos - (bwidth div 2); - y2 := y1 + bwidth; - x1 := XStart; - yprop := (YPoints[0,j-1] - YMin) / (YMax - YMin); - xdist := yprop * XAxisLength; - x2 := XStart + round(xdist); - Image1.Canvas.Polygon([Point(x1,y1),Point(x2,y1),Point(x2,y2),Point(x1,y2)]); - end; -end; -//---------------------------------------------------------------------- - -procedure TGraphFrm.HBar3D(Sender: TObject); -var - i, j : integer; - x1, x2, x3, x4, y1, y2, y3, y4 : integer; - triheight : integer; - bwidth : integer; - ypos : integer; - xdist : real; - yprop : real; -// yoffset : integer; -// xoffset : integer; - triwidth : integer; - -begin - Walls(self); // create left and bottom wall and axes - BarWidth := YAxisLength div NoBars; - Image1.Canvas.Brush.Color := BackColor; - MakeHXAxis(self); - MakeHYAxis(self); - bwidth := round(XProp * BarWidth); - triwidth := round(bwidth * cos(RadAngle)); - triheight := round(bwidth * sin(RadAngle)); - triheight := triheight div 2; // scale down depth of view - for i := 1 to NSets do - begin - xoffset := triwidth * (i - 1); - yoffset := triheight * (i - 1); - { Make bar for each y data point } - for j := 1 to NoBars do - begin - // do face - Image1.Canvas.Brush.Color := Colors[j mod 12]; - ypos := YStart - (BarWidth * j) + (BarWidth div 2); // bar center - y1 := ypos - (bwidth div 2) - yoffset; - y2 := y1 + bwidth; - x1 := XStart + xoffset; - yprop := (YPoints[0,j-1] - YMin) / (YMax - YMin); - xdist := yprop * XAxisLength; - x2 := XStart + round(xdist) + xoffset; - Image1.Canvas.Polygon([Point(x1,y1),Point(x2,y1),Point(x2,y2),Point(x1,y2)]); - // do side (end of bar ) - x1 := x2; - x2 := x1 + triwidth; - y1 := y2; - y2 := y1 - triheight; - y3 := y2 - bwidth; - y4 := y1 - bwidth; - Image1.Canvas.Polygon([Point(x1,y1),Point(x2,y2),Point(x2,y3),Point(x1,y4)]); - // do top of bar - x3 := XStart + xoffset; - x4 := x3 + triwidth; - Image1.Canvas.Polygon([Point(x3,y4),Point(x1,y4),Point(x2,y3),Point(x4,y3)]); - end; - end; -end; -//---------------------------------------------------------------------- - -procedure TGraphFrm.Bar3D(Sender: TObject); -var - i, j : integer; - x1, x2, x3, x4, y1, y2, y3, y4 : integer; - triheight : integer; - bwidth : integer; - yprop : real; -// yoffset : integer; -// xoffset : integer; - xpos : integer; - ydist : integer; - triwidth : integer; - -begin - Walls(self); // create left and bottom wall and axes - Image1.Canvas.Brush.Color := BackColor; - MakeXAxis(self); - MakeYAxis(self); - bwidth := round(XProp * BarWidth); - triwidth := round(bwidth * cos(RadAngle)); - triheight := round(bwidth * sin(RadAngle)); - triheight := triheight div 2; // scale down depth of view - for i := NSets downto 1 do - begin - xoffset := triwidth * (i - 1); - yoffset := triheight * (i - 1); - for j := 1 to NoBars do - begin - Image1.Canvas.Brush.Color := Colors[j mod 12]; - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x1 := xpos - (bwidth div 2); - x2 := x1 + bwidth; - y1 := YStart; - yprop := (YPoints[i-1,j-1] - YMin) / (YMax - YMin); - ydist := round(yprop * YAxisLength); - y2 := YStart - round(ydist); - x1 := x1 + xoffset; - x2 := x2 + xoffset; - y1 := y1 - yoffset; - y2 := y2 - yoffset; - // draw face - Image1.Canvas.Polygon([Point(x1,y1),Point(x2,y1),Point(x2,y2),Point(x1,y2)]); - // draw side - x1 := x2; - x2 := x1 + triwidth; - y2 := y1 - triheight; - y3 := y1 - round(ydist); - y4 := y2 - round(ydist); - Image1.Canvas.Polygon([Point(x1,y1),Point(x2,y2),Point(x2,y4),Point(x1,y3)]); - // draw top - x1 := xpos - (bwidth div 2) + xoffset; - x2 := x1 + bwidth; - x3 := x2 + triwidth; - x4 := x1 + triwidth; - y1 := YStart - yoffset - round(ydist); - y2 := y1 - triheight; - Image1.Canvas.Polygon([Point(x1,y1),Point(x2,y1),Point(x3,y2),Point(x4,y2)]); - end; - x1 := XStart + XAxisLength + xoffset; - y1 := YStart - triheight * i; - Image1.Canvas.Brush.Color := clWhite; - Image1.Canvas.TextOut(x1,y1,SetLabels[i]); - end; -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.Pie2D(Sender: TObject); -var - i : integer; - x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6 : integer; - yprop : real; - xcenter, ycenter : double; - Total : double; - radians : double; - radius : integer; - cum : double; - value : string; - -begin - xcenter := ImageWidth div 2; - ycenter := ImageHeight div 2; - - // get the total for obtaining proportions that each y point is of the total - Total := 0.0; - cum := 0.0; - radius := round(ycenter) - YOffset; - x1 := ImageWidth div 2 - Image1.Canvas.TextWidth(XTitle) div 2; - Image1.Canvas.TextOut(x1,YStart + 25,XTitle); - x1 := round(xcenter-radius); // left of rectangle - y1 := round(ycenter-radius); // top of rectangle - x2 := round(xcenter + radius); // right of rectangle - y2 := round(ycenter + radius); // bottom of rectangle - x3 := x2; - y3 := round(ycenter); - for i := 1 to NoBars do Total := Total + YPoints[0,i-1]; - // plot an arc corresponding to each proportion starting at radian 0 - for i := 1 to NoBars do - begin - yprop := YPoints[0,i-1] / Total; - cum := cum + yprop; - radians := cum * 2.0 * Pi; - x4 := round(xcenter + radius * cos(radians)); - y4 := round(ycenter - (radius * sin(radians))); - Image1.Canvas.Brush.Color := Colors[i mod 12]; - if yprop > 0.0 then - begin - Image1.Canvas.Pie(x1,y1,x2,y2,x3,y3,x4,y4); - radians := (cum - (yprop / 2.0)) * 2.0 * Pi; - x5 := round(xcenter + radius * cos(radians)); - y5 := round(ycenter - radius * sin(radians)); - Image1.Canvas.MoveTo(x5,y5); - if x5 >= round(xcenter) then x6 := x5 + 20 - else x6 := x5 - 20; - if y5 >= round(ycenter) then y6 := y5 + 20 - else y6 := y5 - 20; - Image1.Canvas.LineTo(x6,y6); - Image1.Canvas.Brush.Color := BackColor; - value := format('%8.5g',[XPoints[0,i-1]]); - Image1.Canvas.TextOut(x6,y6,value); - if x5 >= round(xcenter) then x6 := x5 - 20 - else x6 := x5 + 20; - if y5 >= round(ycenter) then y6 := y5 - 20 - else y6 := y5 + 20; - value := format('%4.2f',[yprop*100.0]); - value := value + '%'; - Image1.Canvas.TextOut(x6,y6,value); - x3 := x4; - y3 := y4; - end; - end; -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.Pie3D(Sender: TObject); -var - i : integer; - x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6 : integer; - yprop : real; - xcenter, ycenter : double; - Total : double; - radians : double; - midradians : double; - radius : integer; - cum : double; - value : string; - -begin - ycenter := ImageHeight div 2; - // get the total for obtaining proportions that each y point is of the total - Total := 0.0; - cum := 0.0; - radius := round(ycenter) - YOffset; - x1 := ImageWidth div 2 - Image1.Canvas.TextWidth(XTitle) div 2; - Image1.Canvas.TextOut(x1,YStart + 25,XTitle); - for i := 1 to NoBars do Total := Total + YPoints[0,i-1]; - // plot an arc corresponding to each proportion starting at radian 0 - for i := 1 to NoBars do - begin - xcenter := ImageWidth div 2; - ycenter := ImageHeight div 2; - yprop := YPoints[0,i-1] / Total; - cum := cum + yprop; - radians := cum * 2.0 * Pi; - midradians := (cum - (yprop / 2.0)) * 2.0 * Pi; - x5 := round(xcenter + radius * cos(midradians)); - y5 := round(ycenter - radius * sin(midradians)); - // explode pie by shifting slices away from center - if x5 >= round(xcenter) then xcenter := xcenter + 10 - else xcenter := xcenter - 10; - if y5 >= round(ycenter) then ycenter := ycenter + 10 - else ycenter := ycenter - 10; - x1 := round(xcenter-radius); // left of rectangle - y1 := round(ycenter-radius); // top of rectangle - x2 := round(xcenter + radius); // right of rectangle - y2 := round(ycenter + radius); // bottom of rectangle - midradians := (cum - yprop ) * 2.0 * Pi; - x3 := round(xcenter + radius * cos(midradians)); - y3 := round(ycenter - radius * sin(midradians)); - x4 := round(xcenter + radius * cos(radians)); - y4 := round(ycenter - (radius * sin(radians))); - Image1.Canvas.Brush.Color := Colors[i mod 12]; - if yprop > 0.0 then - begin - Image1.Canvas.Pie(x1,y1,x2,y2,x3,y3,x4,y4); - radians := (cum - (yprop / 2.0)) * 2.0 * Pi; - x5 := round(xcenter + radius * cos(radians)); - y5 := round(ycenter - radius * sin(radians)); - Image1.Canvas.MoveTo(x5,y5); - if x5 >= round(xcenter) then x6 := x5 + 20 - else x6 := x5 - 20; - if y5 >= round(ycenter) then y6 := y5 + 20 - else y6 := y5 - 20; - Image1.Canvas.LineTo(x6,y6); - Image1.Canvas.Brush.Color := BackColor; - value := format('%8.5g',[XPoints[0,i-1]]); - Image1.Canvas.TextOut(x6,y6,value); - if x5 >= round(xcenter) then x6 := x5 - 20 - else x6 := x5 + 20; - if y5 >= round(ycenter) then y6 := y5 - 20 - else y6 := y5 + 20; - value := format('%4.2f',[yprop*100.0]); - value := value + '%'; - Image1.Canvas.TextOut(x6,y6,value); - end; - end; -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.Line2D(Sender: TObject); -{ This procedure draws lines for 1 or more sets (on top of each other if - multiple sets) } -var - i, j : integer; - x1, y1, x2, y2 : integer; - xpos : integer; - yprop : real; - ydist : real; -begin - MakeXAxis(self); - MakeYAxis(self); - { Make lines for each set of y data point } - For i := NSets downto 1 do - begin - Image1.Canvas.Pen.Color := Colors[i mod 12]; - x1 := XStart + BarWidth div 2; - x2 := x1; - yprop := (YPoints[i-1,0] - YMin) / (YMax - YMin); - ydist := yprop * YAxisLength; - y1 := YStart - round(ydist); - y2 := y1; - Image1.Canvas.MoveTo(x1,y1); - for j := 2 to NoBars do - begin - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x2 := xpos; - yprop := (YPoints[i-1,j-1] - YMin) / (Ymax - YMin); - ydist := yprop * YAxisLength; - y2 := YStart - round(ydist); - Image1.Canvas.LineTo(x2,y2); - end; - Image1.Canvas.Pen.Color := clBlack; - x1 := x2; - y1 := y2; - Image1.Canvas.Brush.Color := clWhite; - Image1.Canvas.TextOut(x1,y1,SetLabels[i]); - end; - Image1.Canvas.Pen.Color := clBlack; -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.Line3D(Sender: TObject); -{ This procedure draws lines for multiple sets but staggers each set back and - to the right } -var - i, j : integer; - x1, x2, x3, x4, y1, y2, y3, y4 : integer; - triheight : integer; - bwidth : integer; - yprop : double; - points : array[0..4] of TPoint; - xpos : integer; - ydist : integer; - triwidth : integer; -begin - - Walls(self); // create left and bottom wall and axes - Image1.Canvas.Brush.Color := BackColor; - MakeXAxis(self); - MakeYAxis(self); - bwidth := BarWidth; - triwidth := round(bwidth * cos(RadAngle)); - triheight := round(bwidth * sin(RadAngle)); - triheight := triheight div 2; // scale down depth of view - for i := NSets downto 1 do - begin - xoffset := triwidth * (i - 1); - yoffset := triheight * (i - 1); - Image1.Canvas.Brush.Color := Colors[i mod 12]; - for j := 1 to NoBars-1 do - begin - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x1 := xpos - (bwidth div 2) + xoffset; - x2 := x1 + bwidth; - x3 := x2 + triwidth; - x4 := x1 + triwidth; - yprop := (YPoints[i-1,j-1] - YMin) / (YMax - YMin); - ydist := round(yprop * YAxisLength); - y1 := YStart - yoffset - round(ydist); - y2 := y1 - triheight; - yprop := (YPoints[i-1,j] - YMin) / (YMax - YMin); - ydist := round(yprop * YAxisLength); - y3 := ystart - yoffset - round(ydist); - y4 := y3 - triheight; - points[0] := Point(x1,y1); - points[1] := Point(x2,y2); - points[2] := Point(x3,y4); - points[3] := Point(x4,y3); - Image1.Canvas.Polygon(points,4); - end; - x1 := XStart + XAxisLength + xoffset; - y1 := YStart - triheight * i; - Image1.Canvas.Brush.Color := clWhite; - Image1.Canvas.TextOut(x1,y1,SetLabels[i]); - end; -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.Plot2D(Sender: TObject); -var - i, j : integer; - x1, y1 : integer; - triheight : integer; - bwidth : integer; - yprop : real; -// yoffset : integer; -// xoffset : integer; - xpos : integer; - ydist : integer; - triwidth : integer; -begin - Walls(self); // create left and bottom wall and axes - Image1.Canvas.Brush.Color := BackColor; - MakeXAxis(self); - MakeYAxis(self); - bwidth := round(XProp * BarWidth); - triwidth := round(bwidth * cos(RadAngle)); - triheight := round(bwidth * sin(RadAngle)); - triheight := triheight div 2; // scale down depth of view - { Make points for each set of y data point } - for i := NSets downto 1 do - begin - Image1.Canvas.Brush.Color := Colors[i mod 12]; - xoffset := triwidth * (i - 1); - yoffset := triheight * (i - 1); - for j := 1 to NoBars do - begin - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x1 := xpos; - yprop := (YPoints[i-1,j-1] - YMin) / (YMax - YMin); - ydist := round(yprop * YAxisLength); - y1 := YStart - round(ydist); - x1 := x1 + xoffset; - y1 := y1 - yoffset; - if PtLabels then - begin - Image1.Canvas.Brush.Color := BackColor; - Image1.Canvas.TextOut(x1,y1,PointLabels[j]); - end - else - Image1.Canvas.Ellipse(x1-5,y1-5,x1+5,y1+5); - end; - Image1.Canvas.Pen.Color := clBlack; - x1 := XStart + XAxisLength + xoffset; - y1 := YStart - triheight * i; - Image1.Canvas.Brush.Color := clWhite; - Image1.Canvas.TextOut(x1,y1,SetLabels[i]); - end; -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.Plot3D(Sender: TObject); -var - i, j : integer; - x1, y1 : integer; - yprop : real; - triheight : integer; - bwidth : integer; -// yoffset : integer; -// xoffset : integer; - xpos : integer; - ydist : integer; - triwidth : integer; -begin - Walls(self); // create left and bottom wall and axes - Image1.Canvas.Brush.Color := BackColor; - MakeXAxis(self); - MakeYAxis(self); - bwidth := round(XProp * BarWidth); - triwidth := round(bwidth * cos(RadAngle)); - triheight := round(bwidth * sin(RadAngle)); - triheight := triheight div 2; // scale down depth of view - { Make points for each set of y data point } - for i := NSets downto 1 do - begin - Image1.Canvas.Brush.Color := Colors[i mod 12]; - xoffset := triwidth * (i - 1); - yoffset := triheight * (i - 1); - for j := 1 to NoBars do - begin - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x1 := xpos; - yprop := (YPoints[i-1,j-1] - YMin) / (YMax - YMin); - ydist := round(yprop * YAxisLength); - y1 := YStart - round(ydist); - x1 := x1 + xoffset; - y1 := y1 - yoffset; - // change next to a ball by drawing multiple Ellipses around - // vertical axis ? - Image1.Canvas.Ellipse(x1-5,y1-5,x1+5,y1+5); - Image1.Canvas.Ellipse(x1-4,y1-5,x1+4,y1+5); - Image1.Canvas.Ellipse(x1-3,y1-5,x1+3,y1+5); - Image1.Canvas.Ellipse(x1-2,y1-5,x1+2,y1+5); - end; - Image1.Canvas.Pen.Color := clBlack; - x1 := XStart + XAxisLength + xoffset; - y1 := YStart - triheight * i; - Image1.Canvas.Brush.Color := clWhite; - Image1.Canvas.TextOut(x1,y1,SetLabels[i]); - end; -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.MakeXAxis(Sender: TObject); -var - i, valstart, valend, oldend : integer; - xpos : integer; - value : string; -begin - Image1.Canvas.MoveTo(XStart,YStart); - Image1.Canvas.LineTo(XEnd,YStart); - oldend := 0; - for i := 1 to NoBars do - begin - xpos := XStart + (BarWidth * i) - (BarWidth div 2); - Image1.Canvas.MoveTo(xpos,YStart); - Image1.Canvas.LineTo(xpos,YStart + 5); - value := format('%6.5g',[XPoints[0,i-1]]); - valstart := xpos - Image1.Canvas.TextWidth(value) div 2; - valend := valstart + Image1.Canvas.TextWidth(value); - if valstart > oldend then - begin - Image1.Canvas.TextOut(valstart,YStart+10,value); - oldend := valend; - end; - end; - xpos := ImageWidth div 2 - Image1.Canvas.TextWidth(XTitle) div 2; - Image1.Canvas.TextOut(xpos,YStart + 25,XTitle); -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.MakeYAxis(Sender: TObject); -var - ypos : integer; - i : integer; - incr : real; - value : real; - valstring : string; - -begin - Image1.Canvas.MoveTo(XStart,YStart); - Image1.Canvas.LineTo(XStart,YEnd); - incr := (YMax - YMin) / 20.0; - for i := 1 to 21 do - begin - value := YMin + (incr * (i-1)); - ypos := YStart - ((i-1) * YAxisLength div 20); - Image1.Canvas.MoveTo(XStart,ypos); - Image1.Canvas.LineTo(XStart-10,ypos); - valstring := format('%8.2f',[value]); - Image1.Canvas.TextOut(5, ypos,valstring); - end; - ypos := YEnd - 10 - Canvas.TextHeight(YTitle); - Image1.Canvas.TextOut(0,ypos,YTitle); -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.MakeHXaxis(Sender: TObject); -var - xpos : integer; - i : integer; - incr : real; - value : real; - valstring : string; - -begin - Image1.Canvas.MoveTo(XStart,YStart); - Image1.Canvas.LineTo(XEnd,YStart); - incr := (YMax - YMin) / 20.0; - for i := 1 to 21 do - begin - value := YMin + (incr * (i-1)); - xpos := XStart + ((i-1) * XAxisLength div 20); - Image1.Canvas.MoveTo(xpos,YStart); - Image1.Canvas.LineTo(xpos,YStart + 5); - valstring := format('%6.2f',[value]); - Image1.Canvas.TextOut(xpos - Image1.Canvas.TextWidth(valstring) div 2, - YStart + 10,FloatToStr(value)); - end; - xpos := XAxisLength div 2 - Image1.Canvas.TextWidth(YTitle) div 2; - Image1.Canvas.TextOut(xpos,YStart + 20,YTitle); -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.MakeHYaxis(Sender: TObject); -var - i : integer; - ypos : integer; - value : string; -begin - Image1.Canvas.MoveTo(XStart,YStart); - Image1.Canvas.LineTo(XStart,YEnd); - for i := 1 to NoBars do - begin - ypos := YStart - (BarWidth * i) + (BarWidth div 2); - Image1.Canvas.MoveTo(XStart,ypos); - Image1.Canvas.LineTo(XStart - 10,ypos); - value := format('%6.5g',[XPoints[0,i-1]]); - Image1.Canvas.TextOut(XStart-10-Image1.Canvas.TextWidth(value), - ypos,value); - end; - ypos := YEnd; - Image1.Canvas.TextOut(0,ypos,XTitle); -end; -//--------------------------------------------------------------------- - -function TGraphFrm.DegToRad(Deg : real; Sender : TObject): real; -begin - Result := Deg * Pi / 180.0; -end; -//--------------------------------------------------------------------- - -procedure TGraphFrm.Walls(Sender: TObject); -var - deep : integer; - triheight : integer; - x1, x2,x3, x4, y1, y2, y3, y4 : integer; // polygon vertices - bwide : integer; -// xoffset : integer; - -begin - bwide := round(BarWidth * XProp); - xoffset := round(bwide * cos(RadAngle)); - XAxisLength := XAxisLength - (NSets * xoffset); // new length of X Axis - XEnd := XStart + XAxisLength; - BarWidth := XAxisLength div NoBars; //Adjusted bar width - bwide := round(BarWidth * XProp); - xoffset := round(bwide * cos(RadAngle)); - deep := xoffset * NSets; - triheight := round(bwide * sin(RadAngle) * NSets); // total height of additional y needed - triheight := triheight div 2; // scale down depth of view - YAxisLength := YAxisLength - triheight; - YEnd := YStart - YAxisLength; - // do left wall - x1 := XStart; - x2 := x1 + deep; - y1 := YStart; - y2 := YStart - triheight; - y3 := YStart - YAxisLength - triheight; - y4 := YEnd; - Image1.Canvas.Brush.Color := WallColor; - Image1.Canvas.Polygon([Point(x1,y1),Point(x2,y2),Point(x2,y3),Point(x1,y4)]); - // do floor - x1 := XStart; - x2 := XStart + deep; - x3 := XEnd; - x4 := XEnd + deep; - y1 := YStart; - y2 := YStart - triheight; - Image1.Canvas.Brush.Color := FloorColor; - Image1.Canvas.Polygon([Point(x1,y1),Point(x3,y1),Point(x4,y2),Point(x2,y2)]); -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pHBar2D(Sender: TObject); -var - j : integer; - x1, y1, x2, y2 : integer; - bwidth : integer; - ypos : integer; - xdist : real; - yprop : real; -begin - BarWidth := YAxisLength div NoBars; - pMakeHXAxis(self); - pMakeHYAxis(self); - { Make bar for each y data point } - for j := 1 to NoBars do - begin - Printer.Canvas.Brush.Color := Colors[j mod 12]; - bwidth := round(XProp * BarWidth); - ypos := YStart - (BarWidth * j) + (BarWidth div 2); // bar center - y1 := ypos - (bwidth div 2); - y2 := y1 + bwidth; - x1 := XStart; - yprop := (YPoints[0,j-1] - YMin) / (YMax - YMin); - xdist := yprop * XAxisLength; - x2 := XStart + round(xdist); - Printer.Canvas.Polygon([Point(x1,y1),Point(x2,y1),Point(x2,y2),Point(x1,y2)]); - end; -end; -//----------------------------------------------------------------------- - -procedure TGraphFrm.pHBar3D(Sender: TObject); -var - i, j : integer; - x1, x2, x3, x4, y1, y2, y3, y4 : integer; - triheight : integer; - bwidth : integer; - ypos : integer; - xdist : real; - yprop : real; -// yoffset : integer; -// xoffset : integer; - triwidth : integer; - -begin - pWalls(self); // create left and bottom wall and axes - BarWidth := YAxisLength div NoBars; - Printer.Canvas.Brush.Color := BackColor; - pMakeHXAxis(self); - pMakeHYAxis(self); - bwidth := round(XProp * BarWidth); - triwidth := round(bwidth * cos(RadAngle)); - triheight := round(bwidth * sin(RadAngle)); - triheight := triheight div 2; // scale down depth of view - for i := 1 to NSets do - begin - xoffset := triwidth * (i - 1); - yoffset := triheight * (i - 1); - { Make bar for each y data point } - for j := 1 to NoBars do - begin - // do face - Printer.Canvas.Brush.Color := Colors[j mod 12]; - ypos := YStart - (BarWidth * j) + (BarWidth div 2); // bar center - y1 := ypos - (bwidth div 2) - yoffset; - y2 := y1 + bwidth; - x1 := XStart + xoffset; - yprop := (YPoints[0,j-1] - YMin) / (YMax - YMin); - xdist := yprop * XAxisLength; - x2 := XStart + round(xdist) + xoffset; - Printer.Canvas.Polygon([Point(x1,y1),Point(x2,y1),Point(x2,y2),Point(x1,y2)]); - // do side (end of bar ) - x1 := x2; - x2 := x1 + triwidth; - y1 := y2; - y2 := y1 - triheight; - y3 := y2 - bwidth; - y4 := y1 - bwidth; - Printer.Canvas.Polygon([Point(x1,y1),Point(x2,y2),Point(x2,y3),Point(x1,y4)]); - // do top of bar - x3 := XStart + xoffset; - x4 := x3 + triwidth; - Printer.Canvas.Polygon([Point(x3,y4),Point(x1,y4),Point(x2,y3),Point(x4,y3)]); - end; - end; -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pWalls(Sender: TObject); -var - deep : integer; - triheight : integer; - x1, x2,x3, x4, y1, y2, y3, y4 : integer; // polygon vertices - bwide : integer; -// xoffset : integer; - -begin - bwide := round(BarWidth * XProp); - xoffset := round(bwide * cos(RadAngle)); - XAxisLength := XAxisLength - (NSets * xoffset); // new length of X Axis - XEnd := XStart + XAxisLength; - BarWidth := XAxisLength div NoBars; //Adjusted bar width - bwide := round(BarWidth * XProp); - xoffset := round(bwide * cos(RadAngle)); - deep := xoffset * NSets; - triheight := round(bwide * sin(RadAngle) * NSets); // total height of additional y needed - triheight := triheight div 2; // scale down depth of view - YAxisLength := YAxisLength - triheight; - YEnd := YStart - YAxisLength; - // do left wall - x1 := XStart; - x2 := x1 + deep; - y1 := YStart; - y2 := YStart - triheight; - y3 := YStart - YAxisLength - triheight; - y4 := YEnd; - Printer.Canvas.Brush.Color := WallColor; - Printer.Canvas.Polygon([Point(x1,y1),Point(x2,y2),Point(x2,y3),Point(x1,y4)]); - // do floor - x1 := XStart; - x2 := XStart + deep; - x3 := XEnd; - x4 := XEnd + deep; - y1 := YStart; - y2 := YStart - triheight; - Printer.Canvas.Brush.Color := FloorColor; - Printer.Canvas.Polygon([Point(x1,y1),Point(x3,y1),Point(x4,y2),Point(x2,y2)]); -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pBar2D(Sender: TObject); -var - j : integer; - x1, y1, x2, y2 : integer; - bwidth : integer; - xpos : integer; - yprop : real; - ydist : real; -begin - pMakeXAxis(self); - pMakeYAxis(self); - { Make bar for each y data point } - for j := 1 to NoBars do - begin - Printer.Canvas.Brush.Color := Colors[j mod 12]; - bwidth := round(XProp * BarWidth); - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x1 := xpos - (bwidth div 2); - x2 := x1 + bwidth; - y1 := YStart; - yprop := (YPoints[0,j-1] - YMin) / (YMax - YMin); - ydist := yprop * YAxisLength; - y2 := YStart - round(ydist); - Printer.Canvas.Polygon([Point(x1,y1),Point(x2,y1),Point(x2,y2),Point(x1,y2)]); - end; -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pBar3D(Sender: TObject); -var - i, j : integer; - x1, x2, x3, x4, y1, y2, y3, y4 : integer; - triheight : integer; - bwidth : integer; - yprop : real; -// yoffset : integer; -// xoffset : integer; - xpos : integer; - ydist : integer; - triwidth : integer; - -begin - pWalls(self); // create left and bottom wall and axes - Printer.Canvas.Brush.Color := BackColor; - pMakeXAxis(self); - pMakeYAxis(self); - bwidth := round(XProp * BarWidth); - triwidth := round(bwidth * cos(RadAngle)); - triheight := round(bwidth * sin(RadAngle)); - triheight := triheight div 2; // scale down depth of view - for i := NSets downto 1 do - begin - xoffset := triwidth * (i - 1); - yoffset := triheight * (i - 1); - for j := 1 to NoBars do - begin - Printer.Canvas.Brush.Color := Colors[j mod 12]; - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x1 := xpos - (bwidth div 2); - x2 := x1 + bwidth; - y1 := YStart; - yprop := (YPoints[i-1,j-1] - YMin) / (YMax - YMin); - ydist := round(yprop * YAxisLength); - y2 := YStart - round(ydist); - x1 := x1 + xoffset; - x2 := x2 + xoffset; - y1 := y1 - yoffset; - y2 := y2 - yoffset; - // draw face - Printer.Canvas.Polygon([Point(x1,y1),Point(x2,y1),Point(x2,y2),Point(x1,y2)]); - // draw side - x1 := x2; - x2 := x1 + triwidth; - y2 := y1 - triheight; - y3 := y1 - round(ydist); - y4 := y2 - round(ydist); - Printer.Canvas.Polygon([Point(x1,y1),Point(x2,y2),Point(x2,y4),Point(x1,y3)]); - // draw top - x1 := xpos - (bwidth div 2) + xoffset; - x2 := x1 + bwidth; - x3 := x2 + triwidth; - x4 := x1 + triwidth; - y1 := YStart - yoffset - round(ydist); - y2 := y1 - triheight; - Printer.Canvas.Polygon([Point(x1,y1),Point(x2,y1),Point(x3,y2),Point(x4,y2)]); - end; - x1 := XStart + XAxisLength + xoffset; - y1 := YStart - triheight * i; - Printer.Canvas.Brush.Color := clWhite; - Printer.Canvas.TextOut(x1,y1,SetLabels[i]); - end; -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pPie2D(Sender: TObject); -var - i : integer; - x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6 : integer; - yprop : real; - xcenter, ycenter : double; - Total : double; - radians : double; - radius : integer; - cum : double; - value : string; - -begin - xcenter := ImageWidth div 2; - ycenter := ImageHeight div 2; - - // get the total for obtaining proportions that each y point is of the total - Total := 0.0; - cum := 0.0; - radius := round(ycenter) - YOffset; - x1 := ImageWidth div 2 - Printer.Canvas.TextWidth(XTitle) div 2; - Printer.Canvas.TextOut(x1,YStart + 25,XTitle); - x1 := round(xcenter-radius); // left of rectangle - y1 := round(ycenter-radius); // top of rectangle - x2 := round(xcenter + radius); // right of rectangle - y2 := round(ycenter + radius); // bottom of rectangle - x3 := x2; - y3 := round(ycenter); - for i := 1 to NoBars do Total := Total + YPoints[0,i-1]; - // plot an arc corresponding to each proportion starting at radian 0 - for i := 1 to NoBars do - begin - yprop := YPoints[0,i-1] / Total; - cum := cum + yprop; - radians := cum * 2.0 * Pi; - x4 := round(xcenter + radius * cos(radians)); - y4 := round(ycenter - (radius * sin(radians))); - Printer.Canvas.Brush.Color := Colors[i mod 12]; - if yprop > 0.0 then - begin - Printer.Canvas.Pie(x1,y1,x2,y2,x3,y3,x4,y4); - radians := (cum - (yprop / 2.0)) * 2.0 * Pi; - x5 := round(xcenter + radius * cos(radians)); - y5 := round(ycenter - radius * sin(radians)); - Printer.Canvas.MoveTo(x5,y5); - if x5 >= round(xcenter) then x6 := x5 + 50 - else x6 := x5 - 50; - if y5 >= round(ycenter) then y6 := y5 + 50 - else y6 := y5 - 50; - Printer.Canvas.LineTo(x6,y6); - Printer.Canvas.Brush.Color := BackColor; - value := format('%8.5g',[XPoints[0,i-1]]); - Printer.Canvas.TextOut(x6,y6,value); - if x5 >= round(xcenter) then x6 := x5 - 50 - else x6 := x5 + 50; - if y5 >= round(ycenter) then y6 := y5 - 50 - else y6 := y5 + 50; - value := format('%4.2f',[yprop*100.0]); - value := value + '%'; - Printer.Canvas.TextOut(x6,y6,value); - x3 := x4; - y3 := y4; - end; - end; -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pExPie(Sender: TObject); -var - i : integer; - x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6 : integer; - yprop : real; - xcenter, ycenter : double; - Total : double; - radians : double; - midradians : double; - radius : integer; - cum : double; - value : string; - -begin - ycenter := ImageHeight div 2; - // get the total for obtaining proportions that each y point is of the total - Total := 0.0; - cum := 0.0; - radius := round(ycenter) - YOffset; - x1 := ImageWidth div 2 - Printer.Canvas.TextWidth(XTitle) div 2; - Printer.Canvas.TextOut(x1,YStart + 25,XTitle); - for i := 1 to NoBars do Total := Total + YPoints[0,i-1]; - // plot an arc corresponding to each proportion starting at radian 0 - for i := 1 to NoBars do - begin - xcenter := ImageWidth div 2; - ycenter := ImageHeight div 2; - yprop := YPoints[0,i-1] / Total; - cum := cum + yprop; - radians := cum * 2.0 * Pi; - midradians := (cum - (yprop / 2.0)) * 2.0 * Pi; - x5 := round(xcenter + radius * cos(midradians)); - y5 := round(ycenter - radius * sin(midradians)); - // explode pie by shifting slices away from center - if x5 >= round(xcenter) then xcenter := xcenter + 10 - else xcenter := xcenter - 10; - if y5 >= round(ycenter) then ycenter := ycenter + 10 - else ycenter := ycenter - 10; - x1 := round(xcenter-radius); // left of rectangle - y1 := round(ycenter-radius); // top of rectangle - x2 := round(xcenter + radius); // right of rectangle - y2 := round(ycenter + radius); // bottom of rectangle - midradians := (cum - yprop ) * 2.0 * Pi; - x3 := round(xcenter + radius * cos(midradians)); - y3 := round(ycenter - radius * sin(midradians)); - x4 := round(xcenter + radius * cos(radians)); - y4 := round(ycenter - (radius * sin(radians))); - Printer.Canvas.Brush.Color := Colors[i mod 12]; - if yprop > 0.0 then - begin - Printer.Canvas.Pie(x1,y1,x2,y2,x3,y3,x4,y4); - radians := (cum - (yprop / 2.0)) * 2.0 * Pi; - x5 := round(xcenter + radius * cos(radians)); - y5 := round(ycenter - radius * sin(radians)); - Printer.Canvas.MoveTo(x5,y5); - if x5 >= round(xcenter) then x6 := x5 + 50 - else x6 := x5 - 50; - if y5 >= round(ycenter) then y6 := y5 + 50 - else y6 := y5 - 50; - Printer.Canvas.LineTo(x6,y6); - Printer.Canvas.Brush.Color := BackColor; - value := format('%8.5g',[XPoints[0,i-1]]); - Printer.Canvas.TextOut(x6,y6,value); - if x5 >= round(xcenter) then x6 := x5 - 50 - else x6 := x5 + 50; - if y5 >= round(ycenter) then y6 := y5 - 50 - else y6 := y5 + 50; - value := format('%4.2f',[yprop*100.0]); - value := value + '%'; - Printer.Canvas.TextOut(x6,y6,value); - end; - end; -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pLine2D(Sender: TObject); -var - i, j : integer; - x1, y1, x2, y2 : integer; - xpos : integer; - yprop : real; - ydist : real; -begin - pMakeXAxis(self); - pMakeYAxis(self); - { Make lines for each set of y data point } - For i := 1 to NSets do - begin - Printer.Canvas.Brush.Color := Colors[i mod 12]; - x1 := XStart + BarWidth div 2; - yprop := (YPoints[i-1,0] - YMin) / (YMax - YMin); - ydist := yprop * YAxisLength; - y1 := YStart - round(ydist); - Printer.Canvas.MoveTo(x1,y1); - for j := 2 to NoBars do - begin - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x2 := xpos; - yprop := (YPoints[i-1,j-1] - YMin) / (YMax - YMin); - ydist := yprop * YAxisLength; - y2 := YStart - round(ydist); - Printer.Canvas.LineTo(x2,y2); - end; - end; -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pLine3D(Sender: TObject); -var - i, j : integer; - x1, x2, y1, y2 : integer; - triheight : integer; - bwidth : integer; - yprop : real; -// yoffset : integer; -// xoffset : integer; - xpos : integer; - ydist : integer; - triwidth : integer; - -begin - pWalls(self); // create left and bottom wall and axes - Printer.Canvas.Brush.Color := BackColor; - pMakeXAxis(self); - pMakeYAxis(self); - XProp := 1.0; - bwidth := round(XProp * BarWidth); - triwidth := round(bwidth * cos(RadAngle)); - triheight := round(bwidth * sin(RadAngle)); - triheight := triheight div 2; // scale down depth of view - for i := NSets downto 1 do - begin - xoffset := triwidth * (i - 1); - yoffset := triheight * (i - 1); - for j := 1 to NoBars do - begin - //Image1.Canvas.Brush.Color := Colors[j mod 12]; - Printer.Canvas.Pen.Color := Colors[i mod 12]; - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x1 := xpos - (bwidth div 2); - x2 := x1 + bwidth; - y1 := YStart; - yprop := (YPoints[i-1,j-1] - YMin) / (YMax - YMin); - ydist := round(yprop * YAxisLength); - y2 := YStart - round(ydist); - x1 := x1 + xoffset; - x2 := x2 + xoffset; - y1 := y1 - yoffset; - y2 := y2 - yoffset; - Printer.Canvas.MoveTo(x1,y1); - Printer.Canvas.LineTo(x2,y2); - end; - Printer.Canvas.Pen.Color := clBlack; - x1 := XStart + XAxisLength + xoffset; - y1 := YStart - triheight * i; - Printer.Canvas.Brush.Color := clWhite; - Printer.Canvas.TextOut(x1,y1,SetLabels[i]); - end; -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pPlot2D(Sender: TObject); -var - i, j : integer; - x1, y1 : integer; - triheight : integer; - bwidth : integer; - yprop : real; -// yoffset : integer; -// xoffset : integer; - xpos : integer; - ydist : integer; - triwidth : integer; -begin - pWalls(self); // create left and bottom wall and axes - Printer.Canvas.Brush.Color := BackColor; - pMakeXAxis(self); - pMakeYAxis(self); - bwidth := round(XProp * BarWidth); - triwidth := round(bwidth * cos(RadAngle)); - triheight := round(bwidth * sin(RadAngle)); - triheight := triheight div 2; // scale down depth of view - { Make points for each set of y data point } - for i := NSets downto 1 do - begin - Printer.Canvas.Brush.Color := Colors[i mod 12]; - xoffset := triwidth * (i - 1); - yoffset := triheight * (i - 1); - for j := 1 to NoBars do - begin - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x1 := xpos; - yprop := (YPoints[i-1,j-1] - YMin) / (YMax - YMin); - ydist := round(yprop * YAxisLength); - y1 := YStart - round(ydist); - x1 := x1 + xoffset; - y1 := y1 - yoffset; - if PtLabels then - begin - Printer.Canvas.Brush.Color := BackColor; - Printer.Canvas.TextOut(x1,y1,PointLabels[j]); - end - else - Printer.Canvas.Ellipse(x1-5,y1-5,x1+5,y1+5); - end; - Printer.Canvas.Pen.Color := clBlack; - x1 := XStart + XAxisLength + xoffset; - y1 := YStart - triheight * i; - Printer.Canvas.Brush.Color := clWhite; - Printer.Canvas.TextOut(x1,y1,SetLabels[i]); - end; -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pPlot3D(Sender: TObject); -var - i, j : integer; - x1, y1 : integer; - yprop : real; - triheight : integer; - bwidth : integer; -// yoffset : integer; -// xoffset : integer; - xpos : integer; - ydist : integer; - triwidth : integer; -begin - pWalls(self); // create left and bottom wall and axes - Printer.Canvas.Brush.Color := BackColor; - pMakeXAxis(self); - pMakeYAxis(self); - bwidth := round(XProp * BarWidth); - triwidth := round(bwidth * cos(RadAngle)); - triheight := round(bwidth * sin(RadAngle)); - triheight := triheight div 2; // scale down depth of view - { Make points for each set of y data point } - for i := NSets downto 1 do - begin - Printer.Canvas.Brush.Color := Colors[i mod 12]; - xoffset := triwidth * (i - 1); - yoffset := triheight * (i - 1); - for j := 1 to NoBars do - begin - xpos := XStart + (BarWidth * j) - (BarWidth div 2); - x1 := xpos; - yprop := (YPoints[i-1,j-1] - YMin) / (YMax - YMin); - ydist := round(yprop * YAxisLength); - y1 := YStart - round(ydist); - x1 := x1 + xoffset; - y1 := y1 - yoffset; - // change next to a ball by drawing multiple Ellipses around - // vertical axis ? - Printer.Canvas.Ellipse(x1-5,y1-5,x1+5,y1+5); - Printer.Canvas.Ellipse(x1-4,y1-5,x1+4,y1+5); - Printer.Canvas.Ellipse(x1-3,y1-5,x1+3,y1+5); - Printer.Canvas.Ellipse(x1-2,y1-5,x1+2,y1+5); - end; - Printer.Canvas.Pen.Color := clBlack; - x1 := XStart + XAxisLength + xoffset; - y1 := YStart - triheight * i; - Printer.Canvas.Brush.Color := clWhite; - Printer.Canvas.TextOut(x1,y1,SetLabels[i]); - end; -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pMakeXAxis(Sender: TObject); -var - i, valstart, valend, oldend : integer; - xpos : integer; - value : string; -begin - Printer.Canvas.MoveTo(XStart,YStart); - Printer.Canvas.LineTo(XEnd,YStart); - oldend := 0; - for i := 1 to NoBars do - begin - xpos := XStart + (BarWidth * i) - (BarWidth div 2); - Printer.Canvas.MoveTo(xpos,YStart); - Printer.Canvas.LineTo(xpos,YStart + 5); - value := format('%6.5g',[XPoints[0,i-1]]); - valstart := xpos - Printer.Canvas.TextWidth(value) div 2; - valend := valstart + Printer.Canvas.TextWidth(value); - if valstart > oldend then - begin - Printer.Canvas.TextOut(valstart,YStart + 10,value); - oldend := valend; - end; - end; - xpos := ImageWidth div 2 - Printer.Canvas.TextWidth(XTitle) div 2; - Printer.Canvas.TextOut(xpos,YStart + 100,XTitle); -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pMakeYaxis(Sender: TObject); -var - ypos : integer; - i : integer; - incr : real; - value : real; - valstring : string; - -begin - Printer.Canvas.MoveTo(XStart,YStart); - Printer.Canvas.LineTo(XStart,YEnd); - incr := (YMax - YMin) / 20.0; - for i := 1 to 21 do - begin - value := YMin + (incr * (i-1)); - ypos := YStart - ((i-1) * YAxisLength div 20); - Printer.Canvas.MoveTo(XStart,ypos); - Printer.Canvas.LineTo(XStart-10,ypos); - valstring := format('%10.2f',[value]); - Printer.Canvas.TextOut(XStart - 10 - Printer.Canvas.TextWidth(valstring),ypos,valstring); - end; - ypos := YEnd - 10 - Printer.Canvas.TextHeight(YTitle); - Printer.Canvas.TextOut(100,ypos,YTitle); -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pMakeHXaxis(Sender: TObject); -var - xpos : integer; - i : integer; - incr : real; - value : real; - valstring : string; - -begin - Printer.Canvas.MoveTo(XStart,YStart); - Printer.Canvas.LineTo(XEnd,YStart); - incr := (YMax - YMin) / 20.0; - for i := 1 to 21 do - begin - value := YMin + (incr * (i-1)); - xpos := XStart + ((i-1) * XAxisLength div 20); - Printer.Canvas.MoveTo(xpos,YStart); - Printer.Canvas.LineTo(xpos,YStart + 5); - valstring := format('%8.2f',[value]); - Printer.Canvas.TextOut(xpos - Printer.Canvas.TextWidth(valstring) div 2, - YStart + 10,FloatToStr(value)); - end; - xpos := XAxisLength div 2 - Printer.Canvas.TextWidth(YTitle) div 2; - Printer.Canvas.TextOut(xpos,YStart + 100,YTitle); -end; -//----------------------------------------------------------------------- -procedure TGraphFrm.pMakeHYaxis(Sender: TObject); -var - i : integer; - ypos : integer; - value : string; -begin - Printer.Canvas.MoveTo(XStart,YStart); - Printer.Canvas.LineTo(XStart,YEnd); - for i := 1 to NoBars do - begin - ypos := YStart - (BarWidth * i) + (BarWidth div 2); - Printer.Canvas.MoveTo(XStart,ypos); - Printer.Canvas.LineTo(XStart - 10,ypos); - value := format('%6.5g',[XPoints[0,i-1]]); - Printer.Canvas.TextOut(XStart-10-Printer.Canvas.TextWidth(value), - ypos,value); - end; - ypos := YEnd; - Printer.Canvas.TextOut(100,ypos,XTitle); -end; -//----------------------------------------------------------------------- - -initialization - {$I graphlib.lrs} - -end. - diff --git a/applications/lazstats/source_orig/gridhelpunit.lfm b/applications/lazstats/source_orig/gridhelpunit.lfm deleted file mode 100644 index 63849d7f4..000000000 --- a/applications/lazstats/source_orig/gridhelpunit.lfm +++ /dev/null @@ -1,62 +0,0 @@ -object GridHelpFrm: TGridHelpFrm - Left = 131 - Height = 461 - Top = 101 - Width = 583 - Caption = 'Using the Grid and Files' - ClientHeight = 461 - ClientWidth = 583 - LCLVersion = '0.9.28.2' - object Memo1: TMemo - Left = 9 - Height = 398 - Top = 9 - Width = 559 - Lines.Strings = ( - 'When you start LazStats you will see the grid with one empty cell. The column represents a variable and' - 'the row represents a "case", observation or subject of your study. Before you enter a value in that first' - 'cell, you should click on the Variables menu and select the Define Variables option. You will see a form' - 'that lets you specify a name or label for the variable as well as a longer title for the variable. In addition,' - 'you specify the type of variable (integer, floating point, character string), a missing value, and how you' - 'want the values entered to be displayed in the cell (justification.) Default values are provided but you' - 'can change these by clicking on a specification and entering your own. There are also "drop-down" boxes' - 'that let you select the type or justification for those specifications. It is a good idea to define all of your' - 'variables before you begin entering data. You can add additional variables in the Definition form by simply' - 'pressing the down arrow key on your key board and then change any default values to appropriate ones' - 'for your data.' - '' - 'Once you have specified the variables for the data grid and returned to the grid, you can then enter data ' - 'for those variables you have defined. When you press the down arrow key on your keyboard, a new row' - 'will automatically appear to enter the next case. BE CAREFUL! It is easy to accidentally add new (blank)' - 'lines that should not be a part of your data file. Use the Edit menu and select the Delete Row for any row' - 'accidentally added to the grid.' - '' - 'Avoid leaving any cell blank. It is recommended that you use a value such as 99999 as a missing value ' - 'until you have the correct value for that case and variable. Generally, it is NOT a good idea to have any' - 'missing data since not all procedures will work with missing data.' - '' - 'Once you have entered data (or need to take a break from data entry) it is time to save the grid data' - 'into a disk file. It is recommended that you save your data as a .LAZ file (the top option under the FILE' - 'menu.) This saves not only your data but also all of your variable definitions! You can, of course, also' - 'export your data to a .TAB or other file format commonly utilized by other programs. These other formats ' - 'do NOT save the definitions of the variables!' - '' - 'Once you have entered data in a grid you will discover it is easy to "navigate" around the grid. Use the' - '"home" key, "end" key, "page up" and "page down" keys as needed. The "TAB" key will move you from' - 'cell to cell in a case. You will also find procedures under the Variables menu and the Edit menu that lets' - 'you recode values in the grid, insert, copy and delete rows or columns, transform values in the grid, etc.' - 'Experiment! Try different options. There''s not much you can do to harm your computer with this program.' - ) - ScrollBars = ssAutoVertical - TabOrder = 0 - end - object ReturnBtn: TButton - Left = 488 - Height = 28 - Top = 424 - Width = 78 - Caption = 'Return' - ModalResult = 1 - TabOrder = 1 - end -end diff --git a/applications/lazstats/source_orig/gridhelpunit.lrs b/applications/lazstats/source_orig/gridhelpunit.lrs deleted file mode 100644 index e437b16bb..000000000 --- a/applications/lazstats/source_orig/gridhelpunit.lrs +++ /dev/null @@ -1,51 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TGridHelpFrm','FORMDATA',[ - 'TPF0'#12'TGridHelpFrm'#11'GridHelpFrm'#4'Left'#3#131#0#6'Height'#3#205#1#3'T' - +'op'#2'e'#5'Width'#3'G'#2#7'Caption'#6#24'Using the Grid and Files'#12'Clien' - +'tHeight'#3#205#1#11'ClientWidth'#3'G'#2#10'LCLVersion'#6#8'0.9.28.2'#0#5'TM' - +'emo'#5'Memo1'#4'Left'#2#9#6'Height'#3#142#1#3'Top'#2#9#5'Width'#3'/'#2#13'L' - +'ines.Strings'#1#6'hWhen you start LazStats you will see the grid with one e' - +'mpty cell. The column represents a variable and'#6'jthe row represents a "' - +'case", observation or subject of your study. Before you enter a value in t' - +'hat first'#6'icell, you should click on the Variables menu and select the D' - +'efine Variables option. You will see a form'#6'pthat lets you specify a na' - +'me or label for the variable as well as a longer title for the variable. I' - +'n addition,'#6'jyou specify the type of variable (integer, floating point, ' - +'character string), a missing value, and how you'#6'iwant the values entered' - +' to be displayed in the cell (justification.) Default values are provided ' - +'but you'#6'hcan change these by clicking on a specification and entering yo' - +'ur own. There are also "drop-down" boxes'#6'pthat let you select the type ' - +'or justification for those specifications. It is a good idea to define all' - +' of your'#6'lvariables before you begin entering data. You can add additio' - +'nal variables in the Definition form by simply'#6'dpressing the down arrow ' - +'key on your key board and then change any default values to appropriate one' - +'s'#6#14'for your data.'#6#0#6'jOnce you have specified the variables for th' - +'e data grid and returned to the grid, you can then enter data '#6'dfor thos' - +'e variables you have defined. When you press the down arrow key on your ke' - +'yboard, a new row'#6'jwill automatically appear to enter the next case. BE' - +' CAREFUL! It is easy to accidentally add new (blank)'#6'klines that should' - +' not be a part of your data file. Use the Edit menu and select the Delete ' - +'Row for any row'#6#31'accidentally added to the grid.'#6#0#6'gAvoid leaving' - +' any cell blank. It is recommended that you use a value such as 99999 as a' - +' missing value '#6'juntil you have the correct value for that case and vari' - +'able. Generally, it is NOT a good idea to have any'#6'Bmissing data since ' - +'not all procedures will work with missing data.'#6#0#6'eOnce you have enter' - +'ed data (or need to take a break from data entry) it is time to save the gr' - +'id data'#6'jinto a disk file. It is recommended that you save your data as' - +' a .LAZ file (the top option under the FILE'#6'jmenu.) This saves not only' - +' your data but also all of your variable definitions! You can, of course, ' - +'also'#6'jexport your data to a .TAB or other file format commonly utilized ' - +'by other programs. These other formats '#6'-do NOT save the definitions of' - +' the variables!'#6#0#6'iOnce you have entered data in a grid you will disco' - +'ver it is easy to "navigate" around the grid. Use the'#6'b"home" key, "end' - +'" key, "page up" and "page down" keys as needed. The "TAB" key will move y' - +'ou from'#6'kcell to cell in a case. You will also find procedures under th' - +'e Variables menu and the Edit menu that lets'#6'jyou recode values in the g' - +'rid, insert, copy and delete rows or columns, transform values in the grid,' - +' etc.'#6'iExperiment! Try different options. There''s not much you can do' - +' to harm your computer with this program.'#0#10'ScrollBars'#7#14'ssAutoVert' - +'ical'#8'TabOrder'#2#0#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#232#1#6'Height' - +#2#28#3'Top'#3#168#1#5'Width'#2'N'#7'Caption'#6#6'Return'#11'ModalResult'#2#1 - +#8'TabOrder'#2#1#0#0#0 -]); diff --git a/applications/lazstats/source_orig/gridhelpunit.pas b/applications/lazstats/source_orig/gridhelpunit.pas deleted file mode 100644 index 24b93868f..000000000 --- a/applications/lazstats/source_orig/gridhelpunit.pas +++ /dev/null @@ -1,33 +0,0 @@ -unit GridHelpUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls; - -type - - { TGridHelpFrm } - - TGridHelpFrm = class(TForm) - ReturnBtn: TButton; - Memo1: TMemo; - private - { private declarations } - public - { public declarations } - end; - -var - GridHelpFrm: TGridHelpFrm; - -implementation - -initialization - {$I gridhelpunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/groupfrequnit.lfm b/applications/lazstats/source_orig/groupfrequnit.lfm deleted file mode 100644 index 228097f81..000000000 --- a/applications/lazstats/source_orig/groupfrequnit.lfm +++ /dev/null @@ -1,213 +0,0 @@ -object GroupFreqForm: TGroupFreqForm - Left = 259 - Height = 412 - Top = 137 - Width = 461 - Caption = 'Group Frequency Analysis' - ClientHeight = 412 - ClientWidth = 461 - OnShow = ResetBtnClick - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 16 - Height = 16 - Top = 8 - Width = 102 - Caption = 'Available Variables:' - ParentColor = False - end - object Label2: TLabel - Left = 256 - Height = 16 - Top = 208 - Width = 79 - Caption = 'Group Variable' - ParentColor = False - end - object VarList: TListBox - Left = 16 - Height = 256 - Top = 24 - Width = 181 - ItemHeight = 0 - MultiSelect = True - TabOrder = 0 - end - object GrpInBtn: TBitBtn - Left = 211 - Height = 26 - Top = 200 - 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 = GrpInBtnClick - TabOrder = 1 - end - object GrpOutBtn: TBitBtn - Left = 211 - Height = 26 - Top = 232 - 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 = GrpOutBtnClick - TabOrder = 2 - end - object GrpVarEdit: TEdit - Left = 255 - Height = 23 - Top = 224 - Width = 139 - TabOrder = 3 - Text = 'GrpVarEdit' - end - object ResetBtn: TButton - Left = 16 - Height = 27 - Top = 312 - Width = 89 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 4 - end - object CancelBtn: TButton - Left = 16 - Height = 27 - Top = 360 - Width = 89 - Cancel = True - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 5 - end - object ComputeBtn: TButton - Left = 112 - Height = 27 - Top = 312 - Width = 89 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 6 - end - object ReturnBtn: TButton - Left = 112 - Height = 27 - Top = 360 - Width = 89 - Caption = 'Return' - ModalResult = 1 - TabOrder = 7 - end - object OptionsBox: TRadioGroup - Left = 208 - Height = 131 - Top = 256 - Width = 229 - AutoFill = True - Caption = 'Plot Choices:' - 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 = 113 - ClientWidth = 225 - Items.Strings = ( - 'Plot means using 2D Horizontal Bars' - 'Plot means using 3D Horizontal Bars' - 'Plot means using 2D Vertical Bars' - 'Plot means using 3D Vertical Bars' - ) - TabOrder = 8 - end - object Memo1: TMemo - Left = 211 - Height = 130 - Top = 24 - Width = 230 - Lines.Strings = ( - 'This procedure plots the frequency of' - 'cases in each of the groups in a group' - 'variable. The group variable should' - 'be defined as an integer variable.' - '' - 'Select the variable and type of plot' - 'and click the Compute button for' - 'the results.' - ) - TabOrder = 9 - end -end diff --git a/applications/lazstats/source_orig/groupfrequnit.lrs b/applications/lazstats/source_orig/groupfrequnit.lrs deleted file mode 100644 index 3363f95eb..000000000 --- a/applications/lazstats/source_orig/groupfrequnit.lrs +++ /dev/null @@ -1,142 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TGroupFreqForm','FORMDATA',[ - 'TPF0'#14'TGroupFreqForm'#13'GroupFreqForm'#4'Left'#3#3#1#6'Height'#3#156#1#3 - +'Top'#3#137#0#5'Width'#3#205#1#7'Caption'#6#24'Group Frequency Analysis'#12 - +'ClientHeight'#3#156#1#11'ClientWidth'#3#205#1#6'OnShow'#7#13'ResetBtnClick' - +#10'LCLVersion'#6#6'0.9.30'#0#6'TLabel'#6'Label1'#4'Left'#2#16#6'Height'#2#16 - +#3'Top'#2#8#5'Width'#2'f'#7'Caption'#6#20'Available Variables:'#11'ParentCol' - +'or'#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#0#1#6'Height'#2#16#3'Top'#3#208#0#5 - +'Width'#2'O'#7'Caption'#6#14'Group Variable'#11'ParentColor'#8#0#0#8'TListBo' - +'x'#7'VarList'#4'Left'#2#16#6'Height'#3#0#1#3'Top'#2#24#5'Width'#3#181#0#10 - +'ItemHeight'#2#0#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#8'GrpInBtn' - +#4'Left'#3#211#0#6'Height'#2#26#3'Top'#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#255#255#255#0#255#255#255#0#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'GrpInBtnClick' - +#8'TabOrder'#2#1#0#0#7'TBitBtn'#9'GrpOutBtn'#4'Left'#3#211#0#6'Height'#2#26#3 - +'Top'#3#232#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'NumGlyphs'#2#0#7'OnClick'#7#14'GrpOutBtnClick'#8'TabOrder'#2#2#0#0#5 - +'TEdit'#10'GrpVarEdit'#4'Left'#3#255#0#6'Height'#2#23#3'Top'#3#224#0#5'Width' - +#3#139#0#8'TabOrder'#2#3#4'Text'#6#10'GrpVarEdit'#0#0#7'TButton'#8'ResetBtn' - +#4'Left'#2#16#6'Height'#2#27#3'Top'#3'8'#1#5'Width'#2'Y'#7'Caption'#6#5'Rese' - +'t'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#4#0#0#7'TButton'#9'CancelBt' - +'n'#4'Left'#2#16#6'Height'#2#27#3'Top'#3'h'#1#5'Width'#2'Y'#6'Cancel'#9#7'Ca' - +'ption'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#5#0#0#7'TButton'#10'Co' - +'mputeBtn'#4'Left'#2'p'#6'Height'#2#27#3'Top'#3'8'#1#5'Width'#2'Y'#7'Caption' - +#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#6#0#0#7'TButton' - +#9'ReturnBtn'#4'Left'#2'p'#6'Height'#2#27#3'Top'#3'h'#1#5'Width'#2'Y'#7'Capt' - +'ion'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#7#0#0#11'TRadioGroup'#10 - +'OptionsBox'#4'Left'#3#208#0#6'Height'#3#131#0#3'Top'#3#0#1#5'Width'#3#229#0 - +#8'AutoFill'#9#7'Caption'#6#13'Plot Choices:'#28'ChildSizing.LeftRightSpacin' - +'g'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHorizonta' - +'l'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24'crsH' - +'omogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChilds' - +#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Layout'#7 - ,#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1#12'Cl' - +'ientHeight'#2'q'#11'ClientWidth'#3#225#0#13'Items.Strings'#1#6'#Plot means ' - +'using 2D Horizontal Bars'#6'#Plot means using 3D Horizontal Bars'#6'!Plot m' - +'eans using 2D Vertical Bars'#6'!Plot means using 3D Vertical Bars'#0#8'TabO' - +'rder'#2#8#0#0#5'TMemo'#5'Memo1'#4'Left'#3#211#0#6'Height'#3#130#0#3'Top'#2 - +#24#5'Width'#3#230#0#13'Lines.Strings'#1#6'%This procedure plots the frequen' - +'cy of'#6'&cases in each of the groups in a group'#6'$variable. The group v' - +'ariable should'#6'"be defined as an integer variable.'#6#0#6'$Select the va' - +'riable and type of plot'#6' and click the Compute button for'#6#12'the resu' - +'lts.'#0#8'TabOrder'#2#9#0#0#0 -]); diff --git a/applications/lazstats/source_orig/groupfrequnit.pas b/applications/lazstats/source_orig/groupfrequnit.pas deleted file mode 100644 index 40f1f84a1..000000000 --- a/applications/lazstats/source_orig/groupfrequnit.pas +++ /dev/null @@ -1,173 +0,0 @@ -unit GroupFreqUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, ExtCtrls, MainUnit, OutPutUnit, FunctionsLib, GraphLib, - Globals, DataProcs; - -type - - { TGroupFreqForm } - - TGroupFreqForm = class(TForm) - GrpInBtn: TBitBtn; - GrpOutBtn: TBitBtn; - CancelBtn: TButton; - ComputeBtn: TButton; - GrpVarEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Memo1: TMemo; - OptionsBox: TRadioGroup; - ResetBtn: TButton; - ReturnBtn: TButton; - VarList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure GrpInBtnClick(Sender: TObject); - procedure GrpOutBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - GroupFreqForm: TGroupFreqForm; - -implementation - -{ TGroupFreqForm } - -procedure TGroupFreqForm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - GrpVarEdit.Text := ''; - GrpInBtn.Visible := true; - GrpOutBtn.Visible := false; -end; - -procedure TGroupFreqForm.GrpInBtnClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - if index < 0 then exit; - GrpVarEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - GrpInBtn.Visible := false; - GrpOutBtn.Visible := true; -end; - -procedure TGroupFreqForm.ComputeBtnClick(Sender: TObject); -VAR - nogroups, mingrp, maxgrp, grpcol, tempcol, value, minfreq, maxfreq : integer; - labelstr : string; - results, prompt : boolean; - result, intvalue, i, j : integer; - dblvalue : double; - strvalue : string; - freq : IntDyneVec; - plottype : integer; -begin - // get the variable to analyze - - grpcol := 0; - for i := 1 to NoVariables do - begin - strvalue := Trim(OS3MainFrm.DataGrid.Cells[i,0]); - if GrpVarEdit.Text = strvalue then grpcol := i; - end; - labelstr := GrpVarEdit.Text; - mingrp := 1000; - maxgrp := -1000; - for i := 1 to NoCases do - begin - if not ValidValue(i,grpcol) then continue; - value := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[grpcol,i]))); - if value < mingrp then mingrp := value; - if value > maxgrp then maxgrp := value; - end; - nogroups := maxgrp - mingrp + 1; - if nogroups < 2 then - begin - ShowMessage('One or fewer groups found. Returning.'); - exit; - end; - // setup frequency array and count cases in each group - SetLength(freq,NoGroups+1); - for i := 0 to NoGroups do freq[i] := 0; - for i := 1 to NoCases do - begin - if not ValidValue(i,grpcol) then continue; - value := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[grpcol,i]))); - value := value - mingrp; - freq[value] := freq[value] + 1; - end; - // get min and max frequencies and check for existence of a range - minfreq := 10000; - maxfreq := -10000; - for i := 0 to NoGroups-1 do - begin - if freq[i] < minfreq then minfreq := freq[i]; - if freq[i] > maxfreq then maxfreq := freq[i]; - end; - if minfreq = maxfreq then - begin - ShowMessage('All groups have equal frequencies. Cannot plot.'); - freq := nil; - exit; - end; - plottype := OptionsBox.ItemIndex + 1; - if plottype = 3 then plottype := 1 - else if plottype = 4 then plottype := 2 - else if plottype = 1 then plottype := 9 - else if plottype = 2 then plottype := 10; - - // plot the frequencies - SetLength(GraphFrm.Xpoints,1,nogroups+1); - SetLength(GraphFrm.Ypoints,1,nogroups+1); - GraphFrm.nosets := 1; - GraphFrm.nbars := nogroups; - GraphFrm.Heading := 'Frequency Distribution'; - GraphFrm.XTitle := 'Values of ' + labelstr; - GraphFrm.YTitle := 'Frequency'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := false; - GraphFrm.miny := 0.0; - GraphFrm.maxy := maxfreq; - GraphFrm.GraphType := plottype; - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - for i := 0 to nogroups do - begin - GraphFrm.Ypoints[0,i] := freq[i]; - GraphFrm.Xpoints[0,i] := mingrp + i; - end; - GraphFrm.ShowModal; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; -end; - -procedure TGroupFreqForm.GrpOutBtnClick(Sender: TObject); -begin - if GrpVarEdit.Text = '' then exit; - VarList.Items.Add(GrpVarEdit.Text); - GrpVarEdit.Text := ''; - GrpInBtn.Visible := true; - GrpOutBtn.Visible := false; -end; - -initialization - {$I groupfrequnit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/guttmanunit.lfm b/applications/lazstats/source_orig/guttmanunit.lfm deleted file mode 100644 index 1b8cfe452..000000000 --- a/applications/lazstats/source_orig/guttmanunit.lfm +++ /dev/null @@ -1,178 +0,0 @@ -object GuttmanFrm: TGuttmanFrm - Left = 155 - Height = 332 - Top = 113 - Width = 400 - Caption = 'Guttman Sclaogram Analysis' - ClientHeight = 332 - ClientWidth = 400 - OnShow = FormShow - LCLVersion = '0.9.26.2' - object Label1: TLabel - Left = 10 - Height = 14 - Top = 8 - Width = 90 - Caption = 'Variables Available' - ParentColor = False - end - object Label2: TLabel - Left = 208 - Height = 14 - Top = 11 - Width = 72 - Caption = 'Selected Items' - ParentColor = False - end - object VarList: TListBox - Left = 9 - Height = 250 - Top = 24 - Width = 153 - MultiSelect = True - TabOrder = 0 - end - object InBtn: TBitBtn - Left = 169 - Height = 27 - Top = 25 - 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 = 169 - Height = 27 - 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 = 169 - Height = 27 - Top = 104 - Width = 30 - Caption = 'ALL' - NumGlyphs = 0 - OnClick = AllBtnClick - TabOrder = 3 - end - object ItemList: TListBox - Left = 206 - Height = 246 - Top = 30 - Width = 156 - TabOrder = 4 - end - object ResetBtn: TButton - Left = 8 - Height = 28 - Top = 289 - Width = 62 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 5 - end - object CancelBtn: TButton - Left = 100 - Height = 28 - Top = 289 - Width = 62 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 6 - end - object ComputeBtn: TButton - Left = 208 - Height = 28 - Top = 289 - Width = 62 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 7 - end - object ReturnBtn: TButton - Left = 300 - Height = 28 - Top = 288 - Width = 62 - Caption = 'Return' - ModalResult = 1 - TabOrder = 8 - end -end diff --git a/applications/lazstats/source_orig/guttmanunit.lrs b/applications/lazstats/source_orig/guttmanunit.lrs deleted file mode 100644 index 44d65e644..000000000 --- a/applications/lazstats/source_orig/guttmanunit.lrs +++ /dev/null @@ -1,127 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TGuttmanFrm','FORMDATA',[ - 'TPF0'#11'TGuttmanFrm'#10'GuttmanFrm'#4'Left'#3#155#0#6'Height'#3'L'#1#3'Top' - +#2'q'#5'Width'#3#144#1#7'Caption'#6#26'Guttman Sclaogram Analysis'#12'Client' - +'Height'#3'L'#1#11'ClientWidth'#3#144#1#6'OnShow'#7#8'FormShow'#10'LCLVersio' - +'n'#6#8'0.9.26.2'#0#6'TLabel'#6'Label1'#4'Left'#2#10#6'Height'#2#14#3'Top'#2 - +#8#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#11#5'Width'#2'H'#7 - +'Caption'#6#14'Selected Items'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4 - +'Left'#2#9#6'Height'#3#250#0#3'Top'#2#24#5'Width'#3#153#0#11'MultiSelect'#9#8 - +'TabOrder'#2#0#0#0#7'TBitBtn'#5'InBtn'#4'Left'#3#169#0#6'Height'#2#27#3'Top' - +#2#25#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'InBtnClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#6'OutBtn'#4'Left'#3 - +#169#0#6'Height'#2#27#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''#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#169#0#6'Height'#2#27#3'Top'#2'h'#5'Width'#2 - +#30#7'Caption'#6#3'ALL'#9'NumGlyphs'#2#0#7'OnClick'#7#11'AllBtnClick'#8'TabO' - +'rder'#2#3#0#0#8'TListBox'#8'ItemList'#4'Left'#3#206#0#6'Height'#3#246#0#3'T' - +'op'#2#30#5'Width'#3#156#0#8'TabOrder'#2#4#0#0#7'TButton'#8'ResetBtn'#4'Left' - +#2#8#6'Height'#2#28#3'Top'#3'!'#1#5'Width'#2'>'#7'Caption'#6#5'Reset'#7'OnCl' - +'ick'#7#13'ResetBtnClick'#8'TabOrder'#2#5#0#0#7'TButton'#9'CancelBtn'#4'Left' - +#2'd'#6'Height'#2#28#3'Top'#3'!'#1#5'Width'#2'>'#7'Caption'#6#6'Cancel'#11'M' - +'odalResult'#2#2#8'TabOrder'#2#6#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#208 - +#0#6'Height'#2#28#3'Top'#3'!'#1#5'Width'#2'>'#7'Caption'#6#7'Compute'#7'OnCl' - +'ick'#7#15'ComputeBtnClick'#8'TabOrder'#2#7#0#0#7'TButton'#9'ReturnBtn'#4'Le' - +'ft'#3','#1#6'Height'#2#28#3'Top'#3' '#1#5'Width'#2'>'#7'Caption'#6#6'Return' - +#11'ModalResult'#2#1#8'TabOrder'#2#8#0#0#0 -]); diff --git a/applications/lazstats/source_orig/guttmanunit.pas b/applications/lazstats/source_orig/guttmanunit.pas deleted file mode 100644 index 03a21912d..000000000 --- a/applications/lazstats/source_orig/guttmanunit.pas +++ /dev/null @@ -1,598 +0,0 @@ -unit GuttmanUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, OutPutUnit, FunctionsLib, Globals, - DataProcs, Math; - -type - - { TGuttmanFrm } - - TGuttmanFrm = class(TForm) - InBtn: TBitBtn; - OutBtn: TBitBtn; - AllBtn: TBitBtn; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - Label1: TLabel; - Label2: TLabel; - ItemList: TListBox; - VarList: TListBox; - procedure AllBtnClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure InBtnClick(Sender: TObject); - procedure OutBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - GuttmanFrm: TGuttmanFrm; - -implementation - -{ TGuttmanFrm } - -procedure TGuttmanFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - ItemList.Clear; - OutBtn.Visible := false; - InBtn.Visible := true; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TGuttmanFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TGuttmanFrm.AllBtnClick(Sender: TObject); -VAR count, i : integer; -begin - count := VarList.Items.Count; - for i := 1 to count do - ItemList.Items.Add(VarList.Items.Strings[i-1]); - VarList.Clear; - InBtn.Visible := false; - OutBtn.Visible := true; -end; - -procedure TGuttmanFrm.ComputeBtnClick(Sender: TObject); -var - i, j, k, col, X, e0, e1, e2, e3, first, last, errors : integer; - totalerrors, rowno : integer; - FreqMat0 : IntDyneMat; // Pointer to array of 0 responses for each item by score group - FreqMat1 : IntDyneMat; // Pointer to array of 1 responses for each item by score group - RowTots : IntDyneVec; // Pointer to vector of total score frequencies for items - ColTots : IntDyneMat; // Pointer to array of 0 and 1 column totals - ColProps : DblDyneVec; // Pointer to array of proportions correct in columns - ColNoSelected : IntDyneVec; // Pointer to vector of item Grid columns - CaseVector : IntDyneVec; // Pointer to vector of subject's item responses - TotalScore : integer; // Total score of a subject - temp : integer; // temporary variable used in sorting - CutScore : IntDyneVec; // Optimal cut scores for each item - ErrorMat : IntDyneMat; // matrix of errors above and below cut scores - sequence : IntDyneVec; // original and sorted sequence no. of items - CaseNo : IntDyneVec; // ID number for each case - ModalArray : IntDyneMat; // Array of modal item responses - NoSelected : integer; - VarLabels : StrDyneVec; // variable labels - outline, astring : string; - done : boolean; - CoefRepro : double; - Min_Coeff : double; -begin - // allocate heap space for arrays - SetLength(ColNoSelected,NoVariables); - SetLength(FreqMat0,NoCases,NoVariables); - SetLength(FreqMat1,NoCases,NoVariables); - SetLength(RowTots,NoCases); - SetLength(ColTots,NoVariables,2); - SetLength(ColProps,NoVariables); - SetLength(CaseVector,NoCases); - SetLength(CutScore,NoCases); - SetLength(ErrorMat,NoVariables,2); - SetLength(sequence,NoVariables); - SetLength(CaseNo,NoCases); - SetLength(ModalArray,NoVariables+1,NoVariables+1); - SetLength(VarLabels,NoVariables); - - // get variables used for the analysis - NoSelected := ItemList.Items.Count; - for i := 1 to NoVariables do - begin - for j := 1 to NoSelected do - begin - if OS3MainFrm.DataGrid.Cells[i,0] = ItemList.Items.Strings[j-1] then - begin - ColNoSelected[j-1] := i; - VarLabels[j-1] := OS3MainFrm.DataGrid.Cells[i,0]; - end; - end; - end; - OutPutFrm.RichEdit.Clear; - - // Initialize sequence - for i := 1 to NoSelected do sequence[i-1] := i; - - // Initialize arrays - for i := 0 to NoSelected-1 do - begin - ColTots[i,0] := 0; - ColTots[i,1] := 0; - ColProps[i] := 0.0; - ErrorMat[i,0] := 0; - ErrorMat[i,1] := 0; - end; - for i := 0 to NoCases-1 do - begin - RowTots[i] := 0; - CutScore[i] := 0; - CaseNo[i] := i+1; - for j := 0 to NoSelected-1 do - begin - FreqMat0[i,j] := 0; - FreqMat1[i,j] := 0; - end; - end; - if (NoCases > NoSelected) then - begin - for i := 1 to NoCases do CaseVector[i-1] := 0; - end - else begin - for i := 1 to NoSelected do CaseVector[i-1] := 0; - end; - - // Get data into the frequency matrices of 0 and 1 responses - for i := 1 to NoCases do - begin - if (not GoodRecord(i,NoSelected,ColNoSelected)) then continue; - TotalScore := 0; - for j := 1 to NoSelected do - begin - col := ColNoSelected[j-1]; - X := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,i]))); - CaseVector[j-1] := X; - TotalScore := TotalScore + X; - end; - for j := 1 to NoSelected do - begin - if (CaseVector[j-1] = 0) then FreqMat0[i-1,j-1] := 1 - else FreqMat1[i-1,j-1] := 1; - end; - end; - - // Get Row Totals for each score group (rows of FreqMat1) - for i := 1 to NoCases do - begin - if (not GoodRecord(i,NoSelected,ColNoSelected)) then continue; - for j := 1 to NoSelected do - begin - RowTots[i-1] := RowTots[i-1] + FreqMat1[i-1,j-1]; - end; - end; - - // Get Column Totals for item scores of 1 and 0 - for i := 1 to NoSelected do //columns - begin - for j := 1 to NoCases do // rows - begin - if (not GoodRecord(j,NoSelected,ColNoSelected)) then continue; - ColTots[i-1,0] := ColTots[i-1,0] + FreqMat0[j-1,i-1]; - ColTots[i-1,1] := ColTots[i-1,1] + FreqMat1[j-1,i-1]; - end; - end; - - //Sort frequency matrices into descending order - for i := 1 to NoCases - 1 do - begin - if (not GoodRecord(i,NoSelected,ColNoSelected)) then continue; - for j := i + 1 to NoCases do - begin - if (not GoodRecord(j,NoSelected,ColNoSelected)) then continue; - if (RowTots[i-1] < RowTots[j-1]) then //swap - begin - for k := 1 to NoSelected do - begin // carry all columns in the swap - temp := FreqMat0[i-1,k-1]; - FreqMat0[i-1,k-1] := FreqMat0[j-1,k-1]; - FreqMat0[j-1,k-1] := temp; - temp := FreqMat1[i-1,k-1]; - FreqMat1[i-1,k-1] := FreqMat1[j-1,k-1]; - FreqMat1[j-1,k-1] := temp; - end; - // Also swap row totals - temp := RowTots[i-1]; - RowTots[i-1] := RowTots[j-1]; - RowTots[j-1] := temp; - // And case number - temp := CaseNo[i-1]; - CaseNo[i-1] := CaseNo[j-1]; - CaseNo[j-1] := temp; - end; // end if - end; // Next j - end; // next i - - // Now sort the columns into ascending order of number right - for i := 1 to NoSelected - 1 do - begin - for j := i + 1 to NoSelected do - begin - if (ColTots[i-1,1] > ColTots[j-1,1]) then //swap - begin - for k := 1 to NoCases do - begin - if (not GoodRecord(k,NoSelected,ColNoSelected)) then continue; - temp := FreqMat0[k-1,i-1]; - FreqMat0[k-1,i-1] := FreqMat0[k-1,j-1]; - FreqMat0[k-1,j-1] := temp; - temp := FreqMat1[k-1,i-1]; - FreqMat1[k-1,i-1] := FreqMat1[k-1,j-1]; - FreqMat1[k-1,j-1] := temp; - end; // next k - // swap column totals also - temp := ColTots[i-1,0]; - ColTots[i-1,0] := ColTots[j-1,0]; - ColTots[j-1,0] := temp; - temp := ColTots[i-1,1]; - ColTots[i-1,1] := ColTots[j-1,1]; - ColTots[j-1,1] := temp; - // swap label pointers - temp := sequence[i-1]; - sequence[i-1] := sequence[j-1]; - sequence[j-1] := temp; - end; // end if - end; // next j - end; // next i - - //For each item (column), find the optimal cutting value - for i := 1 to NoSelected do - begin - CutScore[i-1] := 0; - for j := 1 to NoCases do // j is the trial cut point - begin - if (not GoodRecord(j,NoSelected,ColNoSelected)) then continue; - e0 := 0; - e1 := 0; - //Get errors prior to the cut point - for k := 1 to j do - begin - if (not GoodRecord(k,NoSelected,ColNoSelected)) then continue; - if (FreqMat0[k-1,i-1] = 1) then e0 := e0 + 1; - end; - //Get errors following the cut point - for k := j + 1 to NoCases do - begin - if (not GoodRecord(k,NoSelected,ColNoSelected)) then continue; - if (FreqMat1[k-1,i-1] = 1) then e1 := e1 + 1; - end; - //Save errors for each cut - CaseVector[j-1] := e0 + e1; - end; // next j - // Save minimum cut score index - e2 := 32000; - e3 := 0; - for j := 1 to NoCases do - begin - if (not GoodRecord(j,NoSelected,ColNoSelected)) then continue; - if (CaseVector[j-1] < e2) then - begin - e2 := CaseVector[j-1]; - e3 := j; - end; - end; - CutScore[i-1] := e3; //Position of optimal cut for item i - end; - - // Get error counts; - for i := 1 to NoSelected do - begin - for j := 1 to CutScore[i-1] do - begin - if (not GoodRecord(j,NoSelected,ColNoSelected)) then continue; - if ((FreqMat0[j-1,i-1] > 0) or (FreqMat1[j-1,i-1] > 0)) then - ErrorMat[i-1,0] := ErrorMat[i-1,0] + FreqMat0[j-1,i-1]; - end; - for j := CutScore[i-1] + 1 to NoCases do - begin - if (not GoodRecord(j,NoSelected,ColNoSelected)) then continue; - if ((FreqMat0[j-1,i-1] > 0) or (FreqMat1[j-1,i-1] > 0)) then - ErrorMat[i-1,1] := ErrorMat[i-1,1] + FreqMat1[j-1,i-1]; - end; - end; - - // Print results - OutPutFrm.RichEdit.Lines.Add(' GUTTMAN SCALOGRAM ANALYSIS'); - OutPutFrm.RichEdit.Lines.Add(' Cornell Method'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('No. of Cases := %3d. No. of items := %3d',[NoCases,NoSelected]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add('RESPONSE MATRIX'); - first := 1; - last := first + 5; // column (item) index - if (last > NoSelected) then last := NoSelected; - done := false; - - while (not done) do //loop through all of the score groups - begin - OutPutFrm.RichEdit.Lines.Add('Subject Row Item Number'); - outline := 'Label Sum'; - for i := first to last do - begin - astring := format('%10s',[VarLabels[sequence[i-1]-1]]); - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := ' '; - for i := first to last do - begin - astring := ' 0 1 '; - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - for i := 1 to NoCases do // rows - begin - if (not GoodRecord(i,NoSelected,ColNoSelected)) then continue; - outline := format(' %3d %3d ',[CaseNo[i-1],RowTots[i-1]]); - for j := first to last do - begin - astring := format(' %3d %3d ',[FreqMat0[i-1,j-1],FreqMat1[i-1,j-1]]); - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := ' '; - // check for optimal cut point for this score - for j := first to last do - begin - if (CutScore[j-1] = i) then - begin - astring := ' -cut- '; - outline := outline + astring; - end - else begin - astring := ' '; - outline := outline + astring; - end; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := ''; - end; // Next row (score group) - OutPutFrm.RichEdit.Lines.Add(''); - outline := 'TOTALS '; - for j := first to last do - begin - astring := format(' %3d %3d ',[ColTots[j-1,0],ColTots[j-1,1]]); - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := 'ERRORS '; - for j := first to last do - begin - astring := format(' %3d %3d ',[ErrorMat[j-1,0],ErrorMat[j-1,1]]); - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - if (last < NoSelected) then - begin - first := last + 1; - last := first + 5; // column (item) index - if (last > NoSelected) then last := NoSelected; - end - else done := true; - OutPutFrm.RichEdit.Lines.Add(''); - end; - - OutPutFrm.RichEdit.Lines.Add(''); - CoefRepro := 0.0; - for j := 1 to NoSelected do - CoefRepro := CoefRepro + ErrorMat[j-1,0] + ErrorMat[j-1,1]; - CoefRepro := 1.0 - (CoefRepro / (NoCases * NoSelected)); - outline := format('Coefficient of Reproducibility := %6.3f',[CoefRepro]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - //-----------------------------GOODENOUGH---------------------------------- - // Complete Goodenough method and print results - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(' GUTTMAN SCALOGRAM ANALYSIS'); - OutPutFrm.RichEdit.Lines.Add(' Goodenough Modification Using Modal Responses'); - totalerrors := 0; - Min_Coeff := 0.0; - for i := 1 to NoSelected + 1 do - for j := 1 to NoSelected do ModalArray[i-1,j-1] := 0; - for i := 1 to NoSelected do // column - begin - ColProps[i-1] := ColTots[i-1,1] / NoCases; - ErrorMat[i-1,0] := 0; - ErrorMat[i-1,1] := 0; - end; - // Get the cut scores for each score row based on rounded proportions - for i := 1 to NoSelected do - begin - CutScore[i-1] := Trunc(ColProps[i-1] * (NoSelected+1)); - end; - // Build modal response array for the total scores by items - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(' MODAL ITEM RESPONSES'); - OutPutFrm.RichEdit.Lines.Add('TOTAL ITEMS'); - outline := ' '; - for i := 1 to NoSelected do - begin - astring := format('%10s',[VarLabels[sequence[i-1]-1]]); - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - for i := 0 to NoSelected do - begin - for j := 1 to NoSelected do - begin - if (CutScore[j-1] > i) then ModalArray[i,j-1] := 1 - else ModalArray[i,j-1] := 0; - end; - astring := format(' %3d ',[NoSelected - i]); - outline := astring; - for j := 1 to NoSelected do - begin - astring := format(' %3d ',[ModalArray[i,j-1]]); - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('No. of Cases := %3d. No. of items := %3d',[NoCases,NoSelected]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('RESPONSE MATRIX'); - first := 1; - last := first + 5; // column (item) index - if (last > NoSelected) then last := NoSelected; - done := false; - - while (not done) do //loop through all of the score groups - begin - OutPutFrm.RichEdit.Lines.Add('Subject Row Error Item Number'); - outline := 'Label Sum Count'; - for i := first to last do - begin - astring := format('%10s',[VarLabels[sequence[i-1]-1]]); - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := ' '; - for i := first to last do - begin - astring := ' 0 1 '; - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - for i := 1 to NoCases do // rows - begin - if (not GoodRecord(i,NoSelected,ColNoSelected)) then continue; - errors := 0; - for j := first to last do - begin - rowno := NoSelected - RowTots[i-1] + 1; - if (FreqMat1[i-1,j-1] <> ModalArray[rowno-1,j-1]) then errors := errors + 1; - end; - - outline := format(' %3d %3d %3d ',[CaseNo[i-1],RowTots[i-1],errors]); - for j := first to last do - begin - astring := format(' %3d %3d ',[FreqMat0[i-1,j-1],FreqMat1[i-1,j-1]]); - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - totalerrors := totalerrors + errors; - end; // Next row (score group) - OutPutFrm.RichEdit.Lines.Add(''); - - outline :='TOTALS '; - for j := first to last do - begin - astring := format(' %3d %3d ',[ColTots[j-1,0],ColTots[j-1,1]]); - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - - outline := 'PROPORTIONS '; - for j := first to last do - begin - astring := format('%4.2f %4.2f ',[(1.0-ColProps[j-1]),ColProps[j-1]]); - outline := outline + astring; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - - if (last < NoSelected) then - begin - first := last + 1; - last := first + 5; // column (item) index - if (last > NoSelected) then last := NoSelected; - end - else done := true; - OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.RichEdit.Lines.Add(''); - CoefRepro := 1.0 - (totalerrors / (NoCases * NoSelected)); - outline := format('Coefficient of Reproducibility := %6.3f',[CoefRepro]); - OutPutFrm.RichEdit.Lines.Add(outline); - for j := 1 to NoSelected do - begin - if (ColProps[j-1] > (1.0 - ColProps[j-1])) then Min_Coeff := Min_Coeff + ColProps[j-1] - else Min_Coeff := Min_Coeff + (1.0 - ColProps[j-1]); - end; - Min_Coeff := Min_coeff / NoSelected; - outline := format('Minimal Marginal Reproducibility := %6.3f',[Min_Coeff]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - - // Clean up the heap - VarLabels := nil; - ModalArray := nil; - CaseNo := nil; - sequence := nil; - ErrorMat := nil; - CutScore := nil; - CaseVector := nil; - ColProps := nil; - ColTots := nil; - RowTots := nil; - FreqMat1 := nil; - FreqMat0 := nil; - ColNoSelected := nil; -end; - -procedure TGuttmanFrm.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 - ItemList.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 TGuttmanFrm.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); -end; - -initialization - {$I guttmanunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/helpunit.lfm b/applications/lazstats/source_orig/helpunit.lfm deleted file mode 100644 index d0f03470c..000000000 --- a/applications/lazstats/source_orig/helpunit.lfm +++ /dev/null @@ -1,53 +0,0 @@ -object HelpFrm: THelpFrm - Left = 239 - Height = 117 - Top = 107 - Width = 303 - Caption = 'HTML Help Viewer' - ClientHeight = 117 - ClientWidth = 303 - OnCreate = FormCreate - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 9 - Height = 14 - Top = 8 - Width = 235 - Caption = 'PRESS THE Button for the TABLE OF CONTENTS!' - ParentColor = False - end - object HelpBtn: TButton - Left = 8 - Height = 28 - Top = 32 - Width = 154 - HelpType = htKeyword - HelpKeyword = 'HTML/LAZTOC.html' - Caption = 'Table of Contents' - OnClick = HelpBtnClick - TabOrder = 0 - end - object ReturnBtn: TButton - Left = 200 - Height = 27 - Top = 32 - Width = 85 - Caption = 'Return' - ModalResult = 1 - TabOrder = 1 - end - object HTMLHelpDatabase1: THTMLHelpDatabase - BaseURL = 'file://html/' - AutoRegister = True - KeywordPrefix = 'HTML/' - left = 16 - top = 72 - end - object HTMLBrowserHelpViewer1: THTMLBrowserHelpViewer - BrowserParams = '%s' - AutoRegister = True - left = 144 - top = 72 - end -end diff --git a/applications/lazstats/source_orig/helpunit.lrs b/applications/lazstats/source_orig/helpunit.lrs deleted file mode 100644 index 4e8d669d4..000000000 --- a/applications/lazstats/source_orig/helpunit.lrs +++ /dev/null @@ -1,19 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('THelpFrm','FORMDATA',[ - 'TPF0'#8'THelpFrm'#7'HelpFrm'#4'Left'#3#239#0#6'Height'#2'u'#3'Top'#2'k'#5'Wi' - +'dth'#3'/'#1#7'Caption'#6#16'HTML Help Viewer'#12'ClientHeight'#2'u'#11'Clie' - +'ntWidth'#3'/'#1#8'OnCreate'#7#10'FormCreate'#6'OnShow'#7#8'FormShow'#10'LCL' - +'Version'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#9#6'Height'#2#14#3'T' - +'op'#2#8#5'Width'#3#235#0#7'Caption'#6'+PRESS THE Button for the TABLE OF CO' - +'NTENTS!'#11'ParentColor'#8#0#0#7'TButton'#7'HelpBtn'#4'Left'#2#8#6'Height'#2 - +#28#3'Top'#2' '#5'Width'#3#154#0#8'HelpType'#7#9'htKeyword'#11'HelpKeyword'#6 - +#16'HTML/LAZTOC.html'#7'Caption'#6#17'Table of Contents'#7'OnClick'#7#12'Hel' - +'pBtnClick'#8'TabOrder'#2#0#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#200#0#6'He' - +'ight'#2#27#3'Top'#2' '#5'Width'#2'U'#7'Caption'#6#6'Return'#11'ModalResult' - +#2#1#8'TabOrder'#2#1#0#0#17'THTMLHelpDatabase'#17'HTMLHelpDatabase1'#7'BaseU' - +'RL'#6#12'file://html/'#12'AutoRegister'#9#13'KeywordPrefix'#6#5'HTML/'#4'le' - +'ft'#2#16#3'top'#2'H'#0#0#22'THTMLBrowserHelpViewer'#22'HTMLBrowserHelpViewe' - +'r1'#13'BrowserParams'#6#2'%s'#12'AutoRegister'#9#4'left'#3#144#0#3'top'#2'H' - +#0#0#0 -]); diff --git a/applications/lazstats/source_orig/helpunit.pas b/applications/lazstats/source_orig/helpunit.pas deleted file mode 100644 index 64485bafd..000000000 --- a/applications/lazstats/source_orig/helpunit.pas +++ /dev/null @@ -1,56 +0,0 @@ -unit HelpUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, LazHelpHTML, HelpIntfs; - -type - - { THelpFrm } - - THelpFrm = class(TForm) - ReturnBtn: TButton; - HelpBtn: TButton; - HTMLBrowserHelpViewer1: THTMLBrowserHelpViewer; - HTMLHelpDatabase1: THTMLHelpDatabase; - Label1: TLabel; - procedure FormCreate(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - HelpFrm: THelpFrm; - -implementation - -{ THelpFrm } - -procedure THelpFrm.FormShow(Sender: TObject); -begin -// HelpBtnClick(self); -end; - -procedure THelpFrm.FormCreate(Sender: TObject); -begin - HTMLHelpDatabase1.BaseURL := 'file://html'; -end; - -procedure THelpFrm.HelpBtnClick(Sender: TObject); -begin - ShowHelpOrErrorForKeyword('','HTML/LAZTOC.html'); -end; - -initialization - {$I helpunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/hierarchunit.lfm b/applications/lazstats/source_orig/hierarchunit.lfm deleted file mode 100644 index 701b5ee26..000000000 --- a/applications/lazstats/source_orig/hierarchunit.lfm +++ /dev/null @@ -1,242 +0,0 @@ -object HierarchFrm: THierarchFrm - Left = 172 - Height = 340 - Top = 97 - Width = 464 - Caption = 'Hierarchical Cluster Analysis' - ClientHeight = 340 - ClientWidth = 464 - OnShow = FormShow - LCLVersion = '0.9.26.2' - object Label1: TLabel - Left = 6 - Height = 14 - Top = 6 - Width = 90 - Caption = 'Available Variables' - ParentColor = False - end - object Label2: TLabel - Left = 211 - Height = 14 - Top = 7 - Width = 90 - Caption = 'Predictor Variables' - ParentColor = False - end - object VarList: TListBox - Left = 5 - Height = 306 - Top = 22 - Width = 154 - MultiSelect = True - TabOrder = 0 - end - object PredIn: TBitBtn - Left = 168 - Height = 32 - 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 = PredInClick - TabOrder = 1 - end - object PredOut: TBitBtn - Left = 168 - Height = 32 - 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 = PredOutClick - TabOrder = 2 - end - object PredList: TListBox - Left = 208 - Height = 121 - Top = 24 - Width = 160 - TabOrder = 3 - end - object GroupBox1: TGroupBox - Left = 166 - Height = 176 - Top = 153 - Width = 205 - Caption = 'Options' - ClientHeight = 158 - ClientWidth = 201 - TabOrder = 4 - object STDChk: TCheckBox - Left = 8 - Height = 17 - Top = 4 - Width = 122 - Caption = 'Standardize Variables' - TabOrder = 0 - end - object ReplaceChk: TCheckBox - Left = 44 - Height = 17 - Top = 23 - Width = 117 - Caption = 'Replace Grid Values' - TabOrder = 1 - end - object StatsChk: TCheckBox - Left = 8 - Height = 17 - Top = 44 - Width = 118 - Caption = 'Descriptive Statistics' - TabOrder = 2 - end - object PlotChk: TCheckBox - Left = 8 - Height = 17 - Top = 67 - Width = 139 - Caption = 'No. Groups vs Errors Plot' - TabOrder = 3 - end - object MaxGrpsChk: TCheckBox - Left = 8 - Height = 17 - Top = 91 - Width = 124 - Caption = 'Maximum No. Groups:' - TabOrder = 4 - end - object MembersChk: TCheckBox - Left = 7 - Height = 17 - Top = 116 - Width = 133 - Caption = 'Print Group Membership' - TabOrder = 5 - end - object VarChk: TCheckBox - Left = 8 - Height = 17 - Top = 139 - Width = 150 - Caption = 'Cluster Variables, not cases' - TabOrder = 6 - end - object MaxGrps: TEdit - Left = 143 - Height = 20 - Top = 86 - Width = 37 - TabOrder = 7 - Text = 'MaxGrps' - end - end - object ResetBtn: TButton - Left = 384 - Height = 31 - Top = 25 - Width = 72 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 5 - end - object CancelBtn: TButton - Left = 384 - Height = 31 - Top = 80 - Width = 72 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 6 - end - object ComputeBtn: TButton - Left = 384 - Height = 31 - Top = 136 - Width = 72 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 7 - end - object ReturnBtn: TButton - Left = 384 - Height = 31 - Top = 192 - Width = 72 - Caption = 'Return' - ModalResult = 1 - TabOrder = 8 - end -end diff --git a/applications/lazstats/source_orig/hierarchunit.lrs b/applications/lazstats/source_orig/hierarchunit.lrs deleted file mode 100644 index 81a7c0a2e..000000000 --- a/applications/lazstats/source_orig/hierarchunit.lrs +++ /dev/null @@ -1,142 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('THierarchFrm','FORMDATA',[ - 'TPF0'#12'THierarchFrm'#11'HierarchFrm'#4'Left'#3#172#0#6'Height'#3'T'#1#3'To' - +'p'#2'a'#5'Width'#3#208#1#7'Caption'#6#29'Hierarchical Cluster Analysis'#12 - +'ClientHeight'#3'T'#1#11'ClientWidth'#3#208#1#6'OnShow'#7#8'FormShow'#10'LCL' - +'Version'#6#8'0.9.26.2'#0#6'TLabel'#6'Label1'#4'Left'#2#6#6'Height'#2#14#3'T' - +'op'#2#6#5'Width'#2'Z'#7'Caption'#6#19'Available Variables'#11'ParentColor'#8 - +#0#0#6'TLabel'#6'Label2'#4'Left'#3#211#0#6'Height'#2#14#3'Top'#2#7#5'Width'#2 - +'Z'#7'Caption'#6#19'Predictor Variables'#11'ParentColor'#8#0#0#8'TListBox'#7 - +'VarList'#4'Left'#2#5#6'Height'#3'2'#1#3'Top'#2#22#5'Width'#3#154#0#11'Multi' - +'Select'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#6'PredIn'#4'Left'#3#168#0#6'Height' - +#2' '#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#11'PredInClick'#8'TabOrder'#2#1#0#0#7'TBitBtn' - +#7'PredOut'#4'Left'#3#168#0#6'Height'#2' '#3'Top'#2'@'#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'' - +#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 - +'PredOutClick'#8'TabOrder'#2#2#0#0#8'TListBox'#8'PredList'#4'Left'#3#208#0#6 - +'Height'#2'y'#3'Top'#2#24#5'Width'#3#160#0#8'TabOrder'#2#3#0#0#9'TGroupBox'#9 - +'GroupBox1'#4'Left'#3#166#0#6'Height'#3#176#0#3'Top'#3#153#0#5'Width'#3#205#0 - +#7'Caption'#6#7'Options'#12'ClientHeight'#3#158#0#11'ClientWidth'#3#201#0#8 - +'TabOrder'#2#4#0#9'TCheckBox'#6'STDChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#2#4 - +#5'Width'#2'z'#7'Caption'#6#21'Standardize Variables'#8'TabOrder'#2#0#0#0#9 - +'TCheckBox'#10'ReplaceChk'#4'Left'#2','#6'Height'#2#17#3'Top'#2#23#5'Width'#2 - +'u'#7'Caption'#6#19'Replace Grid Values'#8'TabOrder'#2#1#0#0#9'TCheckBox'#8 - +'StatsChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#2','#5'Width'#2'v'#7'Caption'#6 - +#22'Descriptive Statistics'#8'TabOrder'#2#2#0#0#9'TCheckBox'#7'PlotChk'#4'Le' - +'ft'#2#8#6'Height'#2#17#3'Top'#2'C'#5'Width'#3#139#0#7'Caption'#6#25'No. Gro' - +'ups vs Errors Plot'#8'TabOrder'#2#3#0#0#9'TCheckBox'#10'MaxGrpsChk'#4'Left' - +#2#8#6'Height'#2#17#3'Top'#2'['#5'Width'#2'|'#7'Caption'#6#19'Maximum No. Gr' - +'oups:'#8'TabOrder'#2#4#0#0#9'TCheckBox'#10'MembersChk'#4'Left'#2#7#6'Height' - +#2#17#3'Top'#2't'#5'Width'#3#133#0#7'Caption'#6#22'Print Group Membership'#8 - +'TabOrder'#2#5#0#0#9'TCheckBox'#6'VarChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#3 - +#139#0#5'Width'#3#150#0#7'Caption'#6#28'Cluster Variables, not cases'#8'TabO' - ,'rder'#2#6#0#0#5'TEdit'#7'MaxGrps'#4'Left'#3#143#0#6'Height'#2#20#3'Top'#2'V' - +#5'Width'#2'%'#8'TabOrder'#2#7#4'Text'#6#7'MaxGrps'#0#0#0#7'TButton'#8'Reset' - +'Btn'#4'Left'#3#128#1#6'Height'#2#31#3'Top'#2#25#5'Width'#2'H'#7'Caption'#6#5 - +'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#5#0#0#7'TButton'#9'Canc' - +'elBtn'#4'Left'#3#128#1#6'Height'#2#31#3'Top'#2'P'#5'Width'#2'H'#7'Caption'#6 - +#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#6#0#0#7'TButton'#10'ComputeBtn' - +#4'Left'#3#128#1#6'Height'#2#31#3'Top'#3#136#0#5'Width'#2'H'#7'Caption'#6#7 - +'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#7#0#0#7'TButton'#9 - +'ReturnBtn'#4'Left'#3#128#1#6'Height'#2#31#3'Top'#3#192#0#5'Width'#2'H'#7'Ca' - +'ption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#8#0#0#0 -]); diff --git a/applications/lazstats/source_orig/hierarchunit.pas b/applications/lazstats/source_orig/hierarchunit.pas deleted file mode 100644 index f2469b40b..000000000 --- a/applications/lazstats/source_orig/hierarchunit.pas +++ /dev/null @@ -1,485 +0,0 @@ -unit HierarchUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, OutPutUnit, FunctionsLib, GraphLib, - Globals, MatrixLib, DataProcs, Math; - -type - - { THierarchFrm } - - THierarchFrm = class(TForm) - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - MaxGrps: TEdit; - STDChk: TCheckBox; - ReplaceChk: TCheckBox; - StatsChk: TCheckBox; - PlotChk: TCheckBox; - MaxGrpsChk: TCheckBox; - MembersChk: TCheckBox; - VarChk: TCheckBox; - GroupBox1: TGroupBox; - PredIn: TBitBtn; - PredOut: TBitBtn; - Label1: TLabel; - Label2: TLabel; - PredList: TListBox; - VarList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure PredInClick(Sender: TObject); - procedure PredOutClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - HierarchFrm: THierarchFrm; - -implementation - -{ THierarchFrm } - -procedure THierarchFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - PredList.Clear; - PredOut.Visible := false; - PredIn.Visible := true; - StdChk.Checked := false; - ReplaceChk.Checked := false; - StatsChk.Checked := false; - PlotChk.Checked := false; - MaxGrpsChk.Checked := false; - VarChk.Checked := false; - MaxGrps.Text := ''; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure THierarchFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure THierarchFrm.ComputeBtnClick(Sender: TObject); -label next1; -var - varlabels, rowlabels : StrDyneVec; - outline, cellstring : string; - i, j, k, k1, k3, L, w3, n3, n4, n5, M, col, count: integer; - GrpCnt, Nrows, Ncols, NoSelected, linecount : integer; - w2, k4, k5, L1 : IntDyneVec; - ColSelected : IntDyneVec; - X, Y, d1, x1, MaxError : double; - W, XAxis, YAxis, means, variances, stddevs : DblDyneVec; - Distance : DblDyneMat; -begin - MaxError := 0.0; - GrpCnt := 0; - NoSelected := PredList.Items.Count; - if VarChk.Checked = false then - begin - SetLength(w2,NoCases); - SetLength(k4,NoCases); - SetLength(k5,NoCases); - SetLength(L1,NoCases); - SetLength(W,NoSelected); - SetLength(XAxis,NoCases); - SetLength(YAxis,NoCases); - SetLength(means,NoSelected); - SetLength(variances,NoSelected); - SetLength(stddevs,NoSelected); - SetLength(Distance,NoCases,NoCases); - SetLength(varlabels,NoSelected); - SetLength(rowlabels,NoCases); - SetLength(ColSelected,NoSelected); - Ncols := NoSelected; - Nrows := NoCases; - for i := 0 to Ncols - 1 do - begin - cellstring := PredList.Items.Strings[i]; - for j := 1 to NoVariables do - begin - if (cellstring = OS3MainFrm.DataGrid.Cells[j,0]) then - begin - varlabels[i] := cellstring; - ColSelected[i] := j; - end; - end; - end; - for i := 0 to NoCases-1 do rowlabels[i] := IntToStr(i); - end - else begin - SetLength(w2,NoSelected); - SetLength(k4,NoSelected); - SetLength(k5,NoSelected); - SetLength(L1,NoSelected); - SetLength(W,NoCases); - SetLength(XAxis,NoSelected); - SetLength(YAxis,NoSelected); - SetLength(means,NoCases); - SetLength(variances,NoCases); - SetLength(stddevs,NoCases); - SetLength(Distance,NoSelected,NoCases); - SetLength(varlabels,NoCases); - SetLength(rowlabels,NoSelected); - SetLength(ColSelected,NoSelected); - Ncols := NoCases; - Nrows := NoSelected; - //Get labels of selected variables - for i := 0 to Nrows - 1 do - begin - cellstring := PredList.Items.Strings[i]; - for j := 1 to NoVariables do - begin - if (cellstring = OS3MainFrm.DataGrid.Cells[j,0]) then - begin - ColSelected[i] := j; - rowlabels[i] := cellstring; - end; - end; - end; - for i := 0 to NoCases-1 do varlabels[i] := IntToStr(i); - end; - if MembersChk.Checked then k3 := 1 else k3 := 0; - - for j := 0 to Ncols-1 do - begin - means[j] := 0.0; - variances[j] := 0.0; - stddevs[j] := 0.0; - end; - - if VarChk.Checked = false then - begin - // Get labels of rows -// for i := 1 to Nrows do rowlabels[i-1] := MainFrm.Grid.Cells[0,i]; - - // Get data into the distance matrix - count := 0; - for i := 1 to Nrows do - begin - if (not GoodRecord(i,NoSelected,ColSelected)) then continue; - count := count + 1; - for j := 1 to Ncols do - begin - col := ColSelected[j-1]; - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,i])); - means[j-1] := means[j-1] + X; - variances[j-1] := variances[j-1] + (X * X); - Distance[i-1,j-1] := X; - end; - end; - end - else begin // cluster variables - // Get labels of columns -// for i := 1 to Nrows do rowlabels[i-1] := MainFrm.Grid.Cells[i,0]; - - // Get data into the distance matrix - count := 0; - for i := 1 to Nrows do // actually grid column in this case - begin -// if (not GoodRecord(i,NoSelected,ColSelected)) then continue; - count := count + 1; - for j := 1 to Ncols do // actually grid rows in this case - begin -// if (not GoodRecord(j,NoSelected,ColSelected)) then continue; - col := ColSelected[i-1]; - X := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col,j])); - means[j-1] := means[j-1] + X; - variances[j-1] := variances[j-1] + (X * X); - Distance[i-1,j-1] := X; - end; - end; - end; - - // Calculate means and standard deviations of variables - for j := 0 to Ncols-1 do - begin - variances[j] := variances[j] - (means[j] * means[j] / count); - variances[j] := variances[j] / (count - 1); - stddevs[j] := sqrt(variances[j]); - means[j] := means[j] / count; - end; - - // Ready the output form - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Hierarchical Cluster Analysis'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Number of objects to cluster := %d on %d variables.', - [Nrows, Ncols]); - OutPutFrm.RichEdit.Lines.Add(outline); - linecount := 3; - if (StatsChk.Checked) then - begin - DynVectorPrint(means,Ncols,'Variable Means',varlabels,count); - DynVectorPrint(variances,Ncols,'Variable Variances',varlabels,count); - DynVectorPrint(stddevs,Ncols,'Variable Standard Deviations',varlabels,count); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - linecount := 0; - end; - - // Standardize the distance scores if elected - if (StdChk.Checked) then - begin - for j := 0 to Ncols-1 do - for i := 0 to Nrows-1 do - Distance[i,j] := (Distance[i,j] - means[j]) / stddevs[j]; - end; - - if (ReplaceChk.Checked) then // replace original values in grid with z scores if elected - begin - for i := 1 to Nrows do - begin - if (not GoodRecord(i,NoSelected,ColSelected)) then continue; - for j := 1 to Ncols do - begin - col := ColSelected[j-1]; - outline := format('%6.4f',[Distance[i-1,j-1]]); - OS3MainFrm.DataGrid.Cells[col,i] := outline; - end; - end; - end; - - // Convert data matrix to initial matrix of error potentials - for i := 1 to Nrows do - begin -// if (not GoodRecord(i,NoSelected,ColSelected)) then continue; - for j := 1 to Ncols do W[j-1] := Distance[i-1,j-1]; - for j := i to Nrows do - begin -// if (not GoodRecord(i,NoSelected,ColSelected)) then continue; - Distance[i-1,j-1] := 0.0; - for k := 1 to Ncols do Distance[i-1,j-1] := Distance[i-1,j-1] + - (Distance[j-1,k-1] - W[k-1]) * (Distance[j-1,k-1] - W[k-1]); - Distance[i-1,j-1] := Distance[i-1,j-1] / 2.0; - end; - end; - for i := 1 to Nrows do - for j := i to Nrows do Distance[j-1,i-1] := 0.0; - - // Now, group the cases for maximum groups down - if MaxGrpsChk.Checked then - begin - k1 := StrToInt(MaxGrps.Text); - n3 := Nrows; - end - else begin - k1 := 2; - n3 := Nrows; - end; - - // Initialize group membership and group-n vectors - for i := 0 to Nrows-1 do - begin - k4[i] := i+1; - k5[i] := i+1; - w2[i] := 1; - end; - - // Locate optimal combination, if more than 2 groups remain -next1: - n3 := n3 - 1; - if (n3 > 1) then - begin - x1 := 100000000000.0; - for i := 1 to Nrows do - begin - if (k5[i-1] = i) then - begin - for j := i to Nrows do - begin - if ((i <> j) and (k5[j-1] = j)) then - begin - d1 := Distance[i-1,j-1] - Distance[i-1,i-1] - Distance[j-1,j-1]; - if (d1 < x1) then - begin - x1 := d1; - L := i; - M := j; - end; // end if - end; // end if - end; // next j - end; // end if - end; // next i - n4 := w2[L-1]; - n5 := w2[M-1]; - - OutPutFrm.RichEdit.Lines.Add(''); - linecount := linecount + 1; - GrpCnt := GrpCnt + 1; - XAxis[GrpCnt-1] := n3; - YAxis[GrpCnt-1] := x1; - if (x1 > MaxError) then MaxError := x1; - outline := format('%d groups after combining group %d (n := %d ) and group %d (n := %d) error := %7.3f', - [n3, L, n4, M, n5, x1]); - OutPutFrm.RichEdit.Lines.Add(outline); - linecount := linecount + 1; - if (linecount >= 60) then - begin - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - linecount := 0; - end; - w3 := w2[L-1] + w2[M-1]; - x1 := Distance[L-1,M-1] * w3; - Y := Distance[L-1,L-1] * w2[L-1] + Distance[M-1,M-1] * w2[M-1]; - Distance[L-1,L-1] := Distance[L-1,M-1]; - for i := 1 to Nrows do - if (k5[i-1] = M) then k5[i-1] := L; - for i := 1 to Nrows do - begin - if ((i <> L) and (k5[i-1] = i)) then - begin - if (i <= L) then - begin - Distance[i-1,L-1] := Distance[i-1,L-1] * (w2[i-1] + w2[L-1]) - + Distance[i-1,M-1] * (w2[i-1] + w2[M-1]) - + x1 - Y - Distance[i-1,i-1] * w2[i-1]; - Distance[i-1,L-1] := Distance[i-1,L-1] / (w2[i-1] + w3); - end - else - begin - Distance[L-1,i-1] := Distance[L-1,i-1] * (w2[L-1] + w2[i-1]) - + (Distance[M-1,i-1] + Distance[i-1,M-1]) * (w2[M-1] + w2[i-1]); - Distance[L-1,i-1] := (Distance[L-1,i-1]+ x1 - Y - - Distance[i-1,i-1] * w2[i-1]) / (w2[i-1] + w3); - end; - end; - end; - w2[L-1] := w3; - if (n3 > k1) then goto next1; - - // print group memberships of all objects, if optioned - for i := 1 to Nrows do - begin - if (k5[i-1] = i) then - begin - L := 0; - for j := 1 to Nrows do - begin - if (k5[j-1] = i) then - begin - L := L + 1; - L1[L-1] := k4[j-1]; - if k3 = 1 then L1[L-1] := j; - end; - end; - if k3 = 1 then - begin - outline := format('Group %d (n := %d)',[i,L]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := ''; - for j := 1 to L do - begin - outline := format(' Object := %s',[rowlabels[L1[j-1]-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - linecount := linecount + 1; - end; - if (linecount >= 60) then - begin - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - linecount := 0; - end; - end; // end if - end; // end if - end; // next i - goto next1; - end; // end if - if (linecount > 0) then OutPutFrm.ShowModal; - - if (PlotChk.Checked) then - begin - SetLength(GraphFrm.Ypoints,1,GrpCnt); - SetLength(GraphFrm.Xpoints,1,GrpCnt); - for i := 1 to GrpCnt do - begin - GraphFrm.Ypoints[0,i-1] := YAxis[i-1]; - GraphFrm.Xpoints[0,i-1] := XAxis[i-1]; - end; - GraphFrm.nosets := 1; - GraphFrm.nbars := GrpCnt; - GraphFrm.Heading := 'NO. GROUPS VERSUS GROUPING ERROR'; - GraphFrm.XTitle := 'NO. GROUPS'; - GraphFrm.YTitle := 'ERROR'; -// GraphFrm.Ypoints[1] := YAxis; -// GraphFrm.Xpoints[1] := XAxis; - GraphFrm.AutoScale := true; - GraphFrm.PtLabels := false; - GraphFrm.GraphType := 7; // 2d points - GraphFrm.BackColor := clYellow; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; -end; - - // clean up - ColSelected := nil; - rowlabels := nil; - varlabels := nil; - Distance := nil; - stddevs := nil; - variances := nil; - means := nil; - YAxis := nil; - XAxis := nil; - W := nil; - L1 := nil; - k5 := nil; - k4 := nil; - w2 := nil; - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; -end; - -procedure THierarchFrm.PredInClick(Sender: TObject); -VAR i, index : integer; -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - PredList.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - PredOut.Visible := true; -end; - -procedure THierarchFrm.PredOutClick(Sender: TObject); -VAR index : integer; -begin - index := PredList.ItemIndex; - if index < 0 then - begin - PredOut.Visible := false; - exit; - end; - VarList.Items.Add(PredList.Items.Strings[index]); - PredList.Items.Delete(index); -end; - -initialization - {$I hierarchunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/hypergeounit.lfm b/applications/lazstats/source_orig/hypergeounit.lfm deleted file mode 100644 index dfb53cac3..000000000 --- a/applications/lazstats/source_orig/hypergeounit.lfm +++ /dev/null @@ -1,182 +0,0 @@ -object HyperGeoForm: THyperGeoForm - Left = 288 - Height = 403 - Top = 161 - Width = 320 - Caption = 'Hypergeometric Probabilities' - ClientHeight = 403 - ClientWidth = 320 - OnShow = ResetBtnClick - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 7 - Height = 16 - Top = 20 - Width = 69 - Caption = 'Sample Size: ' - ParentColor = False - end - object Label2: TLabel - Left = 10 - Height = 16 - Top = 55 - Width = 153 - Caption = 'Number observed in sample:' - ParentColor = False - end - object Label3: TLabel - Left = 9 - Height = 16 - Top = 88 - Width = 85 - Caption = 'Population Size:' - ParentColor = False - end - object Label4: TLabel - Left = 7 - Height = 16 - Top = 123 - Width = 173 - Caption = 'Number observed in population:' - ParentColor = False - end - object Label5: TLabel - Left = 7 - Height = 16 - Top = 163 - Width = 85 - Caption = 'Probability of X:' - ParentColor = False - end - object Label6: TLabel - Left = 8 - Height = 16 - Top = 201 - Width = 138 - Caption = 'Probability greater than X:' - ParentColor = False - end - object Label7: TLabel - Left = 8 - Height = 16 - Top = 238 - Width = 153 - Caption = 'Probability less or equal to X:' - ParentColor = False - end - object Label8: TLabel - Left = 9 - Height = 16 - Top = 275 - Width = 171 - Caption = 'Probability greater or equal to X:' - ParentColor = False - end - object Label9: TLabel - Left = 7 - Height = 16 - Top = 313 - Width = 120 - Caption = 'Probability less than X:' - ParentColor = False - end - object ResetBtn: TButton - Left = 7 - Height = 31 - Top = 346 - Width = 76 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 0 - end - object ComputeBtn: TButton - Left = 112 - Height = 31 - Top = 344 - Width = 76 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 1 - end - object ReturnBtn: TButton - Left = 216 - Height = 31 - Top = 344 - Width = 76 - Caption = 'Return' - ModalResult = 1 - TabOrder = 2 - end - object SampSizeEdit: TEdit - Left = 208 - Height = 23 - Top = 12 - Width = 76 - TabOrder = 3 - Text = 'SampSizeEdit' - end - object SampObsEdit: TEdit - Left = 208 - Height = 23 - Top = 48 - Width = 76 - TabOrder = 4 - Text = 'Edit1' - end - object PopSizeEdit: TEdit - Left = 208 - Height = 23 - Top = 80 - Width = 76 - TabOrder = 5 - Text = 'Edit1' - end - object PopObsEdit: TEdit - Left = 208 - Height = 23 - Top = 112 - Width = 76 - TabOrder = 6 - Text = 'Edit1' - end - object ProbXEdit: TEdit - Left = 208 - Height = 23 - Top = 152 - Width = 76 - TabOrder = 7 - Text = 'Edit1' - end - object ProbGTEdit: TEdit - Left = 208 - Height = 23 - Top = 192 - Width = 76 - TabOrder = 8 - Text = 'Edit1' - end - object ProbLEEdit: TEdit - Left = 208 - Height = 23 - Top = 231 - Width = 76 - TabOrder = 9 - Text = 'Edit1' - end - object ProbGEEdit: TEdit - Left = 208 - Height = 23 - Top = 268 - Width = 76 - TabOrder = 10 - Text = 'Edit1' - end - object ProbLTEdit: TEdit - Left = 208 - Height = 23 - Top = 306 - Width = 76 - TabOrder = 11 - Text = 'Edit1' - end -end diff --git a/applications/lazstats/source_orig/hypergeounit.lrs b/applications/lazstats/source_orig/hypergeounit.lrs deleted file mode 100644 index 2c1907c68..000000000 --- a/applications/lazstats/source_orig/hypergeounit.lrs +++ /dev/null @@ -1,45 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('THyperGeoForm','FORMDATA',[ - 'TPF0'#13'THyperGeoForm'#12'HyperGeoForm'#4'Left'#3' '#1#6'Height'#3#147#1#3 - +'Top'#3#161#0#5'Width'#3'@'#1#7'Caption'#6#28'Hypergeometric Probabilities' - +#12'ClientHeight'#3#147#1#11'ClientWidth'#3'@'#1#6'OnShow'#7#13'ResetBtnClic' - +'k'#10'LCLVersion'#6#6'0.9.30'#0#6'TLabel'#6'Label1'#4'Left'#2#7#6'Height'#2 - +#16#3'Top'#2#20#5'Width'#2'E'#7'Caption'#6#13'Sample Size: '#11'ParentColor' - +#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#10#6'Height'#2#16#3'Top'#2'7'#5'Width'#3 - +#153#0#7'Caption'#6#26'Number observed in sample:'#11'ParentColor'#8#0#0#6'T' - +'Label'#6'Label3'#4'Left'#2#9#6'Height'#2#16#3'Top'#2'X'#5'Width'#2'U'#7'Cap' - +'tion'#6#16'Population Size:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Le' - +'ft'#2#7#6'Height'#2#16#3'Top'#2'{'#5'Width'#3#173#0#7'Caption'#6#30'Number ' - +'observed in population:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2 - +#7#6'Height'#2#16#3'Top'#3#163#0#5'Width'#2'U'#7'Caption'#6#17'Probability o' - +'f X:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label6'#4'Left'#2#8#6'Height'#2#16#3 - +'Top'#3#201#0#5'Width'#3#138#0#7'Caption'#6#27'Probability greater than X:' - +#11'ParentColor'#8#0#0#6'TLabel'#6'Label7'#4'Left'#2#8#6'Height'#2#16#3'Top' - +#3#238#0#5'Width'#3#153#0#7'Caption'#6#31'Probability less or equal to X:'#11 - +'ParentColor'#8#0#0#6'TLabel'#6'Label8'#4'Left'#2#9#6'Height'#2#16#3'Top'#3 - +#19#1#5'Width'#3#171#0#7'Caption'#6'"Probability greater or equal to X:'#11 - +'ParentColor'#8#0#0#6'TLabel'#6'Label9'#4'Left'#2#7#6'Height'#2#16#3'Top'#3 - +'9'#1#5'Width'#2'x'#7'Caption'#6#24'Probability less than X:'#11'ParentColor' - +#8#0#0#7'TButton'#8'ResetBtn'#4'Left'#2#7#6'Height'#2#31#3'Top'#3'Z'#1#5'Wid' - +'th'#2'L'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2 - +#0#0#0#7'TButton'#10'ComputeBtn'#4'Left'#2'p'#6'Height'#2#31#3'Top'#3'X'#1#5 - +'Width'#2'L'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabO' - +'rder'#2#1#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#216#0#6'Height'#2#31#3'Top' - +#3'X'#1#5'Width'#2'L'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder' - +#2#2#0#0#5'TEdit'#12'SampSizeEdit'#4'Left'#3#208#0#6'Height'#2#23#3'Top'#2#12 - +#5'Width'#2'L'#8'TabOrder'#2#3#4'Text'#6#12'SampSizeEdit'#0#0#5'TEdit'#11'Sa' - +'mpObsEdit'#4'Left'#3#208#0#6'Height'#2#23#3'Top'#2'0'#5'Width'#2'L'#8'TabOr' - +'der'#2#4#4'Text'#6#5'Edit1'#0#0#5'TEdit'#11'PopSizeEdit'#4'Left'#3#208#0#6 - +'Height'#2#23#3'Top'#2'P'#5'Width'#2'L'#8'TabOrder'#2#5#4'Text'#6#5'Edit1'#0 - +#0#5'TEdit'#10'PopObsEdit'#4'Left'#3#208#0#6'Height'#2#23#3'Top'#2'p'#5'Widt' - +'h'#2'L'#8'TabOrder'#2#6#4'Text'#6#5'Edit1'#0#0#5'TEdit'#9'ProbXEdit'#4'Left' - +#3#208#0#6'Height'#2#23#3'Top'#3#152#0#5'Width'#2'L'#8'TabOrder'#2#7#4'Text' - +#6#5'Edit1'#0#0#5'TEdit'#10'ProbGTEdit'#4'Left'#3#208#0#6'Height'#2#23#3'Top' - +#3#192#0#5'Width'#2'L'#8'TabOrder'#2#8#4'Text'#6#5'Edit1'#0#0#5'TEdit'#10'Pr' - +'obLEEdit'#4'Left'#3#208#0#6'Height'#2#23#3'Top'#3#231#0#5'Width'#2'L'#8'Tab' - +'Order'#2#9#4'Text'#6#5'Edit1'#0#0#5'TEdit'#10'ProbGEEdit'#4'Left'#3#208#0#6 - +'Height'#2#23#3'Top'#3#12#1#5'Width'#2'L'#8'TabOrder'#2#10#4'Text'#6#5'Edit1' - +#0#0#5'TEdit'#10'ProbLTEdit'#4'Left'#3#208#0#6'Height'#2#23#3'Top'#3'2'#1#5 - +'Width'#2'L'#8'TabOrder'#2#11#4'Text'#6#5'Edit1'#0#0#0 -]); diff --git a/applications/lazstats/source_orig/hypergeounit.pas b/applications/lazstats/source_orig/hypergeounit.pas deleted file mode 100644 index c2a70e458..000000000 --- a/applications/lazstats/source_orig/hypergeounit.pas +++ /dev/null @@ -1,181 +0,0 @@ -unit HyperGeoUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, functionsLib, OutPutUnit; - -type - - { THyperGeoForm } - - THyperGeoForm = class(TForm) - ResetBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - SampSizeEdit: TEdit; - SampObsEdit: TEdit; - PopSizeEdit: TEdit; - PopObsEdit: TEdit; - ProbXEdit: TEdit; - ProbGTEdit: TEdit; - ProbLEEdit: TEdit; - ProbGEEdit: TEdit; - ProbLTEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - Label5: TLabel; - Label6: TLabel; - Label7: TLabel; - Label8: TLabel; - Label9: TLabel; - procedure ComputeBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure FisherTable(A,B,C,D, p, SumP : double); - private - { private declarations } - - public - { public declarations } - end; - -var - HyperGeoForm: THyperGeoForm; - -implementation - -{ THyperGeoForm } - -procedure THyperGeoForm.ResetBtnClick(Sender: TObject); -begin - SampSizeEdit.Text := ''; - SampObsEdit.Text := ''; - PopSizeEdit.Text := ''; - PopObsEdit.Text := ''; - ProbXEdit.Text := ''; - ProbGEEdit.Text := ''; - ProbLTEdit.Text := ''; - ProbLEEdit.Text := ''; - ProbGTEdit.Text := ''; - label5.Visible := false; - label6.Visible := false; - label7.Visible := false; - label8.Visible := false; - label9.Visible := false; - ProbXEdit.Visible := false; - ProbGEEdit.Visible := false; - ProbLTEdit.Visible := false; - ProbLEEdit.Visible := false; - ProbGTEdit.Visible := false; -end; - -procedure THyperGeoForm.ComputeBtnClick(Sender: TObject); -VAR - SampObs, PopObs, SampSize, PopSize, N : double; - A, B, C, D, APlusC, BPlusD, APlusB, CPlusD : double; - largest : integer; - ProbX, Prob, SumProb, ProbGE, ProbGT, ProbLT, ProbLE : double; - done : boolean; - outvalue : string; -begin - done := false; - SumProb := 0.0; - label5.Visible := true; - label6.Visible := true; - label7.Visible := true; - label8.Visible := true; - label9.Visible := true; - ProbXEdit.Visible := true; - ProbGEEdit.Visible := true; - ProbLTEdit.Visible := true; - ProbLEEdit.Visible := true; - ProbGTEdit.Visible := true; - SampObs := StrToFloat(SampObsEdit.Text); - PopObs := StrToFloat(PopObsEdit.Text); - SampSize := StrToFloat(SampSizeEdit.Text); - PopSize := StrToFloat(PopSizeEdit.Text); - A := SampObs; - B := SampSize - A; - C := PopObs; - D := PopSize - C; - APlusC := A + C; - BPlusD := B + D; - APlusB := A + B; - CPlusD := C + D; - N := A + B + C + D; - -// largest := 1; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Hypergeometric Distribution Calculations'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Accumulating Values of the distribution'); - OutPutFrm.RichEdit.Lines.Add(''); - ProbX := combos(A,C) * combos(B,D) / combos(APlusB,CPlusD); - outvalue := format('%6.4f',[ProbX]); - ProbXEdit.Text := outvalue; - SumProb := SumProb + ProbX; - FisherTable(A,B,C,D,ProbX,SumProb); - - // get more extreme probabilities - while not done do - begin - if A = APlusB then done := true - else begin - A := A + 1; - B := B - 1; - if (A < 0) or (B < 0) or (C < 0) or (D < 0) then done := true; - end; - if not done then - begin - Prob := combos(A,C) * combos(B,D) / combos(APlusB,CPlusD); - SumProb := SumProb + Prob; - FisherTable(A,B,C,D,Prob,SumProb); - end; - end; // end while not done - OutPutFrm.ShowModal; - ProbGE := SumProb; - ProbGT := SumProb - ProbX; - ProbLT := 1.0 - ProbGE; - ProbLE := ProbLT + ProbX; - outvalue := format('%6.4f',[ProbGE]); - ProbGEEdit.Text := outvalue; - outvalue := format('%6.4f',[ProbLE]); - ProbLEEdit.Text := outvalue; - outvalue := format('%6.4f',[ProbGT]); - ProbGTEdit.Text := outvalue; - outvalue := format('%6.4f',[ProbLT]); - ProbLTEdit.Text := outvalue; - OutPutFrm.RichEdit.Clear; - -end; - -procedure THyperGeoForm.FisherTable(A,B,C,D, p, SumP : double); -VAR - outline : string; -begin - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Table for Hypergeometric Probabilities'); - OutPutFrm.RichEdit.Lines.Add(' Column'); - OutPutFrm.RichEdit.Lines.Add('Row 1 2'); - outline := format(' 1 %10.0f %10.0f',[A,B]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format(' 2 %10.0f %10.0f',[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 hypergeounit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/interruptedunit.lfm b/applications/lazstats/source_orig/interruptedunit.lfm deleted file mode 100644 index 45709e35c..000000000 --- a/applications/lazstats/source_orig/interruptedunit.lfm +++ /dev/null @@ -1,291 +0,0 @@ -object InterruptedFrm: TInterruptedFrm - Left = 66 - Height = 337 - Top = 66 - Width = 537 - Align = alCustom - AutoSize = True - BorderIcons = [biSystemMenu] - BorderStyle = bsDialog - Caption = 'Interrupted Time Series Analysis' - ClientHeight = 337 - ClientWidth = 537 - OnShow = FormShow - Position = poDefault - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 2 - Height = 14 - Top = 0 - Width = 90 - Caption = 'Available Variables' - ParentColor = False - end - object Label2: TLabel - Left = 250 - Height = 14 - Top = 2 - Width = 138 - Caption = 'Pre-Treatment Observations' - ParentColor = False - end - object Label3: TLabel - Left = 250 - Height = 14 - Top = 153 - Width = 143 - Caption = 'Post-Treatment Observations' - ParentColor = False - end - object VarList: TListBox - Left = 0 - Height = 271 - Top = 23 - Width = 188 - ItemHeight = 0 - MultiSelect = True - TabOrder = 0 - end - object PreInBtn: TBitBtn - Left = 194 - Height = 29 - Top = 23 - 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 = PreInBtnClick - TabOrder = 1 - end - object PreOutBtn: TBitBtn - Left = 194 - Height = 29 - Top = 64 - 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 = PreOutBtnClick - TabOrder = 2 - end - object PostInBtn: TBitBtn - Left = 194 - Height = 29 - Top = 169 - 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 = PostInBtnClick - TabOrder = 3 - end - object PostOutBtn: TBitBtn - Left = 194 - Height = 29 - Top = 208 - 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 = PostOutBtnClick - TabOrder = 4 - end - object PreList: TListBox - Left = 239 - Height = 118 - Top = 23 - Width = 155 - ItemHeight = 0 - MultiSelect = True - TabOrder = 5 - end - object PostList: TListBox - Left = 239 - Height = 127 - Top = 169 - Width = 158 - ItemHeight = 0 - MultiSelect = True - TabOrder = 6 - end - object ResetBtn: TButton - Left = 418 - Height = 27 - Top = 40 - Width = 72 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 7 - end - object CancelBtn: TButton - Left = 418 - Height = 27 - Top = 104 - Width = 72 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 8 - end - object ComputeBtn: TButton - Left = 418 - Height = 27 - Top = 169 - Width = 72 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 9 - end - object ReturnBtn: TButton - Left = 418 - Height = 27 - Top = 232 - Width = 72 - Caption = 'Return' - ModalResult = 1 - TabOrder = 10 - end - object CorrChk: TCheckBox - Left = 1 - Height = 17 - Top = 305 - Width = 110 - Caption = 'ShowCorrelograms' - TabOrder = 11 - end -end diff --git a/applications/lazstats/source_orig/interruptedunit.lrs b/applications/lazstats/source_orig/interruptedunit.lrs deleted file mode 100644 index 23cf61db9..000000000 --- a/applications/lazstats/source_orig/interruptedunit.lrs +++ /dev/null @@ -1,237 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TInterruptedFrm','FORMDATA',[ - 'TPF0'#15'TInterruptedFrm'#14'InterruptedFrm'#4'Left'#2'B'#6'Height'#3'Q'#1#3 - +'Top'#2'B'#5'Width'#3#25#2#5'Align'#7#8'alCustom'#8'AutoSize'#9#11'BorderIco' - +'ns'#11#12'biSystemMenu'#0#11'BorderStyle'#7#8'bsDialog'#7'Caption'#6' Inter' - +'rupted Time Series Analysis'#12'ClientHeight'#3'Q'#1#11'ClientWidth'#3#25#2 - +#6'OnShow'#7#8'FormShow'#8'Position'#7#9'poDefault'#10'LCLVersion'#6#8'0.9.2' - +'8.2'#0#6'TLabel'#6'Label1'#4'Left'#2#2#6'Height'#2#14#3'Top'#2#0#5'Width'#2 - +'Z'#7'Caption'#6#19'Available Variables'#11'ParentColor'#8#0#0#6'TLabel'#6'L' - +'abel2'#4'Left'#3#250#0#6'Height'#2#14#3'Top'#2#2#5'Width'#3#138#0#7'Caption' - +#6#26'Pre-Treatment Observations'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4 - +'Left'#3#250#0#6'Height'#2#14#3'Top'#3#153#0#5'Width'#3#143#0#7'Caption'#6#27 - +'Post-Treatment Observations'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4 - +'Left'#2#0#6'Height'#3#15#1#3'Top'#2#23#5'Width'#3#188#0#10'ItemHeight'#2#0 - +#11'MultiSelect'#9#8'TabOrder'#2#0#0#0#7'TBitBtn'#8'PreInBtn'#4'Left'#3#194#0 - +#6'Height'#2#29#3'Top'#2#23#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'PreInBtnClick'#8'TabOrder'#2 - ,#1#0#0#7'TBitBtn'#9'PreOutBtn'#4'Left'#3#194#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'NumGlyp' - +'hs'#2#0#7'OnClick'#7#14'PreOutBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#9'Po' - +'stInBtn'#4'Left'#3#194#0#6'Height'#2#29#3'Top'#3#169#0#5'Width'#2'#'#10'Gly' - +'ph.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'PostInBtnClick' - +#8'TabOrder'#2#3#0#0#7'TBitBtn'#10'PostOutBtn'#4'Left'#3#194#0#6'Height'#2#29 - +#3'Top'#3#208#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#15'PostOutBtnClick'#8'TabOrder'#2#4#0#0 - +#8'TListBox'#7'PreList'#4'Left'#3#239#0#6'Height'#2'v'#3'Top'#2#23#5'Width'#3 - +#155#0#10'ItemHeight'#2#0#11'MultiSelect'#9#8'TabOrder'#2#5#0#0#8'TListBox'#8 - +'PostList'#4'Left'#3#239#0#6'Height'#2#127#3'Top'#3#169#0#5'Width'#3#158#0#10 - +'ItemHeight'#2#0#11'MultiSelect'#9#8'TabOrder'#2#6#0#0#7'TButton'#8'ResetBtn' - +#4'Left'#3#162#1#6'Height'#2#27#3'Top'#2'('#5'Width'#2'H'#7'Caption'#6#5'Res' - +'et'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#7#0#0#7'TButton'#9'CancelB' - +'tn'#4'Left'#3#162#1#6'Height'#2#27#3'Top'#2'h'#5'Width'#2'H'#7'Caption'#6#6 - +'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#8#0#0#7'TButton'#10'ComputeBtn'#4 - +'Left'#3#162#1#6'Height'#2#27#3'Top'#3#169#0#5'Width'#2'H'#7'Caption'#6#7'Co' - +'mpute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#9#0#0#7'TButton'#9'Re' - +'turnBtn'#4'Left'#3#162#1#6'Height'#2#27#3'Top'#3#232#0#5'Width'#2'H'#7'Capt' - +'ion'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#10#0#0#9'TCheckBox'#7'Co' - +'rrChk'#4'Left'#2#1#6'Height'#2#17#3'Top'#3'1'#1#5'Width'#2'n'#7'Caption'#6 - +#16'ShowCorrelograms'#8'TabOrder'#2#11#0#0#0 -]); diff --git a/applications/lazstats/source_orig/interruptedunit.pas b/applications/lazstats/source_orig/interruptedunit.pas deleted file mode 100644 index 45b3db7c3..000000000 --- a/applications/lazstats/source_orig/interruptedunit.pas +++ /dev/null @@ -1,909 +0,0 @@ -unit InterruptedUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, Globals, DataProcs, OutPutUnit, - AutoPlotUnit, GraphLib; - -type - - { TInterruptedFrm } - - TInterruptedFrm = class(TForm) - CorrChk: TCheckBox; - PreInBtn: TBitBtn; - PreOutBtn: TBitBtn; - PostInBtn: TBitBtn; - PostOutBtn: TBitBtn; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - VarList: TListBox; - PreList: TListBox; - PostList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure PostInBtnClick(Sender: TObject); - procedure PostOutBtnClick(Sender: TObject); - procedure PreInBtnClick(Sender: TObject); - procedure PreOutBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure matinverse(Sender: TObject); - procedure plotit( Sender: TObject); - procedure PlotFuncs(Sender: TObject); - - private - { private declarations } - z : DblDyneVec; - y : DblDyneVec; - x : DblDyneMat; - x1 : array[1..4,1..4] of double; - x2 : array[1..4,1..4] of double; - x3 : array[1..4] of double; - t : array[1..4] of double; - p : array[1..100] of double; - p1 : array[1..4] of double; - ii3 : array[1..4,1..3] of double; - p2 : array[1..4] of double; - s : array[1..4] of double; - t2 : array[1..4] of double; - b : array[1..4,1..1] of double; - x4 : array[1..50,1..10] of double; - d : array[1..50,1..5] of double; - r : array[1..50] of double; - x5 : array[1..50,1..11] of double; - a1 : array[1..10] of double; - a2 : array[1..10] of double; - r2 : array[1..10] of double; - e : array[1..10] of double; - f2 : array[1..5,1..10] of double; - pl : string; - f1s, g1s, g2s, g3s, g4s, g5s, g6s, g7s, g8s : string; - c9, g, c, g1, t3, t4, t5, t6, f4, n7, d7, y1, xx3, f1, f2x, s1 : double; - s3, s4, h, f3, y2, a, det, amax : double; - col, n, n1, n2, n4, n5, n6, m, l1, l2, i3, t1, NoGoodCases : integer; - n3, j1, m1, i1, R1 : integer; - - public - { public declarations } - end; - -var - InterruptedFrm: TInterruptedFrm; - -implementation - -{ TInterruptedFrm } - -procedure TInterruptedFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - PreList.Clear; - PostList.Clear; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - PreOutBtn.Visible := false; - PostOutBtn.Visible := false; - PreInBtn.Visible := true; - PostInBtn.Visible := true; -end; - -procedure TInterruptedFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(Self); -end; - -procedure TInterruptedFrm.ComputeBtnClick(Sender: TObject); -label 300; -var - i, i2, j, j2, j3, k : integer; - ColNoSelected : IntDyneVec; - rxy : DblDyneVec; - heading : string; -begin - g1s := 't..change in level '; - g2s := 't..change in slope '; - g3s := 'scaled posterior '; - g4s := 'lower 99 percent '; - g5s := 'lower 95 percent '; - g6s := 'delta '; - g7s := 'upper 95 percent '; - g8s := 'upper 99 percent '; - c9 := 1.0E-15; - n1 := 0; - n2 := 0; - g := 0.01; - NoGoodCases := 0; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Interrupted Time Series Analysis'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Adapted from the Fortran program written by Glass and Maguire'); - OutPutFrm.RichEdit.Lines.Add('and based on Box and Tiao IMA(1,1) procedure. Published in'); - OutPutFrm.RichEdit.Lines.Add('How To Do Psychotherapy and How to Evaluate It by'); - OutPutFrm.RichEdit.Lines.Add('John M. Gottman and Sandra R. Leiblum, Holt, Rinehart and '); - OutPutFrm.RichEdit.Lines.Add('Winston, Inc., New York, 1974.'); - OutPutFrm.RichEdit.Lines.Add(''); - n1 := PreList.Items.Count; - n2 := PostList.Items.Count; - t1 := n1 + n2; - if t1 < 5 then - begin - ShowMessage('There must be more than 4 total values in the series.'); - exit; - end; - // allocate space - SetLength(z,t1); - SetLength(y,t1); - SetLength(x,t1,4); - SetLength(ColNoSelected,t1); - SetLength(rxy,t1); - - // Get column numbers of variables selected - for i := 1 to n1 do - begin - for j := 1 to NoVariables do - begin - if PreList.Items.Strings[i-1] = OS3MainFrm.DataGrid.Cells[j,0] then - ColNoSelected[i-1] := j; - end; - end; - for i := 1 to n2 do - begin - for j := 1 to NoVariables do - begin - if PostList.Items.Strings[i-1] = OS3MainFrm.DataGrid.Cells[j,0] then - ColNoSelected[n1+i-1] := j; - end; - end; - - // read pre and post values - average for the cases - for j := 0 to t1-1 do z[j] := 0.0; - for i := 1 to NoCases do - begin - if NOT GoodRecord(i,t1,ColNoSelected) then continue; - for j := 0 to t1-1 do - begin - col := ColNoSelected[j]; - z[j] := z[j] + StrToFloat(OS3MainFrm.DataGrid.Cells[col,i]); - NoGoodCases := NoGoodCases + 1; - end; - end; - for j := 0 to t1-1 do z[j] := z[j] / NoGoodCases; - - // plot correlograms - for j3 := 1 to 4 do - begin - case j3 of - 1 : begin - f1s := 'Pre-Treatment Data'; - n4 := n1; - l1 := 1; - l2 := n1; - OutPutFrm.RichEdit.Lines.Add('Correlogram of Pre-Treatment Raw Data'); - heading := 'Correlogram of Pre-Treatment Raw Data'; - i2 := 0; - for i := l1 to l2 do - begin - i2 := i2 + 1; - y[i2-1] := z[i-1]; - end; - end; - 2 : begin - f1s := 'Post-Treatment Data'; - n4 := n2; - l1 := n1 + 1; - l2 := t1; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Correlogram of Post-Treatment Raw Data'); - heading := 'Correlogram of Post-Treatment Raw Data'; - i2 := 0; - for i := l1 to l2 do - begin - i2 := i2 + 1; - y[i2-1] := z[i-1]; - end; - end; - 3 : begin - f1s := 'Pre-Treatment Data'; - n4 := n1 - 1; - l1 := 1; - l2 := n1 - 1; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Correlogram of Pre-Treatment Differences'); - heading := 'Correlogram of Pre-Treatment Differences'; - i2 := 0; - for i := l1 to l2 do - begin - i2 := i2 + 1; - i3 := i + 1; - y[i2-1] := z[i3-1] - z[i-1]; - end; - end; - 4 : begin - f1s := 'Post-Treatment Data'; - n4 := n2-1; - l1 := n1 + 1; - l2 := t1 - 1; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Correlogram of Post-Treatment Differences'); - heading := 'Correlogram of Post-Treatment Differences'; - i2 := 0; - for i := l1 to l2 do - begin - i2 := i2 + 1; - i3 := i + 1; - y[i2-1] := z[i3-1] - z[i-1]; - end; - end; - end; - j2 := n4 * 3 div 4; - for k := 1 to j2 do - begin - n5 := n4 - k; - c := 0.0; - t3 := 0.0; - t4 := 0.0; - t5 := 0.0; - t6 := 0.0; - for i := 1 to n5 do - begin - n6 := i + k; - c := c + y[i-1] * y[n6-1]; - t3 := t3 + y[i-1]; - t4 := t4 + y[n6-1]; - t5 := t5 + y[i-1] * y[i-1]; - t6 := t6 + y[n6-1] * y[n6-1]; - end; - f4 := n5; - n7 := c - (t3 * t4) / f4; - d7 := (t5 - (t3 * t3) / f4) * (t6 - (t4 * t4) / f4); - if d7 > 0.0 then - begin - d7 := sqrt(d7); - r[k] := n7 / d7; - end - else r[k] := 1.0; - pl := format('lag %3d r %4.2f',[k,r[k]]); - OutPutFrm.RichEdit.Lines.Add(pl); - end; // next k - s4 := 1; - n := 1; - m := j2; - for i := 1 to j2 do x4[i,1] := r[i]; -// plotit(Self); - if CorrChk.Checked then - begin - rxy[0] := 0.0; - for i := 1 to j2 do rxy[i] := r[i]; - AutoPlotFrm.PlotPartCors := false; - AutoPlotFrm.PlotLimits := false; - AutoPlotFrm.correlations := rxy; - AutoPlotFrm.partcors := rxy; - AutoPlotFrm.uplimit := 0.99; - AutoPlotFrm.lowlimit := -0.99; - AutoPlotFrm.npoints := j2+1; - AutoPlotFrm.DepVarEdit := heading; - AutoPlotFrm.ShowModal; - end; - end; // next j3 - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - // Now do the analysis - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(' residual t for change in t for'); - OutPutFrm.RichEdit.Lines.Add(' gamma variance level level level change'); -300: - y[0] := z[0]; - for i := 1 to t1-1 do - begin - i1 := i - 1; - y1 := abs(y[i1]); - if (y1 - c9) <= 0.0 then y[i] := z[i] - z[i1] - else if (y1 - 0.000001) > 0 then y[i] := (z[i] - z[i1]) + (1.0 - g) * y[i1]; - g1 := abs(1.0 - g); - if (g1 - 0.001) > 0 then y[i] := (z[i] - z[i1]) + (1.0 - g) * y[i1] - else y[i] := z[i] - z[i1]; - end; - for i := 0 to t1 - 1 do x[i,0] := 1; - for i := 1 to n1 do x[i-1,1] := 0.0; - for i := n1 + 1 to t1 do x[i-1,1] := 1.0; - x[0,2] := 1.0; - x[1,2] := 1.0 - g; - for i := 2 to t1-1 do - begin - i1 := i - 1; - x[i,2] := x[1,2] * x[i1,2]; - xx3 := abs(x[i,2]); - if (c9 - xx3) <= 0.0 then continue; - x[i,2] := 0.0; - end; - for i := 1 to n1 do x[i-1,3] := 0.0; - for i := n1 to t1-1 do - begin - i1 := i-n1; - x[i,3] := x[i1,2]; - xx3 := abs(x[i,3]); - if (c9 - xx3) <= 0.0 then continue; - x[i,3] := 0.0; - end; - for i := 1 to 4 do - begin - for j := 1 to 4 do - begin - x2[i,j] := 0.0; - x1[i,j] := 0.0; - end; - end; - for i := 1 to 4 do - for j := 1 to 4 do - for k := 1 to t1 do - x2[i,j] := x2[i,j] + x[k-1,i-1] * x[k-1,j-1]; - for i := 1 to 4 do - for j := 1 to 4 do - x1[i,j] := x2[i,j]; - for i := 1 to 4 do x3[i] := 0.0; - for i := 1 to 4 do - for j := 1 to t1 do - x3[i] := x3[i] + x[j-1,i-1] * y[j-1]; - for i := 1 to 4 do b[i,1] := x3[i]; - matinverse(Self); - for i := 1 to 4 do t[i] := b[i,1]; - for i := 1 to 4 do s[i] := x1[i,i]; - f1 := t1; - y1 := 0.0; - for i := 0 to t1-1 do - begin - y1 := y1 + y[i] * y[i]; - end; - for i := 1 to 4 do x3[i] := 0.0; - for j := 1 to 4 do - for i := 1 to 4 do - begin - x3[j] := x3[j] + t[i] * x2[i,j]; - end; - f2x := 0.0; - for i := 1 to 4 do - begin - f2x := f2x + x3[i] * t[i]; - end; - s1 := y1 - f2x; - s1 := s1 / (f1 - 4.0); - for i := 1 to 4 do - begin - s[i] := sqrt(s1 * s[i]); - t2[i] := t[i] / s[i]; - end; - s3 := ln(s1); - det := ln(det); - h := (-0.5 * det) - (0.5 * (f1 - 4.0) * s3); - h := 0.4342945 * h; - j1 := j1 + 1; - x5[j1,1] := g; - x5[j1,2] := s1; - x5[j1,3] := t[3]; - x5[j1,4] := t2[3]; - x5[j1,5] := t[4]; - x5[j1,6] := t2[4]; - x5[j1,7] := t[1]; - x5[j1,8] := t2[1]; - x5[j1,9] := t[2]; - x5[j1,10] := t2[2]; - if (t1 - 30) >= 0 then - begin - d[j1,1] := t[4] - 2.58 * s[4]; - d[j1,2] := t[4] - 1.96 * s[4]; - d[j1,3] := t[4]; - d[j1,4] := t[4] + 1.96 * s[4]; - d[j1,5] := t[4] + 2.58 * s[4]; - end; - n3 := n3 + 1; - p[n3] := h; - g := g + 0.04; - if (n3 - 49) <= 0 then goto 300; - f3 := p[1]; - for i := 2 to 49 do if (f3 - p[i]) < 0 then f3 := p[i]; - for i := 1 to 49 do - begin - p[i] := p[i] - f3; - y2 := abs(p[i]); - if (y2 - 35) >= 0 then p[i] := 0.0 - else begin - p[i] := p[i] / 0.4342945; - p[i] := exp(p[i]); - end; - end; - a := 0.0; - for i := 2 to 49 do - begin - i2 := i - 1; - a := a + 0.005 * (p[i] + p[i1]); - end; - for i := 1 to 49 do p[i] := p[i] / a; - for i := 1 to 49 do x5[i,11] := p[i]; - for i := 1 to 49 do - begin - pl := format('%2d ',[i]); - for j := 1 to 6 do - pl := pl + format('%6.2f ',[x5[i,j]]); - OutPutFrm.RichEdit.Lines.Add(pl); - end; - - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(''); - pl := ' t for change in t for scaled'; - OutPutFrm.RichEdit.Lines.Add(pl); - pl := ' slope slope slope change posterior'; - OutPutFrm.RichEdit.Lines.Add(pl); - for i := 1 to 49 do - begin - pl := format('%2d ',[i]); - for j := 7 to 11 do - pl := pl + format('%6.2f ',[x5[i,j]]); - OutPutFrm.RichEdit.Lines.Add(pl); - end; - - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(''); - for i := 1 to 49 do - begin - x4[i,1] := x5[i,5]; - x4[i,2] := x5[i,9]; - x4[i,3] := x5[i,11]; - end; - m := 49; - n := 3; - i3 := 1; - f1s := g1s + g2s + g3s; - PlotFuncs(Self); - plotit(Self); // plot the f[i,j] values - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - n := 5; - if (t1 - 30) >= 0 then - begin // do confidence intervals around delta - for i := 1 to 49 do - for j := 1 to 5 do - x4[i,j] := d[i,j]; - f1s := g4s + g5s + g6s + g7s + g8s; - pl := 'Confidence Intervals Around Delta'; - OutPutFrm.RichEdit.Lines.Add(pl); - pl := 'gamma lower 99 lower 95 delta upper 95 upper 99'; - OutPutFrm.RichEdit.Lines.Add(pl); - for i := 1 to 49 do - begin - pl := format('%6.2f ',[x5[i,1]]); - for j := 1 to 5 do - pl := pl + format('%6.2f ',[d[i,j]]); - OutPutFrm.RichEdit.Lines.Add(pl); - end; - OutPutFrm.RichEdit.Lines.Add(''); - pl := 'Graph of Confidence Intervals Around Delta Hat'; - OutPutFrm.RichEdit.Lines.Add(pl); - plotit(Self); // plot f matrix - end; - - OutPutFrm.ShowModal; - - // clean up - rxy := nil; - ColNoSelected := nil; - x := nil; - y := nil; - z := nil; -end; - -procedure TInterruptedFrm.PostInBtnClick(Sender: TObject); -VAR i, index : integer; -begin - index := VarList.Items.Count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - PostList.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - PostOutBtn.Visible := true; - if VarList.Items.Count = 0 then PostInBtn.Visible := false; -end; - -procedure TInterruptedFrm.PostOutBtnClick(Sender: TObject); -VAR index : integer; -begin - index := PostList.ItemIndex; - if index >= 0 then - begin - VarList.Items.Add(PostList.Items.Strings[index]); - PostList.Items.Delete(index); - PostInBtn.Visible := true; - if PostList.Items.Count = 0 then PostOutBtn.Visible := false; - end; -end; - -procedure TInterruptedFrm.PreInBtnClick(Sender: TObject); -VAR i, index : integer; -begin - index := VarList.Items.count; - i := 0; - while i < index do - begin - if (VarList.Selected[i]) then - begin - PreList.Items.Add(VarList.Items.Strings[i]); - VarList.Items.Delete(i); - index := index - 1; - i := 0; - end - else i := i + 1; - end; - PreOutBtn.Visible := true; - if VarList.Items.Count = 0 then PreInBtn.Visible := false; -end; - -procedure TInterruptedFrm.PreOutBtnClick(Sender: TObject); -VAR index : integer; -begin - index := PreList.ItemIndex; - if index >= 0 then - begin - VarList.Items.Add(PreList.Items.Strings[index]); - PreList.Items.Delete(index); - PreInBtn.Visible := true; - if PreList.Items.Count = 0 then PreOutBtn.Visible := false; - end; -end; - -procedure TInterruptedFrm.matinverse(Sender: TObject); -var - i, j, j2, j4, k, L, Lc : integer; - temp : double; -begin - //Matrix inverse and determinant - - det := 1; - m1 := 1; - N := 4; - For i := 1 To 4 do - begin - p1[i] := 0.0; - For j := 1 To 2 do ii3[i, j] := 0.0; - end; - For i := 1 To N do - begin - amax := 0.0; - For j := 1 To N do - begin - If (p1[j] - 1) <> 0 Then - begin - For k := 1 To N do - begin - If (p1[k] - 1) <> 0 Then - begin - If (p1[k] - 1) > 0 Then Exit; - If Abs(amax) - Abs(x1[j, k]) <= 0 Then - begin - R1 := j; - i1 := k; - amax := x1[j, k]; - End; - End; - end; - End; - end; - p1[i1] := p1[i1] + 1; - If (R1 - i1) <> 0 Then //Swap - begin - det := -det; - For L := 1 To N do - begin - s4 := x1[R1, L]; - x1[R1, L] := x1[i1, L]; - x1[i1, L] := s4; - end; - If m1 > 0 Then //Swap - begin - For L := 1 To m1 do - begin - s4 := b[R1, L]; - b[R1, L] := b[i1, L]; - b[i1, L] := s4; - end; - End; - End; - ii3[i, 1] := R1; - ii3[i, 2] := i1; - p2[i] := x1[i1, i1]; - det := det * p2[i]; - If p2[i] = 0 Then - begin - ShowMessage('A singular matrix was found.'); - Exit; - End; - x1[i1, i1] := 1; - For L := 1 To N do - begin - x1[i1, L] := x1[i1, L] / p2[i]; - end; - If m1 > 0 Then - begin - For L := 1 To m1 do - begin - b[i1, L] := b[i1, L] / p2[i]; - end; - End; - For Lc := 1 To N do - begin - If (Lc - i1) <> 0 Then - begin - temp := x1[Lc,i1]; - x1[L1,i1] := 0.0; - For L := 1 To N do - begin - x1[Lc,L] := x1[Lc,L] - x1[i1,L] * temp; - end; - If m1 > 0 Then - begin - For L := 1 To m1 do - b[L1, L] := b[L1, L] - b[i1, L] * temp; - End; - End; - end; - end; - For i := 1 To N do - begin - L := N + 1 - i; - If (ii3[L, 1] - ii3[L, 2]) <> 0 Then - begin - j2 := round(ii3[L, 1]); - j4 := round(ii3[L, 2]); - For k := 1 To N do - begin - s4 := x1[k, j2]; - x1[k, j2] := x1[k, j4]; - x1[k, j4] := s4; - end; - End; - end; -end; -//-------------------------------------------------------------------- - -procedure TInterruptedFrm.plotit( Sender: TObject); -label 2180, 2660; -var - i, i2, ip, j, k, L, n8 : integer; - bstr, p1str, p2str : string; - c5, z2 : double; - -begin - For i := 1 To N do - begin - a1[i] := 1E+37; - a2[i] := -1E+37; - end; - bstr := '153510cmha'; - For i := 1 To M do - begin - For j := 1 To N do - begin - c5 := x4[i, j] - a1[j]; - If c5 >= 0 Then goto 2180; - a1[j] := x4[i, j]; -2180: c5 := x4[i, j] - a2[j]; - If c5 <= 0 Then continue; - a2[j] := x4[i, j]; - end; - end; - If (N - 5) = 0 Then - begin - For j := 1 To 5 do - begin - a2[j] := a2[5]; - a1[j] := a1[1]; - end; - End; - n8 := N; - For j := 1 To N do - begin - r2[j] := (a2[j] - a1[j]) / 55; - end; - For j := 1 To N do - begin - e[j] := (a2[j] - a1[j]) / 4; - f2[1, j] := a1[j] + 0.05; - c5 := a1[j]; - If c5 < 0 Then - begin - f2[1, j] := f2[1, j] - 0.1; - End; - f2[5, j] := a2[j] - 0.05; - c5 := a2[j]; - If c5 < 0 Then - begin - f2[5, j] := f2[5, j] - 0.1; - End; - f2[2, j] := a1[j] + e[j] + 0.05; - c5 := f2[2, j]; - If c5 < 0 Then - begin - f2[2, j] := f2[2, j] - 0.1; - End; - f2[3, j] := a1[j] + e[j] * 2 + 0.05; - c5 := f2[3, j]; - If c5 < 0 Then - begin - f2[3, j] := f2[3, j] - 0.1; - End; - f2[4, j] := a2[j] - e[j] + 0.05; - c5 := f2[4, j]; - If c5 < 0 Then - begin - f2[4, j] := f2[4, j] - 0.1; - End; - end; - - For j := 1 To n8 do - begin - pl := bstr[j] + ' '; - For i := 1 To 5 do - begin - pl := pl + format('%6.2f ',[f2[i,j]]); - end; - pl := pl + copy(bstr, j, 1); - OutPutFrm.RichEdit.Lines.Add(pl); - end; - pl := ''; - OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------'); - - for i2 := 1 to 73 do - begin - p2str := p2str + ' '; - p1str := p1str + ' '; - end; - For i := 1 To M do - begin - For i2 := 1 To 72 do p1str[i2] := ' '; - k := 0; - p1str[1] := '.'; - For i2 := 1 To 5 do - begin - k := k + 14; - p1str[k] := '.'; - end; - n7 := i; - while N7 >= 0 do - begin - n7 := n7 - 10; - end; - If n7 >= 0 Then - begin - k := 3; - p1str[k] := '-'; - For i2 := 3 To 30 do - begin - k := k + 2; - p1str[k] := '-'; - end; - End; - For k := 1 To N do - begin - If r2[k] > 0 Then - z2 := (x4[i, k] - a1[k]) / r2[k] + 1 - Else z2 := 0; - L := round(z2); - If (L - 1) < 0 Then L := 1; - If (55 - L) < 0 Then L := 55; - If (p1str[L] = ' ') Or (p1str[L] = '.') Or (p1str[L] = '-') Then - begin - p2str[k] := bstr[k]; - p1str[L] := p2str[k]; - end - Else begin - p1str[L] := '+'; - End; - end; - If (s4 - 1) = 0 Then goto 2660; - OutPutFrm.RichEdit.Lines.Add(''); -2660: - pl := format('%2d. ',[i]); - For ip := 1 To 55 do pl := pl + p1str[ip]; - pl := pl + format('. %2d',[i]); - OutPutFrm.RichEdit.Lines.Add(pl); - end; - OutPutFrm.RichEdit.Lines.Add('----------------------------------------------------------------------'); - OutPutFrm.RichEdit.Lines.Add(''); - For j := 1 To n8 do - begin - pl := bstr[j] + ' '; - For i := 1 To 5 do - begin - pl := pl + format('%6.2f ',[f2[i,j]]); - end; - pl := pl + bstr[j]; - OutPutFrm.RichEdit.Lines.Add(pl); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(' Plot Description'); - OutPutFrm.RichEdit.Lines.Add('title character minimum maximum resolution'); - - For j := 1 To N do - begin - pl := copy(f1s,j*20-19,20); - pl := pl + ' ' + bstr[j]; - pl := pl + ' ' + format('%6.2f',[a1[j]]); - pl := pl + ' ' + format('%6.2f',[a2[j]]); - pl := pl + ' ' + format('%6.2f',[r2[j]]); - OutPutFrm.RichEdit.Lines.Add(pl); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(''); -end; -//------------------------------------------------------------------- - -procedure TInterruptedFrm.PlotFuncs(Sender: TObject); -var - i, j : integer; - title : string; - gamma : double; -begin - // Allocate space for point sets of means - SetLength(GraphFrm.Ypoints,3,50); - SetLength(GraphFrm.Xpoints,3,50); - // store points for means - gamma := 0.0; - for i := 1 to 49 do - begin - for j := 1 to 3 do - begin - GraphFrm.Ypoints[j-1,i-1] := x4[i,j]; - GraphFrm.Xpoints[j-1,i-1] := gamma; - end; - gamma := gamma + 0.04; - end; - title := 'Plot of ts for change in level and slope and posterior'; - GraphFrm.nosets := 3; - GraphFrm.nbars := 49; - GraphFrm.Heading := title; - GraphFrm.SetLabels[1] := 'level'; - GraphFrm.SetLabels[2] := 'slope'; - GraphFrm.SetLabels[3] := 'posterior'; - GraphFrm.XTitle := 'Gamma Increment'; - GraphFrm.YTitle := 't'; - GraphFrm.barwideprop := 0.5; - GraphFrm.AutoScale := true; - GraphFrm.GraphType := 5; // 2d line chart - GraphFrm.BackColor := clYellow; - GraphFrm.WallColor := clBlack; - GraphFrm.FloorColor := clLtGray; - GraphFrm.ShowBackWall := true; - GraphFrm.ShowModal; - - GraphFrm.Xpoints := nil; - GraphFrm.Ypoints := nil; -end; - -initialization - {$I interruptedunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/inversezunit.lfm b/applications/lazstats/source_orig/inversezunit.lfm deleted file mode 100644 index 020d8db59..000000000 --- a/applications/lazstats/source_orig/inversezunit.lfm +++ /dev/null @@ -1,80 +0,0 @@ -object InversezForm: TInversezForm - Left = 288 - Height = 179 - Top = 161 - Width = 320 - Caption = 'Normal z for a given probability' - ClientHeight = 179 - ClientWidth = 320 - OnShow = ResetBtnClick - LCLVersion = '0.9.30' - object Label1: TLabel - Left = 9 - Height = 16 - Top = 13 - Width = 136 - Caption = 'Cumulative Probability = ' - ParentColor = False - end - object ProbEdit: TEdit - Left = 153 - Height = 23 - Top = 7 - Width = 65 - TabOrder = 0 - Text = 'ProbEdit' - end - object Label2: TLabel - Left = 8 - Height = 16 - Top = 46 - Width = 144 - Caption = 'Corresponds to a z value = ' - ParentColor = False - end - object ZEdit: TEdit - Left = 154 - Height = 23 - Top = 39 - Width = 65 - TabOrder = 1 - Text = 'ZEdit' - end - object CancelBtn: TButton - Left = 8 - Height = 33 - Top = 80 - Width = 82 - Cancel = True - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 2 - end - object ResetBtn: TButton - Left = 113 - Height = 33 - Top = 80 - Width = 82 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 3 - end - object ComputeBtn: TButton - Left = 216 - Height = 33 - Top = 80 - Width = 82 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 4 - end - object ReturnBtn: TButton - Left = 115 - Height = 33 - Top = 130 - Width = 77 - Caption = 'Return' - ModalResult = 1 - TabOrder = 5 - end -end diff --git a/applications/lazstats/source_orig/inversezunit.lrs b/applications/lazstats/source_orig/inversezunit.lrs deleted file mode 100644 index f2a19e094..000000000 --- a/applications/lazstats/source_orig/inversezunit.lrs +++ /dev/null @@ -1,23 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TInversezForm','FORMDATA',[ - 'TPF0'#13'TInversezForm'#12'InversezForm'#4'Left'#3' '#1#6'Height'#3#179#0#3 - +'Top'#3#161#0#5'Width'#3'@'#1#7'Caption'#6' Normal z for a given probability' - +#12'ClientHeight'#3#179#0#11'ClientWidth'#3'@'#1#6'OnShow'#7#13'ResetBtnClic' - +'k'#10'LCLVersion'#6#6'0.9.30'#0#6'TLabel'#6'Label1'#4'Left'#2#9#6'Height'#2 - +#16#3'Top'#2#13#5'Width'#3#136#0#7'Caption'#6#25'Cumulative Probability = ' - +#11'ParentColor'#8#0#0#5'TEdit'#8'ProbEdit'#4'Left'#3#153#0#6'Height'#2#23#3 - +'Top'#2#7#5'Width'#2'A'#8'TabOrder'#2#0#4'Text'#6#8'ProbEdit'#0#0#6'TLabel'#6 - +'Label2'#4'Left'#2#8#6'Height'#2#16#3'Top'#2'.'#5'Width'#3#144#0#7'Caption'#6 - +#27'Corresponds to a z value = '#11'ParentColor'#8#0#0#5'TEdit'#5'ZEdit'#4'L' - +'eft'#3#154#0#6'Height'#2#23#3'Top'#2''''#5'Width'#2'A'#8'TabOrder'#2#1#4'Te' - +'xt'#6#5'ZEdit'#0#0#7'TButton'#9'CancelBtn'#4'Left'#2#8#6'Height'#2'!'#3'Top' - +#2'P'#5'Width'#2'R'#6'Cancel'#9#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8 - +'TabOrder'#2#2#0#0#7'TButton'#8'ResetBtn'#4'Left'#2'q'#6'Height'#2'!'#3'Top' - +#2'P'#5'Width'#2'R'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'T' - +'abOrder'#2#3#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#216#0#6'Height'#2'!'#3 - +'Top'#2'P'#5'Width'#2'R'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnC' - +'lick'#8'TabOrder'#2#4#0#0#7'TButton'#9'ReturnBtn'#4'Left'#2's'#6'Height'#2 - +'!'#3'Top'#3#130#0#5'Width'#2'M'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8 - +'TabOrder'#2#5#0#0#0 -]); diff --git a/applications/lazstats/source_orig/inversezunit.pas b/applications/lazstats/source_orig/inversezunit.pas deleted file mode 100644 index f5a3dd629..000000000 --- a/applications/lazstats/source_orig/inversezunit.pas +++ /dev/null @@ -1,60 +0,0 @@ -unit InversezUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, functionslib; - -type - - { TInversezForm } - - TInversezForm = class(TForm) - CancelBtn: TButton; - ComputeBtn: TButton; - ResetBtn: TButton; - ReturnBtn: TButton; - ZEdit: TEdit; - Label2: TLabel; - ProbEdit: TEdit; - Label1: TLabel; - procedure ComputeBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - InversezForm: TInversezForm; - -implementation - -{ TInversezForm } - -procedure TInversezForm.ResetBtnClick(Sender: TObject); -begin - ProbEdit.Text := ''; - ZEdit.Text := ''; -end; - -procedure TInversezForm.ComputeBtnClick(Sender: TObject); -VAR - Prob, Zscore : double; - outvalue : string; -begin - Prob := StrToFloat(ProbEdit.Text); - Zscore := inversez(Prob); - outvalue := format('%6.4f',[Zscore]); - ZEdit.Text := outvalue; -end; - -initialization - {$I inversezunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/itembankingunit.lfm b/applications/lazstats/source_orig/itembankingunit.lfm deleted file mode 100644 index 07e76826a..000000000 --- a/applications/lazstats/source_orig/itembankingunit.lfm +++ /dev/null @@ -1,245 +0,0 @@ -object ItemBankFrm: TItemBankFrm - Left = 139 - Height = 565 - Top = 107 - Width = 346 - Caption = 'Item Banking' - ClientHeight = 545 - ClientWidth = 346 - Menu = MainMenu1 - OnCreate = FormCreate - OnShow = FormShow - LCLVersion = '0.9.30.4' - object Label1: TLabel - Left = 10 - Height = 16 - Top = 40 - Width = 86 - Caption = 'No. Item Codes:' - ParentColor = False - end - object NItemCodesText: TEdit - Left = 156 - Height = 23 - Top = 32 - Width = 44 - TabOrder = 0 - end - object BankNameLabel: TLabel - Left = 8 - Height = 16 - Top = 8 - Width = 92 - Caption = 'Item Bank Name:' - ParentColor = False - end - object BankNameText: TEdit - Left = 112 - Height = 23 - Top = 0 - Width = 224 - TabOrder = 1 - end - object NMCItemsLabel: TLabel - Left = 8 - Height = 16 - Top = 72 - Width = 142 - Caption = 'No. Multiple Choice Items:' - ParentColor = False - end - object NMCItemsText: TEdit - Left = 156 - Height = 23 - Top = 64 - Width = 44 - TabOrder = 2 - end - object TFItemsLabel: TLabel - Left = 8 - Height = 16 - Top = 104 - Width = 113 - Caption = 'No. True-False Items:' - ParentColor = False - end - object NTFItemsText: TEdit - Left = 156 - Height = 23 - Top = 96 - Width = 44 - TabOrder = 3 - end - object NMatchLabel: TLabel - Left = 8 - Height = 16 - Top = 136 - Width = 109 - Caption = 'No. Matching Items:' - ParentColor = False - end - object NMatchItemsText: TEdit - Left = 156 - Height = 23 - Top = 128 - Width = 44 - TabOrder = 4 - end - object NEssayLabel: TLabel - Left = 8 - Height = 16 - Top = 167 - Width = 86 - Caption = 'No. Essay Items:' - ParentColor = False - end - object NEssayText: TEdit - Left = 156 - Height = 23 - Top = 160 - Width = 44 - TabOrder = 5 - end - object FilesLabel: TLabel - Left = 16 - Height = 16 - Top = 320 - Width = 24 - Caption = 'Files' - ParentColor = False - end - object FileListBox1: TFileListBox - Left = 16 - Height = 188 - Top = 344 - Width = 267 - Directory = 'C:\Users\wgmiller\Desktop' - ItemHeight = 15 - TabOrder = 6 - end - object Button1: TButton - Left = 15 - Height = 19 - Top = 272 - Width = 305 - Caption = 'Click to Change Directory to Options Default Directory' - OnClick = Button1Click - TabOrder = 7 - end - object DirectoryEdit1: TEdit - Left = 16 - Height = 23 - Top = 296 - Width = 267 - TabOrder = 8 - Text = 'DirectoryEdit1' - end - object Label2: TLabel - Left = 10 - Height = 16 - Top = 200 - Width = 79 - Caption = 'Test Specified?' - ParentColor = False - end - object TestSpecifiedEdit: TEdit - Left = 156 - Height = 23 - Top = 192 - Width = 44 - TabOrder = 9 - end - object Label3: TLabel - Left = 9 - Height = 16 - Top = 231 - Width = 74 - Caption = 'No. Specified:' - ParentColor = False - end - object NSpecifiedEdit: TEdit - Left = 157 - Height = 23 - Top = 226 - Width = 43 - TabOrder = 10 - Text = 'NSpecifiedEdit' - end - object MainMenu1: TMainMenu - left = 272 - top = 72 - object MenuItem1: TMenuItem - Caption = 'Item Bank' - object OpenItemBank: TMenuItem - Caption = 'Open an existing item bank' - OnClick = OpenItemBankClick - end - object NewItemBank: TMenuItem - Caption = 'Create a new item bank' - OnClick = NewItemBankClick - end - object SaveBankMenu: TMenuItem - Caption = 'Save Current Item Bank' - OnClick = SaveBankMenuClick - end - object ExitThis: TMenuItem - Caption = 'Exit this procedure' - OnClick = ExitThisClick - end - end - object Operations: TMenuItem - Caption = 'Operations' - object CreateCodes: TMenuItem - Caption = 'Create Item Content Codes' - OnClick = CreateCodesClick - end - object ShowCodes: TMenuItem - Caption = 'Display all codes' - OnClick = ShowCodesClick - end - object MCItems: TMenuItem - Caption = 'Create or Edit Multiple Choice Items' - OnClick = MCItemsClick - end - object TFItems: TMenuItem - Caption = 'Create or Edit True-False Items' - OnClick = TFItemsClick - end - object MatchingItems: TMenuItem - Caption = 'Create or Edit Matching Items' - OnClick = MatchingItemsClick - end - object EssayItems: TMenuItem - Caption = 'Create or Edit Essay Items' - OnClick = EssayItemsClick - end - end - object TestOptions: TMenuItem - Caption = 'Test Options' - object TestSpecs: TMenuItem - Caption = 'Specify a test''s Contents' - OnClick = TestSpecsClick - end - object ListItems: TMenuItem - Caption = 'List all test items' - OnClick = ListItemsClick - end - object PrintTest: TMenuItem - Caption = 'Print a test to administer' - OnClick = PrintTestClick - end - end - end - object OpenDialog1: TOpenDialog - left = 272 - top = 184 - end - object SaveDialog1: TSaveDialog - left = 272 - top = 128 - end - object SelDir: TSelectDirectoryDialog - left = 208 - top = 184 - end -end diff --git a/applications/lazstats/source_orig/itembankingunit.lrs b/applications/lazstats/source_orig/itembankingunit.lrs deleted file mode 100644 index c75e3995a..000000000 --- a/applications/lazstats/source_orig/itembankingunit.lrs +++ /dev/null @@ -1,65 +0,0 @@ -LazarusResources.Add('TItemBankFrm','FORMDATA',[ - 'TPF0'#12'TItemBankFrm'#11'ItemBankFrm'#4'Left'#3#139#0#6'Height'#3'5'#2#3'To' - +'p'#2'k'#5'Width'#3'Z'#1#7'Caption'#6#12'Item Banking'#12'ClientHeight'#3'!' - +#2#11'ClientWidth'#3'Z'#1#4'Menu'#7#9'MainMenu1'#8'OnCreate'#7#10'FormCreate' - +#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#8'0.9.30.4'#0#6'TLabel'#6'Label1'#4 - +'Left'#2#10#6'Height'#2#16#3'Top'#2'('#5'Width'#2'V'#7'Caption'#6#15'No. Ite' - +'m Codes:'#11'ParentColor'#8#0#0#5'TEdit'#14'NItemCodesText'#4'Left'#3#156#0 - +#6'Height'#2#23#3'Top'#2' '#5'Width'#2','#8'TabOrder'#2#0#0#0#6'TLabel'#13'B' - +'ankNameLabel'#4'Left'#2#8#6'Height'#2#16#3'Top'#2#8#5'Width'#2'\'#7'Caption' - +#6#15'Item Bank Name:'#11'ParentColor'#8#0#0#5'TEdit'#12'BankNameText'#4'Lef' - +'t'#2'p'#6'Height'#2#23#3'Top'#2#0#5'Width'#3#224#0#8'TabOrder'#2#1#0#0#6'TL' - +'abel'#13'NMCItemsLabel'#4'Left'#2#8#6'Height'#2#16#3'Top'#2'H'#5'Width'#3 - +#142#0#7'Caption'#6#26'No. Multiple Choice Items:'#11'ParentColor'#8#0#0#5'T' - +'Edit'#12'NMCItemsText'#4'Left'#3#156#0#6'Height'#2#23#3'Top'#2'@'#5'Width'#2 - +','#8'TabOrder'#2#2#0#0#6'TLabel'#12'TFItemsLabel'#4'Left'#2#8#6'Height'#2#16 - +#3'Top'#2'h'#5'Width'#2'q'#7'Caption'#6#21'No. True-False Items:'#11'ParentC' - +'olor'#8#0#0#5'TEdit'#12'NTFItemsText'#4'Left'#3#156#0#6'Height'#2#23#3'Top' - +#2'`'#5'Width'#2','#8'TabOrder'#2#3#0#0#6'TLabel'#11'NMatchLabel'#4'Left'#2#8 - +#6'Height'#2#16#3'Top'#3#136#0#5'Width'#2'm'#7'Caption'#6#19'No. Matching It' - +'ems:'#11'ParentColor'#8#0#0#5'TEdit'#15'NMatchItemsText'#4'Left'#3#156#0#6 - +'Height'#2#23#3'Top'#3#128#0#5'Width'#2','#8'TabOrder'#2#4#0#0#6'TLabel'#11 - +'NEssayLabel'#4'Left'#2#8#6'Height'#2#16#3'Top'#3#167#0#5'Width'#2'V'#7'Capt' - +'ion'#6#16'No. Essay Items:'#11'ParentColor'#8#0#0#5'TEdit'#10'NEssayText'#4 - +'Left'#3#156#0#6'Height'#2#23#3'Top'#3#160#0#5'Width'#2','#8'TabOrder'#2#5#0 - +#0#6'TLabel'#10'FilesLabel'#4'Left'#2#16#6'Height'#2#16#3'Top'#3'@'#1#5'Widt' - +'h'#2#24#7'Caption'#6#5'Files'#11'ParentColor'#8#0#0#12'TFileListBox'#12'Fil' - +'eListBox1'#4'Left'#2#16#6'Height'#3#188#0#3'Top'#3'X'#1#5'Width'#3#11#1#9'D' - +'irectory'#6#25'C:\Users\wgmiller\Desktop'#10'ItemHeight'#2#15#8'TabOrder'#2 - +#6#0#0#7'TButton'#7'Button1'#4'Left'#2#15#6'Height'#2#19#3'Top'#3#16#1#5'Wid' - +'th'#3'1'#1#7'Caption'#6'6Click to Change Directory to Options Default Direc' - +'tory'#7'OnClick'#7#12'Button1Click'#8'TabOrder'#2#7#0#0#5'TEdit'#14'Directo' - +'ryEdit1'#4'Left'#2#16#6'Height'#2#23#3'Top'#3'('#1#5'Width'#3#11#1#8'TabOrd' - +'er'#2#8#4'Text'#6#14'DirectoryEdit1'#0#0#6'TLabel'#6'Label2'#4'Left'#2#10#6 - +'Height'#2#16#3'Top'#3#200#0#5'Width'#2'O'#7'Caption'#6#15'Test Specified?' - +#11'ParentColor'#8#0#0#5'TEdit'#17'TestSpecifiedEdit'#4'Left'#3#156#0#6'Heig' - +'ht'#2#23#3'Top'#3#192#0#5'Width'#2','#8'TabOrder'#2#9#0#0#6'TLabel'#6'Label' - +'3'#4'Left'#2#9#6'Height'#2#16#3'Top'#3#231#0#5'Width'#2'J'#7'Caption'#6#14 - +'No. Specified:'#11'ParentColor'#8#0#0#5'TEdit'#14'NSpecifiedEdit'#4'Left'#3 - +#157#0#6'Height'#2#23#3'Top'#3#226#0#5'Width'#2'+'#8'TabOrder'#2#10#4'Text'#6 - +#14'NSpecifiedEdit'#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#3#16#1#3'top'#2'H' - +#0#9'TMenuItem'#9'MenuItem1'#7'Caption'#6#9'Item Bank'#0#9'TMenuItem'#12'Ope' - +'nItemBank'#7'Caption'#6#26'Open an existing item bank'#7'OnClick'#7#17'Open' - +'ItemBankClick'#0#0#9'TMenuItem'#11'NewItemBank'#7'Caption'#6#22'Create a ne' - +'w item bank'#7'OnClick'#7#16'NewItemBankClick'#0#0#9'TMenuItem'#12'SaveBank' - +'Menu'#7'Caption'#6#22'Save Current Item Bank'#7'OnClick'#7#17'SaveBankMenuC' - +'lick'#0#0#9'TMenuItem'#8'ExitThis'#7'Caption'#6#19'Exit this procedure'#7'O' - +'nClick'#7#13'ExitThisClick'#0#0#0#9'TMenuItem'#10'Operations'#7'Caption'#6 - +#10'Operations'#0#9'TMenuItem'#11'CreateCodes'#7'Caption'#6#25'Create Item C' - +'ontent Codes'#7'OnClick'#7#16'CreateCodesClick'#0#0#9'TMenuItem'#9'ShowCode' - +'s'#7'Caption'#6#17'Display all codes'#7'OnClick'#7#14'ShowCodesClick'#0#0#9 - +'TMenuItem'#7'MCItems'#7'Caption'#6'$Create or Edit Multiple Choice Items'#7 - +'OnClick'#7#12'MCItemsClick'#0#0#9'TMenuItem'#7'TFItems'#7'Caption'#6#31'Cre' - +'ate or Edit True-False Items'#7'OnClick'#7#12'TFItemsClick'#0#0#9'TMenuItem' - +#13'MatchingItems'#7'Caption'#6#29'Create or Edit Matching Items'#7'OnClick' - +#7#18'MatchingItemsClick'#0#0#9'TMenuItem'#10'EssayItems'#7'Caption'#6#26'Cr' - +'eate or Edit Essay Items'#7'OnClick'#7#15'EssayItemsClick'#0#0#0#9'TMenuIte' - +'m'#11'TestOptions'#7'Caption'#6#12'Test Options'#0#9'TMenuItem'#9'TestSpecs' - +#7'Caption'#6#25'Specify a test''s Contents'#7'OnClick'#7#14'TestSpecsClick' - +#0#0#9'TMenuItem'#9'ListItems'#7'Caption'#6#19'List all test items'#7'OnClic' - +'k'#7#14'ListItemsClick'#0#0#9'TMenuItem'#9'PrintTest'#7'Caption'#6#26'Print' - +' a test to administer'#7'OnClick'#7#14'PrintTestClick'#0#0#0#0#11'TOpenDial' - +'og'#11'OpenDialog1'#4'left'#3#16#1#3'top'#3#184#0#0#0#11'TSaveDialog'#11'Sa' - +'veDialog1'#4'left'#3#16#1#3'top'#3#128#0#0#0#22'TSelectDirectoryDialog'#6'S' - +'elDir'#4'left'#3#208#0#3'top'#3#184#0#0#0#0 -]); diff --git a/applications/lazstats/source_orig/itembankingunit.pas b/applications/lazstats/source_orig/itembankingunit.pas deleted file mode 100644 index 3ba04de74..000000000 --- a/applications/lazstats/source_orig/itembankingunit.pas +++ /dev/null @@ -1,752 +0,0 @@ -unit ItemBankingUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - Menus, EditBtn, StdCtrls, outputunit, FileCtrl, ItemCodesUnit, OptionsUnit, - TFItemUnit, EssayItemUnit, MCItemUnit, MatchItemUnit, TestSpecsUnit; - -type - Bank = Record - BankName : string; - NMCItems : integer; - NTFItems : integer; - NMatchItems : integer; - NEssayItems : integer; - NCodes : integer; - TestItems : integer; - end; - -type - MCItem = Record - ItemNumber : integer; - MajorCode : integer; - MinorCode : integer; - NoChoices : integer; - ItemStem : string; - ChoiceOne : string; - ChoiceTwo : string; - ChoiceThree : string; - ChoiceFour : string; - ChoiceFive : string; - CorrectChoice : char; - PicName : string; - end; - -type - TFItem = Record - ItemNumber : integer; - MajorCode : integer; - MinorCode : integer; - ItemStem : string; - CorrectChoice : char; - PicName : string; - end; - -type - MatchItem = Record - ItemNumber : integer; - MajorCode : integer; - MinorCode : integer; - NLeft : integer; - NRight : integer; - Left1 : string; - Left2 : string; - Left3 : string; - Left4 : string; - Left5 : string; - Right1 : string; - Right2 : string; - Right3 : string; - Right4 : string; - Right5 : string; - CorrectChoice : char; - PicName : string; - end; - -type - EssayItem = Record - ItemNumber : integer; - MajorCode : integer; - MinorCode : integer; - ItemStem : string; - Answer : string; - PicName : string; - end; - - -type CodeData = record - codenumber : integer; - majorcodes : integer; - minorcodes : integer; - Description : string; -end; -type testspec = record - ItemNumber : integer; - MajorCode : integer; - MinorCode : integer; - ItemType : string; -end; - -type - - { TItemBankFrm } - - TItemBankFrm = class(TForm) - BankNameLabel: TLabel; - BankNameText: TEdit; - Button1: TButton; - DirectoryEdit1: TEdit; - NSpecifiedEdit: TEdit; - Label3: TLabel; - TestSpecifiedEdit: TEdit; - FileListBox1: TFileListBox; - FilesLabel: TLabel; - Label2: TLabel; - ShowCodes: TMenuItem; - OpenDialog1: TOpenDialog; - SaveBankMenu: TMenuItem; - NEssayText: TEdit; - NEssayLabel: TLabel; - NMatchItemsText: TEdit; - NMatchLabel: TLabel; - NTFItemsText: TEdit; - SaveDialog1: TSaveDialog; - SelDir: TSelectDirectoryDialog; - TFItemsLabel: TLabel; - NMCItemsText: TEdit; - NMCItemsLabel: TLabel; - NItemCodesText: TEdit; - Label1: TLabel; - MainMenu1: TMainMenu; - MenuItem1: TMenuItem; - MCItems: TMenuItem; - MatchingItems: TMenuItem; - EssayItems: TMenuItem; - ListItems: TMenuItem; - ExitThis: TMenuItem; - CreateCodes: TMenuItem; - PrintTest: TMenuItem; - TestSpecs: TMenuItem; - TestOptions: TMenuItem; - TFItems: TMenuItem; - Operations: TMenuItem; - NewItemBank: TMenuItem; - OpenItemBank: TMenuItem; - procedure Button1Click(Sender: TObject); - procedure CreateCodesClick(Sender: TObject); - procedure EssayItemsClick(Sender: TObject); - procedure ExitThisClick(Sender: TObject); - procedure FormCreate(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure ListItemsClick(Sender: TObject); - procedure MatchingItemsClick(Sender: TObject); - procedure MCItemsClick(Sender: TObject); - procedure NewItemBankClick(Sender: TObject); - procedure OpenItemBankClick(Sender: TObject); - procedure PrintTestClick(Sender: TObject); - procedure SaveBankMenuClick(Sender: TObject); - procedure ShowCodesClick(Sender: TObject); - procedure TestSpecsClick(Sender: TObject); - procedure TFItemsClick(Sender: TObject); - private - { private declarations } - Bitmap : TBitmap; - Grect : TRect; - public - { public declarations } - CodesInfo : array[1..100] of CodeData; - MCItemInfo : array[1..100] of MCItem; - TFItemInfo : array[1..100] of TFItem; - MatchInfo : array[1..100] of MatchItem; - EssayInfo : array[1..100] of EssayItem; - TestContents : array[1..100] of testspec; - BankInfo : Bank; - // FileName : string; - - end; - -var - ItemBankFrm: TItemBankFrm; - -implementation - -{ TItemBankFrm } - -procedure TItemBankFrm.OpenItemBankClick(Sender: TObject); -var - FileName : string; - BankFile : TextFile; - i : integer; - cellvalue : integer; - nochoices : integer; -begin - OpenDialog1.DefaultExt := '.BNK'; - OpenDialog1.Filter := 'ALL (*.*)|*.*|Item Bank (*.BNK)|*.BNK'; - OpenDialog1.FilterIndex := 2; - if OpenDialog1.Execute then - begin - FileName := OpenDialog1.FileName; - BankNameText.Text := FileName; - FileName := OpenDialog1.FileName; - AssignFile(BankFile,FileName); - Reset(BankFile); - // place all data from the records in this file - // read general BankInfo first - Readln(BankFile,BankInfo.BankName); - Readln(BankFile,BankInfo.NMCItems); - NMCItemsText.Text := IntToStr(BankInfo.NMCItems); - Readln(BankFile,BankInfo.NTFItems); - NTFItemsText.Text := IntToStr(BankInfo.NTFItems); - Readln(BankFile,BankInfo.NMatchItems); - NMatchItemsText.Text := IntToStr(BankInfo.NMatchItems ); - Readln(BankFile,BankInfo.NEssayItems); - NEssayText.Text := IntToStr(BankInfo.NEssayItems ); - Readln(BankFile,BankInfo.NCodes); - NItemCodesText.Text := IntToStr(BankInfo.NCodes); - Readln(BankFile,BankInfo.TestItems); - NSpecifiedEdit.Text := IntToStr(BankInfo.TestItems); -// ShowMessage('Read no. of items by type'); - // now read codes - if BankInfo.Ncodes > 0 then - begin - for i := 1 to BankInfo.NCodes do - begin - Readln(BankFile,cellvalue); - CodesInfo[i].codenumber := cellvalue; - Readln(BankFile,cellvalue); - CodesInfo[i].majorcodes := cellvalue; - Readln(BankFile,cellvalue); - CodesInfo[i].minorcodes := cellvalue; - Readln(BankFile,CodesInfo[i].Description); - end; -// ShowMessage('Read item codes'); - end; - // now read MC items - if BankInfo.NMCItems > 0 then - begin - for i := 1 to BankInfo.NMCItems do - begin - Readln(BankFile,MCItemInfo[i].ItemNumber); - Readln(BankFile,MCItemInfo[i].MajorCode); - Readln(BankFile,MCItemInfo[i].MinorCode); - Readln(BankFile,MCItemInfo[i].NoChoices); - Readln(BankFile,MCItemInfo[i].ItemStem); - nochoices := McItemInfo[i].NoChoices; - if nochoices > 0 then Readln(BankFile,MCItemInfo[i].ChoiceOne); - if nochoices > 1 then Readln(BankFile,MCItemInfo[i].ChoiceTwo); - if nochoices > 2 then Readln(BankFile,MCItemInfo[i].ChoiceThree); - if nochoices > 3 then Readln(BankFile,MCItemInfo[i].ChoiceFour); - if nochoices > 4 then Readln(BankFile,MCItemInfo[i].ChoiceFive); - Readln(BankFile,MCItemInfo[i].CorrectChoice); - Readln(BankFile,MCItemInfo[i].PicName); - end; -// ShowMessage('Read MC items'); - end; - // now read T-F items - if BankInfo.NTFItems > 0 then - begin - for i := 1 to BankInfo.NTFItems do - begin - readln(BankFile,TFItemInfo[i].ItemNumber); - Readln(BankFile,TFItemInfo[i].MajorCode); - Readln(BankFile,TFItemInfo[i].MinorCode); - Readln(BankFile,TFItemInfo[i].ItemStem); - Readln(BankFile,TFItemInfo[i].CorrectChoice); - Readln(BankFile,TFItemInfo[i].PicName); - end; -// ShowMessage('Read True-False items'); - end; - // now read matching items - if BankInfo.NMatchItems > 0 then - begin - for i := 1 to BankInfo.NMatchItems do - begin - Readln(BankFile,MatchInfo[i].ItemNumber); - Readln(BankFile,MatchInfo[i].MajorCode); - Readln(BankFile,MatchInfo[i].MinorCode); - Readln(BankFile,MatchInfo[i].NLeft); - Readln(BankFile,MatchInfo[i].NRight); - nochoices := MatchInfo[i].NLeft; - if nochoices > 0 then Readln(BankFile,MatchInfo[i].Left1); - if nochoices > 1 then Readln(BankFile,MatchInfo[i].Left2); - if nochoices > 2 then Readln(BankFile,MatchInfo[i].Left3); - if nochoices > 3 then Readln(BankFile,MatchInfo[i].Left4); - if nochoices > 4 then Readln(BankFile,MatchInfo[i].Left5); - nochoices := MatchInfo[i].NRight; - if nochoices > 0 then Readln(BankFile,MatchInfo[i].Right1); - if nochoices > 1 then Readln(BankFile,MatchInfo[i].Right2); - if nochoices > 2 then Readln(BankFile,MatchInfo[i].Right3); - if nochoices > 3 then Readln(BankFile,MatchInfo[i].Right4); - if nochoices > 4 then Readln(BankFile,MatchInfo[i].Right5); - Readln(BankFile,MatchInfo[i].CorrectChoice); - Readln(BankFile,MatchInfo[i].PicName); - end; -// ShowMessage('Read Matching items'); - end; - // now read essay items - if BankInfo.NEssayItems > 0 then - begin - for i := 1 to BankInfo.NEssayItems do - begin - Readln(BankFile,EssayInfo[i].ItemNumber); - Readln(BankFile,EssayInfo[i].MajorCode); - Readln(BankFile,EssayInfo[i].MinorCode); - Readln(BankFile,EssayInfo[i].ItemStem); - Readln(BankFile,EssayInfo[i].Answer); - Readln(BankFile,EssayInfo[i].PicName); - end; -// ShowMessage('Read Essay items'); - end; - if BankInfo.TestItems > 0 then - begin - TestSpecifiedEdit.Text := 'Y'; - for i := 1 to BankInfo.TestItems do - begin - readln(BankFile,TestContents[i].ItemNumber); - readln(BankFile,TestContents[i].MajorCode); - readln(BankFile,TestContents[i].MinorCode); - readln(BankFile,TestContents[i].ItemType); - end; - end; - CloseFile(BankFile); - end; -end; - -procedure TItemBankFrm.PrintTestClick(Sender: TObject); -Var - outline : string[180]; - i, nmc, ntf, nessay, nmatch, itemno : integer; - mcitem, tfitem, essayitem, matchitem : integer; - nleft, nright : integer; - JPEG : TJPEGImage; -begin - itemno := 0; - nmc := StrToInt(NMCItemsText.Text); - ntf := StrToInt(NTFItemsText.Text); - nessay := StrToInt(NEssayText.Text); - nmatch := StrToInt(NMatchItemsText.Text); - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Directions: This test may contain a variety of different item types.'); - OutPutFrm.RichEdit.Lines.Add('For each item, circle the correct answer or provide the answer if'); - OutPutFrm.RichEdit.Lines.Add('required. You may use the back of the test to provide answers to'); - OutPutFrm.RichEdit.Lines.Add('essay questions - just start with the item number.'); - OutPutFrm.RichEdit.Lines.Add('Start now!'); - OutPutFrm.RichEdit.Lines.Add(''); - if nmc > 0 then - begin - OutPutFrm.RichEdit.Lines.Add('MULTIPLE CHOICE ITEMS:'); - for i := 1 to BankInfo.TestItems do - begin - if TestContents[i].ItemType = 'MC' then - begin - itemno := itemno + 1; - outline := format('Item %d',[itemno]); - OutPutFrm.RichEdit.Lines.Add(outline); - mcitem := TestContents[i].ItemNumber; - if MCItemInfo[mcitem].PicName <> 'none' then - begin - outline := format('Reference picture = %s',[MCItemInfo[mcitem].PicName]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - { begin - Grect.Top := OutPutFrm.RichEdit.Lines.Count ; - Grect.Left := 20; - Grect.Right := 120; - Grect.Bottom := Grect.Top + 120; - JPEG := TJPEGImage.Create; - JPEG.LoadFromFile(MCItemInfo[mcitem].PicName) ; - OutPutFrm.Canvas.StretchDraw(Grect,JPEG); - JPEG.Free; - end; } - OutPutFrm.RichEdit.Lines.Add(MCItemInfo[mcitem].ItemStem); - nleft := MCItemInfo[mcitem].NoChoices; - OutPutFrm.RichEdit.Lines.Add('A. ' + MCItemInfo[mcitem].ChoiceOne); - OutPutFrm.RichEdit.Lines.Add('B. ' + MCItemInfo[mcitem].ChoiceTwo); - if nleft > 2 then - OutPutFrm.RichEdit.Lines.Add('C. ' + MCItemInfo[mcitem].ChoiceThree); - if nleft > 3 then - OutPutFrm.RichEdit.Lines.Add('D. ' + MCItemInfo[mcitem].ChoiceFour); - if nleft > 4 then - OutPutFrm.RichEdit.Lines.Add('E. ' + MCItemInfo[mcitem].ChoiceFive); - OutPutFrm.RichEdit.Lines.Add(''); - end; - end; - end; - if ntf > 0 then - begin - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('TRUE OR FALSE ITEMS:'); - for i := 1 to BankInfo.TestItems do - begin - if TestContents[i].ItemType = 'TF' then - begin - itemno := itemno + 1; - outline := format('Item %d',[itemno]); - OutPutFrm.RichEdit.Lines.Add(outline); - tfitem := TestContents[i].ItemNumber; - OutPutFrm.RichEdit.Lines.Add(TFItemInfo[tfitem].ItemStem); - OutPutFrm.RichEdit.Lines.Add('A. TRUE'); - OutPutFrm.RichEdit.Lines.Add('B. False'); - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - end; - if nessay > 0 then - begin - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('ESSAY ITEMS:'); - for i := 1 to BankInfo.TestItems do - begin - if TestContents[i].ItemType = 'Essay' then - begin - itemno := itemno + 1; - outline := format('Item %d',[itemno]); - OutPutFrm.RichEdit.Lines.Add(outline); - essayitem := TestContents[i].ItemNumber; - OutPutFrm.RichEdit.Lines.Add(EssayInfo[essayitem].ItemStem); - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - end; - if nmatch > 0 then - begin - OutPutFrm.RichEdit.Lines.Add('MATCHING ITEMS:'); - for i := 1 to BankInfo.TestItems do - begin - if TestContents[i].ItemType = 'Matching' then - begin - itemno := itemno + 1; - outline := format('Item %d',[itemno]); - OutPutFrm.RichEdit.Lines.Add(outline); - matchitem := TestContents[i].ItemNumber; - outline := format('A. %s',[ItemBankFrm.MatchInfo[matchitem].Left1]); - outline := outline + ' 1. '; - outline := outline + ItemBankFrm.MatchInfo[matchitem].Right1 ; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('B. %s',[ItemBankFrm.MatchInfo[matchitem].Left2]); - nleft := ItemBankFrm.MatchInfo[matchitem].NLeft; - nright := ItemBankFrm.MatchInfo[matchitem].NRight; - if nright > 1 then - begin - outline := outline + ' 2. '; - outline := outline + ItemBankFrm.MatchInfo[matchitem].Right2; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - if nleft > 2 then - begin - outline := format('C. %s',[ItemBankFrm.MatchInfo[matchitem].Left3]); - if nright > 2 then - begin - outline := outline + ' 3. '; - outline := outline + ItemBankFrm.MatchInfo[matchitem].Right3; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - if nleft > 3 then - begin - outline := format('D. %s',[ItemBankFrm.MatchInfo[matchitem].Left4]); - if nright > 3 then - begin - outline := outline + ' 4. '; - outline := outline + ItemBankFrm.MatchInfo[matchitem].Right4; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - if nleft > 4 then - begin - outline := format('E. %s',[ItemBankFrm.MatchInfo[matchitem].Left5]); - if nright > 4 then - begin - outline := outline + ' 5. '; - outline := outline + ItemBankFrm.MatchInfo[matchitem].Right5; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - end; -// OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.ShowModal; -end; - -procedure TItemBankFrm.SaveBankMenuClick(Sender: TObject); -var - FileName : string; - BankFile : TextFile; - i : integer; - cellvalue : integer; - nochoices : integer; - message : string; - nspecs : integer; -begin - if BankNameText.Text = '' then Close; - SaveDialog1.DefaultExt := '.BNK'; - SaveDialog1.Filter := 'ALL (*.*)|*.*|ItemBank (*.BNK)|*.BNK'; - SaveDialog1.FilterIndex := 2; - if SaveDialog1.Execute then - begin - FileName := SaveDialog1.FileName; - AssignFile(BankFile,FileName); - Rewrite(BankFile); - BankInfo.BankName := FileName; - // place all data from the records in this file - // write general BankInfo first - writeln(BankFile,BankInfo.BankName); - writeln(BankFile,BankInfo.NMCItems); - writeln(BankFile,BankInfo.NTFItems); - writeln(BankFile,BankInfo.NMatchItems); - writeln(BankFile,BankInfo.NEssayItems); - writeln(BankFile,BankInfo.NCodes); - writeln(BankFile,BankInfo.TestItems); - // now save codes - if BankInfo.NCodes > 0 then - begin - for i := 1 to BankInfo.NCodes do - begin - cellvalue := CodesInfo[i].codenumber; - writeln(BankFile,cellvalue); - cellvalue := CodesInfo[i].majorcodes ; - writeln(BankFile,cellvalue); - cellvalue := CodesInfo[i].minorcodes; - writeln(BankFile,cellvalue); - writeln(BankFile,CodesInfo[i].Description); - end; - end; - // now save MC items - if BankInfo.NMCItems > 0 then - begin - for i := 1 to BankInfo.NMCItems do - begin - nochoices := MCItemInfo[i].NoChoices ; - writeln(BankFile,MCItemInfo[i].ItemNumber); - writeln(BankFile,MCItemInfo[i].MajorCode); - writeln(BankFile,MCItemInfo[i].MinorCode); - writeln(BankFile,MCItemInfo[i].NoChoices); - writeln(BankFile,MCItemInfo[i].ItemStem); - if nochoices > 0 then writeln(BankFile,MCItemInfo[i].ChoiceOne); - if nochoices > 1 then writeln(BankFile,MCItemInfo[i].ChoiceTwo); - if nochoices > 2 then writeln(BankFile,MCItemInfo[i].ChoiceThree); - if nochoices > 3 then writeln(BankFile,MCItemInfo[i].ChoiceFour); - if nochoices > 4 then writeln(BankFile,MCItemInfo[i].ChoiceFive); - writeln(BankFile,MCItemInfo[i].CorrectChoice); - writeln(BankFile,MCItemInfo[i].PicName); - end; - end; - // now save T-F items - if BankInfo.NTFItems > 0 then - begin - for i := 1 to BankInfo.NTFItems do - begin - writeln(BankFile,TFItemInfo[i].ItemNumber); - writeln(BankFile,TFItemInfo[i].MajorCode); - writeln(BankFile,TFItemInfo[i].MinorCode); - writeln(BankFile,TFItemInfo[i].ItemStem); - writeln(BankFile,TFItemInfo[i].CorrectChoice); - writeln(BankFile,TFItemInfo[i].PicName); - end; - end; - // now save matching items - if BankInfo.NMatchItems > 0 then - begin - for i := 1 to BankInfo.NMatchItems do - begin - nochoices := MatchInfo[i].NLeft; - Writeln(BankFile,MatchInfo[i].ItemNumber); - writeln(BankFile,MatchInfo[i].MajorCode); - writeln(BankFile,MatchInfo[i].MinorCode); - writeln(BankFile,MatchInfo[i].NLeft); - writeln(BankFile,MatchInfo[i].NRight); - if nochoices > 0 then writeln(BankFile,MatchInfo[i].Left1); - if nochoices > 1 then writeln(BankFile,MatchInfo[i].Left2); - if nochoices > 2 then writeln(BankFile,MatchInfo[i].Left3); - if nochoices > 3 then writeln(BankFile,MatchInfo[i].Left4); - if nochoices > 4 then writeln(BankFile,MatchInfo[i].Left5); - nochoices := MatchInfo[i].NRight; - if nochoices > 0 then writeln(BankFile,MatchInfo[i].Right1); - if nochoices > 1 then writeln(BankFile,MatchInfo[i].Right2); - if nochoices > 2 then writeln(BankFile,MatchInfo[i].Right3); - if nochoices > 3 then writeln(BankFile,MatchInfo[i].Right4); - if nochoices > 4 then writeln(BankFile,MatchInfo[i].Right5); - writeln(BankFile,MatchInfo[i].CorrectChoice); - writeln(BankFile,MatchInfo[i].PicName); - end; - end; - // now save essay items - if BankInfo.NEssayItems > 0 then - begin - for i := 1 to BankInfo.NEssayItems do - begin - writeln(BankFile,EssayInfo[i].ItemNumber); - writeln(BankFile,EssayInfo[i].MajorCode); - writeln(BankFile,EssayInfo[i].MinorCode); - writeln(BankFile,EssayInfo[i].ItemStem); - writeln(BankFile,EssayInfo[i].Answer); - writeln(BankFile,EssayInfo[i].PicName); - end; - end; - // now save test specifications - nspecs := StrToInt(NSpecifiedEdit.Text); - if nspecs > 0 then - begin - TestSpecifiedEdit.Text := 'Y'; - for i := 1 to TestSpecsForm.testno do - begin - writeln(BankFile,TestContents[i].ItemNumber); - writeln(BankFile,TestContents[i].MajorCode); - writeln(BankFile,TestContents[i].MinorCode); - writeln(BankFile,TestContents[i].ItemType); - end; - end; - CloseFile(BankFile); - end; -end; - -procedure TItemBankFrm.ShowCodesClick(Sender: TObject); -Var - i : integer; - outline : string; - ncodes : integer; -begin -if NItemCodesText.Text <> '' then - begin - OutPutFrm.RichEdit.Lines.Add('Current Item Coding Scheme'); - OutPutFrm.RichEdit.Lines.Add(''); - ncodes := StrToInt(NItemCodesText.Text); - for i := 1 to ncodes do - begin - outline := format('Code number %d',[i]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Major Code %d',[CodesInfo[i].majorcodes]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Minor Code %d',[CodesInfo[i].minorcodes]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Description %s',[CodesInfo[i].Description]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.ShowModal; - end; - -end; - -procedure TItemBankFrm.TestSpecsClick(Sender: TObject); -begin - TestSpecsForm.SpecFileEdit.Text := BankNameText.Text; - TestSpecsForm.MCNoEdit.Text := IntToStr(BankInfo.NMCItems); - TestSpecsForm.TFNoEdit.Text := IntToStr(BankInfo.NTFItems); - TestSpecsForm.EssayNoEdit.Text := IntToStr(BankInfo.NEssayItems); - TestSpecsForm.MatchNoEdit.Text := IntToStr(BankInfo.NMatchItems); - TestSpecsForm.ShowModal; -end; - -procedure TItemBankFrm.TFItemsClick(Sender: TObject); -begin - TFItemForm.ShowModal; -end; - -procedure TItemBankFrm.NewItemBankClick(Sender: TObject); -Var - response : string; -begin - response := InputBox('SAVE','Save current item bank (Y or N)?','N'); - if response = 'Y' then SaveBankMenuClick(self); - BankNameText.Text := ''; - OpenItemBankClick(self); -end; - -procedure TItemBankFrm.ExitThisClick(Sender: TObject); -Var - response : string; -begin - response := InputBox('SAVE','Save current item bank (Y or N)?','N'); - if response = 'Y' then SaveBankMenuClick(self); - ItemBankFrm.Hide; - Close; -end; - -procedure TItemBankFrm.FormCreate(Sender: TObject); -begin - DirectoryEdit1.Text := OptionsFrm.FilePathEdit.Text; - FileListBox1.Directory := DirectoryEdit1.Text; -end; - -procedure TItemBankFrm.FormShow(Sender: TObject); -begin - BankNameText.Text := ''; - NItemCodesText.Text := ''; - NMCItemsText.Text := ''; - NTFItemsText.Text := ''; - NMatchItemsText.Text := ''; - NEssayText.Text := ''; - BankInfo.BankName := ''; - BankInfo.NCodes := 0; - BankInfo.NEssayItems := 0; - BankInfo.NMatchItems := 0; - BankInfo.NTFItems := 0; - BankInfo.NMCItems := 0; - TestSpecifiedEdit.Text := 'N'; - NSpecifiedEdit.Text := ''; -end; - -procedure TItemBankFrm.ListItemsClick(Sender: TObject); -Var - i : integer; - outline : string; -begin - if BankInfo.TestItems > 0 then - begin - OutPutFrm.RichEdit.Clear; - for i := 1 to BankInfo.TestItems do - begin - outline := format('Item number: %d',[TestContents[i].ItemNumber]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Major code: %d',[TestContents[i].MajorCode]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Minor code: %d',[TestContents[i].MinorCode]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Item type: %s',[TestContents[i].ItemType]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - OutPutFrm.ShowModal; -end; - -procedure TItemBankFrm.MatchingItemsClick(Sender: TObject); -begin - MatchItemForm.ShowModal; -end; - -procedure TItemBankFrm.MCItemsClick(Sender: TObject); -begin - MCItemForm.ShowModal; -end; - -procedure TItemBankFrm.CreateCodesClick(Sender: TObject); -begin - CodesForm.ShowModal; -end; - -procedure TItemBankFrm.Button1Click(Sender: TObject); -begin - DirectoryEdit1.Text := OptionsFrm.FilePathEdit.Text; - FileListBox1.Directory := DirectoryEdit1.Text; -end; - -procedure TItemBankFrm.EssayItemsClick(Sender: TObject); -begin - EssayItemForm.ShowModal; -end; - -initialization - {$I itembankingunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/itemcodesunit.lfm b/applications/lazstats/source_orig/itemcodesunit.lfm deleted file mode 100644 index 7923173d0..000000000 --- a/applications/lazstats/source_orig/itemcodesunit.lfm +++ /dev/null @@ -1,134 +0,0 @@ -object CodesForm: TCodesForm - Left = 212 - Height = 286 - Top = 126 - Width = 709 - Caption = 'Code Creation Form' - ClientHeight = 286 - ClientWidth = 709 - OnShow = FormShow - LCLVersion = '0.9.30' - object Memo1: TMemo - Left = 24 - Height = 102 - Top = 4 - Width = 667 - Lines.Strings = ( - 'One of the first steps in creating an item bank is to develop a coding scheme for each item in the item bank of items. You' - 'can create up to 100 major and minor codes to describe each item in your bank. Typically, the first item major code is 1 and ' - 'the corresponding minor code is 0. You will typically have multiple minor coded items under each major code. For ' - 'example, a major code 1 and minor code 0 might be a major section in a statistics book such as Descriptive Analyses. Under' - 'the same major code you might have a minor code 1 to represent items such as the Mean or the Standard Deviation.' - 'On this form you will enter the major and minor codes and a description for each one.' - ) - TabOrder = 0 - end - object ItemNoLabel: TLabel - Left = 25 - Height = 16 - Top = 120 - Width = 79 - Caption = 'Code Number:' - ParentColor = False - end - object ItemNoEdit: TEdit - Left = 106 - Height = 23 - Top = 113 - Width = 37 - TabOrder = 1 - Text = '1' - end - object MajorLabel: TLabel - Left = 168 - Height = 16 - Top = 120 - Width = 66 - Caption = 'Major Code:' - ParentColor = False - end - object MajorEdit: TEdit - Left = 238 - Height = 23 - Top = 112 - Width = 35 - TabOrder = 2 - Text = '1' - end - object MinorLabel: TLabel - Left = 296 - Height = 16 - Top = 120 - Width = 67 - Caption = 'Minor Code:' - ParentColor = False - end - object MinorEdit: TEdit - Left = 368 - Height = 23 - Top = 114 - Width = 38 - TabOrder = 3 - Text = '0' - end - object DescLabel: TLabel - Left = 25 - Height = 16 - Top = 153 - Width = 112 - Caption = 'Category Description' - ParentColor = False - end - object DescriptionEdit: TEdit - Left = 144 - Height = 23 - Top = 147 - Width = 545 - TabOrder = 4 - end - object SaveCodeBtn: TButton - Left = 24 - Height = 33 - Top = 189 - Width = 137 - Caption = 'Save Info. for this code' - OnClick = SaveCodeBtnClick - TabOrder = 5 - end - object StartNewBtn: TButton - Left = 168 - Height = 32 - Top = 189 - Width = 146 - Caption = 'Start New Code' - OnClick = StartNewBtnClick - TabOrder = 6 - end - object DisplayBtn: TButton - Left = 329 - Height = 32 - Top = 240 - Width = 177 - Caption = 'Display All Saved Code Data' - OnClick = DisplayBtnClick - TabOrder = 7 - end - object ReturnBtn: TButton - Left = 592 - Height = 30 - Top = 240 - Width = 92 - Caption = 'Return' - OnClick = ReturnBtnClick - TabOrder = 8 - end - object EditOneBtn: TButton - Left = 329 - Height = 31 - Top = 190 - Width = 177 - Caption = 'Edit a Specific Code Entry' - OnClick = EditOneBtnClick - TabOrder = 9 - end -end diff --git a/applications/lazstats/source_orig/itemcodesunit.lrs b/applications/lazstats/source_orig/itemcodesunit.lrs deleted file mode 100644 index fc8fe4055..000000000 --- a/applications/lazstats/source_orig/itemcodesunit.lrs +++ /dev/null @@ -1,41 +0,0 @@ -LazarusResources.Add('TCodesForm','FORMDATA',[ - 'TPF0'#10'TCodesForm'#9'CodesForm'#4'Left'#3#212#0#6'Height'#3#30#1#3'Top'#2 - +'~'#5'Width'#3#197#2#7'Caption'#6#18'Code Creation Form'#12'ClientHeight'#3 - +#30#1#11'ClientWidth'#3#197#2#6'OnShow'#7#8'FormShow'#10'LCLVersion'#6#6'0.9' - +'.30'#0#5'TMemo'#5'Memo1'#4'Left'#2#24#6'Height'#2'f'#3'Top'#2#4#5'Width'#3 - +#155#2#13'Lines.Strings'#1#6'{One of the first steps in creating an item ban' - +'k is to develop a coding scheme for each item in the item bank of items. Y' - +'ou'#6'~can create up to 100 major and minor codes to describe each item in ' - +'your bank. Typically, the first item major code is 1 and '#6'sthe correspo' - +'nding minor code is 0. You will typically have multiple minor coded items ' - +'under each major code. For '#6'{example, a major code 1 and minor code 0 m' - +'ight be a major section in a statistics book such as Descriptive Analyses. ' - +' Under'#6'pthe same major code you might have a minor code 1 to represent i' - +'tems such as the Mean or the Standard Deviation.'#6'VOn this form you will ' - +'enter the major and minor codes and a description for each one.'#0#8'TabOr' - +'der'#2#0#0#0#6'TLabel'#11'ItemNoLabel'#4'Left'#2#25#6'Height'#2#16#3'Top'#2 - +'x'#5'Width'#2'O'#7'Caption'#6#12'Code Number:'#11'ParentColor'#8#0#0#5'TEdi' - +'t'#10'ItemNoEdit'#4'Left'#2'j'#6'Height'#2#23#3'Top'#2'q'#5'Width'#2'%'#8'T' - +'abOrder'#2#1#4'Text'#6#1'1'#0#0#6'TLabel'#10'MajorLabel'#4'Left'#3#168#0#6 - +'Height'#2#16#3'Top'#2'x'#5'Width'#2'B'#7'Caption'#6#11'Major Code:'#11'Pare' - +'ntColor'#8#0#0#5'TEdit'#9'MajorEdit'#4'Left'#3#238#0#6'Height'#2#23#3'Top'#2 - +'p'#5'Width'#2'#'#8'TabOrder'#2#2#4'Text'#6#1'1'#0#0#6'TLabel'#10'MinorLabel' - +#4'Left'#3'('#1#6'Height'#2#16#3'Top'#2'x'#5'Width'#2'C'#7'Caption'#6#11'Min' - +'or Code:'#11'ParentColor'#8#0#0#5'TEdit'#9'MinorEdit'#4'Left'#3'p'#1#6'Heig' - +'ht'#2#23#3'Top'#2'r'#5'Width'#2'&'#8'TabOrder'#2#3#4'Text'#6#1'0'#0#0#6'TLa' - +'bel'#9'DescLabel'#4'Left'#2#25#6'Height'#2#16#3'Top'#3#153#0#5'Width'#2'p'#7 - +'Caption'#6#20'Category Description'#11'ParentColor'#8#0#0#5'TEdit'#15'Descr' - +'iptionEdit'#4'Left'#3#144#0#6'Height'#2#23#3'Top'#3#147#0#5'Width'#3'!'#2#8 - +'TabOrder'#2#4#0#0#7'TButton'#11'SaveCodeBtn'#4'Left'#2#24#6'Height'#2'!'#3 - +'Top'#3#189#0#5'Width'#3#137#0#7'Caption'#6#24'Save Info. for this code'#7'O' - +'nClick'#7#16'SaveCodeBtnClick'#8'TabOrder'#2#5#0#0#7'TButton'#11'StartNewBt' - +'n'#4'Left'#3#168#0#6'Height'#2' '#3'Top'#3#189#0#5'Width'#3#146#0#7'Caption' - +#6#14'Start New Code'#7'OnClick'#7#16'StartNewBtnClick'#8'TabOrder'#2#6#0#0#7 - +'TButton'#10'DisplayBtn'#4'Left'#3'I'#1#6'Height'#2' '#3'Top'#3#240#0#5'Widt' - +'h'#3#177#0#7'Caption'#6#27'Display All Saved Code Data'#7'OnClick'#7#15'Dis' - +'playBtnClick'#8'TabOrder'#2#7#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3'P'#2#6 - +'Height'#2#30#3'Top'#3#240#0#5'Width'#2'\'#7'Caption'#6#6'Return'#7'OnClick' - +#7#14'ReturnBtnClick'#8'TabOrder'#2#8#0#0#7'TButton'#10'EditOneBtn'#4'Left'#3 - +'I'#1#6'Height'#2#31#3'Top'#3#190#0#5'Width'#3#177#0#7'Caption'#6#26'Edit a ' - +'Specific Code Entry'#7'OnClick'#7#15'EditOneBtnClick'#8'TabOrder'#2#9#0#0#0 -]); diff --git a/applications/lazstats/source_orig/itemcodesunit.pas b/applications/lazstats/source_orig/itemcodesunit.pas deleted file mode 100644 index a0f2fd3db..000000000 --- a/applications/lazstats/source_orig/itemcodesunit.pas +++ /dev/null @@ -1,152 +0,0 @@ -unit ItemCodesUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, outputunit; - -type - - { TCodesForm } - - TCodesForm = class(TForm) - EditOneBtn: TButton; - ReturnBtn: TButton; - DisplayBtn: TButton; - StartNewBtn: TButton; - SaveCodeBtn: TButton; - DescLabel: TLabel; - DescriptionEdit: TEdit; - MinorEdit: TEdit; - MinorLabel: TLabel; - MajorEdit: TEdit; - ItemNoEdit: TEdit; - ItemNoLabel: TLabel; - MajorLabel: TLabel; - Memo1: TMemo; - procedure EditOneBtnClick(Sender: TObject); - procedure DisplayBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure ReturnBtnClick(Sender: TObject); - procedure SaveCodeBtnClick(Sender: TObject); - procedure StartNewBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - CodesForm: TCodesForm; - -implementation -uses ItemBankingUnit; -{ TCodesForm } - -procedure TCodesForm.SaveCodeBtnClick(Sender: TObject); -var - currentno : integer; -begin - currentno := StrToInt(ItemNoEdit.Text); - if currentno > ItemBankFrm.BankInfo.NCodes then - ItemBankFrm.BankInfo.NCodes := currentno; - ItemBankFrm.NItemCodesText.Text := IntToStr(currentno); - ItemBankFrm.CodesInfo[currentno].codenumber := currentno; - ItemBankFrm.CodesInfo[currentno].majorcodes := StrToInt(MajorEdit.Text); - ItemBankFrm.CodesInfo[currentno].minorcodes := StrToInt(MinorEdit.Text); - ItemBankFrm.CodesInfo[currentno].Description := DescriptionEdit.Text; -end; - -procedure TCodesForm.DisplayBtnClick(Sender: TObject); -var - currentno : integer; - i : integer; - outline : string; -begin - currentno := ItemBankFrm.BankInfo.NCodes; - OutPutFrm.RichEdit.Lines.Add('Current Item Codes'); - OutPutFrm.RichEdit.Lines.Add(''); - - for i := 1 to currentno do - begin - outline := format('Item number %3d',[ItemBankFrm.CodesInfo[i].codenumber]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Major Code %3d',[ItemBankFrm.CodesInfo[i].majorcodes]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Minor Code %3d',[ItemBankFrm.CodesInfo[i].minorcodes]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Description %s',[ItemBankFrm.CodesInfo[i].Description]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - end; - OutPutFrm.ShowModal; -end; - -procedure TCodesForm.EditOneBtnClick(Sender: TObject); -Var - response : string; - codeno : integer; -begin - response := InputBox('Code Number:','Number:','1'); - codeno := StrToInt(response); - if codeno <= ItemBankFrm.BankInfo.NCodes then - begin - ItemNoEdit.Text := IntToStr(ItemBankFrm.CodesInfo[codeno].codenumber); - MajorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[codeno].majorcodes); - MinorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[codeno].minorcodes); - DescriptionEdit.Text := ItemBankFrm.CodesInfo[codeno].Description; - end; -end; - -procedure TCodesForm.FormShow(Sender: TObject); -Var ncodes : integer; -begin - if ItemBankFrm.NItemCodesText.Text <> '' then - begin - ncodes := StrToInt(ItemBankFrm.NItemCodesText.Text); - ItemNoEdit.Text := IntToStr(ItemBankFrm.CodesInfo[ncodes].codenumber); - MajorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[ncodes].majorcodes) ; - MinorEdit.Text := IntToStr(ItemBankFrm.CodesInfo[ncodes].minorcodes); - DescriptionEdit.Text := ItemBankFrm.CodesInfo[ncodes].Description; - end else - begin - ItemNoEdit.Text := '1'; - MajorEdit.Text := '1'; - MinorEdit.Text := '0'; - DescriptionEdit.Text := ''; - end; -end; - -procedure TCodesForm.ReturnBtnClick(Sender: TObject); -begin - CodesForm.Hide; - Close; -end; - -procedure TCodesForm.StartNewBtnClick(Sender: TObject); -var - currentno : integer; - newnumber : integer; -begin - currentno := StrToInt(ItemNoEdit.Text); - newnumber := currentno + 1; - ItemNoEdit.Text := IntToStr(newnumber); - currentno := StrToInt(MinorEdit.Text); - newnumber := currentno + 1; - MinorEdit.Text := IntToStr(newnumber); - DescriptionEdit.Text := ''; - if newnumber > StrToInt(ItemBankFrm.NItemCodesText.Text) then - begin - ItemBankFrm.NItemCodesText.Text := IntToStr(newnumber); - ItemBankFrm.CodesInfo[newnumber].codenumber := newnumber; - end; -end; - -initialization - {$I itemcodesunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/jpegunit.lfm b/applications/lazstats/source_orig/jpegunit.lfm deleted file mode 100644 index 7542e8ae0..000000000 --- a/applications/lazstats/source_orig/jpegunit.lfm +++ /dev/null @@ -1,66 +0,0 @@ -object JPEGform: TJPEGform - Left = 139 - Height = 689 - Top = 45 - Width = 737 - Caption = 'JPEG Viewer' - ClientHeight = 689 - ClientWidth = 737 - LCLVersion = '0.9.30' - object Image1: TImage - Left = 9 - Height = 607 - Top = 9 - Width = 714 - Proportional = True - end - object LoadBtn: TButton - Left = 16 - Height = 27 - Top = 639 - Width = 107 - Caption = 'Load Image' - OnClick = LoadBtnClick - TabOrder = 0 - end - object ReturnBtn: TButton - Left = 624 - Height = 26 - Top = 639 - Width = 91 - Caption = 'Return' - ModalResult = 1 - TabOrder = 1 - end - object StretchBtn: TButton - Left = 169 - Height = 24 - Top = 641 - Width = 87 - Caption = 'Stretch' - OnClick = StretchBtnClick - TabOrder = 2 - end - object NormalBtn: TButton - Left = 312 - Height = 24 - Top = 642 - Width = 87 - Caption = 'Normal' - OnClick = NormalBtnClick - TabOrder = 3 - end - object PropBtn: TButton - Left = 457 - Height = 24 - Top = 641 - Width = 112 - Caption = 'Show Proportional' - OnClick = PropBtnClick - TabOrder = 4 - end - object OpenPictureDialog1: TOpenPictureDialog - left = 108 - top = 77 - end -end diff --git a/applications/lazstats/source_orig/jpegunit.lrs b/applications/lazstats/source_orig/jpegunit.lrs deleted file mode 100644 index 38dcf0005..000000000 --- a/applications/lazstats/source_orig/jpegunit.lrs +++ /dev/null @@ -1,20 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TJPEGform','FORMDATA',[ - 'TPF0'#9'TJPEGform'#8'JPEGform'#4'Left'#3#139#0#6'Height'#3#177#2#3'Top'#2'-' - +#5'Width'#3#225#2#7'Caption'#6#11'JPEG Viewer'#12'ClientHeight'#3#177#2#11'C' - +'lientWidth'#3#225#2#10'LCLVersion'#6#6'0.9.30'#0#6'TImage'#6'Image1'#4'Left' - +#2#9#6'Height'#3'_'#2#3'Top'#2#9#5'Width'#3#202#2#12'Proportional'#9#0#0#7'T' - +'Button'#7'LoadBtn'#4'Left'#2#16#6'Height'#2#27#3'Top'#3#127#2#5'Width'#2'k' - +#7'Caption'#6#10'Load Image'#7'OnClick'#7#12'LoadBtnClick'#8'TabOrder'#2#0#0 - +#0#7'TButton'#9'ReturnBtn'#4'Left'#3'p'#2#6'Height'#2#26#3'Top'#3#127#2#5'Wi' - +'dth'#2'['#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#1#0#0#7 - +'TButton'#10'StretchBtn'#4'Left'#3#169#0#6'Height'#2#24#3'Top'#3#129#2#5'Wid' - +'th'#2'W'#7'Caption'#6#7'Stretch'#7'OnClick'#7#15'StretchBtnClick'#8'TabOrde' - +'r'#2#2#0#0#7'TButton'#9'NormalBtn'#4'Left'#3'8'#1#6'Height'#2#24#3'Top'#3 - +#130#2#5'Width'#2'W'#7'Caption'#6#6'Normal'#7'OnClick'#7#14'NormalBtnClick'#8 - +'TabOrder'#2#3#0#0#7'TButton'#7'PropBtn'#4'Left'#3#201#1#6'Height'#2#24#3'To' - +'p'#3#129#2#5'Width'#2'p'#7'Caption'#6#17'Show Proportional'#7'OnClick'#7#12 - +'PropBtnClick'#8'TabOrder'#2#4#0#0#18'TOpenPictureDialog'#18'OpenPictureDial' - +'og1'#4'left'#2'l'#3'top'#2'M'#0#0#0 -]); diff --git a/applications/lazstats/source_orig/jpegunit.pas b/applications/lazstats/source_orig/jpegunit.pas deleted file mode 100644 index b66cc07cc..000000000 --- a/applications/lazstats/source_orig/jpegunit.pas +++ /dev/null @@ -1,83 +0,0 @@ -unit JPEGUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - ExtCtrls, StdCtrls, ExtDlgs; - -type - - { TJPEGform } - - TJPEGform = class(TForm) - PropBtn: TButton; - StretchBtn: TButton; - NormalBtn: TButton; - OpenPictureDialog1: TOpenPictureDialog; - ReturnBtn: TButton; - LoadBtn: TButton; - Image1: TImage; - procedure LoadBtnClick(Sender: TObject); - procedure NormalBtnClick(Sender: TObject); - procedure PropBtnClick(Sender: TObject); - procedure StretchBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - JPEGform: TJPEGform; - -implementation - -{ TJPEGform } - -procedure TJPEGform.LoadBtnClick(Sender: TObject); -VAR - JPEG : TJPEGImage; -begin - OpenPictureDialog1.Options := OpenPictureDialog1.Options+[ofFileMustExist]; - if not OpenPictureDialog1.Execute then exit; - try - JPEG := TJPEGImage.Create; - try - JPEG.LoadFromFile(OpenPictureDialog1.FileName); - Image1.Picture.Assign(JPEG); - finally - JPEG.Free; - end; - JPEGForm.Caption := OpenPictureDialog1.FileName; - except - on E: Exception do begin - MessageDlg('Error','Error: '+E.Message,mtError,[mbOk],0); - end; - end; -end; - -procedure TJPEGform.NormalBtnClick(Sender: TObject); -begin - Image1.Proportional := false; - Image1.Stretch := false; -end; - -procedure TJPEGform.PropBtnClick(Sender: TObject); -begin - Image1.Proportional := true; -end; - -procedure TJPEGform.StretchBtnClick(Sender: TObject); -begin - Image1.Proportional := false; - Image1.Stretch := true; -end; - -initialization - {$I jpegunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/kaplanmeierunit.lfm b/applications/lazstats/source_orig/kaplanmeierunit.lfm deleted file mode 100644 index 61b3d4ab7..000000000 --- a/applications/lazstats/source_orig/kaplanmeierunit.lfm +++ /dev/null @@ -1,433 +0,0 @@ -object KaplanMeierFrm: TKaplanMeierFrm - Left = 306 - Height = 366 - Top = 147 - Width = 493 - Caption = 'Kaplan-Meier Survival Analysis' - ClientHeight = 366 - ClientWidth = 493 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 8 - Height = 14 - Top = 7 - Width = 90 - Caption = 'Available Variables' - ParentColor = False - end - object Label2: TLabel - Left = 217 - Height = 14 - Top = 24 - Width = 64 - Caption = 'Time Variable' - ParentColor = False - end - object Label3: TLabel - Left = 216 - Height = 14 - Top = 112 - Width = 133 - Caption = 'Event vs Censored Variable' - ParentColor = False - end - object Label4: TLabel - Left = 217 - Height = 14 - Top = 128 - Width = 122 - Caption = 'Event = 1, Censored = 2' - ParentColor = False - end - object Label5: TLabel - Left = 224 - Height = 14 - Top = 202 - Width = 133 - Caption = 'Group Variable (if 2 groups)' - ParentColor = False - end - object Label6: TLabel - Left = 217 - Height = 14 - Top = 220 - Width = 153 - Caption = '(Experimental = 1, Control = 2)' - ParentColor = False - end - object VarList: TListBox - Left = 6 - Height = 332 - Top = 23 - Width = 163 - ItemHeight = 0 - TabOrder = 0 - end - object TimeInBtn: TBitBtn - Left = 176 - Height = 27 - Top = 23 - 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 = TimeInBtnClick - TabOrder = 1 - end - object TimeOutBtn: TBitBtn - Left = 177 - Height = 27 - 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 = TimeOutBtnClick - TabOrder = 2 - end - object EventInBtn: TBitBtn - Left = 177 - Height = 27 - Top = 112 - 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 = EventInBtnClick - TabOrder = 3 - end - object EventOutBtn: TBitBtn - Left = 177 - Height = 27 - Top = 144 - 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 = EventOutBtnClick - TabOrder = 4 - end - object GroupInBtn: TBitBtn - Left = 177 - Height = 27 - Top = 200 - 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 = GroupInBtnClick - TabOrder = 5 - end - object GroupOutBtn: TBitBtn - Left = 177 - Height = 27 - Top = 232 - 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 = GroupOutBtnClick - TabOrder = 6 - end - object TimeEdit: TEdit - Left = 216 - Height = 21 - Top = 41 - Width = 143 - TabOrder = 7 - Text = 'TimeEdit' - end - object EventEdit: TEdit - Left = 217 - Height = 21 - Top = 144 - Width = 143 - TabOrder = 8 - Text = 'TimeEdit' - end - object GroupEdit: TEdit - Left = 217 - Height = 21 - Top = 238 - Width = 143 - TabOrder = 9 - Text = 'TimeEdit' - end - object GroupBox1: TGroupBox - Left = 175 - Height = 83 - Top = 273 - Width = 185 - Caption = 'Options:' - ClientHeight = 65 - ClientWidth = 181 - TabOrder = 10 - object PlotChk: TCheckBox - Left = 7 - Height = 17 - Top = 6 - Width = 172 - Caption = 'Graph Survival Probabilities (%)' - TabOrder = 0 - end - object PrintChk: TCheckBox - Left = 7 - Height = 17 - Top = 34 - Width = 144 - Caption = 'Print Computation Results' - TabOrder = 1 - end - end - object ResetBtn: TButton - Left = 392 - Height = 32 - Top = 72 - Width = 83 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 11 - end - object CancelBtn: TButton - Left = 392 - Height = 32 - Top = 128 - Width = 83 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 12 - end - object ComputeBtn: TButton - Left = 392 - Height = 32 - Top = 184 - Width = 83 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 13 - end - object ReturnBtn: TButton - Left = 392 - Height = 32 - Top = 240 - Width = 83 - Caption = 'Return' - ModalResult = 1 - TabOrder = 14 - end - object HelpBtn: TButton - Tag = 127 - Left = 392 - Height = 33 - Top = 16 - Width = 86 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 15 - end -end diff --git a/applications/lazstats/source_orig/kaplanmeierunit.lrs b/applications/lazstats/source_orig/kaplanmeierunit.lrs deleted file mode 100644 index 5351e5582..000000000 --- a/applications/lazstats/source_orig/kaplanmeierunit.lrs +++ /dev/null @@ -1,352 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TKaplanMeierFrm','FORMDATA',[ - 'TPF0'#15'TKaplanMeierFrm'#14'KaplanMeierFrm'#4'Left'#3'2'#1#6'Height'#3'n'#1 - +#3'Top'#3#147#0#5'Width'#3#237#1#7'Caption'#6#30'Kaplan-Meier Survival Analy' - +'sis'#12'ClientHeight'#3'n'#1#11'ClientWidth'#3#237#1#6'OnShow'#7#8'FormShow' - +#10'LCLVersion'#6#8'0.9.28.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'ParentC' - +'olor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#217#0#6'Height'#2#14#3'Top'#2#24#5 - +'Width'#2'@'#7'Caption'#6#13'Time Variable'#11'ParentColor'#8#0#0#6'TLabel'#6 - +'Label3'#4'Left'#3#216#0#6'Height'#2#14#3'Top'#2'p'#5'Width'#3#133#0#7'Capti' - +'on'#6#26'Event vs Censored Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Labe' - +'l4'#4'Left'#3#217#0#6'Height'#2#14#3'Top'#3#128#0#5'Width'#2'z'#7'Caption'#6 - +#23'Event = 1, Censored = 2'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Lef' - +'t'#3#224#0#6'Height'#2#14#3'Top'#3#202#0#5'Width'#3#133#0#7'Caption'#6#28'G' - +'roup Variable (if 2 groups)'#11'ParentColor'#8#0#0#6'TLabel'#6'Label6'#4'Le' - +'ft'#3#217#0#6'Height'#2#14#3'Top'#3#220#0#5'Width'#3#153#0#7'Caption'#6#31 - +'(Experimental = 1, Control = 2)'#11'ParentColor'#8#0#0#8'TListBox'#7'VarLis' - +'t'#4'Left'#2#6#6'Height'#3'L'#1#3'Top'#2#23#5'Width'#3#163#0#10'ItemHeight' - +#2#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#9'TimeInBtn'#4'Left'#3#176#0#6'Height'#2 - +#27#3'Top'#2#23#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#14'TimeInBtnClick'#8'TabOrder'#2#1#0#0#7'TBit' - +'Btn'#10'TimeOutBtn'#4'Left'#3#177#0#6'Height'#2#27#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#15 - +'TimeOutBtnClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#10'EventInBtn'#4'Left'#3#177 - +#0#6'Height'#2#27#3'Top'#2'p'#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#15'EventInBtnClick'#8'TabOrder' - +#2#3#0#0#7'TBitBtn'#11'EventOutBtn'#4'Left'#3#177#0#6'Height'#2#27#3'Top'#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'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#16'EventOutBtnClick'#8'TabOrder'#2#4#0#0#7'TBitBtn' - +#10'GroupInBtn'#4'Left'#3#177#0#6'Height'#2#27#3'Top'#3#200#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#15 - +'GroupInBtnClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'#11'GroupOutBtn'#4'Left'#3 - +#177#0#6'Height'#2#27#3'Top'#3#232#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#16'GroupOutBtnClick'#8'Ta' - +'bOrder'#2#6#0#0#5'TEdit'#8'TimeEdit'#4'Left'#3#216#0#6'Height'#2#21#3'Top'#2 - +')'#5'Width'#3#143#0#8'TabOrder'#2#7#4'Text'#6#8'TimeEdit'#0#0#5'TEdit'#9'Ev' - +'entEdit'#4'Left'#3#217#0#6'Height'#2#21#3'Top'#3#144#0#5'Width'#3#143#0#8'T' - +'abOrder'#2#8#4'Text'#6#8'TimeEdit'#0#0#5'TEdit'#9'GroupEdit'#4'Left'#3#217#0 - +#6'Height'#2#21#3'Top'#3#238#0#5'Width'#3#143#0#8'TabOrder'#2#9#4'Text'#6#8 - +'TimeEdit'#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3#175#0#6'Height'#2'S'#3'To' - +'p'#3#17#1#5'Width'#3#185#0#7'Caption'#6#8'Options:'#12'ClientHeight'#2'A'#11 - +'ClientWidth'#3#181#0#8'TabOrder'#2#10#0#9'TCheckBox'#7'PlotChk'#4'Left'#2#7 - +#6'Height'#2#17#3'Top'#2#6#5'Width'#3#172#0#7'Caption'#6' Graph Survival Pro' - +'babilities (%)'#8'TabOrder'#2#0#0#0#9'TCheckBox'#8'PrintChk'#4'Left'#2#7#6 - +'Height'#2#17#3'Top'#2'"'#5'Width'#3#144#0#7'Caption'#6#25'Print Computation' - +' Results'#8'TabOrder'#2#1#0#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#136#1#6'He' - +'ight'#2' '#3'Top'#2'H'#5'Width'#2'S'#7'Caption'#6#5'Reset'#7'OnClick'#7#13 - +'ResetBtnClick'#8'TabOrder'#2#11#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#136#1 - +#6'Height'#2' '#3'Top'#3#128#0#5'Width'#2'S'#7'Caption'#6#6'Cancel'#11'Modal' - +'Result'#2#2#8'TabOrder'#2#12#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#136#1#6 - +'Height'#2' '#3'Top'#3#184#0#5'Width'#2'S'#7'Caption'#6#7'Compute'#7'OnClick' - +#7#15'ComputeBtnClick'#8'TabOrder'#2#13#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3 - +#136#1#6'Height'#2' '#3'Top'#3#240#0#5'Width'#2'S'#7'Caption'#6#6'Return'#11 - +'ModalResult'#2#1#8'TabOrder'#2#14#0#0#7'TButton'#7'HelpBtn'#3'Tag'#2#127#4 - +'Left'#3#136#1#6'Height'#2'!'#3'Top'#2#16#5'Width'#2'V'#7'Caption'#6#4'Help' - +#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#15#0#0#0 -]); diff --git a/applications/lazstats/source_orig/kaplanmeierunit.pas b/applications/lazstats/source_orig/kaplanmeierunit.pas deleted file mode 100644 index 4276c8a05..000000000 --- a/applications/lazstats/source_orig/kaplanmeierunit.pas +++ /dev/null @@ -1,1069 +0,0 @@ -unit KaplanMeierUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, Globals, functionsLib, OutPutUnit, DataProcs, - DictionaryUnit, Math, Clipbrd, contexthelpunit; - -type - - { TKaplanMeierFrm } - - TKaplanMeierFrm = class(TForm) - HelpBtn: TButton; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - PlotChk: TCheckBox; - PrintChk: TCheckBox; - GroupBox1: TGroupBox; - TimeInBtn: TBitBtn; - TimeOutBtn: TBitBtn; - EventInBtn: TBitBtn; - EventOutBtn: TBitBtn; - GroupInBtn: TBitBtn; - GroupOutBtn: TBitBtn; - TimeEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - Label5: TLabel; - Label6: TLabel; - EventEdit: TEdit; - GroupEdit: TEdit; - VarList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure EventInBtnClick(Sender: TObject); - procedure EventOutBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure GroupInBtnClick(Sender: TObject); - procedure GroupOutBtnClick(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure TimeInBtnClick(Sender: TObject); - procedure TimeOutBtnClick(Sender: TObject); - private - { private declarations } - procedure plotxy(var Xpoints : IntDyneVec; - var Ypoints : DblDyneVec; - var Dropped : IntDyneVec; - var Dropped2 : IntDyneVec; - Xmax, Xmin, Ymax, Ymin : double; - N : integer; - XEdit : string; - YEdit : string; - curveno : integer); - public - { public declarations } - end; - -var - KaplanMeierFrm: TKaplanMeierFrm; - -implementation -uses BlankFrmUnit; - -{ TKaplanMeierFrm } - -procedure TKaplanMeierFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); - TimeEdit.Text := ''; - EventEdit.Text := ''; - GroupEdit.Text := ''; - PlotChk.Checked := false; - PrintChk.Checked := false; - TimeInBtn.Visible := true; - EventInBtn.Visible := true; - GroupInBtn.Visible := true; - TimeOutBtn.Visible := false; - EventOutBtn.Visible := false; - GroupOutBtn.Visible := false; -end; - -procedure TKaplanMeierFrm.TimeInBtnClick(Sender: TObject); -VAR i : integer; -begin - i := VarList.ItemIndex; - TimeEdit.Text := VarList.Items.Strings[i]; - VarList.Items.Delete(i); - TimeInBtn.Visible := false; - TimeOutBtn.Visible := true; -end; - -procedure TKaplanMeierFrm.TimeOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(TimeEdit.Text); - TimeEdit.Text := ''; - TimeInBtn.Visible := true; - TimeOutBtn.Visible := false; -end; - -procedure TKaplanMeierFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TKaplanMeierFrm.GroupInBtnClick(Sender: TObject); -VAR i : integer; -begin - i := VarList.ItemIndex; - GroupEdit.Text := VarList.Items.Strings[i]; - VarList.Items.Delete(i); - GroupInBtn.Visible := false; - GroupOutBtn.Visible := true; -end; - -procedure TKaplanMeierFrm.GroupOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(GroupEdit.Text); - GroupEdit.Text := ''; - GroupInBtn.Visible := true; - GroupOutBtn.Visible := false; -end; - -procedure TKaplanMeierFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TKaplanMeierFrm.EventInBtnClick(Sender: TObject); -VAR i : integer; -begin - i := VarList.ItemIndex; - EventEdit.Text := VarList.Items.Strings[i]; - VarList.Items.Delete(i); - EventInBtn.Visible := false; - EventOutBtn.Visible := true; -end; - -procedure TKaplanMeierFrm.ComputeBtnClick(Sender: TObject); -var - outline, astring : string; - PrintIt, Graph1, TwoGroups : boolean; - Size1, Size2, TotalSize, NoDeaths, ThisTime, FoundIn, GraphType : integer; - mintime, maxtime, tempint, nopoints, noprobs, tempvalue : integer; - NoCensored, nocats, i, j, k, icase, oldtime, pos, first, last : integer; - noinexp, noincntrl, count, TimeCol, DeathsCol, CensoredCol : integer; - GroupCol : integer; - minprob, maxprob, cumprop, proportion, term1, term2, term3 : double; - E1, E2, O1, O2, Chisquare, ProbChi, Risk, LogRisk, SELogRisk : double; - HiConf, LowConf, HiLogLevel, LowLogLevel, lastexp, lastctr : double; - TimePlot, Dropped, Dropped2, Time, AtRisk, Dead, SurvivalTimes : IntDyneVec; - ExpCnt, CntrlCnt, TotalatRisk, ExpatRisk, CntrlatRisk : IntDyneVec; - Deaths, Group, Censored : IntDyneVec; - ProbPlot, ProbPlot2, CondProb, ExpProp, CntrlProp : DblDyneVec; - CumPropExp, CumPropCntrl : DblDyneVec; - TimeLabel, GroupLabel, DeathsLabel : string; -begin - PrintIt := false; - // get options - if (PlotChk.Checked = true) then Graph1 := true - else Graph1 := false; - if (PrintChk.Checked) then PrintIt := true else PrintIt := false; - - // get variable columns and labels - TimeLabel := TimeEdit.Text; - GroupLabel := GroupEdit.Text; - DeathsLabel := EventEdit.Text; - TimeCol := 0; - DeathsCol := 0; - CensoredCol := 0; - GroupCol := 0; - for i := 1 to NoVariables do - begin - if (TimeLabel = OS3MainFrm.DataGrid.Cells[i,0]) then TimeCol := i; - if (DeathsLabel = OS3MainFrm.DataGrid.Cells[i,0]) then DeathsCol := i; - if (GroupLabel = OS3MainFrm.DataGrid.Cells[i,0]) then GroupCol := i; - end; - if ((TimeCol = 0) or (DeathsCol = 0)) then - begin - ShowMessage('ERROR! One or more variables not selected.'); - exit; - end; - if (GroupEdit.Text = '') then - begin - TwoGroups := false; - Size1 := NoCases; - Size2 := 0; - end - else - begin - Size1 := 0; - Size2 := 0; - TwoGroups := true; - for i := 1 to NoCases do - begin - if (StrToInt(OS3MainFrm.DataGrid.Cells[GroupCol,i]) = 1) then - Size1 := Size1 + 1 - else Size2 := Size2 + 1; - end; - end; - - // allocate space for the data - SetLength(SurvivalTimes,NoCases+2); - SetLength(ExpCnt,NoCases+2); - SetLength(CntrlCnt,NoCases+2); - SetLength(TotalatRisk,NoCases+2); - SetLength(ExpatRisk,NoCases+2); - SetLength(CntrlatRisk,NoCases+2); - SetLength(ExpProp,NoCases+2); - SetLength(CntrlProp,NoCases+2); - SetLength(Deaths,NoCases+2); - SetLength(Group,NoCases+2); - SetLength(Censored,NoCases+2); - SetLength(CumPropExp,NoCases+2); - SetLength(CumPropCntrl,NoCases+2); - - // initialize arrays - for i := 0 to NoCases+1 do - begin - SurvivalTimes[i] := 0; - ExpCnt[i] := 0; - CntrlCnt[i] := 0; - TotalatRisk[i] := 0; - ExpatRisk[i] := 0; - CntrlatRisk[i] := 0; - ExpProp[i] := 0.0; - CntrlProp[i] := 0.0; - Deaths[i] := 0; - Group[i] := 0; - Censored[i] := 0; - CumPropExp[i] := 0.0; - CumPropCntrl[i] := 0.0; - end; - mintime := 0; - maxtime := 0; - - // Get Data - if (not TwoGroups) then - begin - for i := 1 to NoCases do - begin - SurvivalTimes[i] := StrToInt(OS3MainFrm.DataGrid.Cells[TimeCol,i]); - if (SurvivalTimes[i] > maxtime) then maxtime := SurvivalTimes[i]; - tempvalue := StrToInt(OS3MainFrm.DataGrid.Cells[DeathsCol,i]); - if (tempvalue = 1) then Deaths[i] := 1 else Deaths[i] := 0; - if (tempvalue = 2) then Censored[i] := 1 else Censored[i] := 0; - end; - - // sort cases by time - for i := 0 to NoCases - 1 do - begin - for j := i + 1 to NoCases do - begin - if (SurvivalTimes[i] > SurvivalTimes[j]) then - begin - tempint := SurvivalTimes[i]; - SurvivalTimes[i] := SurvivalTimes[j]; - SurvivalTimes[j] := tempint; - tempint := Censored[i]; - Censored[i] := Censored[j]; - Censored[j] := tempint; - tempint := Deaths[i]; - Deaths[i] := Deaths[j]; - Deaths[j] := tempint; - end; - end; - end; - - // get number censored in each time slot - nopoints := maxtime + 1; - SetLength(Dropped,nopoints+2); - SetLength(Dropped2,nopoints+2); - for j := 0 to nopoints do - begin - Dropped[j] := 0; - Dropped2[j] := 0; - end; - ThisTime := SurvivalTimes[0]; - for i := 0 to NoCases do - begin - if (ThisTime = SurvivalTimes[i]) then - begin - if(Censored[i] > 0) then - begin - tempint := SurvivalTimes[i] - mintime; - Dropped[tempint] := Dropped[tempint] + Censored[i]; - end; - end - else // new time - begin - ThisTime := SurvivalTimes[i]; - if(Censored[i] > 0) then - begin - tempint := SurvivalTimes[i] - mintime; - Dropped[tempint] := Dropped[tempint] + Censored[i]; - end; - end; - end; - - // calculate expected proportions and adjust survival counts - cumprop := 1.0; - ExpCnt[0] := NoCases; - ExpProp[0] := 1.0; - CumPropExp[0] := 1.0; - - // collapse deaths and censored into first time occurance - icase := 0; - oldtime := SurvivalTimes[0]; - for i := 1 to NoCases do - begin - if (SurvivalTimes[i] <> oldtime) then - begin - oldtime := SurvivalTimes[i]; - icase := i; - end; - - // find no. of deaths at this time - NoDeaths := Deaths[i]; - for j := i+1 to NoCases do - begin - ThisTime := SurvivalTimes[j]; - if ((Deaths[j] > 0) and (oldtime = ThisTime)) then - begin - NoDeaths := NoDeaths + Deaths[j]; - Deaths[icase] := Deaths[icase] + Deaths[j]; - Deaths[j] := 0; - end; - end; - // find no. of censored at this time - NoCensored := Censored[i]; - for j := i+1 to NoCases do - begin - ThisTime := SurvivalTimes[j]; - if((Censored[j] > 0) and (oldtime = ThisTime)) then - begin - NoCensored := NoCensored + Censored[j]; - Censored[icase] := Censored[icase] + Censored[j]; - Censored[j] := 0; - end; - end; - end; -{ - // debug check - FrmOutPut.RichOutPut.Clear(); - for (int i := 0; i <= NoCases; i++) - begin - sprintf(outline,'case %d Day %d Deaths %d Censored %d', - i,SurvivalTimes[i], Deaths[i],Censored[i]); - FrmOutPut.RichOutPut.Lines.Add(outline); - end; - FrmOutPut.ShowModal(); -} - // get no. of categories - for i := 0 to NoCases do - if ((Deaths[i] > 0) or (Censored[i] > 0)) then nocats := nocats + 1; - SetLength(Time,nocats+2); - SetLength(AtRisk,nocats+2); - SetLength(Dead,nocats+2); - SetLength(CondProb,nocats+2); - for i := 0 to nocats do - begin - Time[i] := 0; - AtRisk[i] := 0; - Dead[i] := 0; - CondProb[i] := 0.0; - end; - pos := 0; - for i := 0 to NoCases do - begin - if ((Deaths[i] > 0) or (Censored[i] > 0)) then - begin - pos := pos + 1; - Time[pos] := SurvivalTimes[i]; - Dead[pos] := Deaths[i]; - Dropped[pos] := Censored[i]; - end; - end; - Time[0] := 0; - AtRisk[0] := NoCases; - Dead[0] := 0; - Dropped[0] := 0; - CondProb[0] := 0.0; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add(' Time Censored Dead At Risk Probability'); - for i := 1 to nocats do - begin - AtRisk[i] := AtRisk[i-1] - Dead[i-1] - Dropped[i-1]; - CondProb[i-1] := 1.0 - Dead[i-1] / AtRisk[i-1]; - end; - for i := 0 to nocats do - begin - outline := format(' %3d %3d %3d %3d %6.3f', - [Time[i],Dropped[i],Dead[i],AtRisk[i],CondProb[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; - - // Get cumulative proportions - for i := 0 to nocats do - begin - if (AtRisk[i] > 0) then - begin - CumPropExp[i] := cumprop * CondProb[i]; - cumprop := CumPropExp[i]; - end; - end; - cumprop := 1.0; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Kaplan-Meier Survival Test'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('No Control Group Method'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('TIME NO.ALIVE CENSORED DEATHS COND. PROB. CUM.PROP.SURVIVING'); - for i := 0 to nocats do - begin - outline := format(' %4d %4d %4d %4d %7.4f %7.4f', - [Time[i], - AtRisk[i],Dropped[i],Deaths[i],CondProb[i],CumPropExp[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.ShowModal; - if (Graph1) then // plot Y := cumulative proportion surviving, x := time - begin - // Get points to plot - nopoints := maxtime + 1; - SetLength(TimePlot,nocats+2); - SetLength(ProbPlot,nocats+2); - ProbPlot[0] := 1.0; - for j := 0 to nocats do - begin - TimePlot[j] := Time[j]; - ProbPlot[j] := CumPropExp[j]; - end; - BlankFrm.Show; - plotxy(TimePlot, ProbPlot, Dropped, Dropped2, - maxtime,0,1.0, 0.0, nocats,'TIME','PROBABILITY',1); - end; // end if graph1 - ProbPlot := nil; - TimePlot := nil; - CondProb := nil; - Dead := nil; - AtRisk := nil; - Time := nil; - end // end if not two groups -//============================================================================// - else // Experimental and control groups - begin - // obtain no. in experimental and control groups - ExpCnt[0] := Size1; - CntrlCnt[0] := Size2; - TotalSize := Size1 + Size2; - CumPropExp[0] := 1.0; - CumPropCntrl[0] := 1.0; - TotalatRisk[0] := TotalSize; - O1 := 0; - O2 := 0; - outline := format('Total Group 1 := %d, Total Group 2 := %d, Grand Total := %d', - [ExpCnt[0], CntrlCnt[0], TotalSize]); - ShowMessage(outline); - - // Now read values. Note storage starts in 1, not 0! - for i := 1 to NoCases do - begin - SurvivalTimes[i] := StrToInt(OS3MainFrm.DataGrid.Cells[TimeCol,i]); - if (SurvivalTimes[i] > maxtime) then maxtime := SurvivalTimes[i]; - tempvalue := StrToInt(OS3MainFrm.DataGrid.Cells[DeathsCol,i]); - if (tempvalue = 1) then Deaths[i] := 1 else Deaths[i] := 0; - if (tempvalue = 2) then Censored[i] := 1 else Censored[i] := 0; - Group[i] := StrToInt(OS3MainFrm.DataGrid.Cells[GroupCol,i]); - end; - - // sort cases by time - for i := 1 to NoCases - 1 do - begin - for j := i + 1 to NoCases do - begin - if (SurvivalTimes[i] > SurvivalTimes[j]) then - begin - tempint := SurvivalTimes[i]; - SurvivalTimes[i] := SurvivalTimes[j]; - SurvivalTimes[j] := tempint; - tempint := Censored[i]; - Censored[i] := Censored[j]; - Censored[j] := tempint; - tempint := Deaths[i]; - Deaths[i] := Deaths[j]; - Deaths[j] := tempint; - tempint := Group[i]; - Group[i] := Group[j]; - Group[j] := tempint; - end; - end; - end; - - // sort cases within each time slot by deaths first then censored - ThisTime := SurvivalTimes[1]; - first := 1; - last := 1; - for i := 1 to NoCases do - begin - if (ThisTime = SurvivalTimes[i]) then - begin - last := i; - continue; - end - else // sort the cases from first to last on event (descending) - begin - if (last > first) then // more than 1 to sort - begin - for j := first to last - 1 do - begin - for k := j + 1 to last do - begin - if (Deaths[j] < Deaths[k] ) then // swap - begin - tempint := Censored[j]; - Censored[j] := Censored[k]; - Censored[k] := tempint; - tempint := Deaths[j]; - Deaths[j] := Deaths[k]; - Deaths[k] := tempint; - tempint := Group[j]; - Group[j] := Group[k]; - Group[k] := tempint; - end; - end; // next k - end; // next j - end; // if last > first - end; // end else sort - first := last + 1; - ThisTime := SurvivalTimes[first]; - last := first; - end; // next i - - // get number censored in each time slot - nopoints := maxtime + 1; - SetLength(Dropped,nopoints+2); - SetLength(Dropped2,nopoints+2); - for j := 0 to nopoints do - begin - Dropped[j] := 0; - Dropped2[j] := 0; - end; - ThisTime := SurvivalTimes[1]; - for i := 1 to NoCases do - begin - if (ThisTime = SurvivalTimes[i]) then - begin - if(Censored[i] > 0) then - begin - tempint := SurvivalTimes[i] - mintime; - if (Group[i] = 1) then - Dropped[tempint] := Dropped[tempint] + Censored[i] - else Dropped2[tempint] := Dropped2[tempint] + Censored[i]; - end; - end - else // new time - begin - ThisTime := SurvivalTimes[i]; - if(Censored[i] > 0) then - begin - tempint := SurvivalTimes[i] - mintime; - if (Group[i] = 1) then - Dropped[tempint] := Dropped[tempint] + Censored[i] - else Dropped2[tempint] := Dropped2[tempint] + Censored[i]; - end; - end; - end; - - for i := 0 to NoCases do - begin - noinexp := 0; - noincntrl := 0; - if (Deaths[i] > 0) then - begin - // find no. of deaths at this time - NoDeaths := Deaths[i]; - ThisTime := SurvivalTimes[i]; - for j := i+1 to NoCases do - begin - if ((Deaths[j] > 0) and (SurvivalTimes[j] = ThisTime)) then - begin - NoDeaths := NoDeaths + Deaths[j]; - Deaths[i] := Deaths[i] + Deaths[j]; - Deaths[j] := 0; - end; - end; - if (TotalatRisk[i] > 0) then - begin - term1 := ExpCnt[i]; - term2 := TotalatRisk[i]; - term3 := NoDeaths; - ExpatRisk[i] := ceil((term1 / term2) * term3); -// ExpatRisk[i] := (ExpCnt[i]) / TotalatRisk[i]) * NoDeaths; - term1 := CntrlCnt[i]; - CntrlatRisk[i] := ceil((term1 / term2) * term3); -// CntrlatRisk[i] := (CntrlCnt[i] / TotalatRisk[i]) * NoDeaths; - end; - if (i < NoCases-1) then TotalatRisk[i+1] := TotalatRisk[i] - Deaths[i]; - // find no. in exp. or control groups and decrement their counts - for j := 1 to NoCases do - begin - if ( (ThisTime = SurvivalTimes[j]) and (Censored[j] = 0)) then - begin - if (Group[j] = 1) then - begin - noinexp := noinexp + 1; - O1 := O1 + 1; - end; - if (Group[j] = 2) then - begin - noincntrl := noincntrl + 1; - O2 := O2 + 1; - end; - end; - end; - if ( (i < NoCases) and (noinexp > 0) ) then - begin - term1 := ExpCnt[i]; - term2 := noinexp; - term3 := ExpCnt[i]; - ExpProp[i] := (term1 - term2) / term3; -// ExpProp[i] := (ExpCnt[i] - noinexp) / ExpCnt[i]; - if (i > 0) then CumPropExp[i] := CumPropExp[i-1] * ExpProp[i]; - ExpCnt[i+1] := ExpCnt[i] - noinexp; - CumPropExp[i+1] := CumPropExp[i]; - end; - if ( (i < NoCases) and (noinexp = 0) ) then - begin - ExpCnt[i+1] := ExpCnt[i]; - CumPropExp[i+1] := CumPropExp[i]; - end; - if ( (i < NoCases) and (noincntrl > 0) ) then - begin - term1 := CntrlCnt[i]; - term2 := noincntrl; - term3 := CntrlCnt[i]; - CntrlProp[i] := (term1 - term2) / term3; -// CntrlProp[i] := (CntrlCnt[i] - noincntrl) / CntrlCnt[i]; - if (i > 0) then CumPropCntrl[i] := CumPropCntrl[i-1] * CntrlProp[i]; - CntrlCnt[i+1] := CntrlCnt[i] - noincntrl; - CumPropCntrl[i+1] := CumPropCntrl[i]; - end; - if ( (i < NoCases) and (noincntrl = 0) ) then - begin - CntrlCnt[i+1] := CntrlCnt[i]; - CumPropCntrl[i+1] := CumPropCntrl[i]; - end; - end; // end if deaths[i] > 0 - - if ( (Censored[i] > 0) and (i < NoCases) ) then - begin - if (Group[i] = 1) then - begin - ExpCnt[i+1] := ExpCnt[i] - 1; - CntrlCnt[i+1] := CntrlCnt[i]; - ExpProp[i+1] := ExpProp[i]; - CumPropExp[i+1] := CumPropExp[i]; - CumPropCntrl[i+1] := CumPropCntrl[i]; - end; - if (Group[i] = 2) then - begin - CntrlCnt[i+1] := CntrlCnt[i] - 1; - ExpCnt[i+1] := ExpCnt[i]; - CntrlProp[i+1] := CntrlProp[i]; - CumPropCntrl[i+1] := CumPropCntrl[i]; - CumPropExp[i+1] := CumPropExp[i]; - end; - TotalatRisk[i+1] := TotalatRisk[i] - 1; - end; - if ( (Deaths[i] = 0) and (Censored[i] = 0) and (i < NoCases) ) then - begin - ExpCnt[i+1] := ExpCnt[i]; - CntrlCnt[i+1] := CntrlCnt[i]; - CumPropExp[i+1] := CumPropExp[i]; - CumPropCntrl[i+1] := CumPropCntrl[i]; - TotalatRisk[i+1] := TotalatRisk[i]; - end; - end; // next case i - - // Now calculate chisquare, relative risk (r), logr, and S.E. of log risk - E1 := 0.0; - for i := 0 to NoCases do E1 := E1 + ExpatRisk[i]; - E2 := (O1 + O2) - E1; - Chisquare := ((O1 - E1) * (O1 - E1)) / E1 + ((O2 - E2) * (O2 - E2)) / E2; - ProbChi := chisquaredprob(Chisquare,1); - Risk := (O1 / E1) / (O2 / E2); - LogRisk := ln(Risk); - SELogRisk := sqrt(1.0/E1 + 1.0/E2); - HiConf := LogRisk + (inversez(0.975) * SELogRisk); - LowConf := LogRisk - (inversez(0.975) * SELogRisk); - HiLogLevel := exp(HiConf); - LowLogLevel := exp(LowConf); - end; - - // Print Results - if (TwoGroups and PrintIt) then // both experimental and control groups - begin - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Kaplan-Meier Survival Test'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Comparison of Two Groups Methd'); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('TIME GROUP CENSORED TOTAL AT EVENTS AT RISK IN EXPECTED NO. AT RISK IN EXPECTED NO.'); - OutPutFrm.RichEdit.Lines.Add(' RISK GROUP 1 EVENTS IN 1 GROUP 2 EVENTS IN 2'); - for i := 1 to NoCases+1 do - begin - outline := format('%4d %4d %4d %4d %4d %4d %7d %4d %7d', - [SurvivalTimes[i-1],Group[i-1],Censored[i-1],TotalatRisk[i-1], - Deaths[i-1],ExpCnt[i-1],ExpatRisk[i-1],CntrlCnt[i-1],CntrlatRisk[i-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('TIME DEATHS GROUP AT RISK PROPORTION CUMULATIVE'); - OutPutFrm.RichEdit.Lines.Add(' SURVIVING PROP.SURVIVING'); - - for i := 1 to NoCases do - begin - if (Group[i] = 1) then - begin - count := ExpCnt[i]; - proportion := ExpProp[i]; - cumprop := CumPropExp[i]; - end - else - begin - count := CntrlCnt[i]; - proportion := CntrlProp[i]; - cumprop := CumPropCntrl[i]; - end; - outline := format('%4d %4d %4d %4d %7.4f %7.4f', - [SurvivalTimes[i],Deaths[i],Group[i],count,proportion,cumprop]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Total Expected Events for Experimental Group := %8.3f',[E1]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Observed Events for Experimental Group := %8.3f',[O1]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Total Expected Events for Control Group := %8.3f',[E2]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Observed Events for Control Group := %8.3f',[O2]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Chisquare = %8.3f with probability = %5.3f',[Chisquare,ProbChi]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Risk := %8.3f, Log Risk := %8.3f, Std.Err. Log Risk := %8.3f', - [Risk, LogRisk, SELogRisk]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('95 Percent Confidence interval for Log Risk = (%5.3f,%5.3f)', - [LowConf,HiConf]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('95 Percent Confidence interval for Risk := (%5.3f,%5.3f)', - [LowLogLevel,HiLogLevel]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - - // Plot data output - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('EXPERIMENTAL GROUP CUMULATIVE PROBABILITY'); - OutPutFrm.RichEdit.Lines.Add('CASE TIME DEATHS CENSORED CUM.PROB.'); - for i := 1 to NoCases do - begin - if (Group[i] = 1) then - begin - outline := format('%3d %3d %3d %3d %5.3f',[i, - SurvivalTimes[i], Deaths[i], Censored[i], CumPropExp[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('CONTROL GROUP CUMULATIVE PROBABILITY'); - OutPutFrm.RichEdit.Lines.Add('CASE TIME DEATHS CENSORED CUM.PROB.'); - for i := 1 to NoCases do - begin - if (Group[i] = 2) then - begin - outline := format('%3d %3d %3d %3d %5.3f',[i, - SurvivalTimes[i], Deaths[i], Censored[i], CumPropCntrl[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.ShowModal; - end; // if 2 groups and printit - - if (Graph1) then // plot cumulative proportion surviving (Y) against time (X) - begin - nopoints := maxtime + 1; - SetLength(TimePlot,nopoints+2); - SetLength(ProbPlot,nopoints+2); - SetLength(ProbPlot2,nopoints+2); - ProbPlot[0] := 1.0; - ProbPlot2[0] := 1.0; - lastexp := 1.0; - lastctr := 1.0; - for i := 0 to nopoints do - begin - TimePlot[i] := 0; - ProbPlot[i] := 1.0; - ProbPlot2[i] := 1.0; - end; - TimePlot[0] := 0; - mintime := 0; - for i := 1 to nopoints do - begin - TimePlot[i] := i; - for j := 1 to NoCases do - begin - if (SurvivalTimes[j] = i) then - begin - if (Group[j] = 1) then - begin - ProbPlot[i] := CumPropExp[j]; // ExpProp[j]; - lastexp := CumPropExp[j]; // ExpProp[j]; - end; - if (Group[j] = 2) then - begin - ProbPlot2[i] := CumPropCntrl[j]; //CntrlProp[j]; - lastctr := CumPropCntrl[j]; // CntrlProp[j]; - end; - end - else - begin - if (Group[j] = 1) then ProbPlot[i] := lastexp; - if (Group[j] = 2) then ProbPlot2[i] := lastctr; - end; - end; - end; - BlankFrm.Image1.Canvas.Clear; - BlankFrm.Show; - plotxy(TimePlot, ProbPlot, Dropped, Dropped2, - maxtime, 0, 1.0, 0.0, nopoints, 'TIME', 'PROBABILITY',1); - - plotxy(TimePlot, ProbPlot2, Dropped, Dropped2, - maxtime, 0, 1.0, 0.0, nopoints, 'TIME', 'PROBABILITY',2); - - ProbPlot2 := nil; - ProbPlot := nil; - TimePlot := nil; - end; // if graph plot := 1 - Dropped2 := nil; - Dropped := nil; - - // clean up memory - Dropped2 := nil; - Dropped := nil; - CumPropCntrl := nil; - CumPropExp := nil; - Censored := nil; - Group := nil; - Deaths := nil; - CntrlProp := nil; - ExpProp := nil; - CntrlatRisk := nil; - ExpatRisk := nil; - TotalatRisk := nil; - CntrlCnt := nil; - ExpCnt := nil; - SurvivalTimes := nil; -end; - -procedure TKaplanMeierFrm.EventOutBtnClick(Sender: TObject); -begin - VarList.Items.Add(EventEdit.Text); - EventEdit.Text := ''; - EventInBtn.Visible := true; - EventOutBtn.Visible := false; -end; - -procedure TKaplanMeierFrm.plotxy(var Xpoints: IntDyneVec; - var Ypoints: DblDyneVec; var Dropped: IntDyneVec; var Dropped2: IntDyneVec; - Xmax, Xmin, Ymax, Ymin: double; N: integer; XEdit: string; YEdit: string; - curveno: integer); -var - i, xpos, ypos, hleft, hright, vtop, vbottom, imagewide : integer; - vhi, hwide, offset, strhi, imagehi : integer; - noxvalues, digitwidth, Xvalue, xvalincr, oldxpos : integer; - maxval, minval, valincr, Yvalue, value, oldypos, term1, term2, term3 : double; - Title, outline : string; -label again, second; - -begin - if (curveno = 2) then goto second; - BlankFrm.Image1.Canvas.Font.Color := clBlack; - Title := 'SURVIVAL CURVE'; - BlankFrm.Caption := Title; - imagewide := BlankFrm.Image1.Width; - imagehi := BlankFrm.Image1.Height; - BlankFrm.Image1.Canvas.FloodFill(0,0,clWhite,fsBorder); - vtop := 20; - vbottom := ceil(imagehi) - 130; - vhi := vbottom - vtop; - hleft := 100; - hright := imagewide - 80; - hwide := hright - hleft; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.Brush.Color := clWhite; - - // Draw chart border -// ImageFrm.Image.Canvas.Rectangle(0,0,imagewide,imagehi); - - // draw horizontal axis - noxvalues := N; - xvalincr := 1; - digitwidth := BlankFrm.Image1.Canvas.TextWidth('9'); -again: - if ( (noxvalues * 4 * digitwidth) > hwide) then - begin - noxvalues := noxvalues div 2; - xvalincr := 2 * xvalincr; - goto again; - end; - BlankFrm.Image1.Canvas.Pen.Style := psSolid; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.MoveTo(hleft,vbottom); - BlankFrm.Image1.Canvas.LineTo(hright,vbottom); - for i := 1 to noxvalues do - begin - ypos := vbottom; - Xvalue := Xpoints[1] + xvalincr * (i - 1); // Xmin + xvalincr * (i - 1); - term1 := (Xvalue - Xmin) / (Xmax - Xmin); - term2 := hwide; - term3 := hleft; - xpos := floor((term1 * term2) + term3); - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - ypos := ypos + 10; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - outline := format('%d',[Xvalue]); - Title := outline; - offset := BlankFrm.Image1.Canvas.TextWidth(Title) div 2; - xpos := xpos - offset; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - end; - xpos := hleft + (hwide div 2) - (BlankFrm.Image1.Canvas.TextWidth(XEdit) div 2); - ypos := vbottom + 22; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,XEdit); - - // Draw vertical axis - Title := YEdit; - xpos := hleft - BlankFrm.Image1.Canvas.TextWidth(Title) div 2; - ypos := vtop - BlankFrm.Image1.Canvas.TextHeight(Title); - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,YEdit); - xpos := hleft; - ypos := vtop; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - ypos := vbottom; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - valincr := (Ymax - Ymin) / 10.0; - for i := 1 to 11 do - begin - value := Ymax - ((i-1) * valincr); - outline := format('%8.2f',[value]); - Title := outline; - strhi := BlankFrm.Image1.Canvas.TextHeight(Title); - xpos := 10; - Yvalue := Ymax - (valincr * (i-1)); - ypos := ceil(vhi * ( (Ymax - Yvalue) / (Ymax - Ymin))); - ypos := ypos + vtop - strhi div 2; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - xpos := hleft; - ypos := ypos + strhi div 2; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); - xpos := hleft - 10; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - end; - - // get xpos and ypos for first point to second point -second: xpos := hleft; - ypos := vtop; - BlankFrm.Image1.Canvas.MoveTo(xpos,ypos); // Probability := 1 at time 0 - if (curveno = 1) then BlankFrm.Image1.Canvas.Pen.Color := clNavy - else BlankFrm.Image1.Canvas.Pen.Color := clRed; - ypos := ceil(vhi * ( (Ymax - Ypoints[0]) / (Ymax - Ymin))); - ypos := ypos + vtop; - xpos := ceil(hwide * ( (Xpoints[1] - Xmin) / (Xmax - Xmin))); - xpos := xpos + hleft; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - - // draw points for x and y pairs - oldxpos := xpos; - oldypos := ypos; - for i := 1 to N - 1 do - begin - ypos := ceil(vhi * ( (Ymax - Ypoints[i]) / (Ymax - Ymin))); - ypos := ypos + vtop; - if (ypos <> oldypos) then // draw line down to new ypos using old xpos - begin - if (curveno = 1) then BlankFrm.Image1.Canvas.Pen.Style := psSolid - else BlankFrm.Image1.Canvas.Pen.Style := psDot; - BlankFrm.Image1.Canvas.LineTo(oldxpos,ypos); - end; - xpos := ceil(hwide * ( (Xpoints[i] - Xmin) / (Xmax - Xmin))); - xpos := xpos + hleft; - oldxpos := xpos; - oldypos := ypos; - BlankFrm.Image1.Canvas.Pen.Style := psSolid; - BlankFrm.Image1.Canvas.LineTo(xpos,ypos); - end; - - // show censored - BlankFrm.Image1.Canvas.Pen.Style := psSolid; - BlankFrm.Image1.Canvas.Pen.Color := clBlack; - for i := 1 to N do - begin - if ((Dropped[i] = 0) and (curveno = 1)) then continue; - if ((Dropped2[i] = 0) and (curveno = 2)) then continue; - if (curveno = 1) then - begin - BlankFrm.Image1.Canvas.Font.Color := clNavy; - ypos := vbottom + 35; - xpos := ceil(hwide * ((Xpoints[i] - Xmin) / (Xmax - Xmin))); - xpos := xpos + hleft; - outline := format('%d',[Dropped[i]]); - Title := outline; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - end - else - begin - BlankFrm.Image1.Canvas.Font.Color := clRed; - ypos := vbottom + 48; - xpos := ceil(hwide * ((Xpoints[i] - Xmin) / (Xmax - Xmin))); - xpos := xpos + hleft; - outline := format('%d',[Dropped2[i]]); - Title := outline; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - end; - end; - - BlankFrm.Image1.Canvas.Font.Color := clBlack; - ypos := vbottom + 60; - Title := 'NUMBER CENSORED'; - xpos := hleft + (hwide div 2) - (BlankFrm.Image1.Canvas.TextWidth(Title) div 2); - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - - BlankFrm.Image1.Canvas.Font.Color := clNavy; - Title := 'EXPERIMENTAL'; - xpos := 5; - ypos := vbottom + 35; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - if (curveno = 2) then - begin - BlankFrm.Image1.Canvas.Font.Color := clRed; - Title := 'CONTROL'; - xpos := 5; - ypos := vbottom + 48; - BlankFrm.Image1.Canvas.TextOut(xpos,ypos,Title); - end; -end; - -initialization - {$I kaplanmeierunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/kappaunit.lfm b/applications/lazstats/source_orig/kappaunit.lfm deleted file mode 100644 index 8f6e580a8..000000000 --- a/applications/lazstats/source_orig/kappaunit.lfm +++ /dev/null @@ -1,484 +0,0 @@ -object WeightedKappaFrm: TWeightedKappaFrm - Left = 132 - Height = 410 - Top = 112 - Width = 631 - Caption = 'Kappa and Weighted Kappa' - ClientHeight = 410 - ClientWidth = 631 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 10 - Height = 14 - Top = 112 - Width = 44 - Caption = 'Variables' - ParentColor = False - end - object Label2: TLabel - Left = 216 - Height = 14 - Top = 130 - Width = 38 - Caption = 'Rater A' - ParentColor = False - end - object Label3: TLabel - Left = 216 - Height = 14 - Top = 209 - Width = 37 - Caption = 'Rater B' - ParentColor = False - end - object Label4: TLabel - Left = 216 - Height = 14 - Top = 280 - Width = 93 - Caption = 'Variable to Analyze' - ParentColor = False - end - object Label5: TLabel - Left = 376 - Height = 14 - Top = 112 - Width = 114 - Caption = 'Total Number of Cases:' - ParentColor = False - end - object InputGroup: TRadioGroup - Left = 9 - Height = 90 - Top = 8 - Width = 610 - 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 = 72 - ClientWidth = 606 - Items.Strings = ( - 'Count cases classified by row and column variables in the data grid' - 'Use frequencies in a variable for a given row variable value and column variable value.' - 'Use proportions in a variable for a given row variable value and column variable value.' - ) - OnClick = InputGroupClick - TabOrder = 0 - end - object VarList: TListBox - Left = 9 - Height = 212 - Top = 128 - Width = 160 - ItemHeight = 0 - TabOrder = 1 - end - object RowIn: TBitBtn - Left = 176 - Height = 32 - Top = 130 - Width = 27 - 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 - } - OnClick = RowInClick - TabOrder = 2 - end - object RowOut: TBitBtn - Left = 176 - Height = 22 - Top = 168 - Width = 27 - 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 - } - OnClick = RowOutClick - TabOrder = 3 - end - object ColIn: TBitBtn - Left = 176 - Height = 22 - Top = 209 - Width = 27 - 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 - } - OnClick = ColInClick - TabOrder = 4 - end - object ColOut: TBitBtn - Left = 176 - Height = 22 - Top = 232 - Width = 27 - 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 - } - OnClick = ColOutClick - TabOrder = 5 - end - object DepIn: TBitBtn - Left = 176 - Height = 22 - Top = 280 - Width = 27 - 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 - } - OnClick = DepInClick - TabOrder = 6 - end - object DepOut: TBitBtn - Left = 176 - Height = 20 - Top = 308 - Width = 27 - 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 - } - OnClick = DepOutClick - TabOrder = 7 - end - object RaterAEdit: TEdit - Left = 216 - Height = 21 - Top = 144 - Width = 120 - TabOrder = 8 - Text = 'RaterAEdit' - end - object RaterBEdit: TEdit - Left = 216 - Height = 21 - Top = 224 - Width = 120 - TabOrder = 9 - Text = 'Edit1' - end - object DepEdit: TEdit - Left = 216 - Height = 21 - Top = 296 - Width = 120 - TabOrder = 10 - Text = 'Edit1' - end - object NCasesEdit: TEdit - Left = 496 - Height = 21 - Top = 105 - Width = 62 - TabOrder = 11 - Text = 'NCasesEdit' - end - object GroupBox1: TGroupBox - Left = 376 - Height = 197 - Top = 136 - Width = 242 - Caption = 'Options:' - ClientHeight = 179 - ClientWidth = 238 - TabOrder = 12 - object ObsChk: TCheckBox - Left = 9 - Height = 17 - Top = 2 - Width = 157 - Caption = 'Show Observed Frequencies' - TabOrder = 0 - end - object ExpChk: TCheckBox - Left = 9 - Height = 17 - Top = 25 - Width = 155 - Caption = 'Show Expected Frequencies' - TabOrder = 1 - end - object PropChk: TCheckBox - Left = 9 - Height = 17 - Top = 50 - Width = 187 - Caption = 'Show Row and Column Proportions' - TabOrder = 2 - end - object ChiChk: TCheckBox - Left = 9 - Height = 17 - Top = 77 - Width = 155 - Caption = 'Show Cell Chi Square Values' - TabOrder = 3 - end - object YatesChk: TCheckBox - Left = 9 - Height = 17 - Top = 104 - Width = 209 - Caption = 'Use Yates'' Correction for a 2 by 2 table' - TabOrder = 4 - end - object SaveChk: TCheckBox - Left = 9 - Height = 17 - Top = 130 - Width = 179 - Caption = 'Save as a File of Frequency Data' - TabOrder = 5 - end - end - object ResetBtn: TButton - Left = 136 - Height = 33 - Top = 360 - Width = 79 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 13 - end - object Cancel: TButton - Left = 257 - Height = 33 - Top = 360 - Width = 79 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 14 - end - object ComputeBtn: TButton - Left = 376 - Height = 33 - Top = 360 - Width = 79 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 15 - end - object ReturnBtn: TButton - Left = 496 - Height = 33 - Top = 360 - Width = 79 - Caption = 'Return' - ModalResult = 1 - TabOrder = 16 - end - object HelpBtn: TButton - Tag = 128 - Left = 10 - Height = 33 - Top = 360 - Width = 86 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 17 - end -end diff --git a/applications/lazstats/source_orig/kappaunit.lrs b/applications/lazstats/source_orig/kappaunit.lrs deleted file mode 100644 index 88fde99ed..000000000 --- a/applications/lazstats/source_orig/kappaunit.lrs +++ /dev/null @@ -1,367 +0,0 @@ -LazarusResources.Add('TWeightedKappaFrm','FORMDATA',[ - 'TPF0'#17'TWeightedKappaFrm'#16'WeightedKappaFrm'#4'Left'#3#132#0#6'Height'#3 - +#154#1#3'Top'#2'p'#5'Width'#3'w'#2#7'Caption'#6#24'Kappa and Weighted Kappa' - +#12'ClientHeight'#3#154#1#11'ClientWidth'#3'w'#2#6'OnShow'#7#8'FormShow'#10 - +'LCLVersion'#6#8'0.9.28.2'#0#6'TLabel'#6'Label1'#4'Left'#2#10#6'Height'#2#14 - +#3'Top'#2'p'#5'Width'#2','#7'Caption'#6#9'Variables'#11'ParentColor'#8#0#0#6 - +'TLabel'#6'Label2'#4'Left'#3#216#0#6'Height'#2#14#3'Top'#3#130#0#5'Width'#2 - +'&'#7'Caption'#6#7'Rater A'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left' - +#3#216#0#6'Height'#2#14#3'Top'#3#209#0#5'Width'#2'%'#7'Caption'#6#7'Rater B' - +#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#3#216#0#6'Height'#2#14#3 - +'Top'#3#24#1#5'Width'#2']'#7'Caption'#6#19'Variable to Analyze'#11'ParentCol' - +'or'#8#0#0#6'TLabel'#6'Label5'#4'Left'#3'x'#1#6'Height'#2#14#3'Top'#2'p'#5'W' - +'idth'#2'r'#7'Caption'#6#22'Total Number of Cases:'#11'ParentColor'#8#0#0#11 - +'TRadioGroup'#10'InputGroup'#4'Left'#2#9#6'Height'#2'Z'#3'Top'#2#8#5'Width'#3 - +'b'#2#8'AutoFill'#9#7'Caption'#6#14'Input Options:'#28'ChildSizing.LeftRight' - +'Spacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSizing.EnlargeHor' - +'izontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.EnlargeVertical'#7#24 - +'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7#14'crsScaleChi' - +'lds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'ChildSizing.Lay' - +'out'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.ControlsPerLine'#2#1 - +#12'ClientHeight'#2'H'#11'ClientWidth'#3'^'#2#13'Items.Strings'#1#6'CCount c' - +'ases classified by row and column variables in the data grid'#6'WUse freque' - +'ncies in a variable for a given row variable value and column variable valu' - +'e.'#6'WUse proportions in a variable for a given row variable value and col' - +'umn variable value.'#0#7'OnClick'#7#15'InputGroupClick'#8'TabOrder'#2#0#0#0 - +#8'TListBox'#7'VarList'#4'Left'#2#9#6'Height'#3#212#0#3'Top'#3#128#0#5'Width' - +#3#160#0#10'ItemHeight'#2#0#8'TabOrder'#2#1#0#0#7'TBitBtn'#5'RowIn'#4'Left'#3 - +#176#0#6'Height'#2' '#3'Top'#3#130#0#5'Width'#2#27#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#7'OnClick'#7#10'RowInClick'#8'TabOrder'#2#2#0#0#7'TBitB' - +'tn'#6'RowOut'#4'Left'#3#176#0#6'Height'#2#22#3'Top'#3#168#0#5'Width'#2#27#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#7'OnClick'#7#11'RowOutClick'#8'Ta' - ,'bOrder'#2#3#0#0#7'TBitBtn'#5'ColIn'#4'Left'#3#176#0#6'Height'#2#22#3'Top'#3 - +#209#0#5'Width'#2#27#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#7'OnClick' - +#7#10'ColInClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#6'ColOut'#4'Left'#3#176#0#6 - +'Height'#2#22#3'Top'#3#232#0#5'Width'#2#27#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#7'OnClick'#7#11'ColOutClick'#8'TabOrder'#2#5#0#0#7'TBit' - +'Btn'#5'DepIn'#4'Left'#3#176#0#6'Height'#2#22#3'Top'#3#24#1#5'Width'#2#27#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#7'OnClick'#7#10'DepInClick'#8'TabOrder'#2 - +#6#0#0#7'TBitBtn'#6'DepOut'#4'Left'#3#176#0#6'Height'#2#20#3'Top'#3'4'#1#5'W' - +'idth'#2#27#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#7'OnClick' - +#7#11'DepOutClick'#8'TabOrder'#2#7#0#0#5'TEdit'#10'RaterAEdit'#4'Left'#3#216 - +#0#6'Height'#2#21#3'Top'#3#144#0#5'Width'#2'x'#8'TabOrder'#2#8#4'Text'#6#10 - +'RaterAEdit'#0#0#5'TEdit'#10'RaterBEdit'#4'Left'#3#216#0#6'Height'#2#21#3'To' - +'p'#3#224#0#5'Width'#2'x'#8'TabOrder'#2#9#4'Text'#6#5'Edit1'#0#0#5'TEdit'#7 - +'DepEdit'#4'Left'#3#216#0#6'Height'#2#21#3'Top'#3'('#1#5'Width'#2'x'#8'TabOr' - +'der'#2#10#4'Text'#6#5'Edit1'#0#0#5'TEdit'#10'NCasesEdit'#4'Left'#3#240#1#6 - +'Height'#2#21#3'Top'#2'i'#5'Width'#2'>'#8'TabOrder'#2#11#4'Text'#6#10'NCases' - +'Edit'#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3'x'#1#6'Height'#3#197#0#3'Top' - +#3#136#0#5'Width'#3#242#0#7'Caption'#6#8'Options:'#12'ClientHeight'#3#179#0 - +#11'ClientWidth'#3#238#0#8'TabOrder'#2#12#0#9'TCheckBox'#6'ObsChk'#4'Left'#2 - +#9#6'Height'#2#17#3'Top'#2#2#5'Width'#3#157#0#7'Caption'#6#25'Show Observed ' - +'Frequencies'#8'TabOrder'#2#0#0#0#9'TCheckBox'#6'ExpChk'#4'Left'#2#9#6'Heigh' - +'t'#2#17#3'Top'#2#25#5'Width'#3#155#0#7'Caption'#6#25'Show Expected Frequenc' - +'ies'#8'TabOrder'#2#1#0#0#9'TCheckBox'#7'PropChk'#4'Left'#2#9#6'Height'#2#17 - +#3'Top'#2'2'#5'Width'#3#187#0#7'Caption'#6#31'Show Row and Column Proportion' - +'s'#8'TabOrder'#2#2#0#0#9'TCheckBox'#6'ChiChk'#4'Left'#2#9#6'Height'#2#17#3 - +'Top'#2'M'#5'Width'#3#155#0#7'Caption'#6#27'Show Cell Chi Square Values'#8'T' - +'abOrder'#2#3#0#0#9'TCheckBox'#8'YatesChk'#4'Left'#2#9#6'Height'#2#17#3'Top' - +#2'h'#5'Width'#3#209#0#7'Caption'#6'(Use Yates'' Correction for a 2 by 2 tab' - +'le'#8'TabOrder'#2#4#0#0#9'TCheckBox'#7'SaveChk'#4'Left'#2#9#6'Height'#2#17#3 - +'Top'#3#130#0#5'Width'#3#179#0#7'Caption'#6' Save as a File of Frequency Dat' - +'a'#8'TabOrder'#2#5#0#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#136#0#6'Height'#2 - +'!'#3'Top'#3'h'#1#5'Width'#2'O'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetB' - +'tnClick'#8'TabOrder'#2#13#0#0#7'TButton'#6'Cancel'#4'Left'#3#1#1#6'Height'#2 - +'!'#3'Top'#3'h'#1#5'Width'#2'O'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8 - +'TabOrder'#2#14#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3'x'#1#6'Height'#2'!'#3 - +'Top'#3'h'#1#5'Width'#2'O'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBt' - +'nClick'#8'TabOrder'#2#15#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#240#1#6'Heig' - +'ht'#2'!'#3'Top'#3'h'#1#5'Width'#2'O'#7'Caption'#6#6'Return'#11'ModalResult' - +#2#1#8'TabOrder'#2#16#0#0#7'TButton'#7'HelpBtn'#3'Tag'#3#128#0#4'Left'#2#10#6 - +'Height'#2'!'#3'Top'#3'h'#1#5'Width'#2'V'#7'Caption'#6#4'Help'#7'OnClick'#7 - +#12'HelpBtnClick'#8'TabOrder'#2#17#0#0#0 -]); diff --git a/applications/lazstats/source_orig/kappaunit.pas b/applications/lazstats/source_orig/kappaunit.pas deleted file mode 100644 index 14f34a9a6..000000000 --- a/applications/lazstats/source_orig/kappaunit.pas +++ /dev/null @@ -1,670 +0,0 @@ -unit KappaUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, ExtCtrls, Buttons, MainUnit, Globals, OutPutUnit, FunctionsLib, - Math, DictionaryUnit, DataProcs, MatrixLib, contexthelpunit; - -type - - { TWeightedKappaFrm } - - TWeightedKappaFrm = class(TForm) - HelpBtn: TButton; - ResetBtn: TButton; - Cancel: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - ObsChk: TCheckBox; - ExpChk: TCheckBox; - PropChk: TCheckBox; - ChiChk: TCheckBox; - YatesChk: TCheckBox; - SaveChk: TCheckBox; - GroupBox1: TGroupBox; - NCasesEdit: TEdit; - Label5: TLabel; - RowIn: TBitBtn; - RowOut: TBitBtn; - ColIn: TBitBtn; - ColOut: TBitBtn; - DepIn: TBitBtn; - DepOut: TBitBtn; - RaterAEdit: TEdit; - RaterBEdit: TEdit; - DepEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - VarList: TListBox; - InputGroup: TRadioGroup; - 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 HelpBtnClick(Sender: TObject); - procedure InputGroupClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure RowInClick(Sender: TObject); - procedure RowOutClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - WeightedKappaFrm: TWeightedKappaFrm; - -implementation - -{ TWeightedKappaFrm } - -procedure TWeightedKappaFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - VarList.Clear; - RaterAEdit.Text := ''; - RaterBEdit.Text := ''; - DepEdit.Text := ''; - DepEdit.Visible := false; - RowIn.Visible := true; - RowOut.Visible := false; - ColIn.Visible := true; - ColOut.Visible := false; - DepIn.Visible := false; - DepOut.Visible := false; - NCasesEdit.Text := ''; - NCasesEdit.Visible := false; - Label4.Visible := false; - Label5.Visible := false; - InputGroup.ItemIndex := 0; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TWeightedKappaFrm.RowInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - RaterAEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - RowIn.Visible := false; - RowOut.Visible := true; -end; - -procedure TWeightedKappaFrm.RowOutClick(Sender: TObject); -begin - VarList.Items.Add(RaterAEdit.Text); - RaterAEdit.Text := ''; - RowIn.Visible := true; - RowOut.Visible := false; -end; - -procedure TWeightedKappaFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TWeightedKappaFrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure TWeightedKappaFrm.InputGroupClick(Sender: TObject); -VAR index : integer; -begin - index := InputGroup.ItemIndex; - if (index = 2) then // only proportions available - get N size - begin - Label4.Visible := true; - NCasesEdit.Visible := true; - NCasesEdit.SetFocus; - DepIn.Visible := true; - DepOut.Visible := false; - DepEdit.Visible := true; - Label5.Visible := true; - end; - if (index = 1) then // frequencies available for each row and column combo - begin - Label4.Visible := true; - NCasesEdit.Visible := false; - DepIn.Visible := true; - DepOut.Visible := false; - DepEdit.Visible := true; - Label5.Visible := false; - end; - if (index = 0) then // have to count cases in each row and col. combination - begin - NCasesEdit.Visible := false; - DepIn.Visible := false; - DepOut.Visible := false; - DepEdit.Visible := false; - Label4.Visible := false; - Label5.Visible := false; - end; -end; - -procedure TWeightedKappaFrm.ColInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - RaterBEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - ColIn.Visible := false; - ColOut.Visible := true; -end; - -procedure TWeightedKappaFrm.ColOutClick(Sender: TObject); -begin - VarList.Items.Add(RaterBEdit.Text); - RaterBEdit.Text := ''; - ColIn.Visible := true; - ColOut.Visible := false; -end; - -procedure TWeightedKappaFrm.ComputeBtnClick(Sender: TObject); -VAR - i, j, k, RowNo, ColNo, DepNo, MinRow, MaxRow, MinCol, MaxCol : integer; - Row, Col, NoSelected, Ncases, Nrows, Ncols, FObs, df : integer; - RowLabels, ColLabels : StrDyneVec; - ColNoSelected : IntDyneVec; - cellstring : string; - outline : string; - Freq : IntDyneMat; - Prop, Expected, CellChi : DblDyneMat; - PObs, ChiSquare, ProbChi, liklihood, Fval, phi : double; - yates, aresult : boolean; - title : string; - filename : string; - Adjchisqr, Adjprobchi, probliklihood, pearsonr : double; - pobserved, SumX, SumY, VarX, VarY, obsdiag, expdiag, expnondiag : double; - pexpected, MantelHaenszel, MHprob, CoefCont, CramerV, Kappa : double; - Frq : integer; - weights, quadweights : DblDyneMat; -begin - SetLength(ColNoSelected,NoVariables); - yates := false; - RowNo := 0; - ColNo := 0; - DepNo := 0; - pobserved := 0.0; - pexpected := 0.0; - - for i := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[i,0]; - if (cellstring = RaterAEdit.Text) then RowNo := i; - if (cellstring = RaterBEdit.Text) then ColNo := i; - if (cellstring = DepEdit.Text) then DepNo := i; - end; - if ((InputGroup.ItemIndex > 0) and (DepNo = 0)) then - begin - ShowMessage('ERROR! You must select a dependent variable.'); - ColNoSelected := nil; - exit; - end; - if ((RowNo = 0) or (ColNo = 0)) then // || (DepNo == 0)) - begin - ShowMessage('ERROR! A required variable has not been selected.'); - ColNoSelected := nil; - exit; - end; - - aresult := ValidValue(RowNo,1); - if (aresult = false) then - begin - ColNoSelected := nil; - exit; - end; - aresult := ValidValue(ColNo,1); - if (aresult = false) then - begin - ColNoSelected := nil; - exit; - end; - - ColNoSelected[0] := RowNo; - ColNoSelected[1] := ColNo; - NoSelected := 2; - if (InputGroup.ItemIndex > 0) then // for reading proportions or frequencies - begin - NoSelected := 3; - ColNoSelected[2] := DepNo; - end; - if (InputGroup.ItemIndex = 1) then - begin - aresult := ValidValue(DepNo,1); - if (aresult = false) then - begin - ColNoSelected := nil; - exit; - end; - end; - if (InputGroup.ItemIndex = 2) then - begin - aresult := ValidValue(DepNo,0); - if (aresult = false) then - begin - ColNoSelected := nil; - exit; - end; - 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 := StrToInt(OS3MainFrm.DataGrid.Cells[RowNo,i]); - Col := StrToInt(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; - for i := 1 to Nrows do - begin - outline := format('Row %d',[i]); - cellstring := outline; - RowLabels[i-1] := cellstring; - end; - RowLabels[Nrows] := 'Total'; - for j := 1 to Ncols do - begin - outline := format('COL. %d',[j]); - cellstring := outline; - ColLabels[j-1] := cellstring; - end; - ColLabels[Ncols] := 'Total'; - - // get cell data - Ncases := 0; - if (InputGroup.ItemIndex = 0) then - 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 := StrToInt(OS3MainFrm.DataGrid.Cells[RowNo,i]); - Col := StrToInt(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; - - if (InputGroup.ItemIndex = 1) then // read frequencies data from grid - begin - for i := 1 to NoCases do - begin - if (NOT GoodRecord(i,NoSelected,ColNoSelected)) then continue; - Row := StrToInt(OS3MainFrm.DataGrid.Cells[RowNo,i]); - Col := StrToInt(OS3MainFrm.DataGrid.Cells[ColNo,i]); - Row := Row - MinRow + 1; - Col := Col - MinCol + 1; - FObs := StrToInt(OS3MainFrm.DataGrid.Cells[DepNo,i]); - Freq[Row-1,Col-1] := Freq[Row-1,Col-1] + FObs; - Ncases := Ncases + FObs; - end; - end; - if (InputGroup.ItemIndex = 2) then // get no. of cases and proportions for each cell - begin - Ncases := StrToInt(NCasesEdit.Text); - for i := 1 to NoCases do - begin - if (NOT GoodRecord(i,NoSelected,ColNoSelected)) then continue; - Row := StrToInt(OS3MainFrm.DataGrid.Cells[RowNo,i]); - Col := StrToInt(OS3MainFrm.DataGrid.Cells[ColNo,i]); - Row := Row - MinRow + 1; - Col := Col - MinCol + 1; - PObs := StrToInt(OS3MainFrm.DataGrid.Cells[DepNo,i]); - Frq := round(PObs * Ncases); - Fval := PObs * Ncases; - if (Fval - Frq < 0.5) then Frq := round(Fval) - else Frq := ceil(Fval); - Freq[Row-1,Col-1] := Freq[Row-1,Col-1] + Frq; - end; - end; - Freq[Nrows,Ncols] := Ncases; - - // Now, calculate expected values - // Get row totals first - for i := 1 to Nrows do - begin - for j := 1 to Ncols do - begin - Freq[i-1,Ncols] := Freq[i-1,Ncols] + Freq[i-1,j-1]; - end; - end; - // Get col totals next - for j := 1 to Ncols do - begin - for i := 1 to Nrows do - begin - Freq[Nrows,j-1] := Freq[Nrows,j-1] + Freq[i-1,j-1]; - end; - end; - // 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 for ' + RaterAEdit.Text + ' and ' + RaterBEdit.Text); - outline := format('No. of Cases = %d',[Ncases]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - - // print tables requested by use - if (ObsChk.Checked) then - begin - IntArrayPrint(Freq, Nrows+1, Ncols+1,'Frequencies', - RowLabels, ColLabels,'OBSERVED FREQUENCIES'); - end; - - if (ExpChk.Checked) then - begin - outline := 'EXPECTED FREQUENCIES'; - MAT_PRINT(Expected, Nrows, Ncols, outline, RowLabels, ColLabels, - NoCases); - end; - - if (PropChk.Checked) then - begin - outline := '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, outline, RowLabels, ColLabels, - NoCases); - outline := '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, outline, RowLabels, ColLabels, - NoCases); - outline := '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, outline, RowLabels, ColLabels, - NoCases); - end; - - if (ChiChk.Checked) then - begin - outline := 'CHI-SQUARED VALUE FOR CELLS'; - MAT_PRINT(CellChi, Nrows, Ncols, outline, RowLabels, ColLabels, - NoCases); - end; - - OutPutFrm.RichEdit.Lines.Add(''); - 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 - 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(''); - - 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); - - // kappa - if (Nrows = Ncols) then - begin - obsdiag := 0.0; - expdiag := 0.0; - for i := 0 to Nrows - 1 do - begin - obsdiag := obsdiag + Freq[i,i]; - expdiag := expdiag + Expected[i,i]; - end; - expnondiag := Ncases - expdiag; - Kappa := (obsdiag - expdiag) / expnondiag; - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Unweighted Kappa = %8.4f',[Kappa]); - OutPutFrm.RichEdit.Lines.Add(outline); - // get linear weights - SetLength(weights,Nrows,Ncols); - SetLength(quadweights,Nrows,Ncols); - for i := 0 to Nrows - 1 do - begin - for j := 0 to Ncols - 1 do - begin - weights[i,j] := 0.0; - quadweights[i,j] := 0.0; - end; - end; - for i := 0 to Nrows - 1 do - begin - for j := 0 to Ncols - 1 do - begin - weights[i,j] := 1.0 - (abs((i-j)) / (Nrows-1)); - quadweights[i,j] := 1.0 - ( abs((i-j)*(i-j)) / ((Nrows-1)*(Nrows-1)) ); - end; - end; - outline := 'Observed Linear Weights'; - MAT_PRINT(weights, Nrows, Ncols, outline, RowLabels, ColLabels, NoCases); - outline := 'Observed Quadratic Weights'; - MAT_PRINT(quadweights, Nrows, Ncols, outline, RowLabels, ColLabels, NoCases); - OutPutFrm.RichEdit.Lines.Add(''); - for i := 0 to Nrows - 1 do - begin - for j := 0 to Ncols - 1 do - begin - pobserved := pobserved + (Freq[i][j] / Ncases) * weights[i,j]; - pexpected := pexpected + (Expected[i,j] / Ncases) * weights[i,j]; - end; - end; - Kappa := (pobserved - pexpected) / (1.0 - pexpected); - outline := format('Linear Weighted Kappa = %8.4f',[Kappa]); - OutPutFrm.RichEdit.Lines.Add(outline); - pobserved := 0.0; - pexpected := 0.0; - for i := 0 to Nrows - 1 do - begin - for j := 0 to Ncols - 1 do - begin - pobserved := pobserved + (Freq[i,j] / Ncases) * quadweights[i,j]; - pexpected := pexpected + (Expected[i,j] / Ncases) * quadweights[i,j]; - end; - end; - Kappa := (pobserved - pexpected) / (1.0 - pexpected); - outline := format('Quadratic Weighted Kappa = %8.4f',[Kappa]); - OutPutFrm.RichEdit.Lines.Add(outline); - quadweights := nil; - weights := nil; - end; - - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - // save frequency data file if elected - if ((SaveChk.Checked) and (InputGroup.ItemIndex = 0)) then - begin - ClearGrid; - for i := 1 to 3 do DictionaryFrm.NewVar(i); - DictionaryFrm.DictGrid.Cells[1,1] := 'ROW'; - DictionaryFrm.DictGrid.Cells[1,2] := 'COL'; - DictionaryFrm.DictGrid.Cells[1,3] := 'FREQ.'; - OS3MainFrm.DataGrid.Cells[1,0] := 'ROW'; - OS3MainFrm.DataGrid.Cells[2,0] := 'COL'; - OS3MainFrm.DataGrid.Cells[3,0] := 'Freq.'; - k := 1; - for i := 1 to Nrows do - begin - for j := 1 to Ncols do - begin - OS3MainFrm.DataGrid.RowCount := k + 1; - OS3MainFrm.DataGrid.Cells[1,k] := IntToStr(i); - OS3MainFrm.DataGrid.Cells[2,k] := IntToStr(j); - OS3MainFrm.DataGrid.Cells[3,k] := IntToStr(Freq[i-1,j-1]); - k := k + 1; - end; - end; - for i := 1 to k - 1 do - begin - title := 'CASE ' + IntToStr(i); - OS3MainFrm.DataGrid.Cells[0,i] := title; - end; - title := InputBox('FILE:','File Name:','Frequencies.LAZ'); - OS3MainFrm.FileNameEdit.Text := title; - OS3MainFrm.NoVarsEdit.Text := IntToStr(3); - OS3MainFrm.NoCasesEdit.Text := IntToStr(k-1); - NoVariables := 3; - NoCases := k-1; - SaveOS2File; - end; - - //clean up - ColLabels := nil; - RowLabels := nil; - CellChi := nil; - Expected := nil; - Prop := nil; - Freq := nil; - ColNoSelected := nil; -end; - -procedure TWeightedKappaFrm.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 TWeightedKappaFrm.DepOutClick(Sender: TObject); -begin - VarList.Items.Add(DepEdit.Text); - DepEdit.Text := ''; - DepIn.Visible := true; - DepOut.Visible := false; -end; - -initialization - {$I kappaunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/kendalltauunit.lfm b/applications/lazstats/source_orig/kendalltauunit.lfm deleted file mode 100644 index 189763d52..000000000 --- a/applications/lazstats/source_orig/kendalltauunit.lfm +++ /dev/null @@ -1,398 +0,0 @@ -object KendallTauFrm: TKendallTauFrm - Left = 132 - Height = 348 - Top = 97 - Width = 352 - Caption = 'Kendall Rank Correlation Tau and Partial Tau' - ClientHeight = 348 - ClientWidth = 352 - OnShow = FormShow - LCLVersion = '0.9.26.2' - object Label1: TLabel - Left = 5 - Height = 14 - Top = 5 - Width = 90 - Caption = 'Variables Available' - ParentColor = False - end - object Label2: TLabel - Left = 214 - Height = 14 - Top = 25 - Width = 48 - Caption = 'X Variable' - ParentColor = False - end - object Label3: TLabel - Left = 217 - Height = 14 - Top = 105 - Width = 48 - Caption = 'Y Variable' - ParentColor = False - end - object Label4: TLabel - Left = 216 - Height = 14 - Top = 184 - Width = 48 - Caption = 'Z Variable' - ParentColor = False - end - object VarList: TListBox - Left = 6 - Height = 254 - Top = 21 - Width = 160 - TabOrder = 0 - end - object XIn: TBitBtn - Left = 176 - Height = 28 - Top = 22 - 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 = XInClick - TabOrder = 1 - end - object XOut: TBitBtn - Left = 176 - Height = 28 - 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 = XOutClick - TabOrder = 2 - end - object YIn: TBitBtn - Left = 176 - Height = 28 - Top = 104 - 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 = YInClick - TabOrder = 3 - end - object YOut: TBitBtn - Left = 175 - Height = 28 - Top = 136 - 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 = YOutClick - TabOrder = 4 - end - object ZIn: TBitBtn - Left = 176 - Height = 28 - Top = 184 - 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 = ZInClick - TabOrder = 5 - end - object ZOut: TBitBtn - Left = 176 - Height = 28 - Top = 216 - 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 = ZOutClick - TabOrder = 6 - end - object XEdit: TEdit - Left = 213 - Height = 18 - Top = 39 - Width = 120 - TabOrder = 7 - Text = 'XEdit' - end - object YEdit: TEdit - Left = 217 - Height = 18 - Top = 120 - Width = 120 - TabOrder = 8 - Text = 'Edit1' - end - object ZEdit: TEdit - Left = 216 - Height = 18 - Top = 200 - Width = 120 - TabOrder = 9 - Text = 'Edit1' - end - object GroupBox1: TGroupBox - Left = 6 - Height = 46 - Top = 287 - Width = 161 - Caption = 'Options:' - ClientHeight = 28 - ClientWidth = 157 - TabOrder = 10 - object RanksChk: TCheckBox - Left = 8 - Height = 17 - Top = 3 - Width = 124 - Caption = 'Show Ranked Scores' - TabOrder = 0 - end - end - object ResetBtn: TButton - Left = 174 - Height = 26 - Top = 254 - Width = 65 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 11 - end - object CancelBtn: TButton - Left = 268 - Height = 26 - Top = 254 - Width = 65 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 12 - end - object ComputeBtn: TButton - Left = 176 - Height = 26 - Top = 307 - Width = 65 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 13 - end - object ReturnBtn: TButton - Left = 268 - Height = 26 - Top = 307 - Width = 65 - Caption = 'Return' - ModalResult = 1 - TabOrder = 14 - end -end diff --git a/applications/lazstats/source_orig/kendalltauunit.lrs b/applications/lazstats/source_orig/kendalltauunit.lrs deleted file mode 100644 index 56187060b..000000000 --- a/applications/lazstats/source_orig/kendalltauunit.lrs +++ /dev/null @@ -1,341 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TKendallTauFrm','FORMDATA',[ - 'TPF0'#14'TKendallTauFrm'#13'KendallTauFrm'#4'Left'#3#132#0#6'Height'#3'\'#1#3 - +'Top'#2'a'#5'Width'#3'`'#1#7'Caption'#6',Kendall Rank Correlation Tau and Pa' - +'rtial Tau'#12'ClientHeight'#3'\'#1#11'ClientWidth'#3'`'#1#6'OnShow'#7#8'For' - +'mShow'#10'LCLVersion'#6#8'0.9.26.2'#0#6'TLabel'#6'Label1'#4'Left'#2#5#6'Hei' - +'ght'#2#14#3'Top'#2#5#5'Width'#2'Z'#7'Caption'#6#19'Variables Available'#11 - +'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#214#0#6'Height'#2#14#3'Top' - +#2#25#5'Width'#2'0'#7'Caption'#6#10'X Variable'#11'ParentColor'#8#0#0#6'TLab' - +'el'#6'Label3'#4'Left'#3#217#0#6'Height'#2#14#3'Top'#2'i'#5'Width'#2'0'#7'Ca' - +'ption'#6#10'Y Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#3 - +#216#0#6'Height'#2#14#3'Top'#3#184#0#5'Width'#2'0'#7'Caption'#6#10'Z Variabl' - +'e'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left'#2#6#6'Height'#3#254 - +#0#3'Top'#2#21#5'Width'#3#160#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#3'XIn'#4'Left' - +#3#176#0#6'Height'#2#28#3'Top'#2#22#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#8'XInClick'#8'TabOrder'#2 - +#1#0#0#7'TBitBtn'#4'XOut'#4'Left'#3#176#0#6'Height'#2#28#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#9'X' - +'OutClick'#8'TabOrder'#2#2#0#0#7'TBitBtn'#3'YIn'#4'Left'#3#176#0#6'Height'#2 - +#28#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#255#255 - +#255#0#255#255#255#0#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#8'YInClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#4 - +'YOut'#4'Left'#3#175#0#6'Height'#2#28#3'Top'#3#136#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''#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#9'YOutClick'#8'Ta' - +'bOrder'#2#4#0#0#7'TBitBtn'#3'ZIn'#4'Left'#3#176#0#6'Height'#2#28#3'Top'#3 - +#184#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#8'ZInClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'#4'ZOut'#4'L' - +'eft'#3#176#0#6'Height'#2#28#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'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#9'ZOutClick'#8'TabOrd' - ,'er'#2#6#0#0#5'TEdit'#5'XEdit'#4'Left'#3#213#0#6'Height'#2#18#3'Top'#2''''#5 - +'Width'#2'x'#8'TabOrder'#2#7#4'Text'#6#5'XEdit'#0#0#5'TEdit'#5'YEdit'#4'Left' - +#3#217#0#6'Height'#2#18#3'Top'#2'x'#5'Width'#2'x'#8'TabOrder'#2#8#4'Text'#6#5 - +'Edit1'#0#0#5'TEdit'#5'ZEdit'#4'Left'#3#216#0#6'Height'#2#18#3'Top'#3#200#0#5 - +'Width'#2'x'#8'TabOrder'#2#9#4'Text'#6#5'Edit1'#0#0#9'TGroupBox'#9'GroupBox1' - +#4'Left'#2#6#6'Height'#2'.'#3'Top'#3#31#1#5'Width'#3#161#0#7'Caption'#6#8'Op' - +'tions:'#12'ClientHeight'#2#28#11'ClientWidth'#3#157#0#8'TabOrder'#2#10#0#9 - +'TCheckBox'#8'RanksChk'#4'Left'#2#8#6'Height'#2#17#3'Top'#2#3#5'Width'#2'|'#7 - +'Caption'#6#18'Show Ranked Scores'#8'TabOrder'#2#0#0#0#0#7'TButton'#8'ResetB' - +'tn'#4'Left'#3#174#0#6'Height'#2#26#3'Top'#3#254#0#5'Width'#2'A'#7'Caption'#6 - +#5'Reset'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#11#0#0#7'TButton'#9'C' - +'ancelBtn'#4'Left'#3#12#1#6'Height'#2#26#3'Top'#3#254#0#5'Width'#2'A'#7'Capt' - +'ion'#6#6'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#12#0#0#7'TButton'#10'Com' - +'puteBtn'#4'Left'#3#176#0#6'Height'#2#26#3'Top'#3'3'#1#5'Width'#2'A'#7'Capti' - +'on'#6#7'Compute'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#13#0#0#7'TB' - +'utton'#9'ReturnBtn'#4'Left'#3#12#1#6'Height'#2#26#3'Top'#3'3'#1#5'Width'#2 - +'A'#7'Caption'#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#14#0#0#0 -]); diff --git a/applications/lazstats/source_orig/kendalltauunit.pas b/applications/lazstats/source_orig/kendalltauunit.pas deleted file mode 100644 index 0f33d0464..000000000 --- a/applications/lazstats/source_orig/kendalltauunit.pas +++ /dev/null @@ -1,554 +0,0 @@ -unit KendallTauUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, OutPutUnit, FunctionsLib, Globals, - DataProcs, Math, MatrixLib; - -type - - { TKendallTauFrm } - - TKendallTauFrm = class(TForm) - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - RanksChk: TCheckBox; - GroupBox1: TGroupBox; - XEdit: TEdit; - YEdit: TEdit; - ZEdit: TEdit; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - XIn: TBitBtn; - XOut: TBitBtn; - YIn: TBitBtn; - YOut: TBitBtn; - ZIn: TBitBtn; - ZOut: TBitBtn; - Label1: TLabel; - VarList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure XInClick(Sender: TObject); - procedure XOutClick(Sender: TObject); - procedure YInClick(Sender: TObject); - procedure YOutClick(Sender: TObject); - procedure ZInClick(Sender: TObject); - procedure ZOutClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - KendallTauFrm: TKendallTauFrm; - -implementation - -{ TKendallTauFrm } - -procedure TKendallTauFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - XEdit.Text := ''; - YEdit.Text := ''; - ZEdit.Text := ''; - Xin.Visible := true; - Xout.Visible := false; - Yin.Visible := true; - Yout.Visible := false; - Zin.Visible := true; - Zout.Visible := false; - RanksChk.Checked := false; - VarList.Items.Clear; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TKendallTauFrm.XInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - XEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - Xin.Visible := false; - Xout.Visible := true; -end; - -procedure TKendallTauFrm.XOutClick(Sender: TObject); -begin - VarList.Items.Add(XEdit.Text); - XEdit.Text := ''; - Xin.Visible := true; - Xout.Visible := false; -end; - -procedure TKendallTauFrm.YInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - YEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - Yin.Visible := false; - Yout.Visible := true; -end; - -procedure TKendallTauFrm.YOutClick(Sender: TObject); -begin - VarList.Items.Add(YEdit.Text); - YEdit.Text := ''; - Yin.Visible := true; - Yout.Visible := false; -end; - -procedure TKendallTauFrm.ZInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - ZEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - Zin.Visible := false; - Zout.Visible := true; -end; - -procedure TKendallTauFrm.ZOutClick(Sender: TObject); -begin - VarList.Items.Add(YEdit.Text); - ZEdit.Text := ''; - Zin.Visible := true; - Zout.Visible := false; -end; - -procedure TKendallTauFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TKendallTauFrm.ComputeBtnClick(Sender: TObject); -label Check1, Check2, Check3; -var - i, j, k, itemp, NoTies, NoTieGroups, NoSelected : integer; - col1, col2, col3, NCases : integer; - index : IntDyneMat; - Probability, Temp, TieSum, Avg, t, SumT, r : double; - z, denominator, df, stddev : double; - Ranks, X : DblDyneMat; - cellstring, outline : string; - ColNoSelected : IntdyneVec; - ColLabels : StrDyneVec; - RowLabels : StrDyneVec; - TauXY, TauXZ, TauYZ : double; - TiesX, TiesY, TiesZ : integer; - Tx, Ty, Tz : double; - Term1, Term2 : double; - PartialTau : double; - title : string; -begin - // Allocate memory - SetLength(index,NoCases,3); - SetLength(Ranks,NoCases,3); - SetLength(X,NoCases,3); - SetLength(ColLabels,3); - SetLength(RowLabels,NoCases); - SetLength(ColNoSelected,NoVariables); - Tx := 0.0; - Ty := 0.0; - Tz := 0.0; - - // Get column numbers and labels of variables selected - NoSelected := 0; - for j := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[j,0]; - if cellstring = Xedit.Text then - begin - ColNoSelected[0] := j; - ColLabels[0] := cellstring; - NoSelected := NoSelected + 1; - end; - if cellstring = Yedit.Text then - begin - ColNoSelected[1] := j; - ColLabels[1] := cellstring; - NoSelected := NoSelected + 1; - end; - if cellstring = Zedit.Text then - begin - ColNoSelected[2] := j; - ColLabels[2] := cellstring; - NoSelected := NoSelected + 1; - end; - end; - - // Get scores - NCases := 0; - for i := 1 to NoCases do - begin - if ( not GoodRecord(i,NoSelected,ColNoSelected)) then continue; - NCases := NCases + 1; - col1 := ColNoSelected[0]; - col2 := ColNoSelected[1]; - if NoSelected = 3 then col3 := ColNoSelected[2]; - X[NCases-1,0] := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col1,i])); - Ranks[NCases-1,0] := X[NCases-1,0]; - X[NCases-1,1] := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col2,i])); - Ranks[NCases-1,1] := X[NCases-1,1]; - if NoSelected = 3 then - begin - X[NCases-1,2] := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[col3,i])); - Ranks[NCases-1,2] := X[NCases-1,2]; - end; - index[NCases-1,0] := NCases; - index[NCases-1,1] := NCases; - if NoSelected = 3 then index[NCases-1,2] := NCases; - end; - - for i := 0 to NCases - 1 do RowLabels[i] := IntToStr(i+1); - // Rank the first variable (X) - for i := 0 to NCases - 2 do - begin - for j := i + 1 to NCases-1 do - begin - if (Ranks[i,0] > Ranks[j,0]) then // swap - begin - Temp := Ranks[i,0]; - Ranks[i,0] := Ranks[j,0]; - Ranks[j,0] := Temp; - itemp := index[i,0]; - index[i,0] := index[j,0]; - index[j,0] := itemp; - end; - end; - end; - - // Assign ranks - for i := 0 to NCases-1 do Ranks[i,0] := i+1; - - // Check for ties in each - i := 1; - while (i < NCases) do - begin - j := i+1; - TieSum := 0.0; - NoTies := 0; - while (j <= NCases) do - begin - if (X[j-1,0] > X[i-1,0]) then goto Check1; - if (X[j-1,0] = X[i-1,0]) then - begin - TieSum := TieSum + Ranks[j-1,0]; - NoTies := NoTies + 1; - end; - j := j + 1; - end; -Check1: - if (NoTies > 0) then // at least one tie found - begin - TieSum := TieSum + Ranks[i-1,0]; - NoTies := NoTies + 1; - Avg := TieSum / NoTies; - for j := i to i + NoTies - 1 do Ranks[j-1,0] := Avg; - i := i + (NoTies-1); - Tx := Tx + NoTies *(NoTies-1); - end; - i := i + 1; - end; - Tx := Tx / 2.0; - - // Repeat sort for second variable Y - for i := 0 to NCases - 2 do - begin - for j := i + 1 to NCases-1 do - begin - if (Ranks[i,1] > Ranks[j,1]) then // swap - begin - Temp := Ranks[i,1]; - Ranks[i,1] := Ranks[j,1]; - Ranks[j,1] := Temp; - itemp := index[i,1]; - index[i,1] := index[j,1]; - index[j,1] := itemp; - end; - end; - end; - - // Assign ranks - for i := 0 to NCases-1 do Ranks[i,1] := i+1; - - // Check for ties in each - i := 1; - while (i < NCases) do - begin - j := i+1; - TieSum := 0.0; - NoTies := 0; - while (j <= NoCases) do - begin - if (X[j-1,1] > X[i-1,1]) then goto Check2; - if (X[j-1,1] = X[i-1,1]) then - begin - TieSum := TieSum + Ranks[j-1,1]; - NoTies := NoTies + 1; - end; - j := j + 1; - end; -Check2: - if (NoTies > 0) then // at least one tie found - begin - TieSum := TieSum + Ranks[i-1,1]; - NoTies := NoTies + 1; - Avg := TieSum / NoTies; - for j := i to i + NoTies - 1 do Ranks[j-1,1] := Avg; - i := i + (NoTies-1); - Ty := Ty + NoTies * (NoTies - 1); - end; - i := i + 1; - end; - Ty := Ty / 2.0; - - // Repeat for z variable - if NoSelected > 2 then // z was entered - begin - for i := 0 to NCases - 2 do - begin - for j := i + 1 to NCases-1 do - begin - if (Ranks[i,2] > Ranks[j,2]) then // swap - begin - Temp := Ranks[i,2]; - Ranks[i,2] := Ranks[j,2]; - Ranks[j,2] := Temp; - itemp := index[i,2]; - index[i,2] := index[j,2]; - index[j,2] := itemp; - end; - end; - end; - - // Assign ranks - for i := 0 to NCases-1 do Ranks[i,2] := i+1; - - // Check for ties in each - i := 1; - while (i < NCases) do - begin - j := i+1; - TieSum := 0.0; - NoTies := 0; - while (j <= NoCases) do - begin - if (X[j-1,2] > X[i-1,2]) then goto Check3; - if (X[j-1,2] = X[i-1,2]) then - begin - TieSum := TieSum + Ranks[j-1,2]; - NoTies := NoTies + 1; - end; - j := j + 1; - end; -Check3: - if (NoTies > 0) then // at least one tie found - begin - TieSum := TieSum + Ranks[i-1,2]; - NoTies := NoTies + 1; - Avg := TieSum / NoTies; - for j := i to i + NoTies - 1 do Ranks[j-1,2] := Avg; - i := i + (NoTies-1); - Tz := Tz + NoTies * (NoTies - 1); - end; - i := i + 1; - end; - Tz := Tz / 2.0; - end; - - // Rearrange ranks into original score order - for k := 1 to 3 do - begin - for i := 1 to NCases - 1 do - begin - for j := i + 1 to NCases do - begin - if (index[i-1,k-1] > index[j-1,k-1]) then // swap - begin - itemp := index[i-1,k-1]; - index[i-1,k-1] := index[j-1,k-1]; - index[j-1,k-1] := itemp; - Temp := Ranks[i-1,k-1]; - Ranks[i-1,k-1] := Ranks[j-1,k-1]; - Ranks[j-1,k-1] := Temp; - end; - end; - end; - end; - - // print data matrix if option is elected - if RanksChk.Checked then - begin - title := 'Ranks'; - if NoSelected = 2 then - MAT_PRINT(Ranks,NCases,2,title,RowLabels,ColLabels,NCases) - else - MAT_PRINT(Ranks,NCases,3,title,RowLabels,ColLabels,NCases); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - end; - - // compute Tau for X and Y - // sort on X and obtain SumT for Y ranks - SumT := 0.0; - for i := 0 to NCases - 2 do - begin - for j := i + 1 to NCases-1 do - begin - if (Ranks[i,0] > Ranks[j,0]) then // swap - begin - Temp := Ranks[i,0]; - Ranks[i,0] := Ranks[j,0]; - Ranks[j,0] := Temp; - Temp := Ranks[i,1]; - Ranks[i,1] := Ranks[j,1]; - Ranks[j,1] := Temp; - if NoSelected = 3 then - begin - Temp := Ranks[i,2]; - Ranks[i,2] := Ranks[j,2]; - Ranks[j,2] := Temp; - end; - itemp := index[i,0]; - index[i,0] := index[j,0]; - index[j,0] := itemp; - end; - end; - end; - for i := 0 to NCases - 2 do - for j := i + 1 to NCases - 1 do - if Ranks[i,1] < Ranks[j,1] then SumT := SumT + 1.0 - else if Ranks[i,1] > Ranks[j,1] then SumT := SumT - 1.0; - Term1 := sqrt((NCases * (NCases-1)) / 2.0 - Tx); - Term2 := sqrt((NCases * (Ncases-1)) / 2.0 - Ty); - denominator := Term1 * Term2; - TauXY := SumT / denominator; - - if NoSelected > 2 then // get tau values for partial - begin - // Get TauXZ - SumT := 0.0; - for i := 0 to NCases - 2 do - for j := i + 1 to NCases - 1 do - if Ranks[i,2] < Ranks[j,2] then SumT := SumT + 1.0 - else if Ranks[i,2] > Ranks[j,2] then SumT := SumT - 1.0; - Term1 := sqrt((NCases * (NCases-1)) / 2.0 - Tx); - Term2 := sqrt((NCases * (Ncases-1)) / 2.0 - Tz); - denominator := Term1 * Term2; - TauXZ := SumT / denominator; - - // get back to original order then sort on Y - for i := 0 to NCases - 2 do - begin - for j := i + 1 to NCases - 1 do - begin - if index[i,0] > index[j,0] then // swap - begin - Temp := Ranks[i,0]; - Ranks[i,0] := Ranks[j,0]; - Ranks[j,0] := temp; - Temp := Ranks[i,1]; - Ranks[i,1] := Ranks[j,1]; - Ranks[j,1] := Temp; - Temp := Ranks[i,2]; - Ranks[i,2] := Ranks[j,2]; - Ranks[j,2] := Temp; - itemp := index[i,0]; - index[i,0] := index[j,0]; - index[j,0] := itemp; - end; - end; - end; - - // Get TauYZ - for i := 0 to NCases - 2 do // sort on Y variable - begin - for j := i + 1 to NCases-1 do - begin - if (Ranks[i,1] > Ranks[j,1]) then // swap - begin - Temp := Ranks[i,1]; - Ranks[i,1] := Ranks[j,1]; - Ranks[j,1] := Temp; - Temp := Ranks[i,2]; - Ranks[i,2] := Ranks[j,2]; - Ranks[j,2] := Temp; - itemp := index[i,1]; - index[i,1] := index[j,1]; - index[j,1] := itemp; - end; - end; - end; - - SumT := 0.0; - for i := 0 to NCases - 2 do - for j := i + 1 to NCases - 1 do - if Ranks[i,2] < Ranks[j,2] then SumT := SumT + 1.0 - else if Ranks[i,2] > Ranks[j,2] then SumT := SumT - 1.0; - Term1 := sqrt((NCases * (NCases-1)) / 2.0 - Ty); - Term2 := sqrt((NCases * (Ncases-1)) / 2.0 - Tz); - denominator := Term1 * Term2; - TauYZ := SumT / denominator; - PartialTau := (TauXY - TauXZ * TauYZ) / - (sqrt(1.0 - sqr(TauXZ)) * sqrt(1.0 - sqr(TauYZ))); - end; - - // do significance tests - stddev := sqrt( (2.0 * ( 2.0 * NCases + 5)) / (9.0 * NCases * (NCases - 1.0))); - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Kendall Tau for File: ' + OS3MainFrm.FileNameEdit.Text); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Kendall Tau for variables ' + ColLabels[0] + ' and ' + ColLabels[1]); - z := abs(TauXY / stddev); - probability := 1.0 - probz(z); - outline := format('Tau = %8.4f z = %8.3f probability > |z| = %4.3f',[TauXY,z,probability]); - OutPutFrm.RichEdit.Lines.Add(outline); - if NoSelected > 2 then - begin - OutPutFrm.RichEdit.Lines.Add(''); - z := abs(TauXZ / stddev); - probability := 1.0 - probz(z); - OutPutFrm.RichEdit.Lines.Add('Kendall Tau for variables ' + ColLabels[0] + ' and ' + ColLabels[2]); - outline := format('Tau = %8.4f z = %8.3f probability > |z| = %4.3f',[TauXZ,z,probability]); - OutPutFrm.RichEdit.Lines.Add(outline); - z := abs(TauYZ / stddev); - probability := 1.0 - probz(z); - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Kendall Tau for variables ' + ColLabels[1] + ' and ' + ColLabels[2]); - outline := format('Tau = %8.4f z = %8.3f probability > |z| = %4.3f',[TauYZ,z,probability]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Partial Tau = %8.4f',[PartialTau]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('NOTE: Probabilities are for large N (>10)'); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - ColNoSelected := nil; - RowLabels := nil; - ColLabels := nil; - X := nil; - Ranks := nil; - index := nil; -end; - -initialization - {$I kendalltauunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/kmeansunit.lfm b/applications/lazstats/source_orig/kmeansunit.lfm deleted file mode 100644 index d3b49a77f..000000000 --- a/applications/lazstats/source_orig/kmeansunit.lfm +++ /dev/null @@ -1,253 +0,0 @@ -object kmeansfrm: Tkmeansfrm - Left = 157 - Height = 398 - Top = 115 - Width = 443 - Caption = 'k Means Clustering ' - ClientHeight = 398 - ClientWidth = 443 - OnShow = FormShow - LCLVersion = '0.9.28.2' - object Label1: TLabel - Left = 9 - Height = 14 - Top = 8 - Width = 112 - Caption = 'No. of Desired Clusters' - ParentColor = False - end - object Label2: TLabel - Left = 9 - Height = 14 - Top = 40 - Width = 81 - Caption = 'No. of Iterations' - ParentColor = False - end - object Label3: TLabel - Left = 9 - Height = 14 - Top = 112 - Width = 90 - Caption = 'Available Variables' - ParentColor = False - end - object Label4: TLabel - Left = 249 - Height = 14 - Top = 112 - Width = 88 - Caption = 'Selected Variables' - ParentColor = False - end - object NoClustersEdit: TEdit - Left = 130 - Height = 21 - Top = 1 - Width = 54 - TabOrder = 0 - Text = 'NoClustersEdit' - end - object ItersEdit: TEdit - Left = 129 - Height = 21 - Top = 33 - Width = 55 - TabOrder = 1 - Text = 'ItersEdit' - end - object GroupBox1: TGroupBox - Left = 262 - Height = 101 - Top = 1 - Width = 160 - Caption = 'Analysis Optons' - ClientHeight = 83 - ClientWidth = 156 - TabOrder = 2 - object StdChkBox: TCheckBox - Left = 7 - Height = 17 - Top = 5 - Width = 123 - Caption = 'Standardize Variables' - TabOrder = 0 - end - object RepChkBox: TCheckBox - Left = 25 - Height = 17 - Top = 31 - Width = 114 - Caption = 'Replace Grid Values' - TabOrder = 1 - end - object DescChkBox: TCheckBox - Left = 10 - Height = 17 - Top = 57 - Width = 119 - Caption = 'Descriptive Statistics' - TabOrder = 2 - end - end - object VarList: TListBox - Left = 7 - Height = 208 - Top = 128 - Width = 176 - ItemHeight = 0 - MultiSelect = True - TabOrder = 3 - end - object VarInBtn: TBitBtn - Left = 192 - Height = 34 - Top = 128 - Width = 45 - 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 - } - OnClick = VarInBtnClick - TabOrder = 4 - end - object VarOutBtn: TBitBtn - Left = 192 - Height = 34 - Top = 168 - Width = 45 - 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 - } - OnClick = VarOutBtnClick - TabOrder = 5 - end - object AllBtn: TBitBtn - Left = 192 - Height = 34 - Top = 224 - Width = 45 - Caption = 'ALL' - OnClick = AllBtnClick - TabOrder = 6 - end - object ListBox1: TListBox - Left = 248 - Height = 208 - Top = 128 - Width = 174 - ItemHeight = 0 - TabOrder = 7 - end - object ResetBtn: TButton - Left = 96 - Height = 28 - Top = 352 - Width = 75 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 8 - end - object CancelBtn: TButton - Left = 184 - Height = 28 - Top = 352 - Width = 75 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 9 - end - object ComputeBtn: TButton - Left = 264 - Height = 28 - Top = 352 - Width = 75 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 10 - end - object ReturnBtn: TButton - Left = 347 - Height = 28 - Top = 352 - Width = 75 - Caption = 'Return' - ModalResult = 1 - TabOrder = 11 - end - object HelpBtn: TButton - Tag = 129 - Left = 9 - Height = 28 - Top = 352 - Width = 81 - Caption = 'Help' - OnClick = HelpBtnClick - TabOrder = 12 - end -end diff --git a/applications/lazstats/source_orig/kmeansunit.lrs b/applications/lazstats/source_orig/kmeansunit.lrs deleted file mode 100644 index 6b1e4344b..000000000 --- a/applications/lazstats/source_orig/kmeansunit.lrs +++ /dev/null @@ -1,144 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('Tkmeansfrm','FORMDATA',[ - 'TPF0'#10'Tkmeansfrm'#9'kmeansfrm'#4'Left'#3#157#0#6'Height'#3#142#1#3'Top'#2 - +'s'#5'Width'#3#187#1#7'Caption'#6#19'k Means Clustering '#12'ClientHeight'#3 - +#142#1#11'ClientWidth'#3#187#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'p'#7'Caption'#6#23'No. of Desired Clusters'#11'ParentColor'#8#0#0#6'TLabe' - +'l'#6'Label2'#4'Left'#2#9#6'Height'#2#14#3'Top'#2'('#5'Width'#2'Q'#7'Caption' - +#6#17'No. of Iterations'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#2 - +#9#6'Height'#2#14#3'Top'#2'p'#5'Width'#2'Z'#7'Caption'#6#19'Available Variab' - +'les'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#3#249#0#6'Height'#2 - +#14#3'Top'#2'p'#5'Width'#2'X'#7'Caption'#6#18'Selected Variables'#11'ParentC' - +'olor'#8#0#0#5'TEdit'#14'NoClustersEdit'#4'Left'#3#130#0#6'Height'#2#21#3'To' - +'p'#2#1#5'Width'#2'6'#8'TabOrder'#2#0#4'Text'#6#14'NoClustersEdit'#0#0#5'TEd' - +'it'#9'ItersEdit'#4'Left'#3#129#0#6'Height'#2#21#3'Top'#2'!'#5'Width'#2'7'#8 - +'TabOrder'#2#1#4'Text'#6#9'ItersEdit'#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#3 - +#6#1#6'Height'#2'e'#3'Top'#2#1#5'Width'#3#160#0#7'Caption'#6#15'Analysis Opt' - +'ons'#12'ClientHeight'#2'S'#11'ClientWidth'#3#156#0#8'TabOrder'#2#2#0#9'TChe' - +'ckBox'#9'StdChkBox'#4'Left'#2#7#6'Height'#2#17#3'Top'#2#5#5'Width'#2'{'#7'C' - +'aption'#6#21'Standardize Variables'#8'TabOrder'#2#0#0#0#9'TCheckBox'#9'RepC' - +'hkBox'#4'Left'#2#25#6'Height'#2#17#3'Top'#2#31#5'Width'#2'r'#7'Caption'#6#19 - +'Replace Grid Values'#8'TabOrder'#2#1#0#0#9'TCheckBox'#10'DescChkBox'#4'Left' - +#2#10#6'Height'#2#17#3'Top'#2'9'#5'Width'#2'w'#7'Caption'#6#22'Descriptive S' - +'tatistics'#8'TabOrder'#2#2#0#0#0#8'TListBox'#7'VarList'#4'Left'#2#7#6'Heigh' - +'t'#3#208#0#3'Top'#3#128#0#5'Width'#3#176#0#10'ItemHeight'#2#0#11'MultiSelec' - +'t'#9#8'TabOrder'#2#3#0#0#7'TBitBtn'#8'VarInBtn'#4'Left'#3#192#0#6'Height'#2 - +'"'#3'Top'#3#128#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 - +#7'OnClick'#7#13'VarInBtnClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#9'VarOutBtn'#4 - +'Left'#3#192#0#6'Height'#2'"'#3'Top'#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#7'OnClick'#7#14'VarOutBtnClick'#8'TabOrder'#2#5 - +#0#0#7'TBitBtn'#6'AllBtn'#4'Left'#3#192#0#6'Height'#2'"'#3'Top'#3#224#0#5'Wi' - +'dth'#2'-'#7'Caption'#6#3'ALL'#7'OnClick'#7#11'AllBtnClick'#8'TabOrder'#2#6#0 - ,#0#8'TListBox'#8'ListBox1'#4'Left'#3#248#0#6'Height'#3#208#0#3'Top'#3#128#0#5 - +'Width'#3#174#0#10'ItemHeight'#2#0#8'TabOrder'#2#7#0#0#7'TButton'#8'ResetBtn' - +#4'Left'#2'`'#6'Height'#2#28#3'Top'#3'`'#1#5'Width'#2'K'#7'Caption'#6#5'Rese' - +'t'#7'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#8#0#0#7'TButton'#9'CancelBt' - +'n'#4'Left'#3#184#0#6'Height'#2#28#3'Top'#3'`'#1#5'Width'#2'K'#7'Caption'#6#6 - +'Cancel'#11'ModalResult'#2#2#8'TabOrder'#2#9#0#0#7'TButton'#10'ComputeBtn'#4 - +'Left'#3#8#1#6'Height'#2#28#3'Top'#3'`'#1#5'Width'#2'K'#7'Caption'#6#7'Compu' - +'te'#7'OnClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#10#0#0#7'TButton'#9'Retu' - +'rnBtn'#4'Left'#3'['#1#6'Height'#2#28#3'Top'#3'`'#1#5'Width'#2'K'#7'Caption' - +#6#6'Return'#11'ModalResult'#2#1#8'TabOrder'#2#11#0#0#7'TButton'#7'HelpBtn'#3 - +'Tag'#3#129#0#4'Left'#2#9#6'Height'#2#28#3'Top'#3'`'#1#5'Width'#2'Q'#7'Capti' - +'on'#6#4'Help'#7'OnClick'#7#12'HelpBtnClick'#8'TabOrder'#2#12#0#0#0 -]); diff --git a/applications/lazstats/source_orig/kmeansunit.pas b/applications/lazstats/source_orig/kmeansunit.pas deleted file mode 100644 index e9f5a97bc..000000000 --- a/applications/lazstats/source_orig/kmeansunit.pas +++ /dev/null @@ -1,867 +0,0 @@ -unit kmeansunit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, functionslib, Globals, matrixlib, dataprocs, - outputunit, contexthelpunit; - -type - - { Tkmeansfrm } - - Tkmeansfrm = class(TForm) - DescChkBox: TCheckBox; - HelpBtn: TButton; - VarInBtn: TBitBtn; - VarOutBtn: TBitBtn; - AllBtn: TBitBtn; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - StdChkBox: TCheckBox; - RepChkBox: TCheckBox; - GroupBox1: TGroupBox; - ItersEdit: TEdit; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - ListBox1: TListBox; - VarList: TListBox; - NoClustersEdit: TEdit; - Label1: TLabel; - procedure AllBtnClick(Sender: TObject); - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure HelpBtnClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - procedure VarInBtnClick(Sender: TObject); - procedure VarOutBtnClick(Sender: TObject); - private - { private declarations } - procedure KMNS(VAR A : DblDyneMat; M, N : integer; - VAR C : DblDyneMat; K : integer; VAR IC1 : IntDyneVec; - VAR IC2 : IntDyneVec; VAR NC : IntDyneVec; - VAR AN1 : DblDyneVec; VAR AN2 : DblDyneVec; - VAR NCP : IntDyneVec; VAR D : DblDyneVec; - VAR ITRAN : IntDyneVec; VAR LIVE : IntDyneVec; - ITER : integer; VAR WSS : DblDyneVec; IFAULT : integer); - procedure OPTRA(VAR A : DblDyneMat; M, N : integer; - VAR C : DblDyneMat; K : integer; - VAR IC1 : IntDyneVec; VAR IC2 : IntDyneVec; - VAR NC : IntDyneVec; VAR AN1 : DblDyneVec; - VAR AN2 : DblDyneVec; VAR NCP : IntDyneVec; - VAR D : DblDyneVec; VAR ITRAN : IntDyneVec; - VAR LIVE : IntDyneVec; INDX : integer); - procedure QTRAN(VAR A : DblDyneMat; M, N : integer; - VAR C : DblDyneMat; K : integer; - VAR IC1 : IntDyneVec; VAR IC2 : IntDyneVec; - VAR NC : IntDyneVec; VAR AN1 : DblDyneVec; - VAR AN2 : DblDyneVec; VAR NCP : IntDyneVec; - VAR D : DblDyneVec; VAR ITRAN : IntDyneVec; - INDX : integer); - - public - { public declarations } - end; - -var - kmeansfrm: Tkmeansfrm; - -implementation - -{ Tkmeansfrm } - -procedure Tkmeansfrm.ResetBtnClick(Sender: TObject); -VAR cellstring : string; - i : integer; -begin - VarList.Clear; - ListBox1.Clear; - for i := 1 to NoVariables do - begin - cellstring := OS3MainFrm.DataGrid.Cells[i,0]; - VarList.Items.Add(cellstring); - end; - RepChkBox.Checked := false; - StdChkBox.Checked := true; - VarOutBtn.Enabled := false; - DescChkBox.Checked := false; - NoClustersEdit.Text := ''; - ItersEdit.Text := '100'; -end; - -procedure Tkmeansfrm.VarInBtnClick(Sender: TObject); -VAR - index, count, i : integer; - cellstring : string; -begin - count := 0; - index := ListBox1.Items.Count; - for i := 0 to index - 1 do - begin - if (VarList.Selected[i]) then - begin - cellstring := VarList.Items.strings[i]; - ListBox1.Items.Add(cellstring); - count := count + 1; - end; - end; - - while (count > 0) do - begin - for i := 0 to VarList.Items.Count - 1 do - begin - if (VarList.Selected[i]) then - begin - VarList.Items.Delete(i); - count := count - 1; - end; - end; - end; - VarOutBtn.Enabled := true; -end; - -procedure Tkmeansfrm.VarOutBtnClick(Sender: TObject); -VAR index : integer; - cellstring : string; -begin - index := ListBox1.ItemIndex; - cellstring := ListBox1.Items.Strings[index]; - VarList.Items.Add(cellstring); - ListBox1.Items.Delete(index); -end; - -procedure Tkmeansfrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure Tkmeansfrm.HelpBtnClick(Sender: TObject); -begin - ContextHelpForm.HelpMessage((Sender as TButton).tag); -end; - -procedure Tkmeansfrm.AllBtnClick(Sender: TObject); -VAR - index, noitems : integer; - cellstring : string; -begin - noitems := VarList.Items.Count; - for index := 0 to noitems - 1 do - begin - cellstring := VarList.Items.Strings[index]; - ListBox1.Items.Add(cellstring); - end; - VarList.Clear; - VarOutBtn.Enabled := true; -end; - -procedure Tkmeansfrm.ComputeBtnClick(Sender: TObject); -VAR - i, j, L, Ncols, N, M, K,IFAULT, ITER, result, intvalue, col : integer; - center, itemp : integer; - IC1, IC2, NC, NCP, ITRAN, LIVE, ColSelected : IntDyneVec; - A, C : DblDyneMat; - D, AN1, AN2, WSS, DT : DblDyneVec; - cellstring, strvalue : string; - outline : string; - strval : string; - varlabels, rowlabels : StrDyneVec; - dblvalue, Mean, stddev : double; -label cleanup; - -begin - Ncols := ListBox1.Items.Count; - if (Ncols <= 0) then - begin - ShowMessage('ERROR! No variables selected to cluster.'); - exit; - end; - - N := Ncols; - M := NoCases; - K := StrToInt(NoClustersEdit.Text); - IFAULT := 0; - ITER := StrToInt(ItersEdit.Text); - - SetLength(varlabels,Ncols); - SetLength(rowlabels,NoCases); - SetLength(ColSelected,Ncols); - SetLength(A,M+1,N+1); - SetLength(C,K+1,N+1); - SetLength(D,M+1); - SetLength(AN1,K+1); - SetLength(AN2,K+1); - SetLength(WSS,K+1); - SetLength(DT,3); - SetLength(IC1,M+1); - SetLength(IC2,M+1); - SetLength(NC,K+1); - SetLength(NCP,K+1); - SetLength(ITRAN,K+1); - SetLength(LIVE,K+1); - - if (K <= 0) then - begin - ShowMessage('ERROR! You must enter the desired number of clusters.'); - goto cleanup; - end; - - // initialize arrays - for i := 1 to K do - begin - AN1[i] := 0.0; - AN2[i] := 0.0; - WSS[i] := 0.0; - NC[i] := 0; - NCP[i] := 0; - ITRAN[i] := 0; - LIVE[i] := 0; - for j := 1 to N do C[i,j] := 0.0; - end; - for i := 1 to M do - begin - IC1[i] := 0; - IC2[i] := 0; - D[i] := 0.0; - end; - - //Get labels and columns of selected variables - for i := 0 to Ncols - 1 do - begin - cellstring := ListBox1.Items.Strings[i]; - for j := 0 to NoVariables - 1 do - begin - if (cellstring = OS3MainFrm.DataGrid.Cells[j+1,0]) then - begin - varlabels[i] := cellstring; - ColSelected[i] := j+1; - end; - end; - end; - - // Get labels of rows - for i := 0 to NoCases - 1 do rowlabels[i] := OS3MainFrm.DataGrid.Cells[0,i+1]; - - // read the data - for i := 1 to M do - begin - if (NOT GoodRecord(i,N,ColSelected)) then continue; - for j := 1 to N do - begin - col := ColSelected[j-1]; - A[i,j] := StrToFloat(OS3MainFrm.DataGrid.Cells[col,i]); - end; - end; - - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('K-Means Clustering. Adapted from AS 136 APPL. STATIST. (1979) VOL.28, NO.1'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('File := %s',[OS3MainFrm.FileNameEdit.Text]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('No. Cases := %d, No. Variables := %d, No. Clusters := %d',[M,N,K]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - - // transform to z scores if needed - if (StdChkBox.Checked = true) then - begin - for j := 1 to N do - begin - Mean := 0.0; - stddev := 0.0; - for i := 1 to M do - begin - Mean := Mean + A[i,j]; - stddev := stddev + (A[i,j] * A[i,j]); - end; - stddev := stddev - Mean * Mean / M; - stddev := stddev / (M - 1); - Mean := Mean / M; - if (DescChkBox.Checked) then - begin - outline := format('Mean := %8.3f, Std.Dev. := %8.3f for %s',[Mean,stddev,varlabels[j-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - for i := 1 to M do - begin - A[i,j] := (A[i,j] - Mean) / stddev; - if (RepChkBox.Checked = true) then - begin - col := ColSelected[j-1]; - outline := format('%8.5f',[A[i,j]]); - OS3MainFrm.DataGrid.Cells[col,i] := outline; - end; - end; - end; - end; - - // Now enter initial points - for L := 1 to K do - begin - center := 1 + (L-1) * (M div K); // initial cluster center - for j := 1 to N do C[L,j] := A[center,j]; - end; - - // do analysis - KMNS(A,M,N,C,K,IC1,IC2,NC,AN1,AN2,NCP,D,ITRAN,LIVE,ITER,WSS,IFAULT); - - // show results - - // sort subjects by cluster - for i := 1 to M do IC2[i] := i; // store ids in here - for i := 1 to M - 1 do - begin - for j := i+1 to M do - begin - if (IC1[i] > IC1[j]) then // swap these clusters and ids - begin - itemp := IC1[i]; - IC1[i] := IC1[j]; - IC1[j] := itemp; - itemp := IC2[i]; - IC2[i] := IC2[j]; - IC2[j] := itemp; - end; - end; - end; - - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('NUMBER OF SUBJECTS IN EACH CLUSTER'); - for i := 1 to K do - begin - outline := format('Cluster := %d with %d cases.',[i,NC[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('PLACEMENT OF SUBJECTS IN CLUSTERS'); - OutPutFrm.RichEdit.Lines.Add('CLUSTER SUBJECT'); - for i := 1 to M do - begin - outline := format(' %3d %3d',[IC1[i],IC2[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('AVERAGE VARIABLE VALUES BY CLUSTER'); - outline := ' VARIABLES'; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := 'CLUSTER'; - for j := 1 to N do - begin - strval := format(' %3d ',[j]); - outline := outline + strval; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(' '); - for i := 1 to K do - begin - outline := format(' %3d ',[i]); - for j := 1 to N do - begin - strval := format('%5.2f ',[C[i,j]]); - outline := outline + strval; - end; - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('WITHIN CLUSTER SUMS OF SQUARES'); - for i := 1 to K do - begin - outline := format('Cluster %d := %6.3f',[i,WSS[i]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - - OutPutFrm.ShowModal; - - // cleanup -cleanup: - LIVE := nil; - ITRAN := nil; - NCP := nil; - NC := nil; - IC2 := nil; - IC1 := nil; - DT := nil; - WSS := nil; - AN2 := nil; - AN1 := nil; - D := nil; - C := nil; - A := nil; - ColSelected := nil; - rowlabels := nil; - varlabels := nil; -end; - -procedure Tkmeansfrm.KMNS(VAR A : DblDyneMat; M, N : integer; - VAR C : DblDyneMat; K : integer; VAR IC1 : IntDyneVec; - VAR IC2 : IntDyneVec; VAR NC : IntDyneVec; - VAR AN1 : DblDyneVec; VAR AN2 : DblDyneVec; - VAR NCP : IntDyneVec; VAR D : DblDyneVec; - VAR ITRAN : IntDyneVec; VAR LIVE : IntDyneVec; - ITER : integer; VAR WSS : DblDyneVec; IFAULT : integer); -VAR - DT : array[0..2] of double; - BIG : double; - ZERO : double; - ONE : double; - DA, DB, DC, TEMP, AA : double; - L, II, INDX, I, J, IL, IJ : integer; -label cont50, cont40, cont150; - -begin - // SUBROUTINE KMNS(A, M, N, C, K, IC1, IC2, NC, AN1, AN2, NCP, D, - // * ITRAN, LIVE, ITER, WSS, IFAULT) - // - // ALGORITHM AS 136 APPL. STATIST. (1979) VOL.28, NO.1 - // Divide M points in N-dimensional space into K clusters so that - // the within cluster sum of squares is minimized. - // - // INTEGER IC1(M), IC2(M), NC(K), NCP(K), ITRAN(K), LIVE(K) - // REAL A(M,N), D(M), C(K,N), AN1(K), AN2(K), WSS(K), DT(2) - // REAL ZERO, ONE - // - // Define BIG to be a very large positive number - // - // DATA BIG /1.E30/, ZERO /0.0/, ONE /1.0/ - // - BIG := 1.0e30; - ZERO := 0.0; - ONE := 1.0; - IFAULT := 3; - if ((K <= 1) or (K >= M)) then - begin - ShowMessage('The no. of clusters must be less than the no. of variables.'); - exit; - end; - - // For each point I, find its two closest centres, IC1(I) and - // IC2(I). Assign it to IC1(I). - // - for I := 1 to M do - begin - IC1[I] := 1; - IC2[I] := 2; - for IL := 1 to 2 do - begin - DT[IL] := ZERO; - for J := 1 to N do - begin - DA := A[I,J] - C[IL,J]; - DT[IL] := DT[IL] + (DA * DA); //(squared difference for this comparison) - end; // 10 CONTINUE - end; // 10 CONTINUE - if (DT[1] > DT[2]) then // THEN swap - begin - IC1[I] := 2; - IC2[I] := 1; - TEMP := DT[1]; - DT[1] := DT[2]; - DT[2] := TEMP; - end; // END IF - for L := 3 to K do // (remaining clusters) - begin - DB := ZERO; - for J := 1 to N do // (variables) - begin - DC := A[I,J] - C[L,J]; - DB := DB + DC * DC; - if (DB >= DT[2]) then goto cont50; - end; - if (DB < DT[1]) then goto cont40; - DT[2] := DB; - IC2[I] := L; - goto cont50; -cont40: DT[2] := DT[1]; - IC2[I] := IC1[I]; - DT[1] := DB; - IC1[I] := L; -cont50: end; - end; // 50 CONTINUE (next case) - - // Update cluster centres to be the average of points contained - // within them. - // - for L := 1 to K do // (clusters) - begin - NC[L] := 0; - for J := 1 to N do C[L,J] := ZERO; //(initialize clusters) - end; - for I := 1 to M do // (subjects) - begin - L := IC1[I]; // which cluster the Ith case is in - NC[L] := NC[L] + 1; // no. in the cluster L - for J := 1 to N do C[L,J] := C[L,J] + A[I,J]; // sum of var. values in the cluster L - end; - - // Check to see if there is any empty cluster at this stage - // - for L := 1 to K do - begin - if (NC[L] = 0) then - begin - IFAULT := 1; - exit; - end; - AA := NC[L]; - for J := 1 to N do C[L,J] := C[L,J] / AA; // average the values in the cluster - - // Initialize AN1, AN2, ITRAN & NCP - // AN1(L) := NC(L) / (NC(L) - 1) - // AN2(L) := NC(L) / (NC(L) + 1) - // ITRAN(L) := 1 if cluster L is updated in the quick-transfer stage, - // := 0 otherwise - // In the optimal-transfer stage, NCP(L) stores the step at which - // cluster L is last updated. - // In the quick-transfer stage, NCP(L) stores the step at which - // cluster L is last updated plus M. - // - AN2[L] := AA / (AA + ONE); - AN1[L] := BIG; - if (AA > ONE) then AN1[L] := AA / (AA - ONE); - ITRAN[L] := 1; - NCP[L] := -1; - end; - INDX := 0; - for IJ := 1 to ITER do - begin - // - // In this stage, there is only one pass through the data. Each - // point is re-allocated, if necessary, to the cluster that will - // induce the maximum reduction in within-cluster sum of squares. - // - OPTRA(A, M, N, C, K, IC1, IC2, NC, AN1, AN2, NCP, D, ITRAN, LIVE, INDX); - // - // Stop if no transfer took place in the last M optimal transfer - // steps. - // - if (INDX = M) then goto cont150; - // - // Each point is tested in turn to see if it should be re-allocated - // to the cluster to which it is most likely to be transferred, - // IC2(I), from its present cluster, IC1(I). Loop through the - // data until no further change is to take place. - // - QTRAN(A, M, N, C, K, IC1, IC2, NC, AN1, AN2, NCP, D, ITRAN, INDX); - // - // If there are only two clusters, there is no need to re-enter the - // optimal transfer stage. - // - if (K = 2) then goto cont150; - // - // NCP has to be set to 0 before entering OPTRA. - // - for L := 1 to K do NCP[L] := 0; - end; - // - // Since the specified number of iterations has been exceeded, set - // IFAULT := 2. This may indicate unforeseen looping. - // - IFAULT := 2; - // - // Compute within-cluster sum of squares for each cluster. - // -cont150: - for L := 1 to K do - begin - WSS[L] := ZERO; - for J := 1 to N do C[L,J] := ZERO; - end; - for I := 1 to M do - begin - II := IC1[I]; - for J := 1 to N do C[II,J] := C[II,J] + A[I,J]; - end; - for J := 1 to N do - begin - for L := 1 to K do C[L,J] := C[L,J] / (NC[L]); - for I := 1 to M do - begin - II := IC1[I]; - DA := A[I,J] - C[II,J]; - WSS[II] := WSS[II] + DA * DA; - end; - end; // 190 CONTINUE -end; - - -procedure Tkmeansfrm.OPTRA(VAR A : DblDyneMat; M, N : integer; - VAR C : DblDyneMat; K : integer; - VAR IC1 : IntDyneVec; VAR IC2 : IntDyneVec; - VAR NC : IntDyneVec; VAR AN1 : DblDyneVec; - VAR AN2 : DblDyneVec; VAR NCP : IntDyneVec; - VAR D : DblDyneVec; VAR ITRAN : IntDyneVec; - VAR LIVE : IntDyneVec; INDX : integer); -VAR - ZERO, ONE, BIG,DE, DF, DD, DC, DB, DA, R2, RR, AL1, AL2, ALT, ALW : double; - I, J, L, L1, L2, LL : integer; -label cont30, cont60, cont70, cont90; - -begin - // SUBROUTINE OPTRA(A, M, N, C, K, IC1, IC2, NC, AN1, AN2, NCP, D, - // * ITRAN, LIVE, INDX) - // - // ALGORITHM AS 136.1 APPL. STATIST. (1979) VOL.28, NO.1 - // - // This is the optimal transfer stage. - // - // Each point is re-allocated, if necessary, to the cluster that - // will induce a maximum reduction in the within-cluster sum of - // squares. - // - // INTEGER IC1(M), IC2(M), NC(K), NCP(K), ITRAN(K), LIVE(K) - // REAL A(M,N), D(M), C(K,N), AN1(K), AN2(K), ZERO, ONE - // - // Define BIG to be a very large positive number. - // - // DATA BIG /1.0E30/, ZERO /0.0/, ONE/1.0/ - // - // If cluster L is updated in the last quick-transfer stage, it - // belongs to the live set throughout this stage. Otherwise, at - // each step, it is not in the live set if it has not been updated - // in the last M optimal transfer steps. - // - - ZERO := 0.0; - ONE := 1.0; - BIG := 1.0e30; - - for L := 1 to K do - begin - if (ITRAN[L] = 1) then LIVE[L] := M + 1; - end; // 10 CONTINUE - - for I := 1 to M do - begin - INDX := INDX + 1; - L1 := IC1[I]; - L2 := IC2[I]; - LL := L2; - // - // If point I is the only member of cluster L1, no transfer. - // - if (NC[L1] = 1) then goto cont90; // GO TO 90 - // - // If L1 has not yet been updated in this stage, no need to - // re-compute D(I). - // - if (NCP[L1] = 0) then goto cont30; // GO TO 30 - DE := ZERO; - for J := 1 to N do - begin - DF := A[I,J] - C[L1,J]; - DE := DE + DF * DF; - end; - D[I] := DE * AN1[L1]; - // - // Find the cluster with minimum R2. - // -cont30: - DA := ZERO; - for J := 1 to N do - begin - DB := A[I,J] - C[L2,J]; - DA := DA + DB * DB; - end; - R2 := DA * AN2[L2]; - for L := 1 to K do - begin - // - // If I >:= LIVE(L1), then L1 is not in the live set. If this is - // true, we only need to consider clusters that are in the live set - // for possible transfer of point I. Otherwise, we need to consider - // all possible clusters. - // - if ((I >= LIVE[L1]) and (I >= LIVE[L]) or (L = L1) or (L = LL)) then goto cont60; - RR := R2 / AN2[L]; - DC := ZERO; - for J := 1 to N do - begin - DD := A[I,J] - C[L,J]; - DC := DC + DD * DD; - if (DC >= RR) then goto cont60; - end; - R2 := DC * AN2[L]; - L2 := L; -cont60: - end; // 60 CONTINUE - if (R2 < D[I]) then goto cont70; - // - // If no transfer is necessary, L2 is the new IC2(I). - // - IC2[I] := L2; - goto cont90; // GO TO 90 - // - // Update cluster centres, LIVE, NCP, AN1 & AN2 for clusters L1 and - // L2, and update IC1(I) & IC2(I). - // -cont70: - INDX := 0; - LIVE[L1] := M + I; - LIVE[L2] := M + I; - NCP[L1] := I; - NCP[L2] := I; - AL1 := NC[L1]; - ALW := AL1 - ONE; - AL2 := NC[L2]; - ALT := AL2 + ONE; - for J := 1 to N do - begin - C[L1,J] := (C[L1,J] * AL1 - A[I,J]) / ALW; - C[L2,J] := (C[L2,J] * AL2 + A[I,J]) / ALT; - end; - NC[L1] := NC[L1] - 1; - NC[L2] := NC[L2] + 1; - AN2[L1] := ALW / AL1; - AN1[L1] := BIG; - if (ALW > ONE) then AN1[L1] := ALW / (ALW - ONE); - AN1[L2] := ALT / AL2; - AN2[L2] := ALT / (ALT + ONE); - IC1[I] := L2; - IC2[I] := L1; -cont90: - // 90 CONTINUE - if (INDX = M) then exit; - end; // 100 CONTINUE - for L := 1 to K do - begin - // - // ITRAN(L) := 0 before entering QTRAN. Also, LIVE(L) has to be - // decreased by M before re-entering OPTRA. - // - ITRAN[L] := 0; - LIVE[L] := LIVE[L] - M; - end; // 110 CONTINUE -end; - -procedure Tkmeansfrm.QTRAN(VAR A : DblDyneMat; M, N : integer; - VAR C : DblDyneMat; K : integer; - VAR IC1 : IntDyneVec; VAR IC2 : IntDyneVec; - VAR NC : IntDyneVec; VAR AN1 : DblDyneVec; - VAR AN2 : DblDyneVec; VAR NCP : IntDyneVec; - VAR D : DblDyneVec; VAR ITRAN : IntDyneVec; - INDX : integer); -VAR - BIG, ZERO, ONE, DA, DB, DE, DD, R2, AL1, ALW, AL2, ALT : double; - I, J, L, ICOUN, ISTEP, L1, L2 : integer; -label cont10, cont30, cont60; - -begin - // SUBROUTINE QTRAN(A, M, N, C, K, IC1, IC2, NC, AN1, AN2, NCP, D, - // * ITRAN, INDX) - // - // ALGORITHM AS 136.2 APPL. STATIST. (1979) VOL.28, NO.1 - // - // This is the quick transfer stage. - // IC1(I) is the cluster which point I belongs to. - // IC2(I) is the cluster which point I is most likely to be - // transferred to. - // For each point I, IC1(I) & IC2(I) are switched, if necessary, to - // reduce within-cluster sum of squares. The cluster centres are - // updated after each step. - // - // INTEGER IC1(M), IC2(M), NC(K), NCP(K), ITRAN(K) - // REAL A(M,N), D(M), C(K,N), AN1(K), AN2(K), ZERO, ONE - // - // Define BIG to be a very large positive number - // - // DATA BIG /1.0E30/, ZERO /0.0/, ONE /1.0/ - // - // In the optimal transfer stage, NCP(L) indicates the step at which - // cluster L is last updated. In the quick transfer stage, NCP(L) - // is equal to the step at which cluster L is last updated plus M. - // - BIG := 1.0e30; - ZERO := 0.0; - ONE := 1.0; - ICOUN := 0; - ISTEP := 0; -cont10: - for I := 1 to M do - begin - ICOUN := ICOUN + 1; - ISTEP := ISTEP + 1; - L1 := IC1[I]; - L2 := IC2[I]; - // - // If point I is the only member of cluster L1, no transfer. - // - if (NC[L1] = 1) then goto cont60; - // - // If ISTEP > NCP(L1), no need to re-compute distance from point I to - // cluster L1. Note that if cluster L1 is last updated exactly M - // steps ago, we still need to compute the distance from point I to - // cluster L1. - // - if (ISTEP > NCP[L1]) then goto cont30; - DA := ZERO; - for J := 1 to N do - begin - DB := A[I,J] - C[L1,J]; - DA := DA + DB * DB; - end; - D[I] := DA * AN1[L1]; - // - // If ISTEP >:= both NCP(L1) & NCP(L2) there will be no transfer of - // point I at this step. - // -cont30: - if ((ISTEP >= NCP[L1]) and (ISTEP >= NCP[L2])) then goto cont60; - R2 := D[I] / AN2[L2]; - DD := ZERO; - for J := 1 to N do - begin - DE := A[I,J] - C[L2,J]; - DD := DD + DE * DE; - if (DD >= R2) then goto cont60; - end; // 40 CONTINUE - // - // Update cluster centres, NCP, NC, ITRAN, AN1 & AN2 for clusters - // L1 & L2. Also update IC1(I) & IC2(I). Note that if any - // updating occurs in this stage, INDX is set back to 0. - // - ICOUN := 0; - INDX := 0; - ITRAN[L1] := 1; - ITRAN[L2] := 1; - NCP[L1] := ISTEP + M; - NCP[L2] := ISTEP + M; - AL1 := NC[L1]; - ALW := AL1 - ONE; - AL2 := NC[L2]; - ALT := AL2 + ONE; - for J := 1 to N do - begin - C[L1,J] := (C[L1,J] * AL1 - A[I,J]) / ALW; - C[L2,J] := (C[L2,J] * AL2 + A[I,J]) / ALT; - end; // 50 CONTINUE - NC[L1] := NC[L1] - 1; - NC[L2] := NC[L2] + 1; - AN2[L1] := ALW / AL1; - AN1[L1] := BIG; - if (ALW > ONE) then AN1[L1] := ALW / (ALW - ONE); - AN1[L2] := ALT / AL2; - AN2[L2] := ALT / (ALT + ONE); - IC1[I] := L2; - IC2[I] := L1; - // - // If no re-allocation took place in the last M steps, return. - // -cont60: - if (ICOUN = M) then exit; - end; // 70 CONTINUE - goto cont10; -end; - -initialization - {$I kmeansunit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/kr21unit.lfm b/applications/lazstats/source_orig/kr21unit.lfm deleted file mode 100644 index 973090c2e..000000000 --- a/applications/lazstats/source_orig/kr21unit.lfm +++ /dev/null @@ -1,111 +0,0 @@ -object KR21Frm: TKR21Frm - Left = 151 - Height = 227 - Top = 98 - Width = 204 - Caption = 'Kuder-Richarson #21' - ClientHeight = 227 - ClientWidth = 204 - OnShow = FormShow - LCLVersion = '0.9.26.2' - object Label1: TLabel - Left = 7 - Height = 14 - Top = 16 - Width = 120 - Caption = 'Maximum Score Possible:' - ParentColor = False - end - object Label2: TLabel - Left = 7 - Height = 14 - Top = 46 - Width = 118 - Caption = 'Mean of he Test Scores:' - ParentColor = False - end - object Label3: TLabel - Left = 7 - Height = 14 - Top = 80 - Width = 123 - Caption = 'Std. Dev. of Test Scores:' - ParentColor = False - end - object Label4: TLabel - Left = 6 - Height = 14 - Top = 112 - Width = 130 - Caption = 'KR#21 Reliability Estimate:' - ParentColor = False - end - object NoItemsEdit: TEdit - Left = 143 - Height = 22 - Top = 8 - Width = 49 - TabOrder = 0 - Text = 'NoItemsEdit' - end - object MeanEdit: TEdit - Left = 143 - Height = 22 - Top = 38 - Width = 49 - TabOrder = 1 - Text = 'Edit1' - end - object StdDevEdit: TEdit - Left = 143 - Height = 22 - Top = 72 - Width = 49 - TabOrder = 2 - Text = 'Edit1' - end - object RelEdit: TEdit - Left = 143 - Height = 22 - Top = 104 - Width = 49 - TabOrder = 3 - Text = 'Edit1' - end - object ResetBtn: TButton - Left = 6 - Height = 32 - Top = 137 - Width = 69 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 4 - end - object CancelBtn: TButton - Left = 123 - Height = 32 - Top = 137 - Width = 69 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 5 - end - object ComputeBtn: TButton - Left = 8 - Height = 32 - Top = 184 - Width = 69 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 6 - end - object ReturnBtn: TButton - Left = 123 - Height = 32 - Top = 184 - Width = 69 - Caption = 'Return' - ModalResult = 1 - TabOrder = 7 - end -end diff --git a/applications/lazstats/source_orig/kr21unit.lrs b/applications/lazstats/source_orig/kr21unit.lrs deleted file mode 100644 index 4bb96633a..000000000 --- a/applications/lazstats/source_orig/kr21unit.lrs +++ /dev/null @@ -1,29 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TKR21Frm','FORMDATA',[ - 'TPF0'#8'TKR21Frm'#7'KR21Frm'#4'Left'#3#151#0#6'Height'#3#227#0#3'Top'#2'b'#5 - +'Width'#3#204#0#7'Caption'#6#19'Kuder-Richarson #21'#12'ClientHeight'#3#227#0 - +#11'ClientWidth'#3#204#0#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#16#5'Width'#2'x'#7 - +'Caption'#6#23'Maximum Score Possible:'#11'ParentColor'#8#0#0#6'TLabel'#6'La' - +'bel2'#4'Left'#2#7#6'Height'#2#14#3'Top'#2'.'#5'Width'#2'v'#7'Caption'#6#23 - +'Mean of he Test Scores:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label3'#4'Left'#2 - +#7#6'Height'#2#14#3'Top'#2'P'#5'Width'#2'{'#7'Caption'#6#25'Std. Dev. of Tes' - +'t Scores:'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#2#6#6'Height'#2 - +#14#3'Top'#2'p'#5'Width'#3#130#0#7'Caption'#6#27'KR#21 Reliability Estimate:' - +#11'ParentColor'#8#0#0#5'TEdit'#11'NoItemsEdit'#4'Left'#3#143#0#6'Height'#2 - +#22#3'Top'#2#8#5'Width'#2'1'#8'TabOrder'#2#0#4'Text'#6#11'NoItemsEdit'#0#0#5 - +'TEdit'#8'MeanEdit'#4'Left'#3#143#0#6'Height'#2#22#3'Top'#2'&'#5'Width'#2'1' - +#8'TabOrder'#2#1#4'Text'#6#5'Edit1'#0#0#5'TEdit'#10'StdDevEdit'#4'Left'#3#143 - +#0#6'Height'#2#22#3'Top'#2'H'#5'Width'#2'1'#8'TabOrder'#2#2#4'Text'#6#5'Edit' - +'1'#0#0#5'TEdit'#7'RelEdit'#4'Left'#3#143#0#6'Height'#2#22#3'Top'#2'h'#5'Wid' - +'th'#2'1'#8'TabOrder'#2#3#4'Text'#6#5'Edit1'#0#0#7'TButton'#8'ResetBtn'#4'Le' - +'ft'#2#6#6'Height'#2' '#3'Top'#3#137#0#5'Width'#2'E'#7'Caption'#6#5'Reset'#7 - +'OnClick'#7#13'ResetBtnClick'#8'TabOrder'#2#4#0#0#7'TButton'#9'CancelBtn'#4 - +'Left'#2'{'#6'Height'#2' '#3'Top'#3#137#0#5'Width'#2'E'#7'Caption'#6#6'Cance' - +'l'#11'ModalResult'#2#2#8'TabOrder'#2#5#0#0#7'TButton'#10'ComputeBtn'#4'Left' - +#2#8#6'Height'#2' '#3'Top'#3#184#0#5'Width'#2'E'#7'Caption'#6#7'Compute'#7'O' - +'nClick'#7#15'ComputeBtnClick'#8'TabOrder'#2#6#0#0#7'TButton'#9'ReturnBtn'#4 - +'Left'#2'{'#6'Height'#2' '#3'Top'#3#184#0#5'Width'#2'E'#7'Caption'#6#6'Retur' - +'n'#11'ModalResult'#2#1#8'TabOrder'#2#7#0#0#0 -]); diff --git a/applications/lazstats/source_orig/kr21unit.pas b/applications/lazstats/source_orig/kr21unit.pas deleted file mode 100644 index d3ad96711..000000000 --- a/applications/lazstats/source_orig/kr21unit.pas +++ /dev/null @@ -1,73 +0,0 @@ -unit KR21Unit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls; - -type - - { TKR21Frm } - - TKR21Frm = class(TForm) - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - NoItemsEdit: TEdit; - MeanEdit: TEdit; - StdDevEdit: TEdit; - RelEdit: TEdit; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - Label4: TLabel; - procedure ComputeBtnClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - KR21Frm: TKR21Frm; - -implementation - -{ TKR21Frm } - -procedure TKR21Frm.ResetBtnClick(Sender: TObject); -begin - NoItemsEdit.Text := ''; - MeanEdit.Text := ''; - StdDevEdit.Text := ''; - RelEdit.Text := ''; -end; - -procedure TKR21Frm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TKR21Frm.ComputeBtnClick(Sender: TObject); -var - items, mean, stddev, rel : double; -begin - items := StrToFloat(NoItemsEdit.Text); - mean := StrToFloat(MeanEdit.Text); - stddev := StrToFloat(StdDevEdit.Text); - rel := (items / (items - 1.0)) * (1.0 - (mean * (items - mean))/ - (items * sqr(stddev))); - RelEdit.Text := FloatToStr(rel); -end; - -initialization - {$I kr21unit.lrs} - -end. - diff --git a/applications/lazstats/source_orig/kwanovaunit.lfm b/applications/lazstats/source_orig/kwanovaunit.lfm deleted file mode 100644 index dee1341fb..000000000 --- a/applications/lazstats/source_orig/kwanovaunit.lfm +++ /dev/null @@ -1,307 +0,0 @@ -object KWAnovaFrm: TKWAnovaFrm - Left = 154 - Height = 357 - Top = 128 - Width = 339 - Caption = 'Kruskal-Wallis One Way ANOVA on Ranks' - ClientHeight = 357 - ClientWidth = 339 - OnShow = FormShow - LCLVersion = '0.9.30.4' - object Label1: TLabel - Left = 5 - Height = 16 - Top = 4 - Width = 99 - Caption = 'Variables Available' - ParentColor = False - end - object Label2: TLabel - Left = 193 - Height = 16 - Top = 24 - Width = 79 - Caption = 'Group Variable' - ParentColor = False - end - object Label3: TLabel - Left = 193 - Height = 16 - Top = 113 - Width = 104 - Caption = 'Dependent Variable' - ParentColor = False - end - object VarList: TListBox - Left = 6 - Height = 265 - Top = 20 - Width = 140 - ItemHeight = 0 - TabOrder = 0 - end - object GrpIn: TBitBtn - Left = 153 - Height = 31 - Top = 23 - 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 = GrpInClick - TabOrder = 1 - end - object GrpOut: TBitBtn - Left = 152 - 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 = GrpOutClick - TabOrder = 2 - end - object DepIn: TBitBtn - Left = 153 - Height = 31 - Top = 112 - 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 = 3 - end - object DepOut: TBitBtn - Left = 153 - Height = 31 - Top = 144 - 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 = 4 - end - object GrpEdit: TEdit - Left = 191 - Height = 23 - Top = 39 - Width = 120 - TabOrder = 5 - Text = 'GrpEdit' - end - object DepEdit: TEdit - Left = 193 - Height = 23 - Top = 136 - Width = 120 - TabOrder = 6 - Text = 'Edit1' - end - object ResetBtn: TButton - Left = 153 - Height = 32 - Top = 248 - Width = 63 - Caption = 'Reset' - OnClick = ResetBtnClick - TabOrder = 7 - end - object CancelBtn: TButton - Left = 248 - Height = 32 - Top = 248 - Width = 63 - Caption = 'Cancel' - ModalResult = 2 - TabOrder = 8 - end - object ComputeBtn: TButton - Left = 153 - Height = 32 - Top = 304 - Width = 63 - Caption = 'Compute' - OnClick = ComputeBtnClick - TabOrder = 9 - end - object ReturnBtn: TButton - Left = 248 - Height = 32 - Top = 304 - Width = 63 - Caption = 'Return' - ModalResult = 1 - TabOrder = 10 - end - object MWUChk: TCheckBox - Left = 161 - Height = 19 - Top = 206 - Width = 141 - Caption = 'Mann-Whitney U Tests' - TabOrder = 11 - end - object Label4: TLabel - Left = 162 - Height = 16 - Top = 185 - Width = 162 - Caption = 'Post Hoc Comparisons Option' - ParentColor = False - end - object Label5: TLabel - Left = 9 - Height = 16 - Top = 312 - Width = 46 - Caption = 'Alpha = ' - ParentColor = False - end - object AlphaEdit: TEdit - Left = 57 - Height = 23 - Top = 303 - Width = 41 - TabOrder = 12 - Text = 'AlphaEdit' - end -end diff --git a/applications/lazstats/source_orig/kwanovaunit.lrs b/applications/lazstats/source_orig/kwanovaunit.lrs deleted file mode 100644 index 3de8006d3..000000000 --- a/applications/lazstats/source_orig/kwanovaunit.lrs +++ /dev/null @@ -1,239 +0,0 @@ -{ This is an automatically generated lazarus resource file } - -LazarusResources.Add('TKWAnovaFrm','FORMDATA',[ - 'TPF0'#11'TKWAnovaFrm'#10'KWAnovaFrm'#4'Left'#3#154#0#6'Height'#3'e'#1#3'Top' - +#3#128#0#5'Width'#3'S'#1#7'Caption'#6'%Kruskal-Wallis One Way ANOVA on Ranks' - +#12'ClientHeight'#3'e'#1#11'ClientWidth'#3'S'#1#6'OnShow'#7#8'FormShow'#10'L' - +'CLVersion'#6#8'0.9.30.4'#0#6'TLabel'#6'Label1'#4'Left'#2#5#6'Height'#2#16#3 - +'Top'#2#4#5'Width'#2'c'#7'Caption'#6#19'Variables Available'#11'ParentColor' - +#8#0#0#6'TLabel'#6'Label2'#4'Left'#3#193#0#6'Height'#2#16#3'Top'#2#24#5'Widt' - +'h'#2'O'#7'Caption'#6#14'Group Variable'#11'ParentColor'#8#0#0#6'TLabel'#6'L' - +'abel3'#4'Left'#3#193#0#6'Height'#2#16#3'Top'#2'q'#5'Width'#2'h'#7'Caption'#6 - +#18'Dependent Variable'#11'ParentColor'#8#0#0#8'TListBox'#7'VarList'#4'Left' - +#2#6#6'Height'#3#9#1#3'Top'#2#20#5'Width'#3#140#0#10'ItemHeight'#2#0#8'TabOr' - +'der'#2#0#0#0#7'TBitBtn'#5'GrpIn'#4'Left'#3#153#0#6'Height'#2#31#3'Top'#2#23 - +#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'GrpInClick'#8'TabOrder'#2#1#0#0#7'TBitBtn'#6'GrpOut'#4'Left'#3#152 - +#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'NumGlyphs'#2#0#7'OnClick'#7#11'GrpOutClick'#8'TabOrde' - +'r'#2#2#0#0#7'TBitBtn'#5'DepIn'#4'Left'#3#153#0#6'Height'#2#31#3'Top'#2'p'#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'DepInClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#6'DepOut'#4'Left'#3#153 - +#0#6'Height'#2#31#3'Top'#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'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'TabOrde' - +'r'#2#4#0#0#5'TEdit'#7'GrpEdit'#4'Left'#3#191#0#6'Height'#2#23#3'Top'#2''''#5 - +'Width'#2'x'#8'TabOrder'#2#5#4'Text'#6#7'GrpEdit'#0#0#5'TEdit'#7'DepEdit'#4 - +'Left'#3#193#0#6'Height'#2#23#3'Top'#3#136#0#5'Width'#2'x'#8'TabOrder'#2#6#4 - +'Text'#6#5'Edit1'#0#0#7'TButton'#8'ResetBtn'#4'Left'#3#153#0#6'Height'#2' '#3 - +'Top'#3#248#0#5'Width'#2'?'#7'Caption'#6#5'Reset'#7'OnClick'#7#13'ResetBtnCl' - +'ick'#8'TabOrder'#2#7#0#0#7'TButton'#9'CancelBtn'#4'Left'#3#248#0#6'Height'#2 - +' '#3'Top'#3#248#0#5'Width'#2'?'#7'Caption'#6#6'Cancel'#11'ModalResult'#2#2#8 - +'TabOrder'#2#8#0#0#7'TButton'#10'ComputeBtn'#4'Left'#3#153#0#6'Height'#2' '#3 - +'Top'#3'0'#1#5'Width'#2'?'#7'Caption'#6#7'Compute'#7'OnClick'#7#15'ComputeBt' - +'nClick'#8'TabOrder'#2#9#0#0#7'TButton'#9'ReturnBtn'#4'Left'#3#248#0#6'Heigh' - +'t'#2' '#3'Top'#3'0'#1#5'Width'#2'?'#7'Caption'#6#6'Return'#11'ModalResult'#2 - +#1#8'TabOrder'#2#10#0#0#9'TCheckBox'#6'MWUChk'#4'Left'#3#161#0#6'Height'#2#19 - +#3'Top'#3#206#0#5'Width'#3#141#0#7'Caption'#6#20'Mann-Whitney U Tests'#8'Tab' - +'Order'#2#11#0#0#6'TLabel'#6'Label4'#4'Left'#3#162#0#6'Height'#2#16#3'Top'#3 - +#185#0#5'Width'#3#162#0#7'Caption'#6#27'Post Hoc Comparisons Option'#11'Pare' - +'ntColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2#9#6'Height'#2#16#3'Top'#3'8'#1 - +#5'Width'#2'.'#7'Caption'#6#8'Alpha = '#11'ParentColor'#8#0#0#5'TEdit'#9'Alp' - +'haEdit'#4'Left'#2'9'#6'Height'#2#23#3'Top'#3'/'#1#5'Width'#2')'#8'TabOrder' - +#2#12#4'Text'#6#9'AlphaEdit'#0#0#0 -]); diff --git a/applications/lazstats/source_orig/kwanovaunit.pas b/applications/lazstats/source_orig/kwanovaunit.pas deleted file mode 100644 index 85980e118..000000000 --- a/applications/lazstats/source_orig/kwanovaunit.pas +++ /dev/null @@ -1,488 +0,0 @@ -unit KWANOVAUnit; - -{$mode objfpc}{$H+} - -interface - -uses - Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, - StdCtrls, Buttons, MainUnit, OutPutUnit, FunctionsLib, - Globals, DataProcs, Math; - -type - - { TKWAnovaFrm } - - TKWAnovaFrm = class(TForm) - AlphaEdit: TEdit; - Label4: TLabel; - Label5: TLabel; - MWUChk: TCheckBox; - ResetBtn: TButton; - CancelBtn: TButton; - ComputeBtn: TButton; - ReturnBtn: TButton; - GrpEdit: TEdit; - DepEdit: TEdit; - GrpIn: TBitBtn; - GrpOut: TBitBtn; - DepIn: TBitBtn; - DepOut: TBitBtn; - Label1: TLabel; - Label2: TLabel; - Label3: TLabel; - VarList: TListBox; - procedure ComputeBtnClick(Sender: TObject); - procedure DepInClick(Sender: TObject); - procedure DepOutClick(Sender: TObject); - procedure FormShow(Sender: TObject); - procedure GrpInClick(Sender: TObject); - procedure GrpOutClick(Sender: TObject); - procedure ResetBtnClick(Sender: TObject); - private - { private declarations } - public - { public declarations } - end; - -var - KWAnovaFrm: TKWAnovaFrm; - -implementation - -{ TKWAnovaFrm } - -procedure TKWAnovaFrm.ResetBtnClick(Sender: TObject); -VAR i : integer; -begin - GrpEdit.Text := ''; - DepEdit.Text := ''; - AlphaEdit.Text := '0.05'; - GrpIn.Visible := true; - GrpOut.Visible := false; - DepIn.Visible := true; - DepOut.Visible := false; - MWUChk.Checked := false; - VarList.Items.Clear; - for i := 1 to NoVariables do - VarList.Items.Add(OS3MainFrm.DataGrid.Cells[i,0]); -end; - -procedure TKWAnovaFrm.FormShow(Sender: TObject); -begin - ResetBtnClick(self); -end; - -procedure TKWAnovaFrm.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 TKWAnovaFrm.ComputeBtnClick(Sender: TObject); -label cleanup, Check1, Check2; -var - i, j, k, m, ind_var, dep_var, min_grp, max_grp, group, total_n : integer; - NoTies, NoTieGroups, nogroups, NoSelected, npairs, n1, n2 : integer; - largestn : integer; - ColNoSelected : IntdyneVec; - group_count : IntDyneVec; - score, t, SumT, Avg, Probchi, H, CorrectedH, value : double; - Correction, Temp, TieSum, alpha, U, U2, SD, z, prob : double; - Ranks, X : DblDyneMat; - RankSums : DblDyneVec; - cellstring, outline : string; -begin - // Check for data - if (NoVariables < 1) then - begin - ShowMessage('ERROR! You must have grid data!'); - exit; - end; - - // allocate space - SetLength(ColNoSelected,NoVariables); - SetLength(Ranks,NoCases,2); - SetLength(X,NoCases,2); - - // Get column numbers of the independent and dependent variables - ind_var := 0; - dep_var := 0; - for i := 1 to NoVariables do - begin - cellstring := GrpEdit.Text; - if (cellstring = OS3MainFrm.DataGrid.Cells[i,0]) then ind_var := i; - cellstring := DepEdit.Text; - if (cellstring = OS3MainFrm.DataGrid.Cells[i,0]) then dep_var := i; - end; - ColNoSelected[0] := ind_var; - ColNoSelected[1] := dep_var; - - //get minimum and maximum group codes - total_n := 0; - NoSelected := 2; - min_grp := 10000; //atoi(MainForm.Grid.Cells[ind_var,1].c_str); - max_grp := -10000; - for i := 1 to NoCases do - begin - if (not GoodRecord(i,NoSelected,ColNoSelected)) then continue; - group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ind_var,i]))); - if (group < min_grp) then min_grp := group; - if (group > max_grp) then max_grp := group; - total_n := total_n + 1; - end; - nogroups := max_grp - min_grp + 1; - NoTieGroups := 0; - SumT := 0.0; - H := 0.0; - - // Initialize arrays - SetLength(RankSums,nogroups); - SetLength(group_count,nogroups); - for i := 0 to nogroups-1 do - begin - group_count[i] := 0; - RankSums[i] := 0.0; - end; - - // Setup for printer output - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Kruskal - Wallis One-Way Analysis of Variance'); - OutPutFrm.RichEdit.Lines.Add('See pages 184-194 in S. Siegel: Nonparametric Statistics for the Behavioral Sciences'); - OutPutFrm.RichEdit.Lines.Add(''); - - // Get data - for i := 1 to NoCases do - begin - if (not GoodRecord(i,NoSelected,ColNoSelected)) then continue; - score := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[dep_var,i])); - group := round(StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ind_var,i]))); - group := group - min_grp + 1; - if (group > nogroups) then - begin - ShowMessage('ERROR! Group codes must be sequential like 1 and 2!'); - goto cleanup; - end; - group_count[group-1] := group_count[group-1] + 1; - X[i-1,0] := score; - X[i-1,1] := group; - end; - - //Sort all scores in ascending order - for i := 1 to total_n - 1 do - begin - for j := i + 1 to total_n do - begin - if (X[i-1,0] > X[j-1,0]) then - begin - Temp := X[i-1,0]; - X[i-1,0] := X[j-1,0]; - X[j-1,0] := Temp; - Temp := X[i-1,1]; - X[i-1,1] := X[j-1,1]; - X[j-1,1] := Temp; - end; - end; - end; - - // Store ranks - for i := 0 to total_n-1 do - begin - Ranks[i,0] := i+1; - Ranks[i,1] := X[i,1]; - end; - - //Check for ties in ranks - replace with average rank and calculate - //T for each tie and sum of the T's - i := 1; - while i < total_n do - begin - j := i + 1; - TieSum := 0; - NoTies := 0; - while (j < total_n) do - begin - if (X[j-1,0] > X[i-1,0]) then goto Check1; - if (X[j-1,0] = X[i-1,0]) then // match - begin - TieSum := TieSum + round(Ranks[j-1,0]); - NoTies := NoTies + 1; - end; - j := j + 1; - end; -Check1: - if (NoTies > 0) then //At least one tie found - begin - TieSum := TieSum + Ranks[i-1,0]; - NoTies := NoTies + 1; - Avg := TieSum / NoTies; - for j := i to i + NoTies - 1 do Ranks[j-1,0] := Avg; - t := Power(NoTies,3) - NoTies; - SumT := SumT + t; - NoTieGroups := NoTieGroups + 1; - i := i + (NoTies - 1); - end; - i := i + 1; - end; // next i - - // Calculate sum of ranks in each group - for i := 1 to total_n do - begin - group := round(Ranks[i-1,1]); - RankSums[group-1] := RankSums[group-1] + Ranks[i-1,0]; - end; - - // Calculate statistics - for j := 0 to nogroups-1 do H := H + (RankSums[j] * RankSums[j] / (group_count[j])); - H := H * (12.0 / ( total_n * (total_n + 1)) ); - H := H - (3.0 * (total_n + 1)); - Correction := 1.0 - ( SumT / (Power(total_n,3) - total_n) ); - CorrectedH := H / Correction; - k := max_grp - min_grp; - Probchi := 1.0 - chisquaredprob(H, k); - - // Report results - OutPutFrm.RichEdit.Lines.Add(' Score Rank Group'); - OutPutFrm.RichEdit.Lines.Add(''); - for i := 1 to total_n do - begin - outline := format('%10.2f %10.2f %10.0f', - [X[i-1,0], Ranks[i-1,0], Ranks[i-1,1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Sum of Ranks in each Group'); - OutPutFrm.RichEdit.Lines.Add('Group Sum No. in Group'); - for i := 1 to nogroups do - begin - outline := format('%3d %10.2f %5d', [i+min_grp-1, RankSums[i-1],group_count[i-1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('No. of tied rank groups = %3d',[NoTieGroups]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Statistic H uncorrected for ties = %8.4f',[H]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Correction for Ties = %6.4f',[Correction]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Statistic H corrected for ties = %8.4f',[CorrectedH]); - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('Corrected H is approx. chi-square with %3d D.F. and probability = %6.4f',[k,Probchi]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.ShowModal; - OutPutFrm.RichEdit.Clear; - - if not MWUChk.Checked then goto cleanup; - // do Mann-Whitney U tests on group pairs - alpha := StrToFloat(AlphaEdit.Text); - npairs := nogroups * (nogroups - 1) div 2; - alpha := alpha / npairs; - outline := format('New alpha for %d paired comparisons = %5.3f',[npairs, alpha]); - ShowMessage(outline); - for i := 1 to nogroups - 1 do - begin - for j := i + 1 to nogroups do - begin - // Setup for printer output - OutPutFrm.RichEdit.Clear; - OutPutFrm.RichEdit.Lines.Add('Mann-Whitney U Test'); - OutPutFrm.RichEdit.Lines.Add('See pages 116-127 in S. Siegel: Nonparametric Statistics for the Behavioral Sciences'); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('Comparison of group %d with group %d',[i,j]); - OutPutFrm.RichEdit.Lines.Add(outline); - group_count[0] := 0; - group_count[1] := 0; - RankSums[0] := 0; - RankSums[1] := 0; - total_n := 0; - for k := 1 to NoCases do - begin - if (not GoodRecord(k,NoSelected,ColNoSelected)) then continue; - score := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[dep_var,k])); - value := StrToFloat(Trim(OS3MainFrm.DataGrid.Cells[ind_var,k])); - if round(value) = i then - begin - X[total_n,0] := score; - X[total_n,1] := value; - group_count[0] := group_count[0] + 1; - total_n := total_n + 1; - end; - if round(value) = j then - begin - X[total_n,0] := score; - X[total_n,1] := value; - group_count[1] := group_count[1] + 1; - total_n := total_n + 1; - end; - end; // next case k - - //Sort all scores in ascending order - for k := 1 to total_n - 1 do - begin - for m := k + 1 to total_n do - begin - if (X[k-1,0] > X[m-1,0]) then - begin - Temp := X[k-1,0]; - X[k-1,0] := X[m-1,0]; - X[m-1,0] := Temp; - Temp := X[k-1,1]; - X[k-1,1] := X[m-1,1]; - X[m-1,1] := Temp; - end; - end; - end; - - // get ranks for these two groups - for k := 1 to total_n do - begin - Ranks[k-1,0] := k; - Ranks[k-1,1] := X[k-1,1]; - end; - - //Check for ties in ranks - replace with average rank and calculate - //T for each tie and sum of the T's - NoTieGroups := 0; - k := 1; - while k < total_n do - begin - m := k + 1; - TieSum := 0; - NoTies := 0; - while (m < total_n) do - begin - if (X[m-1,0] > X[k-1,0]) then goto Check2; - if (X[m-1,0] = X[k-1,0]) then // match - begin - TieSum := TieSum + round(Ranks[m-1,0]); - NoTies := NoTies + 1; - end; - m := m + 1; - end; - Check2: - if (NoTies > 0) then //At least one tie found - begin - TieSum := TieSum + Ranks[k-1,0]; - NoTies := NoTies + 1; - Avg := TieSum / NoTies; - for m := k to k + NoTies - 1 do Ranks[m-1,0] := Avg; - t := Power(NoTies,3) - NoTies; - SumT := SumT + t; - NoTieGroups := NoTieGroups + 1; - k := k + (NoTies - 1); - end; - k := k + 1; - end; // next k - - // Calculate sum of ranks in each group - for k := 1 to total_n do - begin - group := round(Ranks[k-1,1]); - RankSums[group-1] := RankSums[group-1] + Ranks[k-1,0]; - end; - - //Calculate U for larger and smaller groups - n1 := group_count[0]; - n2 := group_count[1]; - if (n1 > n2) then - begin - group := i-1; - U := (n1 * n2) + ((n1 * (n1 + 1)) / 2.0) - RankSums[group]; - end - else - begin - group := j - 1; - U := (n1 * n2) + ((n2 * (n2 + 1)) / 2.0) - RankSums[group]; - end; - U2 := (n1 * n2) - U; - SD := (n1 * n2 * (n1 + n2 + 1)) / 12.0; - SD := sqrt(SD); - if (U2 > U) then z := (U2 - (n1 * n2 / 2)) / SD - else z := (U - (n1 * n2 / 2)) / SD; - prob := 1.0 - probz(z); - - //Report results - OutPutFrm.RichEdit.Lines.Add(' Score Rank Group'); - OutPutFrm.RichEdit.Lines.Add(''); - for k := 1 to total_n do - begin - outline := format('%10.2f %10.2f %10.0f', - [X[k-1,0], Ranks[k-1,0], Ranks[k-1,1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - end; - OutPutFrm.RichEdit.Lines.Add(''); - OutPutFrm.RichEdit.Lines.Add('Sum of Ranks in each Group'); - OutPutFrm.RichEdit.Lines.Add('Group Sum No. in Group'); - group := i - 1; - outline := format('%3d %10.3f %5d', [i, RankSums[group],group_count[0]]); - OutPutFrm.RichEdit.Lines.Add(outline); - group := j - 1; - outline := format('%3d %10.3f %5d', [j, RankSums[group],group_count[1]]); - OutPutFrm.RichEdit.Lines.Add(outline); - OutPutFrm.RichEdit.Lines.Add(''); - outline := format('No. of tied rank groups = %3d',[NoTieGroups]); - OutPutFrm.RichEdit.Lines.Add(outline); - if (n1 > n2) then largestn := n1 - else largestn := n2; - if (largestn < 20) then - outline := format('Statistic U = %8.4f',[U]) - else - begin - if (U > U2) then outline := format('Statistic U = %8.4f',[U]) - else outline := format('Statistic U = %8.4f',[U2]); - end; - OutPutFrm.RichEdit.Lines.Add(outline); - outline := format('z Statistic (corrected for ties) = %8.4f, Prob. > z = %6.4f', - [z, prob]); - OutPutFrm.RichEdit.Lines.Add(outline); - if (n2 < 20) then - begin - OutPutFrm.RichEdit.Lines.Add('z test is approximate. Use tables of exact probabilities in Siegel.'); - OutPutFrm.RichEdit.Lines.Add('(Table J or K, pages 271-277)'); - end; - OutPutFrm.ShowModal; - end; // next group j - end; // next group i -cleanup: - group_count := nil; - RankSums := nil; - X := nil; - Ranks := nil; - ColNoSelected := nil; -end; - -procedure TKWAnovaFrm.DepOutClick(Sender: TObject); -begin - VarList.Items.Add(DepEdit.Text); - DepEdit.Text := ''; - DepIn.Visible := true; - DepOut.Visible := false; -end; - -procedure TKWAnovaFrm.GrpInClick(Sender: TObject); -VAR index : integer; -begin - index := VarList.ItemIndex; - GrpEdit.Text := VarList.Items.Strings[index]; - VarList.Items.Delete(index); - GrpIn.Visible := false; - GrpOut.Visible := true; -end; - -procedure TKWAnovaFrm.GrpOutClick(Sender: TObject); -begin - VarList.Items.Add(GrpEdit.Text); - GrpEdit.Text := ''; - GrpIn.Visible := true; - GrpOut.Visible := false; -end; - -initialization - {$I kwanovaunit.lrs} - -end. -