Commit a0f3a52d9b2a6187fd9349d46518ea4e08eb0aed
1 parent
176d0a72
Exists in
master
designer: fix opening from clean enviroment
Showing
2 changed files
with
156 additions
and
91 deletions
Show diff stats
experiment_designer/form_main.lfm
| 1 | 1 | object FormDesigner: TFormDesigner |
| 2 | 2 | Left = 348 |
| 3 | 3 | Height = 656 |
| 4 | - Top = 27 | |
| 4 | + Top = 29 | |
| 5 | 5 | Width = 653 |
| 6 | - HorzScrollBar.Page = 315 | |
| 7 | - VertScrollBar.Page = 636 | |
| 6 | + HorzScrollBar.Page = 346 | |
| 7 | + VertScrollBar.Page = 637 | |
| 8 | 8 | AutoScroll = True |
| 9 | 9 | Caption = 'Planejar Experimento' |
| 10 | - ClientHeight = 636 | |
| 11 | - ClientWidth = 636 | |
| 10 | + ClientHeight = 637 | |
| 11 | + ClientWidth = 643 | |
| 12 | 12 | Menu = MainMenu1 |
| 13 | 13 | OnActivate = FormActivate |
| 14 | 14 | OnCreate = FormCreate |
| ... | ... | @@ -18,9 +18,9 @@ object FormDesigner: TFormDesigner |
| 18 | 18 | LCLVersion = '1.6.2.0' |
| 19 | 19 | object PageControl: TPageControl |
| 20 | 20 | Left = 0 |
| 21 | - Height = 726 | |
| 21 | + Height = 744 | |
| 22 | 22 | Top = 0 |
| 23 | - Width = 636 | |
| 23 | + Width = 643 | |
| 24 | 24 | ActivePage = TabSheetExperiment |
| 25 | 25 | Align = alClient |
| 26 | 26 | TabIndex = 0 |
| ... | ... | @@ -32,76 +32,77 @@ object FormDesigner: TFormDesigner |
| 32 | 32 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize |
| 33 | 33 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 34 | 34 | ChildSizing.ControlsPerLine = 1 |
| 35 | - ClientHeight = 698 | |
| 36 | - ClientWidth = 628 | |
| 35 | + ClientHeight = 711 | |
| 36 | + ClientWidth = 637 | |
| 37 | 37 | object GBConditions: TGroupBox |
| 38 | 38 | Left = 0 |
| 39 | - Height = 100 | |
| 39 | + Height = 97 | |
| 40 | 40 | Top = 10 |
| 41 | - Width = 628 | |
| 41 | + Width = 637 | |
| 42 | 42 | Caption = 'Condições' |
| 43 | 43 | ClientHeight = 80 |
| 44 | - ClientWidth = 624 | |
| 44 | + ClientWidth = 633 | |
| 45 | 45 | TabOrder = 5 |
| 46 | 46 | object ListBoxConditions: TListBox |
| 47 | 47 | Left = 0 |
| 48 | 48 | Height = 80 |
| 49 | 49 | Top = 0 |
| 50 | - Width = 624 | |
| 50 | + Width = 633 | |
| 51 | 51 | Anchors = [akTop, akLeft, akRight] |
| 52 | 52 | ItemHeight = 0 |
| 53 | - ScrollWidth = 652 | |
| 53 | + ScrollWidth = 631 | |
| 54 | 54 | TabOrder = 0 |
| 55 | + TopIndex = -1 | |
| 55 | 56 | end |
| 56 | 57 | end |
| 57 | 58 | object LabelResearcherName: TLabel |
| 58 | 59 | Left = 0 |
| 59 | 60 | Height = 15 |
| 60 | - Top = 115 | |
| 61 | - Width = 628 | |
| 61 | + Top = 112 | |
| 62 | + Width = 637 | |
| 62 | 63 | Caption = 'Nome do Pesquisador' |
| 63 | 64 | ParentColor = False |
| 64 | 65 | end |
| 65 | 66 | object EditResearcherName: TEdit |
| 66 | 67 | Left = 0 |
| 67 | - Height = 23 | |
| 68 | + Height = 25 | |
| 68 | 69 | Hint = 'Uma pasta será criada com o seu nome. Os seus experimentos serão salvos dentro dela.' |
| 69 | - Top = 135 | |
| 70 | - Width = 628 | |
| 70 | + Top = 132 | |
| 71 | + Width = 637 | |
| 71 | 72 | OnEditingDone = EditExperimentEditingDone |
| 72 | 73 | TabOrder = 0 |
| 73 | 74 | end |
| 74 | 75 | object LabelExperimentName: TLabel |
| 75 | 76 | Left = 0 |
| 76 | 77 | Height = 15 |
| 77 | - Top = 163 | |
| 78 | - Width = 628 | |
| 78 | + Top = 162 | |
| 79 | + Width = 637 | |
| 79 | 80 | Caption = 'Nome do Experimento' |
| 80 | 81 | ParentColor = False |
| 81 | 82 | end |
| 82 | 83 | object EditExperimentName: TEdit |
| 83 | 84 | Left = 0 |
| 84 | - Height = 23 | |
| 85 | + Height = 25 | |
| 85 | 86 | Hint = 'Uma pasta será criada com o nome do experimento. Os dados desse experimento serão salvos dentro dela.' |
| 86 | - Top = 183 | |
| 87 | - Width = 628 | |
| 87 | + Top = 182 | |
| 88 | + Width = 637 | |
| 88 | 89 | OnEditingDone = EditExperimentEditingDone |
| 89 | 90 | TabOrder = 1 |
| 90 | 91 | end |
| 91 | 92 | object GBExperimentAim: TGroupBox |
| 92 | 93 | Left = 0 |
| 93 | - Height = 162 | |
| 94 | - Top = 211 | |
| 95 | - Width = 628 | |
| 94 | + Height = 159 | |
| 95 | + Top = 212 | |
| 96 | + Width = 637 | |
| 96 | 97 | Caption = 'Objetivo do Experimento' |
| 97 | 98 | ClientHeight = 142 |
| 98 | - ClientWidth = 624 | |
| 99 | + ClientWidth = 633 | |
| 99 | 100 | TabOrder = 2 |
| 100 | 101 | object MemoExperimentAim: TMemo |
| 101 | 102 | Left = 0 |
| 102 | 103 | Height = 142 |
| 103 | 104 | Top = 0 |
| 104 | - Width = 624 | |
| 105 | + Width = 633 | |
| 105 | 106 | Align = alCustom |
| 106 | 107 | Anchors = [akTop, akLeft, akRight] |
| 107 | 108 | OnEditingDone = EditExperimentEditingDone |
| ... | ... | @@ -110,10 +111,10 @@ object FormDesigner: TFormDesigner |
| 110 | 111 | end |
| 111 | 112 | object CGGlobal: TCheckGroup |
| 112 | 113 | Left = 0 |
| 113 | - Height = 108 | |
| 114 | + Height = 113 | |
| 114 | 115 | Hint = 'Aplicáveis ao longo de todo o experimento' |
| 115 | - Top = 378 | |
| 116 | - Width = 628 | |
| 116 | + Top = 376 | |
| 117 | + Width = 637 | |
| 117 | 118 | AutoFill = True |
| 118 | 119 | Caption = 'Configurações globais' |
| 119 | 120 | ChildSizing.LeftRightSpacing = 6 |
| ... | ... | @@ -124,8 +125,8 @@ object FormDesigner: TFormDesigner |
| 124 | 125 | ChildSizing.ShrinkVertical = crsScaleChilds |
| 125 | 126 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 126 | 127 | ChildSizing.ControlsPerLine = 1 |
| 127 | - ClientHeight = 88 | |
| 128 | - ClientWidth = 624 | |
| 128 | + ClientHeight = 96 | |
| 129 | + ClientWidth = 633 | |
| 129 | 130 | Items.Strings = ( |
| 130 | 131 | 'Enviar histórico do bate-papo a novos participantes' |
| 131 | 132 | 'Gerar participantes automaticamente' |
| ... | ... | @@ -140,9 +141,9 @@ object FormDesigner: TFormDesigner |
| 140 | 141 | end |
| 141 | 142 | object RGPoints: TRadioGroup |
| 142 | 143 | Left = 0 |
| 143 | - Height = 58 | |
| 144 | - Top = 491 | |
| 145 | - Width = 628 | |
| 144 | + Height = 59 | |
| 145 | + Top = 494 | |
| 146 | + Width = 637 | |
| 146 | 147 | AutoFill = True |
| 147 | 148 | Caption = 'Tipo de pontuação Individual' |
| 148 | 149 | ChildSizing.LeftRightSpacing = 6 |
| ... | ... | @@ -152,8 +153,8 @@ object FormDesigner: TFormDesigner |
| 152 | 153 | ChildSizing.ShrinkVertical = crsScaleChilds |
| 153 | 154 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 154 | 155 | ChildSizing.ControlsPerLine = 1 |
| 155 | - ClientHeight = 38 | |
| 156 | - ClientWidth = 624 | |
| 156 | + ClientHeight = 42 | |
| 157 | + ClientWidth = 633 | |
| 157 | 158 | ItemIndex = 0 |
| 158 | 159 | Items.Strings = ( |
| 159 | 160 | 'A e B' |
| ... | ... | @@ -164,21 +165,21 @@ object FormDesigner: TFormDesigner |
| 164 | 165 | end |
| 165 | 166 | object GBMatrix: TGroupBox |
| 166 | 167 | Left = 0 |
| 167 | - Height = 134 | |
| 168 | - Top = 554 | |
| 169 | - Width = 628 | |
| 168 | + Height = 143 | |
| 169 | + Top = 558 | |
| 170 | + Width = 637 | |
| 170 | 171 | Caption = 'Tipo da Matrix' |
| 171 | 172 | ChildSizing.LeftRightSpacing = 5 |
| 172 | 173 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 173 | 174 | ChildSizing.ControlsPerLine = 1 |
| 174 | - ClientHeight = 114 | |
| 175 | - ClientWidth = 624 | |
| 175 | + ClientHeight = 126 | |
| 176 | + ClientWidth = 633 | |
| 176 | 177 | TabOrder = 6 |
| 177 | 178 | object ChkColors: TCheckBox |
| 178 | 179 | Left = 5 |
| 179 | - Height = 19 | |
| 180 | + Height = 21 | |
| 180 | 181 | Top = 0 |
| 181 | - Width = 215 | |
| 182 | + Width = 239 | |
| 182 | 183 | Caption = '5 cores' |
| 183 | 184 | Checked = True |
| 184 | 185 | Enabled = False |
| ... | ... | @@ -188,9 +189,9 @@ object FormDesigner: TFormDesigner |
| 188 | 189 | end |
| 189 | 190 | object ChkRows: TCheckBox |
| 190 | 191 | Left = 5 |
| 191 | - Height = 19 | |
| 192 | - Top = 19 | |
| 193 | - Width = 215 | |
| 192 | + Height = 21 | |
| 193 | + Top = 21 | |
| 194 | + Width = 239 | |
| 194 | 195 | Caption = '10 linhas' |
| 195 | 196 | Checked = True |
| 196 | 197 | Enabled = False |
| ... | ... | @@ -200,18 +201,18 @@ object FormDesigner: TFormDesigner |
| 200 | 201 | end |
| 201 | 202 | object ChkCols: TCheckBox |
| 202 | 203 | Left = 5 |
| 203 | - Height = 19 | |
| 204 | - Top = 38 | |
| 205 | - Width = 215 | |
| 204 | + Height = 21 | |
| 205 | + Top = 42 | |
| 206 | + Width = 239 | |
| 206 | 207 | Caption = '10 colunas' |
| 207 | 208 | OnClick = ChkMatrixTypeClick |
| 208 | 209 | TabOrder = 2 |
| 209 | 210 | end |
| 210 | 211 | object ChkDots: TCheckBox |
| 211 | 212 | Left = 5 |
| 212 | - Height = 19 | |
| 213 | - Top = 57 | |
| 214 | - Width = 215 | |
| 213 | + Height = 21 | |
| 214 | + Top = 63 | |
| 215 | + Width = 239 | |
| 215 | 216 | Caption = 'Com Círculos Preechidos' |
| 216 | 217 | OnChange = ChkDotsChange |
| 217 | 218 | OnClick = ChkMatrixTypeClick |
| ... | ... | @@ -219,9 +220,9 @@ object FormDesigner: TFormDesigner |
| 219 | 220 | end |
| 220 | 221 | object ChkCleanDots: TCheckBox |
| 221 | 222 | Left = 5 |
| 222 | - Height = 19 | |
| 223 | - Top = 76 | |
| 224 | - Width = 215 | |
| 223 | + Height = 21 | |
| 224 | + Top = 84 | |
| 225 | + Width = 239 | |
| 225 | 226 | Caption = 'Com Círculos Vazados' |
| 226 | 227 | OnChange = ChkCleanDotsChange |
| 227 | 228 | OnClick = ChkMatrixTypeClick |
| ... | ... | @@ -229,9 +230,9 @@ object FormDesigner: TFormDesigner |
| 229 | 230 | end |
| 230 | 231 | object ChkDotsCleanDots: TCheckBox |
| 231 | 232 | Left = 5 |
| 232 | - Height = 19 | |
| 233 | - Top = 95 | |
| 234 | - Width = 215 | |
| 233 | + Height = 21 | |
| 234 | + Top = 105 | |
| 235 | + Width = 239 | |
| 235 | 236 | Caption = 'Com Círculos Vazados e Preenchidos' |
| 236 | 237 | OnChange = ChkDotsCleanDotsChange |
| 237 | 238 | OnClick = ChkMatrixTypeClick |
| ... | ... | @@ -246,14 +247,14 @@ object FormDesigner: TFormDesigner |
| 246 | 247 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize |
| 247 | 248 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 248 | 249 | ChildSizing.ControlsPerLine = 1 |
| 249 | - ClientHeight = 751 | |
| 250 | - ClientWidth = 649 | |
| 250 | + ClientHeight = 711 | |
| 251 | + ClientWidth = 637 | |
| 251 | 252 | object ComboCurrentCondition: TComboBox |
| 252 | 253 | Left = 0 |
| 253 | 254 | Height = 23 |
| 254 | 255 | Top = 10 |
| 255 | 256 | Width = 649 |
| 256 | - ItemHeight = 15 | |
| 257 | + ItemHeight = 0 | |
| 257 | 258 | OnChange = ComboCurrentConditionChange |
| 258 | 259 | Style = csDropDownList |
| 259 | 260 | TabOrder = 0 |
| ... | ... | @@ -307,7 +308,7 @@ object FormDesigner: TFormDesigner |
| 307 | 308 | Top = 69 |
| 308 | 309 | Width = 649 |
| 309 | 310 | Caption = 'Contingências e Metacontingências da Condição Selecionada' |
| 310 | - ClientHeight = 80 | |
| 311 | + ClientHeight = 83 | |
| 311 | 312 | ClientWidth = 645 |
| 312 | 313 | TabOrder = 8 |
| 313 | 314 | object ListBoxContingencies: TListBox |
| ... | ... | @@ -319,8 +320,9 @@ object FormDesigner: TFormDesigner |
| 319 | 320 | Anchors = [akTop, akLeft, akRight] |
| 320 | 321 | ItemHeight = 0 |
| 321 | 322 | MultiSelect = True |
| 322 | - ScrollWidth = 652 | |
| 323 | + ScrollWidth = 643 | |
| 323 | 324 | TabOrder = 0 |
| 325 | + TopIndex = -1 | |
| 324 | 326 | end |
| 325 | 327 | end |
| 326 | 328 | object LabelConditionName: TLabel |
| ... | ... | @@ -369,7 +371,7 @@ object FormDesigner: TFormDesigner |
| 369 | 371 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize |
| 370 | 372 | ChildSizing.Layout = cclTopToBottomThenLeftToRight |
| 371 | 373 | ChildSizing.ControlsPerLine = 2 |
| 372 | - ClientHeight = 38 | |
| 374 | + ClientHeight = 41 | |
| 373 | 375 | ClientWidth = 645 |
| 374 | 376 | TabOrder = 9 |
| 375 | 377 | object LabelPA: TLabel |
| ... | ... | @@ -471,7 +473,7 @@ object FormDesigner: TFormDesigner |
| 471 | 473 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize |
| 472 | 474 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 473 | 475 | ChildSizing.ControlsPerLine = 1 |
| 474 | - ClientHeight = 142 | |
| 476 | + ClientHeight = 145 | |
| 475 | 477 | ClientWidth = 645 |
| 476 | 478 | TabOrder = 5 |
| 477 | 479 | object CheckBoxShouldAskQuestion: TCheckBox |
| ... | ... | @@ -517,7 +519,7 @@ object FormDesigner: TFormDesigner |
| 517 | 519 | ChildSizing.ShrinkVertical = crsScaleChilds |
| 518 | 520 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 519 | 521 | ChildSizing.ControlsPerLine = 1 |
| 520 | - ClientHeight = 50 | |
| 522 | + ClientHeight = 53 | |
| 521 | 523 | ClientWidth = 541 |
| 522 | 524 | Items.Strings = ( |
| 523 | 525 | 'Reverter consequências das metacontingências e contingências' |
| ... | ... | @@ -545,7 +547,7 @@ object FormDesigner: TFormDesigner |
| 545 | 547 | ChildSizing.ShrinkVertical = crsScaleChilds |
| 546 | 548 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 547 | 549 | ChildSizing.ControlsPerLine = 1 |
| 548 | - ClientHeight = 57 | |
| 550 | + ClientHeight = 60 | |
| 549 | 551 | ClientWidth = 645 |
| 550 | 552 | ItemIndex = 2 |
| 551 | 553 | Items.Strings = ( |
| ... | ... | @@ -567,7 +569,7 @@ object FormDesigner: TFormDesigner |
| 567 | 569 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize |
| 568 | 570 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 569 | 571 | ChildSizing.ControlsPerLine = 1 |
| 570 | - ClientHeight = 91 | |
| 572 | + ClientHeight = 94 | |
| 571 | 573 | ClientWidth = 645 |
| 572 | 574 | TabOrder = 7 |
| 573 | 575 | object LabelEndCriteriaAbsCycles: TLabel |
| ... | ... | @@ -597,7 +599,7 @@ object FormDesigner: TFormDesigner |
| 597 | 599 | ChildSizing.HorizontalSpacing = 5 |
| 598 | 600 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 599 | 601 | ChildSizing.ControlsPerLine = 4 |
| 600 | - ClientHeight = 23 | |
| 602 | + ClientHeight = 26 | |
| 601 | 603 | ClientWidth = 541 |
| 602 | 604 | TabOrder = 1 |
| 603 | 605 | object SpinEditEndCriteriaInterlockingPorcentage: TSpinEdit |
| ... | ... | @@ -650,8 +652,8 @@ object FormDesigner: TFormDesigner |
| 650 | 652 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize |
| 651 | 653 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 652 | 654 | ChildSizing.ControlsPerLine = 1 |
| 653 | - ClientHeight = 762 | |
| 654 | - ClientWidth = 628 | |
| 655 | + ClientHeight = 711 | |
| 656 | + ClientWidth = 637 | |
| 655 | 657 | Enabled = False |
| 656 | 658 | object RGContingencyType: TRadioGroup |
| 657 | 659 | Left = 0 |
| ... | ... | @@ -667,7 +669,7 @@ object FormDesigner: TFormDesigner |
| 667 | 669 | ChildSizing.ShrinkVertical = crsScaleChilds |
| 668 | 670 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 669 | 671 | ChildSizing.ControlsPerLine = 1 |
| 670 | - ClientHeight = 38 | |
| 672 | + ClientHeight = 41 | |
| 671 | 673 | ClientWidth = 624 |
| 672 | 674 | Items.Strings = ( |
| 673 | 675 | 'Contingências Operantes' |
| ... | ... | @@ -681,7 +683,7 @@ object FormDesigner: TFormDesigner |
| 681 | 683 | Height = 23 |
| 682 | 684 | Top = 73 |
| 683 | 685 | Width = 628 |
| 684 | - ItemHeight = 15 | |
| 686 | + ItemHeight = 0 | |
| 685 | 687 | OnChange = ComboCurrentContingencyChange |
| 686 | 688 | Style = csDropDownList |
| 687 | 689 | TabOrder = 0 |
| ... | ... | @@ -758,7 +760,7 @@ object FormDesigner: TFormDesigner |
| 758 | 760 | ChildSizing.ShrinkVertical = crsScaleChilds |
| 759 | 761 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 760 | 762 | ChildSizing.ControlsPerLine = 1 |
| 761 | - ClientHeight = 95 | |
| 763 | + ClientHeight = 98 | |
| 762 | 764 | ClientWidth = 624 |
| 763 | 765 | ItemIndex = 0 |
| 764 | 766 | Items.Strings = ( |
| ... | ... | @@ -837,7 +839,7 @@ object FormDesigner: TFormDesigner |
| 837 | 839 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize |
| 838 | 840 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 839 | 841 | ChildSizing.ControlsPerLine = 2 |
| 840 | - ClientHeight = 324 | |
| 842 | + ClientHeight = 327 | |
| 841 | 843 | ClientWidth = 624 |
| 842 | 844 | TabOrder = 6 |
| 843 | 845 | Visible = False |
| ... | ... | @@ -871,7 +873,7 @@ object FormDesigner: TFormDesigner |
| 871 | 873 | Height = 23 |
| 872 | 874 | Top = 15 |
| 873 | 875 | Width = 230 |
| 874 | - ItemHeight = 15 | |
| 876 | + ItemHeight = 0 | |
| 875 | 877 | OnChange = ConsequenceStyleChange |
| 876 | 878 | Style = csDropDownList |
| 877 | 879 | TabOrder = 1 |
| ... | ... | @@ -890,7 +892,7 @@ object FormDesigner: TFormDesigner |
| 890 | 892 | ChildSizing.ShrinkVertical = crsScaleChilds |
| 891 | 893 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 892 | 894 | ChildSizing.ControlsPerLine = 1 |
| 893 | - ClientHeight = 57 | |
| 895 | + ClientHeight = 60 | |
| 894 | 896 | ClientWidth = 390 |
| 895 | 897 | ItemIndex = 0 |
| 896 | 898 | Items.Strings = ( | ... | ... |
experiment_designer/form_main.pas
| ... | ... | @@ -202,13 +202,17 @@ type |
| 202 | 202 | procedure SetRGEndCriteriaStyle(AStyle: string); |
| 203 | 203 | procedure SetContingencyCriteria(S: string); |
| 204 | 204 | procedure SetConsequenceStyle(S:string); |
| 205 | - procedure UpdateContingencyList(ASection: String); | |
| 205 | + procedure UpdateConditionsCombo; | |
| 206 | + procedure UpdateConditionsList; | |
| 206 | 207 | procedure UpdateContingencyCombo(ASection: String); |
| 208 | + procedure UpdateContingencyList(ASection: String); | |
| 207 | 209 | private |
| 208 | 210 | FLoading : Boolean; |
| 209 | 211 | FPersistentTXTFilename : string; |
| 210 | 212 | function GetContingencyName(IsMeta:Boolean; MustIncrement:Boolean=True):string; |
| 213 | + procedure IncConditionName(var ACondition: string; N : integer = 1); | |
| 211 | 214 | procedure IncContingencyName(var AContingency : string; N : integer = 1); |
| 215 | + procedure ReadCondintionNames(S:TStrings); | |
| 212 | 216 | procedure ReadContingencyNames(ASection, AContingency, AKeySuffix:string; S:TStrings); |
| 213 | 217 | procedure ReadContingencyValuesInSection(LS, LC : string; Keys:TStrings); |
| 214 | 218 | procedure SetPropstorageFilename; |
| ... | ... | @@ -642,19 +646,39 @@ var |
| 642 | 646 | LC: string; |
| 643 | 647 | begin |
| 644 | 648 | LoadSectionExperiment; |
| 645 | - | |
| 646 | 649 | if ComboCurrentCondition.ItemIndex <> -1 then |
| 647 | - begin | |
| 648 | - LS := ExtractDelimited(1,ComboCurrentCondition.Text,['|']); | |
| 649 | - LoadSectionCondition(LS); | |
| 650 | - if ComboCurrentContingency.ItemIndex <> -1 then | |
| 651 | - begin | |
| 652 | - LC := ExtractDelimited(1, ComboCurrentContingency.Text,['|']); | |
| 653 | - LoadContingency(LS, LC); | |
| 654 | - end; | |
| 655 | - end; | |
| 650 | + begin | |
| 651 | + LS := ExtractDelimited(1,ComboCurrentCondition.Text,['|']); | |
| 652 | + LoadSectionCondition(LS); | |
| 653 | + if ComboCurrentContingency.ItemIndex = -1 then | |
| 654 | + begin | |
| 655 | + LC := ExtractDelimited(1, ComboCurrentContingency.Text,['|']); | |
| 656 | + LoadContingency(LS, LC); | |
| 657 | + end; | |
| 658 | + end | |
| 659 | + else | |
| 660 | + begin | |
| 661 | + UpdateConditionsCombo; | |
| 662 | + UpdateConditionsList; | |
| 663 | + if ComboCurrentCondition.Items.Count > 0 then | |
| 664 | + begin | |
| 665 | + TabSheetContingencies.Enabled := True; | |
| 666 | + ComboCurrentCondition.ItemIndex := 0; | |
| 667 | + LS := ExtractDelimited(1,ComboCurrentCondition.Text,['|']); | |
| 668 | + LoadSectionCondition(LS); | |
| 669 | + UpdateContingencyCombo(LS); | |
| 670 | + UpdateContingencyList(LS); | |
| 671 | + if ComboCurrentContingency.Items.Count > 0 then | |
| 672 | + begin | |
| 673 | + ComboCurrentContingency.ItemIndex := 0; | |
| 674 | + LC := ExtractDelimited(1, ComboCurrentContingency.Text,['|']); | |
| 675 | + LoadContingency(LS, LC); | |
| 676 | + end; | |
| 677 | + end; | |
| 678 | + end; | |
| 656 | 679 | end; |
| 657 | 680 | |
| 681 | + | |
| 658 | 682 | procedure TFormDesigner.SaveExperiment; |
| 659 | 683 | var |
| 660 | 684 | LS, LC: string; |
| ... | ... | @@ -880,6 +904,18 @@ begin |
| 880 | 904 | RGBroadcastMessage.ItemIndex := 2; |
| 881 | 905 | end; |
| 882 | 906 | |
| 907 | +procedure TFormDesigner.UpdateConditionsCombo; | |
| 908 | +begin | |
| 909 | + ComboCurrentCondition.Items.Clear; | |
| 910 | + ReadCondintionNames(ComboCurrentCondition.Items); | |
| 911 | +end; | |
| 912 | + | |
| 913 | +procedure TFormDesigner.UpdateConditionsList; | |
| 914 | +begin | |
| 915 | + ListBoxConditions.Items.Clear; | |
| 916 | + ReadCondintionNames(ListBoxConditions.Items); | |
| 917 | +end; | |
| 918 | + | |
| 883 | 919 | procedure TFormDesigner.UpdateContingencyList(ASection: String); |
| 884 | 920 | var |
| 885 | 921 | LC: String; |
| ... | ... | @@ -914,6 +950,20 @@ begin |
| 914 | 950 | end; |
| 915 | 951 | end; |
| 916 | 952 | |
| 953 | +procedure TFormDesigner.IncConditionName(var ACondition: string; N: integer); | |
| 954 | +var | |
| 955 | + LConditionName: String; | |
| 956 | + LExtension: RawByteString; | |
| 957 | + LCount: LongInt; | |
| 958 | +begin | |
| 959 | + LConditionName := ExtractFileNameWithoutExt(ACondition); | |
| 960 | + LExtension := ExtractFileExt(ACondition); | |
| 961 | + Delete(LExtension,1,1); | |
| 962 | + LCount := StrToInt(LExtension); | |
| 963 | + Inc(LCount,N); | |
| 964 | + ACondition := LConditionName + '.' + IntToStr(LCount); | |
| 965 | +end; | |
| 966 | + | |
| 917 | 967 | procedure TFormDesigner.IncContingencyName(var AContingency: string; N: integer); |
| 918 | 968 | var |
| 919 | 969 | LContingencyType: String; |
| ... | ... | @@ -928,6 +978,19 @@ begin |
| 928 | 978 | AContingency := LContingencyType + '.' + IntToStr(LCount); |
| 929 | 979 | end; |
| 930 | 980 | |
| 981 | +procedure TFormDesigner.ReadCondintionNames(S: TStrings); | |
| 982 | +var | |
| 983 | + ASection: string; | |
| 984 | +begin | |
| 985 | + ASection := SEC_CONDITION+'1'; | |
| 986 | + with FExperiment do | |
| 987 | + while SectionExists(ASection) do | |
| 988 | + begin | |
| 989 | + S.Append(ASection+'|'+ReadString(ASection,KEY_COND_NAME,'')); | |
| 990 | + IncConditionName(ASection); | |
| 991 | + end; | |
| 992 | +end; | |
| 993 | + | |
| 931 | 994 | procedure TFormDesigner.ReadContingencyNames(ASection, AContingency, |
| 932 | 995 | AKeySuffix: string; S: TStrings); |
| 933 | 996 | begin | ... | ... |