Commit b38409b544bcaf4012fb9e182292e64edbfe7976
1 parent
46b2a955
Exists in
master
gui incremental work
Showing
2 changed files
with
428 additions
and
293 deletions
Show diff stats
experiment_designer/form_main.lfm
| 1 | 1 | object FormDesigner: TFormDesigner |
| 2 | - Left = 469 | |
| 2 | + Left = 327 | |
| 3 | 3 | Height = 635 |
| 4 | - Top = 57 | |
| 4 | + Top = 106 | |
| 5 | 5 | Width = 656 |
| 6 | 6 | HorzScrollBar.Page = 387 |
| 7 | - VertScrollBar.Page = 482 | |
| 7 | + VertScrollBar.Page = 520 | |
| 8 | 8 | AutoScroll = True |
| 9 | 9 | Caption = 'Planejar Experimento' |
| 10 | 10 | ClientHeight = 616 |
| 11 | 11 | ClientWidth = 656 |
| 12 | 12 | Menu = MainMenu1 |
| 13 | + OnActivate = FormActivate | |
| 13 | 14 | OnCreate = FormCreate |
| 14 | 15 | OnDestroy = FormDestroy |
| 15 | - SessionProperties = 'Caption;ComboCurrentCondition.ItemIndex;ComboCurrentCondition.Items;ComboCurrentContingency.ItemIndex;ComboCurrentContingency.Items;Height;LabelIf.Caption;Left;PageControl.TabIndex;Top;Width;WindowState;ComboCurrentCondition.Text;ComboCurrentContingency.Text' | |
| 16 | + SessionProperties = 'Caption;ComboCurrentCondition.ItemIndex;ComboCurrentCondition.Items;ComboCurrentCondition.Text;ComboCurrentContingency.ItemIndex;ComboCurrentContingency.Items;ComboCurrentContingency.Text;Height;LabelIf.Caption;Left;PageControl.TabIndex;Top;Width;WindowState;RGContingencyType.ItemIndex' | |
| 16 | 17 | ShowHint = True |
| 17 | 18 | LCLVersion = '1.6.2.0' |
| 18 | 19 | object PageControl: TPageControl |
| ... | ... | @@ -555,10 +556,33 @@ object FormDesigner: TFormDesigner |
| 555 | 556 | ClientHeight = 583 |
| 556 | 557 | ClientWidth = 650 |
| 557 | 558 | Enabled = False |
| 559 | + object RGContingencyType: TRadioGroup | |
| 560 | + Left = 0 | |
| 561 | + Height = 59 | |
| 562 | + Top = 10 | |
| 563 | + Width = 650 | |
| 564 | + AutoFill = True | |
| 565 | + Caption = 'Mostrar' | |
| 566 | + ChildSizing.LeftRightSpacing = 6 | |
| 567 | + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize | |
| 568 | + ChildSizing.EnlargeVertical = crsHomogenousChildResize | |
| 569 | + ChildSizing.ShrinkHorizontal = crsScaleChilds | |
| 570 | + ChildSizing.ShrinkVertical = crsScaleChilds | |
| 571 | + ChildSizing.Layout = cclLeftToRightThenTopToBottom | |
| 572 | + ChildSizing.ControlsPerLine = 1 | |
| 573 | + ClientHeight = 42 | |
| 574 | + ClientWidth = 646 | |
| 575 | + Items.Strings = ( | |
| 576 | + 'Contingências Operantes' | |
| 577 | + 'Metacontingências' | |
| 578 | + ) | |
| 579 | + OnClick = RGContingencyTypeClick | |
| 580 | + TabOrder = 7 | |
| 581 | + end | |
| 558 | 582 | object ComboCurrentContingency: TComboBox |
| 559 | 583 | Left = 0 |
| 560 | 584 | Height = 27 |
| 561 | - Top = 10 | |
| 585 | + Top = 74 | |
| 562 | 586 | Width = 650 |
| 563 | 587 | ItemHeight = 0 |
| 564 | 588 | OnChange = ComboCurrentContingencyChange |
| ... | ... | @@ -568,7 +592,7 @@ object FormDesigner: TFormDesigner |
| 568 | 592 | object PanelContingenciesButtons: TPanel |
| 569 | 593 | Left = 0 |
| 570 | 594 | Height = 26 |
| 571 | - Top = 42 | |
| 595 | + Top = 106 | |
| 572 | 596 | Width = 650 |
| 573 | 597 | ChildSizing.LeftRightSpacing = 25 |
| 574 | 598 | ChildSizing.HorizontalSpacing = 50 |
| ... | ... | @@ -605,19 +629,10 @@ object FormDesigner: TFormDesigner |
| 605 | 629 | TabOrder = 2 |
| 606 | 630 | end |
| 607 | 631 | end |
| 608 | - object CheckBoxIsMeta: TCheckBox | |
| 609 | - Left = 0 | |
| 610 | - Height = 21 | |
| 611 | - Top = 73 | |
| 612 | - Width = 650 | |
| 613 | - Caption = 'Meta' | |
| 614 | - OnChange = CheckBoxIsMetaChange | |
| 615 | - TabOrder = 2 | |
| 616 | - end | |
| 617 | 632 | object LabelContingencyName: TLabel |
| 618 | 633 | Left = 0 |
| 619 | 634 | Height = 15 |
| 620 | - Top = 99 | |
| 635 | + Top = 137 | |
| 621 | 636 | Width = 650 |
| 622 | 637 | Caption = 'Nome da contingência' |
| 623 | 638 | ParentColor = False |
| ... | ... | @@ -625,15 +640,15 @@ object FormDesigner: TFormDesigner |
| 625 | 640 | object EditContingencyName: TEdit |
| 626 | 641 | Left = 0 |
| 627 | 642 | Height = 25 |
| 628 | - Top = 119 | |
| 643 | + Top = 157 | |
| 629 | 644 | Width = 650 |
| 630 | 645 | OnEditingDone = EditContingencyNameEditingDone |
| 631 | - TabOrder = 3 | |
| 646 | + TabOrder = 2 | |
| 632 | 647 | end |
| 633 | 648 | object RGContingencyStyle: TRadioGroup |
| 634 | 649 | Left = 0 |
| 635 | 650 | Height = 122 |
| 636 | - Top = 149 | |
| 651 | + Top = 187 | |
| 637 | 652 | Width = 650 |
| 638 | 653 | AutoFill = True |
| 639 | 654 | Caption = 'Estilo da Resposta' |
| ... | ... | @@ -655,12 +670,13 @@ object FormDesigner: TFormDesigner |
| 655 | 670 | 'Linhas ou Cores' |
| 656 | 671 | ) |
| 657 | 672 | OnClick = RGContingencyStyleClick |
| 658 | - TabOrder = 4 | |
| 673 | + OnExit = RGContingencyStyleExit | |
| 674 | + TabOrder = 3 | |
| 659 | 675 | end |
| 660 | 676 | object LabelIf: TLabel |
| 661 | 677 | Left = 0 |
| 662 | 678 | Height = 15 |
| 663 | - Top = 276 | |
| 679 | + Top = 314 | |
| 664 | 680 | Width = 650 |
| 665 | 681 | Alignment = taCenter |
| 666 | 682 | Caption = 'SE O PARTICIPANTE ESCOLHER' |
| ... | ... | @@ -670,20 +686,20 @@ object FormDesigner: TFormDesigner |
| 670 | 686 | object GBContingencyRows: TGroupBox |
| 671 | 687 | Left = 0 |
| 672 | 688 | Height = 17 |
| 673 | - Top = 296 | |
| 689 | + Top = 334 | |
| 674 | 690 | Width = 650 |
| 675 | 691 | Caption = 'Linhas' |
| 676 | 692 | ChildSizing.LeftRightSpacing = 5 |
| 677 | 693 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize |
| 678 | 694 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 679 | 695 | ChildSizing.ControlsPerLine = 4 |
| 680 | - TabOrder = 5 | |
| 696 | + TabOrder = 4 | |
| 681 | 697 | Visible = False |
| 682 | 698 | end |
| 683 | 699 | object LabelOperator: TLabel |
| 684 | 700 | Left = 0 |
| 685 | 701 | Height = 15 |
| 686 | - Top = 318 | |
| 702 | + Top = 356 | |
| 687 | 703 | Width = 650 |
| 688 | 704 | Alignment = taCenter |
| 689 | 705 | Caption = 'E' |
| ... | ... | @@ -693,20 +709,20 @@ object FormDesigner: TFormDesigner |
| 693 | 709 | object GBContingencyColors: TGroupBox |
| 694 | 710 | Left = 0 |
| 695 | 711 | Height = 17 |
| 696 | - Top = 338 | |
| 712 | + Top = 376 | |
| 697 | 713 | Width = 650 |
| 698 | 714 | Caption = 'Cores' |
| 699 | 715 | ChildSizing.HorizontalSpacing = 5 |
| 700 | 716 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize |
| 701 | 717 | ChildSizing.Layout = cclLeftToRightThenTopToBottom |
| 702 | 718 | ChildSizing.ControlsPerLine = 5 |
| 703 | - TabOrder = 6 | |
| 719 | + TabOrder = 5 | |
| 704 | 720 | Visible = False |
| 705 | 721 | end |
| 706 | 722 | object LabelThen: TLabel |
| 707 | 723 | Left = 0 |
| 708 | 724 | Height = 15 |
| 709 | - Top = 360 | |
| 725 | + Top = 398 | |
| 710 | 726 | Width = 650 |
| 711 | 727 | Alignment = taCenter |
| 712 | 728 | Caption = 'ENTÃO' |
| ... | ... | @@ -716,7 +732,7 @@ object FormDesigner: TFormDesigner |
| 716 | 732 | object GBContingencyConsequence: TGroupBox |
| 717 | 733 | Left = 0 |
| 718 | 734 | Height = 59 |
| 719 | - Top = 380 | |
| 735 | + Top = 418 | |
| 720 | 736 | Width = 650 |
| 721 | 737 | Caption = 'Consequência' |
| 722 | 738 | ChildSizing.EnlargeHorizontal = crsHomogenousChildResize |
| ... | ... | @@ -724,7 +740,7 @@ object FormDesigner: TFormDesigner |
| 724 | 740 | ChildSizing.ControlsPerLine = 2 |
| 725 | 741 | ClientHeight = 42 |
| 726 | 742 | ClientWidth = 646 |
| 727 | - TabOrder = 7 | |
| 743 | + TabOrder = 6 | |
| 728 | 744 | Visible = False |
| 729 | 745 | object LabelC6: TLabel |
| 730 | 746 | Left = 0 |
| ... | ... | @@ -740,7 +756,7 @@ object FormDesigner: TFormDesigner |
| 740 | 756 | Top = 15 |
| 741 | 757 | Width = 154 |
| 742 | 758 | ItemHeight = 0 |
| 743 | - OnChange = CBPointsTypeChange | |
| 759 | + OnChange = ConsequenceStyleChange | |
| 744 | 760 | Style = csDropDownList |
| 745 | 761 | TabOrder = 4 |
| 746 | 762 | end |
| ... | ... | @@ -774,6 +790,7 @@ object FormDesigner: TFormDesigner |
| 774 | 790 | Top = 15 |
| 775 | 791 | Width = 104 |
| 776 | 792 | MaxValue = 0 |
| 793 | + OnEditingDone = ConsequenceStyleChange | |
| 777 | 794 | TabOrder = 2 |
| 778 | 795 | Value = 1 |
| 779 | 796 | end | ... | ... |
experiment_designer/form_main.pas
| ... | ... | @@ -26,7 +26,6 @@ type |
| 26 | 26 | ChkDots: TCheckBox; |
| 27 | 27 | ChkCleanDots: TCheckBox; |
| 28 | 28 | CheckBoxBroadcast: TCheckBox; |
| 29 | - CheckBoxIsMeta: TCheckBox; | |
| 30 | 29 | CheckBoxShouldAskQuestion: TCheckBox; |
| 31 | 30 | CGQuestion: TCheckGroup; |
| 32 | 31 | CBPointsType: TComboBox; |
| ... | ... | @@ -79,6 +78,7 @@ type |
| 79 | 78 | PageControl: TPageControl; |
| 80 | 79 | PanelConditionButtons: TPanel; |
| 81 | 80 | PanelContingenciesButtons: TPanel; |
| 81 | + RGContingencyType: TRadioGroup; | |
| 82 | 82 | RGContingencyStyle: TRadioGroup; |
| 83 | 83 | RGEndCriteriaStyle: TRadioGroup; |
| 84 | 84 | RGPoints: TRadioGroup; |
| ... | ... | @@ -97,10 +97,12 @@ type |
| 97 | 97 | procedure BtnAppendContingencyClick(Sender: TObject); |
| 98 | 98 | procedure BtnRemoveCondClick(Sender: TObject); |
| 99 | 99 | procedure BtnRemoveContingencyClick(Sender: TObject); |
| 100 | - procedure CBPointsTypeChange(Sender: TObject); | |
| 100 | + // | |
| 101 | + procedure ConsequenceMessageEditingDone(Sender: TObject); | |
| 102 | + procedure ConsequenceStyleChange(Sender: TObject); | |
| 103 | + | |
| 101 | 104 | procedure CGQuestionItemClick(Sender: TObject; Index: integer); |
| 102 | 105 | procedure CheckBoxBroadcastChange(Sender: TObject); |
| 103 | - procedure CheckBoxIsMetaChange(Sender: TObject); | |
| 104 | 106 | procedure CheckBoxColorsRowsChange(Sender: TObject); |
| 105 | 107 | procedure CheckBoxShouldAskQuestionChange(Sender: TObject); |
| 106 | 108 | procedure ChkCleanDotsChange(Sender: TObject); |
| ... | ... | @@ -109,13 +111,16 @@ type |
| 109 | 111 | procedure ComboCurrentContingencyChange(Sender: TObject); |
| 110 | 112 | procedure EditConditionNameEditingDone(Sender: TObject); |
| 111 | 113 | procedure EditContingencyNameEditingDone(Sender: TObject); |
| 112 | - procedure EditQuestionChange(Sender: TObject); | |
| 113 | 114 | procedure EditQuestionEditingDone(Sender: TObject); |
| 115 | + procedure FormActivate(Sender: TObject); | |
| 114 | 116 | procedure FormCreate(Sender: TObject); |
| 115 | 117 | procedure FormDestroy(Sender: TObject); |
| 116 | 118 | procedure MenuItemExitClick(Sender: TObject); |
| 117 | 119 | procedure MenuItemOpenClick(Sender: TObject); |
| 118 | 120 | procedure RGContingencyStyleClick(Sender: TObject); |
| 121 | + procedure RGContingencyStyleExit(Sender: TObject); | |
| 122 | + | |
| 123 | + procedure RGContingencyTypeClick(Sender: TObject); | |
| 119 | 124 | procedure RGEndCriteriaStyleClick(Sender: TObject); |
| 120 | 125 | procedure RGPointsClick(Sender: TObject); |
| 121 | 126 | procedure SpinEditCyclesValueEditingDone(Sender: TObject); |
| ... | ... | @@ -133,15 +138,14 @@ type |
| 133 | 138 | FExperiment: TIniFile; |
| 134 | 139 | procedure LoadExperiment; |
| 135 | 140 | procedure LoadSectionExperiment; |
| 136 | - procedure LoadSectionCondition(LS: string); | |
| 137 | - procedure LoadContingency(LS, LC: string); | |
| 141 | + procedure LoadSectionCondition(ASection: string); | |
| 142 | + procedure LoadContingency(ASection, AContingency: string);// A condition section and a contingency key prefix | |
| 138 | 143 | procedure SaveExperiment; |
| 139 | 144 | procedure SaveSectionExperiment; |
| 140 | - procedure SaveSectionCondition(LS: string); | |
| 141 | - procedure SaveContingency(LS, LC: string); | |
| 142 | - procedure EraseContingency(LS, LC : string); | |
| 145 | + procedure SaveSectionCondition(ASection: string); | |
| 146 | + procedure SaveContingency(ASection, AContingency: string); | |
| 147 | + procedure EraseContingency(ASection, AContingency : string); | |
| 143 | 148 | private |
| 144 | - function GetLC(IsMeta:Boolean; MustIncrement:Boolean=True):string; | |
| 145 | 149 | function GetConsequenceStyle: string; |
| 146 | 150 | function GetContingencyCriteria: string; |
| 147 | 151 | function GetEndCriteriaPorcentage: string; |
| ... | ... | @@ -153,7 +157,13 @@ type |
| 153 | 157 | procedure SetRGEndCriteriaStyle(AStyle: string); |
| 154 | 158 | procedure SetContingencyCriteria(S: string); |
| 155 | 159 | procedure SetConsequenceStyle(S:string); |
| 156 | - procedure SetContingencyStyle(S:string); | |
| 160 | + procedure UpdateContingencyList(ASection: String); | |
| 161 | + procedure UpdateContingencyCombo(ASection: String); | |
| 162 | + private | |
| 163 | + FLoading : Boolean; | |
| 164 | + function GetContingencyName(IsMeta:Boolean; MustIncrement:Boolean=True):string; | |
| 165 | + procedure IncContingencyName(var AContingency : string; N : integer = 1); | |
| 166 | + procedure ReadContingencyNames(ASection, AContingency, AKeySuffix:string; S:TStrings); | |
| 157 | 167 | public |
| 158 | 168 | { public declarations } |
| 159 | 169 | end; |
| ... | ... | @@ -185,113 +195,193 @@ procedure TFormDesigner.RGContingencyStyleClick(Sender: TObject); |
| 185 | 195 | var |
| 186 | 196 | LVisible: boolean; |
| 187 | 197 | begin |
| 188 | - LVisible := True; | |
| 189 | - case TRadioGroup(Sender).ItemIndex of | |
| 190 | - 0: | |
| 198 | + if Sender = RGContingencyStyle then | |
| 191 | 199 | begin |
| 192 | - LabelIf.Visible := not LVisible; | |
| 193 | - LabelThen.Visible := not LVisible; | |
| 194 | - LabelOperator.Visible := not LVisible; | |
| 195 | - GBContingencyRows.Visible := not LVisible; | |
| 196 | - GBContingencyColors.Visible := not LVisible; | |
| 197 | - GBContingencyConsequence.Visible := not LVisible; | |
| 198 | - end; | |
| 200 | + LVisible := True; | |
| 199 | 201 | |
| 200 | - 1: | |
| 201 | - begin | |
| 202 | - LabelIf.Visible := LVisible; | |
| 203 | - LabelThen.Visible := LVisible; | |
| 204 | - LabelOperator.Visible := not LVisible; | |
| 205 | - GBContingencyRows.Visible := LVisible; | |
| 206 | - GBContingencyColors.Visible := not LVisible; | |
| 207 | - GBContingencyConsequence.Visible := LVisible; | |
| 208 | - end; | |
| 202 | + case TRadioGroup(Sender).ItemIndex of | |
| 203 | + 0: | |
| 204 | + begin | |
| 205 | + LabelIf.Visible := not LVisible; | |
| 206 | + LabelThen.Visible := not LVisible; | |
| 207 | + LabelOperator.Visible := not LVisible; | |
| 208 | + GBContingencyRows.Visible := not LVisible; | |
| 209 | + GBContingencyColors.Visible := not LVisible; | |
| 210 | + GBContingencyConsequence.Visible := not LVisible; | |
| 211 | + end; | |
| 209 | 212 | |
| 210 | - 2: | |
| 211 | - begin | |
| 212 | - LabelIf.Visible := LVisible; | |
| 213 | - LabelThen.Visible := LVisible; | |
| 214 | - LabelOperator.Visible := not LVisible; | |
| 215 | - GBContingencyRows.Visible := not LVisible; | |
| 216 | - GBContingencyColors.Visible := LVisible; | |
| 217 | - GBContingencyConsequence.Visible := LVisible; | |
| 218 | - end; | |
| 219 | - 3: | |
| 220 | - begin | |
| 221 | - LabelIf.Visible := LVisible; | |
| 222 | - LabelThen.Visible := LVisible; | |
| 223 | - LabelOperator.Caption := 'E'; | |
| 224 | - LabelOperator.Visible := LVisible; | |
| 225 | - GBContingencyRows.Visible := LVisible; | |
| 226 | - GBContingencyColors.Visible := LVisible; | |
| 227 | - GBContingencyConsequence.Visible := LVisible; | |
| 213 | + 1: | |
| 214 | + begin | |
| 215 | + LabelIf.Visible := LVisible; | |
| 216 | + LabelThen.Visible := LVisible; | |
| 217 | + LabelOperator.Visible := not LVisible; | |
| 218 | + GBContingencyRows.Visible := LVisible; | |
| 219 | + GBContingencyColors.Visible := not LVisible; | |
| 220 | + GBContingencyConsequence.Visible := LVisible; | |
| 221 | + end; | |
| 222 | + | |
| 223 | + 2: | |
| 224 | + begin | |
| 225 | + LabelIf.Visible := LVisible; | |
| 226 | + LabelThen.Visible := LVisible; | |
| 227 | + LabelOperator.Visible := not LVisible; | |
| 228 | + GBContingencyRows.Visible := not LVisible; | |
| 229 | + GBContingencyColors.Visible := LVisible; | |
| 230 | + GBContingencyConsequence.Visible := LVisible; | |
| 231 | + end; | |
| 232 | + 3: | |
| 233 | + begin | |
| 234 | + LabelIf.Visible := LVisible; | |
| 235 | + LabelThen.Visible := LVisible; | |
| 236 | + LabelOperator.Caption := 'E'; | |
| 237 | + LabelOperator.Visible := LVisible; | |
| 238 | + GBContingencyRows.Visible := LVisible; | |
| 239 | + GBContingencyColors.Visible := LVisible; | |
| 240 | + GBContingencyConsequence.Visible := LVisible; | |
| 241 | + end; | |
| 242 | + 4: | |
| 243 | + begin | |
| 244 | + LabelIf.Visible := LVisible; | |
| 245 | + LabelThen.Visible := LVisible; | |
| 246 | + LabelOperator.Caption := 'OU'; | |
| 247 | + LabelOperator.Visible := LVisible; | |
| 248 | + GBContingencyRows.Visible := LVisible; | |
| 249 | + GBContingencyColors.Visible := LVisible; | |
| 250 | + GBContingencyConsequence.Visible := LVisible; | |
| 251 | + end; | |
| 252 | + end; | |
| 228 | 253 | end; |
| 229 | - 4: | |
| 254 | +end; | |
| 255 | + | |
| 256 | +procedure TFormDesigner.RGContingencyStyleExit(Sender: TObject); | |
| 257 | +begin | |
| 258 | + SaveContingency(ExtractDelimited(1,ComboCurrentCondition.Text,['|']),ExtractDelimited(1,ComboCurrentContingency.Text,['|'])); | |
| 259 | +end; | |
| 260 | + | |
| 261 | + | |
| 262 | +procedure TFormDesigner.RGContingencyTypeClick(Sender: TObject); | |
| 263 | +var | |
| 264 | + i: integer; | |
| 265 | + CH: TCheckBox; | |
| 266 | + LS,LC : string; | |
| 267 | + | |
| 268 | + procedure CreateChkBox(N, C: string; AOwner: TWinControl); | |
| 269 | + begin | |
| 270 | + CH := TCheckBox.Create(AOwner); | |
| 271 | + CH.Name := N; | |
| 272 | + CH.Caption := C; | |
| 273 | + CH.Parent := AOwner; | |
| 274 | + CH.ShowHint := True; | |
| 275 | + CH.Hint := C; | |
| 276 | + CH.OnChange := @CheckBoxColorsRowsChange; | |
| 277 | + end; | |
| 278 | + | |
| 279 | +begin | |
| 280 | + if Sender = RGContingencyType then | |
| 230 | 281 | begin |
| 231 | - LabelIf.Visible := LVisible; | |
| 232 | - LabelThen.Visible := LVisible; | |
| 233 | - LabelOperator.Caption := 'OU'; | |
| 234 | - LabelOperator.Visible := LVisible; | |
| 235 | - GBContingencyRows.Visible := LVisible; | |
| 236 | - GBContingencyColors.Visible := LVisible; | |
| 237 | - GBContingencyConsequence.Visible := LVisible; | |
| 282 | + while GBContingencyRows.ComponentCount > 0 do | |
| 283 | + GBContingencyRows.Components[0].Free; | |
| 284 | + | |
| 285 | + while GBContingencyColors.ComponentCount > 0 do | |
| 286 | + GBContingencyColors.Components[0].Free; | |
| 287 | + | |
| 288 | + case TRadioGroup(Sender).ItemIndex of | |
| 289 | + 0: | |
| 290 | + begin | |
| 291 | + for i := 0 to 9 do | |
| 292 | + CreateChkBox('Chk' + IntToStr(i + 1), IntToStr(i + 1), GBContingencyRows); | |
| 293 | + | |
| 294 | + CreateChkBox('ChkEven', 'PAR', GBContingencyRows); | |
| 295 | + CreateChkBox('ChkOdd', 'IMPAR', GBContingencyRows); | |
| 296 | + | |
| 297 | + CreateChkBox('ChkY', 'AMARELO', GBContingencyColors); | |
| 298 | + CreateChkBox('ChkR', 'VERMELHO', GBContingencyColors); | |
| 299 | + CreateChkBox('ChkM', 'ROXO', GBContingencyColors); | |
| 300 | + CreateChkBox('ChkB', 'AZUL', GBContingencyColors); | |
| 301 | + CreateChkBox('ChkG', 'VERDE', GBContingencyColors); | |
| 302 | + LabelIf.Caption := 'SE O PARTICIPANTE ESCOLHER'; | |
| 303 | + LC := KEY_CONTINGENCY; | |
| 304 | + end; | |
| 305 | + 1: | |
| 306 | + begin | |
| 307 | + CreateChkBox('ChkEven', 'PARES', GBContingencyRows); | |
| 308 | + CreateChkBox('ChkOdd', 'IMPARES', GBContingencyRows); | |
| 309 | + | |
| 310 | + CreateChkBox('ChkNot', 'TUDO EXCETO', GBContingencyColors); | |
| 311 | + CreateChkBox('ChkEqual', 'CORES IGUAIS', GBContingencyColors); | |
| 312 | + CreateChkBox('ChkDiff', 'CORES DIFERENTES', GBContingencyColors); | |
| 313 | + LabelIf.Caption := 'SE OS PARTICIPANTES ESCOLHEREM'; | |
| 314 | + LC := KEY_METACONTINGENCY; | |
| 315 | + end; | |
| 316 | + else Exit; | |
| 317 | + end; | |
| 318 | + | |
| 319 | + LS := ExtractDelimited(1, ComboCurrentCondition.Text,['|']); | |
| 320 | + UpdateContingencyCombo(LS); | |
| 321 | + LC += '1'; | |
| 322 | + with FExperiment do | |
| 323 | + if ValueExists(LS,LC+KEY_CONT_NAME) and (not FLoading) then | |
| 324 | + LoadContingency(LS,LC); | |
| 325 | + | |
| 238 | 326 | end; |
| 239 | - end; | |
| 240 | - CheckBoxIsMetaChange(CheckBoxIsMeta); | |
| 241 | 327 | end; |
| 242 | 328 | |
| 243 | 329 | procedure TFormDesigner.RGEndCriteriaStyleClick(Sender: TObject); |
| 244 | 330 | var |
| 245 | 331 | LS: String; |
| 246 | 332 | begin |
| 247 | - case TRadioGroup(Sender).ItemIndex of | |
| 248 | - 0: | |
| 249 | - begin | |
| 250 | - LabelEndCriteriaAbsCycles.Visible := True; | |
| 251 | - SpinEditEndCriteriaAbsCycles.Visible := True; | |
| 252 | - GBEndCriteriaLastCycles.Visible := False; | |
| 253 | - | |
| 254 | - end; | |
| 255 | - 1: | |
| 256 | - begin | |
| 257 | - LabelEndCriteriaAbsCycles.Visible := False; | |
| 258 | - SpinEditEndCriteriaAbsCycles.Visible := False; | |
| 259 | - GBEndCriteriaLastCycles.Visible := True; | |
| 260 | - end; | |
| 261 | - 2: | |
| 333 | + if Sender = RGEndCriteriaStyle then | |
| 262 | 334 | begin |
| 263 | - LabelEndCriteriaAbsCycles.Visible := True; | |
| 264 | - SpinEditEndCriteriaAbsCycles.Visible := True; | |
| 265 | - GBEndCriteriaLastCycles.Visible := True; | |
| 266 | - end; | |
| 267 | - end; | |
| 335 | + case TRadioGroup(Sender).ItemIndex of | |
| 336 | + 0: | |
| 337 | + begin | |
| 338 | + LabelEndCriteriaAbsCycles.Visible := True; | |
| 339 | + SpinEditEndCriteriaAbsCycles.Visible := True; | |
| 340 | + GBEndCriteriaLastCycles.Visible := False; | |
| 268 | 341 | |
| 269 | - with FExperiment do | |
| 270 | - if ComboCurrentCondition.ItemIndex <> -1 then | |
| 271 | - begin | |
| 272 | - LS := SEC_CONDITION+IntToStr(ComboCurrentCondition.ItemIndex+1); | |
| 273 | - WriteString(LS, KEY_ENDCRITERIA, GetEndCriteriaStyleFromRGEndCriteriaStyle); | |
| 342 | + end; | |
| 343 | + 1: | |
| 344 | + begin | |
| 345 | + LabelEndCriteriaAbsCycles.Visible := False; | |
| 346 | + SpinEditEndCriteriaAbsCycles.Visible := False; | |
| 347 | + GBEndCriteriaLastCycles.Visible := True; | |
| 348 | + end; | |
| 349 | + 2: | |
| 350 | + begin | |
| 351 | + LabelEndCriteriaAbsCycles.Visible := True; | |
| 352 | + SpinEditEndCriteriaAbsCycles.Visible := True; | |
| 353 | + GBEndCriteriaLastCycles.Visible := True; | |
| 354 | + end; | |
| 274 | 355 | end; |
| 356 | + | |
| 357 | + with FExperiment do | |
| 358 | + if ComboCurrentCondition.ItemIndex <> -1 then | |
| 359 | + begin | |
| 360 | + LS := SEC_CONDITION+IntToStr(ComboCurrentCondition.ItemIndex+1); | |
| 361 | + WriteString(LS, KEY_ENDCRITERIA, GetEndCriteriaStyleFromRGEndCriteriaStyle); | |
| 362 | + end; | |
| 363 | + end; | |
| 275 | 364 | end; |
| 276 | 365 | |
| 277 | 366 | procedure TFormDesigner.RGPointsClick(Sender: TObject); |
| 278 | 367 | begin |
| 279 | - case TRadioGroup(Sender).ItemIndex of | |
| 280 | - 0: | |
| 281 | - begin | |
| 282 | - CBPointsType.Items.Clear; | |
| 283 | - CBPointsType.Items.Append('Individual A'); | |
| 284 | - CBPointsType.Items.Append('Individual B'); | |
| 285 | - CBPointsType.Items.Append('Para o Grupo'); | |
| 286 | - end; | |
| 368 | + if Sender = RGPoints then | |
| 369 | + case TRadioGroup(Sender).ItemIndex of | |
| 370 | + 0: | |
| 371 | + begin | |
| 372 | + CBPointsType.Items.Clear; | |
| 373 | + CBPointsType.Items.Append('Individual A'); | |
| 374 | + CBPointsType.Items.Append('Individual B'); | |
| 375 | + CBPointsType.Items.Append('Para o Grupo'); | |
| 376 | + end; | |
| 287 | 377 | |
| 288 | - 1: | |
| 289 | - begin | |
| 290 | - CBPointsType.Items.Clear; | |
| 291 | - CBPointsType.Items.Append('Individual'); | |
| 292 | - CBPointsType.Items.Append('Para o Grupo'); | |
| 378 | + 1: | |
| 379 | + begin | |
| 380 | + CBPointsType.Items.Clear; | |
| 381 | + CBPointsType.Items.Append('Individual'); | |
| 382 | + CBPointsType.Items.Append('Para o Grupo'); | |
| 383 | + end; | |
| 293 | 384 | end; |
| 294 | - end; | |
| 295 | 385 | end; |
| 296 | 386 | |
| 297 | 387 | procedure TFormDesigner.SpinEditCyclesValueEditingDone(Sender: TObject); |
| ... | ... | @@ -569,7 +659,8 @@ var |
| 569 | 659 | //LVariation : integer; |
| 570 | 660 | SCode, |
| 571 | 661 | SPoints : string; |
| 572 | - LPoints : integer; | |
| 662 | + LPoints //, temp, t2 | |
| 663 | + : integer; | |
| 573 | 664 | begin |
| 574 | 665 | SPoints := ExtractDelimited(1,S,['|']); |
| 575 | 666 | LPoints := StrToInt(ExtractDelimited(1,SPoints,[','])); |
| ... | ... | @@ -591,19 +682,88 @@ begin |
| 591 | 682 | if gscG in CS then CBPointsType.ItemIndex := 1; |
| 592 | 683 | end; |
| 593 | 684 | end; |
| 594 | - CBPointsType.Text := CBPointsType.Items[CBPointsType.ItemIndex]; | |
| 595 | - CheckBoxBroadcast.State := cbUnchecked; | |
| 596 | 685 | |
| 597 | - if gscBroadcastMessage in CS then | |
| 598 | - CheckBoxBroadcast.State := cbChecked; | |
| 686 | + //if RGContingencyStyle.ItemIndex > 0 then | |
| 687 | + // if CBPointsType.ItemIndex > 0 then | |
| 688 | + // begin | |
| 689 | + // temp := CBPointsType.ItemIndex; | |
| 690 | + // t2 := CBPointsType.Items.Count; | |
| 691 | + // CBPointsType.Text := CBPointsType.Items[CBPointsType.ItemIndex]; | |
| 692 | + // end; | |
| 599 | 693 | |
| 694 | + if gscBroadcastMessage in CS then | |
| 695 | + CheckBoxBroadcast.State := cbChecked | |
| 696 | + else | |
| 600 | 697 | if gscMessage in CS then |
| 601 | - CheckBoxBroadcast.State := cbGrayed; | |
| 698 | + CheckBoxBroadcast.State := cbGrayed | |
| 699 | + else | |
| 700 | + CheckBoxBroadcast.State := cbUnchecked; | |
| 701 | + | |
| 702 | + | |
| 703 | + case CheckBoxBroadcast.State of | |
| 704 | + cbChecked: CheckBoxBroadcast.Caption := 'a todos'; | |
| 705 | + cbUnchecked: CheckBoxBroadcast.Caption := 'ao participante'; | |
| 706 | + cbGrayed: CheckBoxBroadcast.Caption := 'a ninguém'; | |
| 707 | + end; | |
| 708 | +end; | |
| 709 | + | |
| 710 | +procedure TFormDesigner.UpdateContingencyList(ASection: String); | |
| 711 | +var | |
| 712 | + LC: String; | |
| 713 | + //S : TStringList; | |
| 714 | +begin | |
| 715 | + //S := TStringList.Create; | |
| 716 | + ListBoxContingencies.Items.Clear; | |
| 717 | + LC := KEY_CONTINGENCY+'1'; | |
| 718 | + ReadContingencyNames(ASection,LC,KEY_CONT_NAME,ListBoxContingencies.Items); | |
| 719 | + LC := KEY_METACONTINGENCY+'1'; | |
| 720 | + ReadContingencyNames(ASection,LC,KEY_CONT_NAME,ListBoxContingencies.Items); | |
| 721 | + //ListBoxContingencies.Items.Text := S.Text; | |
| 722 | + //S.Free; | |
| 723 | +end; | |
| 724 | + | |
| 725 | +procedure TFormDesigner.UpdateContingencyCombo(ASection: String); | |
| 726 | +var | |
| 727 | + LC: String; | |
| 728 | +begin | |
| 729 | + ComboCurrentContingency.Items.Clear; | |
| 730 | + case RGContingencyType.ItemIndex of | |
| 731 | + 0: | |
| 732 | + begin | |
| 733 | + LC := KEY_CONTINGENCY+'1'; | |
| 734 | + ReadContingencyNames(ASection,LC,KEY_CONT_NAME,ComboCurrentContingency.Items); | |
| 735 | + end; | |
| 736 | + 1: | |
| 737 | + begin | |
| 738 | + LC := KEY_METACONTINGENCY+'1'; | |
| 739 | + ReadContingencyNames(ASection,LC,KEY_CONT_NAME,ComboCurrentContingency.Items); | |
| 740 | + end; | |
| 741 | + end; | |
| 602 | 742 | end; |
| 603 | 743 | |
| 604 | -procedure TFormDesigner.SetContingencyStyle(S: string); | |
| 744 | +procedure TFormDesigner.IncContingencyName(var AContingency: string; N: integer); | |
| 745 | +var | |
| 746 | + LContingencyType: String; | |
| 747 | + LExtension: RawByteString; | |
| 748 | + LCount: LongInt; | |
| 605 | 749 | begin |
| 750 | + LContingencyType := ExtractFileNameWithoutExt(AContingency); | |
| 751 | + LExtension := ExtractFileExt(AContingency); | |
| 752 | + Delete(LExtension,1,1); | |
| 753 | + LCount := StrToInt(LExtension); | |
| 754 | + Inc(LCount,N); | |
| 755 | + AContingency := LContingencyType + '.' + IntToStr(LCount); | |
| 756 | +end; | |
| 606 | 757 | |
| 758 | +procedure TFormDesigner.ReadContingencyNames(ASection, AContingency, | |
| 759 | + AKeySuffix: string; S: TStrings); | |
| 760 | +begin | |
| 761 | + with FExperiment do | |
| 762 | + while ValueExists(ASection,AContingency+AKeySuffix) do | |
| 763 | + begin | |
| 764 | + S.Append(AContingency+'|'+ReadString(ASection,AContingency+AKeySuffix,'')); | |
| 765 | + IncContingencyName(AContingency); | |
| 766 | + end; | |
| 607 | 767 | end; |
| 608 | 768 | |
| 609 | 769 | procedure TFormDesigner.SaveSectionExperiment; |
| ... | ... | @@ -628,73 +788,74 @@ end; |
| 628 | 788 | procedure TFormDesigner.LoadSectionExperiment; |
| 629 | 789 | begin |
| 630 | 790 | with FExperiment do |
| 631 | - begin | |
| 632 | - EditResearcherName.Text := ReadString(SEC_EXPERIMENT, KEY_RESEARCHER, ''); | |
| 633 | - EditExperimentName.Text := ReadString(SEC_EXPERIMENT, KEY_NAME, ''); | |
| 634 | - MemoExperimentAim.Text := ReadString(SEC_EXPERIMENT, KEY_AIM, ''); | |
| 635 | - CGGlobal.Checked[0] := | |
| 636 | - ReadBool(SEC_EXPERIMENT, KEY_CHAT_HISTORY_FOR_NEW_PLAYERS, False); | |
| 637 | - CGGlobal.Checked[1] := ReadBool(SEC_EXPERIMENT, KEY_GEN_PLAYER_AS_NEEDED, False); | |
| 638 | - CGGlobal.Checked[2] := ReadBool(SEC_EXPERIMENT, KEY_RESEARCHER_CANPLAY, False); | |
| 639 | - CGGlobal.Checked[3] := ReadBool(SEC_EXPERIMENT, KEY_RESEARCHER_CANCHAT, False); | |
| 640 | - if ReadBool(SEC_EXPERIMENT, KEY_POINTS_TYPE, True) then | |
| 641 | - RGPoints.ItemIndex := 0 | |
| 642 | - else | |
| 643 | - RGPoints.ItemIndex := 1; | |
| 644 | - SetCGMatrix(ReadString(SEC_EXPERIMENT, KEY_MATRIX_TYPE, 'CORES,LINHAS')); | |
| 645 | - end; | |
| 791 | + begin | |
| 792 | + EditResearcherName.Text := ReadString(SEC_EXPERIMENT, KEY_RESEARCHER, ''); | |
| 793 | + EditExperimentName.Text := ReadString(SEC_EXPERIMENT, KEY_NAME, ''); | |
| 794 | + MemoExperimentAim.Text := ReadString(SEC_EXPERIMENT, KEY_AIM, ''); | |
| 795 | + CGGlobal.Checked[0] := | |
| 796 | + ReadBool(SEC_EXPERIMENT, KEY_CHAT_HISTORY_FOR_NEW_PLAYERS, False); | |
| 797 | + CGGlobal.Checked[1] := ReadBool(SEC_EXPERIMENT, KEY_GEN_PLAYER_AS_NEEDED, False); | |
| 798 | + CGGlobal.Checked[2] := ReadBool(SEC_EXPERIMENT, KEY_RESEARCHER_CANPLAY, False); | |
| 799 | + CGGlobal.Checked[3] := ReadBool(SEC_EXPERIMENT, KEY_RESEARCHER_CANCHAT, False); | |
| 800 | + if ReadBool(SEC_EXPERIMENT, KEY_POINTS_TYPE, True) then | |
| 801 | + RGPoints.ItemIndex := 0 | |
| 802 | + else | |
| 803 | + RGPoints.ItemIndex := 1; | |
| 804 | + RGPointsClick(RGPoints); | |
| 805 | + SetCGMatrix(ReadString(SEC_EXPERIMENT, KEY_MATRIX_TYPE, 'CORES,LINHAS')); | |
| 806 | + end; | |
| 646 | 807 | end; |
| 647 | 808 | |
| 648 | -procedure TFormDesigner.SaveSectionCondition(LS: string); | |
| 809 | +procedure TFormDesigner.SaveSectionCondition(ASection: string); | |
| 649 | 810 | begin |
| 650 | 811 | with FExperiment do |
| 651 | - begin | |
| 652 | - WriteString(LS, KEY_COND_NAME, EditConditionName.Text); | |
| 653 | - WriteInteger(LS, KEY_TURN_VALUE, SpinEditTurnValue.Value); | |
| 654 | - WriteInteger(LS, KEY_POINTS_ONSTART,SpinEditOnConditionBegin.Value); | |
| 655 | - WriteInteger(LS, KEY_CYCLES_VALUE, SpinEditCyclesValue.Value); | |
| 656 | - WriteString(LS, KEY_PROMPT_MESSAGE, EditQuestion.Text); | |
| 657 | - WriteString(LS, KEY_PROMPT_STYLE, GetPromptQuestionStringFromCGQuestion); | |
| 658 | - WriteString(LS, KEY_ENDCRITERIA, GetEndCriteriaStyleFromRGEndCriteriaStyle); | |
| 659 | - WriteInteger(LS, KEY_ENDCRITERIA_CYCLES, SpinEditEndCriteriaAbsCycles.Value); | |
| 660 | - WriteString(LS, KEY_ENDCRITERIA_PORCENTAGE, GetEndCriteriaPorcentage); | |
| 661 | - end; | |
| 812 | + begin | |
| 813 | + WriteString(ASection, KEY_COND_NAME, EditConditionName.Text); | |
| 814 | + WriteInteger(ASection, KEY_TURN_VALUE, SpinEditTurnValue.Value); | |
| 815 | + WriteInteger(ASection, KEY_POINTS_ONSTART,SpinEditOnConditionBegin.Value); | |
| 816 | + WriteInteger(ASection, KEY_CYCLES_VALUE, SpinEditCyclesValue.Value); | |
| 817 | + WriteString(ASection, KEY_PROMPT_MESSAGE, EditQuestion.Text); | |
| 818 | + WriteString(ASection, KEY_PROMPT_STYLE, GetPromptQuestionStringFromCGQuestion); | |
| 819 | + WriteString(ASection, KEY_ENDCRITERIA, GetEndCriteriaStyleFromRGEndCriteriaStyle); | |
| 820 | + WriteInteger(ASection, KEY_ENDCRITERIA_CYCLES, SpinEditEndCriteriaAbsCycles.Value); | |
| 821 | + WriteString(ASection, KEY_ENDCRITERIA_PORCENTAGE, GetEndCriteriaPorcentage); | |
| 822 | + end; | |
| 662 | 823 | end; |
| 663 | 824 | |
| 664 | -procedure TFormDesigner.SaveContingency(LS, LC: string); | |
| 825 | +procedure TFormDesigner.SaveContingency(ASection, AContingency: string); | |
| 665 | 826 | begin |
| 666 | 827 | with FExperiment do |
| 667 | - begin | |
| 668 | - WriteString(LS, LC + KEY_CONT_NAME, EditContingencyName.Text); | |
| 669 | - WriteString(LS, LC + KEY_CRITERIA, GetContingencyCriteria); | |
| 670 | - WriteString(LS, LC + KEY_CONSEQUE, GetConsequenceStyle); | |
| 671 | - WriteString(LS, LC + KEY_CONSEQUE_MESSAGE_PREPEND, EditMessPrefix.Text); | |
| 672 | - try | |
| 673 | - WriteString(LS, LC + KEY_CONSEQUE_MESSAGE_APPENDS, ExtractDelimited(1,EditMessSufix.Text,['|'])); | |
| 674 | - WriteString(LS, LC + KEY_CONSEQUE_MESSAGE_APPENDP, ExtractDelimited(2,EditMessSufix.Text,['|'])); | |
| 675 | - except | |
| 676 | - on E: Exception do | |
| 677 | - Exit; | |
| 678 | - //if E.Message = 'E'; | |
| 828 | + begin | |
| 829 | + WriteString(ASection, AContingency + KEY_CONT_NAME, EditContingencyName.Text); | |
| 830 | + WriteString(ASection, AContingency + KEY_CRITERIA, GetContingencyCriteria); | |
| 831 | + WriteString(ASection, AContingency + KEY_CONSEQUE, GetConsequenceStyle); | |
| 832 | + WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND, EditMessPrefix.Text); | |
| 833 | + try | |
| 834 | + WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDS, ExtractDelimited(1,EditMessSufix.Text,['|'])); | |
| 835 | + WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDP, ExtractDelimited(2,EditMessSufix.Text,['|'])); | |
| 836 | + except | |
| 837 | + on E: Exception do | |
| 838 | + Exit; | |
| 839 | + //if E.Message = 'E'; | |
| 679 | 840 | |
| 841 | + end; | |
| 680 | 842 | end; |
| 681 | - end; | |
| 682 | 843 | end; |
| 683 | 844 | |
| 684 | -procedure TFormDesigner.EraseContingency(LS, LC: string); | |
| 845 | +procedure TFormDesigner.EraseContingency(ASection, AContingency: string); | |
| 685 | 846 | begin |
| 686 | 847 | with FExperiment do |
| 687 | 848 | begin |
| 688 | - DeleteKey(LS, LC + KEY_CONT_NAME); | |
| 689 | - DeleteKey(LS, LC + KEY_CRITERIA); | |
| 690 | - DeleteKey(LS, LC + KEY_CONSEQUE); | |
| 691 | - DeleteKey(LS, LC + KEY_CONSEQUE_MESSAGE_PREPEND); | |
| 692 | - DeleteKey(LS, LC + KEY_CONSEQUE_MESSAGE_APPENDS); | |
| 693 | - DeleteKey(LS, LC + KEY_CONSEQUE_MESSAGE_APPENDP); | |
| 849 | + DeleteKey(ASection, AContingency + KEY_CONT_NAME); | |
| 850 | + DeleteKey(ASection, AContingency + KEY_CRITERIA); | |
| 851 | + DeleteKey(ASection, AContingency + KEY_CONSEQUE); | |
| 852 | + DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND); | |
| 853 | + DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDS); | |
| 854 | + DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDP); | |
| 694 | 855 | end; |
| 695 | 856 | end; |
| 696 | 857 | |
| 697 | -function TFormDesigner.GetLC(IsMeta: Boolean; MustIncrement: Boolean): string; | |
| 858 | +function TFormDesigner.GetContingencyName(IsMeta: Boolean; MustIncrement: Boolean): string; | |
| 698 | 859 | var |
| 699 | 860 | LCount, |
| 700 | 861 | i : integer; |
| ... | ... | @@ -869,52 +1030,44 @@ begin |
| 869 | 1030 | Result := GetCriteriaString(C); |
| 870 | 1031 | end; |
| 871 | 1032 | |
| 872 | -procedure TFormDesigner.LoadSectionCondition(LS: string); | |
| 1033 | +procedure TFormDesigner.LoadSectionCondition(ASection: string); | |
| 873 | 1034 | begin |
| 874 | 1035 | with FExperiment do |
| 875 | 1036 | begin |
| 876 | - EditConditionName.Text := ReadString(LS, KEY_COND_NAME, LS); | |
| 877 | - SpinEditTurnValue.Value := ReadInteger(LS, KEY_TURN_VALUE, 2); | |
| 878 | - SpinEditOnConditionBegin.Value := ReadInteger(LS, KEY_POINTS_ONSTART,0); | |
| 879 | - SpinEditCyclesValue.Value := ReadInteger(LS, KEY_CYCLES_VALUE, 2); | |
| 1037 | + EditConditionName.Text := ReadString(ASection, KEY_COND_NAME, ASection); | |
| 1038 | + SpinEditTurnValue.Value := ReadInteger(ASection, KEY_TURN_VALUE, 2); | |
| 1039 | + SpinEditOnConditionBegin.Value := ReadInteger(ASection, KEY_POINTS_ONSTART,0); | |
| 1040 | + SpinEditCyclesValue.Value := ReadInteger(ASection, KEY_CYCLES_VALUE, 2); | |
| 880 | 1041 | |
| 881 | 1042 | CheckBoxShouldAskQuestion.Checked := False; |
| 882 | - if ValueExists(LS, KEY_PROMPT_STYLE) and ValueExists(LS, KEY_PROMPT_MESSAGE) then | |
| 1043 | + if ValueExists(ASection, KEY_PROMPT_STYLE) and ValueExists(ASection, KEY_PROMPT_MESSAGE) then | |
| 883 | 1044 | begin |
| 884 | - EditQuestion.Text := ReadString(LS, KEY_PROMPT_MESSAGE, ''); | |
| 885 | - SetCGQuestion(ReadString(LS, KEY_PROMPT_STYLE, '')); | |
| 886 | - if (EditQuestion.Text <> '') or (ReadString(LS, KEY_PROMPT_STYLE, '') <> '') then | |
| 1045 | + EditQuestion.Text := ReadString(ASection, KEY_PROMPT_MESSAGE, ''); | |
| 1046 | + SetCGQuestion(ReadString(ASection, KEY_PROMPT_STYLE, '')); | |
| 1047 | + if (EditQuestion.Text <> '') or (ReadString(ASection, KEY_PROMPT_STYLE, '') <> '') then | |
| 887 | 1048 | CheckBoxShouldAskQuestion.Checked := True; |
| 888 | 1049 | end; |
| 889 | 1050 | |
| 890 | - SetRGEndCriteriaStyle(ReadString(LS, KEY_ENDCRITERIA, 'O QUE OCORRER PRIMEIRO')); | |
| 891 | - SpinEditEndCriteriaAbsCycles.Value := ReadInteger(LS, KEY_ENDCRITERIA_CYCLES, 20); | |
| 1051 | + SetRGEndCriteriaStyle(ReadString(ASection, KEY_ENDCRITERIA, 'O QUE OCORRER PRIMEIRO')); | |
| 1052 | + SpinEditEndCriteriaAbsCycles.Value := ReadInteger(ASection, KEY_ENDCRITERIA_CYCLES, 20); | |
| 892 | 1053 | SpinEditEndCriteriaLastCycles.Value := |
| 893 | - GetEndCriteriaLastCyclesFromString(ReadString(LS, KEY_ENDCRITERIA_PORCENTAGE, '80,20')); | |
| 1054 | + GetEndCriteriaLastCyclesFromString(ReadString(ASection, KEY_ENDCRITERIA_PORCENTAGE, '80,20')); | |
| 894 | 1055 | SpinEditEndCriteriaInterlockingPorcentage.Value := |
| 895 | - GetEndCriteriaPorcentageFromString(ReadString(LS, KEY_ENDCRITERIA_PORCENTAGE, '80,20')); | |
| 1056 | + GetEndCriteriaPorcentageFromString(ReadString(ASection, KEY_ENDCRITERIA_PORCENTAGE, '80,20')); | |
| 896 | 1057 | end; |
| 897 | 1058 | end; |
| 898 | 1059 | |
| 899 | -procedure TFormDesigner.LoadContingency(LS, LC: string); | |
| 900 | -var | |
| 901 | - Temp: String; | |
| 1060 | +procedure TFormDesigner.LoadContingency(ASection, AContingency: string); | |
| 902 | 1061 | begin |
| 903 | - CheckBoxIsMeta.OnChange := nil; | |
| 904 | - if Pos(KEY_METACONTINGENCY, LC) > 0 then | |
| 905 | - CheckBoxIsMeta.Checked := True | |
| 906 | - else | |
| 907 | - CheckBoxIsMeta.Checked := False; | |
| 908 | - CheckBoxIsMeta.OnChange:=@CheckBoxIsMetaChange; | |
| 909 | 1062 | with FExperiment do |
| 910 | - if ValueExists(LS, LC + KEY_CONSEQUE) and ValueExists(LS, LC + KEY_CRITERIA) then | |
| 1063 | + if ValueExists(ASection, AContingency + KEY_CONSEQUE) and ValueExists(ASection, AContingency + KEY_CRITERIA) then | |
| 911 | 1064 | begin |
| 912 | - Temp := ReadString(LS, LC + KEY_CONT_NAME, ''); | |
| 913 | - EditContingencyName.Text := ReadString(LS, LC + KEY_CONT_NAME, ''); | |
| 914 | - SetContingencyCriteria(ReadString(LS, LC + KEY_CRITERIA, '')); | |
| 915 | - SetContingencyStyle(ReadString(LS, LC + KEY_CONSEQUE, '')); | |
| 916 | - EditMessPrefix.Text := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_PREPEND,''); | |
| 917 | - EditMessSufix.Text := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_APPENDS,'')+'|'+ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_APPENDP,''); | |
| 1065 | + EditContingencyName.Text := ReadString(ASection, AContingency + KEY_CONT_NAME, ''); | |
| 1066 | + SetContingencyCriteria(ReadString(ASection, AContingency + KEY_CRITERIA, '')); | |
| 1067 | + SetConsequenceStyle(ReadString(ASection, AContingency + KEY_CONSEQUE, '')); | |
| 1068 | + EditMessPrefix.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND,''); | |
| 1069 | + EditMessSufix.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDS,'')+'|'+ | |
| 1070 | + ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDP,''); | |
| 918 | 1071 | end; |
| 919 | 1072 | end; |
| 920 | 1073 | |
| ... | ... | @@ -940,10 +1093,7 @@ end; |
| 940 | 1093 | |
| 941 | 1094 | procedure TFormDesigner.FormCreate(Sender: TObject); |
| 942 | 1095 | begin |
| 943 | - //IPSExperiment.IniSection := SEC_EXPERIMENT; | |
| 944 | - //IPSConditions.IniSection := SEC_CONDITION; | |
| 945 | - //IPSPlayers.IniSection := SEC_PLAYER; | |
| 946 | - | |
| 1096 | + FLoading := True; | |
| 947 | 1097 | end; |
| 948 | 1098 | |
| 949 | 1099 | procedure TFormDesigner.FormDestroy(Sender: TObject); |
| ... | ... | @@ -1026,9 +1176,13 @@ begin |
| 1026 | 1176 | end; |
| 1027 | 1177 | end; |
| 1028 | 1178 | |
| 1029 | -procedure TFormDesigner.EditQuestionChange(Sender: TObject); | |
| 1179 | +procedure TFormDesigner.ConsequenceMessageEditingDone(Sender: TObject); | |
| 1180 | +var | |
| 1181 | + LS, LC: String; | |
| 1030 | 1182 | begin |
| 1031 | - | |
| 1183 | + LS := ExtractDelimited(1,ComboCurrentCondition.Text,['|']); | |
| 1184 | + LC := ExtractDelimited(1,ComboCurrentContingency.Text,['|']); | |
| 1185 | + FExperiment.WriteString(LS, LC + KEY_CONSEQUE_MESSAGE_PREPEND, EditMessPrefix.Text); | |
| 1032 | 1186 | end; |
| 1033 | 1187 | |
| 1034 | 1188 | procedure TFormDesigner.EditQuestionEditingDone(Sender: TObject); |
| ... | ... | @@ -1043,6 +1197,11 @@ begin |
| 1043 | 1197 | end; |
| 1044 | 1198 | end; |
| 1045 | 1199 | |
| 1200 | +procedure TFormDesigner.FormActivate(Sender: TObject); | |
| 1201 | +begin | |
| 1202 | + FLoading := False; | |
| 1203 | +end; | |
| 1204 | + | |
| 1046 | 1205 | procedure TFormDesigner.CheckBoxBroadcastChange(Sender: TObject); |
| 1047 | 1206 | begin |
| 1048 | 1207 | case TCheckBox(Sender).State of |
| ... | ... | @@ -1050,8 +1209,10 @@ begin |
| 1050 | 1209 | cbUnchecked: TCheckBox(Sender).Caption := 'ao participante'; |
| 1051 | 1210 | cbGrayed: TCheckBox(Sender).Caption := 'a ninguém'; |
| 1052 | 1211 | end; |
| 1212 | + ConsequenceStyleChange(CheckBoxBroadcast); | |
| 1053 | 1213 | end; |
| 1054 | 1214 | |
| 1215 | + | |
| 1055 | 1216 | procedure TFormDesigner.BtnAppendCondClick(Sender: TObject); |
| 1056 | 1217 | var |
| 1057 | 1218 | i: integer; |
| ... | ... | @@ -1072,7 +1233,7 @@ var |
| 1072 | 1233 | |
| 1073 | 1234 | begin |
| 1074 | 1235 | LS := ExtractDelimited(1,ComboCurrentCondition.Items[ComboCurrentCondition.ItemIndex],['|']); |
| 1075 | - LC := GetLC(CheckBoxIsMeta.Checked); | |
| 1236 | + LC := GetContingencyName(RGContingencyType.ItemIndex = 1); | |
| 1076 | 1237 | i := ComboCurrentContingency.Items.Add(''); |
| 1077 | 1238 | ComboCurrentContingency.Items[i] := |
| 1078 | 1239 | LC + '|' + EditContingencyName.Text; |
| ... | ... | @@ -1153,22 +1314,22 @@ var |
| 1153 | 1314 | Keys.EndUpdate; |
| 1154 | 1315 | end; |
| 1155 | 1316 | |
| 1156 | - procedure Reorder(index : integer); | |
| 1317 | + procedure Reorder(Index:integer); | |
| 1157 | 1318 | var |
| 1158 | 1319 | i: integer; |
| 1159 | 1320 | SectionKeys: TStringList; |
| 1160 | - KeyName,Line,SectionName: string; | |
| 1321 | + KeyName,KeyPrefix,Line,SectionName: string; | |
| 1161 | 1322 | begin |
| 1162 | 1323 | SectionKeys := TStringList.Create; |
| 1163 | 1324 | with FExperiment do |
| 1164 | - for i := index to ComboCurrentContingency.Items.Count - 1 do | |
| 1325 | + for i := Index to ComboCurrentContingency.Items.Count - 1 do | |
| 1165 | 1326 | begin |
| 1166 | 1327 | SectionName := ExtractDelimited(1, ComboCurrentCondition.Items[ComboCurrentCondition.ItemIndex], ['|']); |
| 1167 | - KeyName := ExtractDelimited(1, ComboCurrentContingency.Items[i], ['|']); | |
| 1168 | - ReadContingencyValuesInSection(SectionName,KeyName, SectionKeys); | |
| 1169 | - EraseContingency(SectionName,KeyName); | |
| 1328 | + KeyPrefix := ExtractDelimited(1, ComboCurrentContingency.Items[i], ['|']); | |
| 1329 | + ReadContingencyValuesInSection(SectionName,KeyPrefix, SectionKeys); | |
| 1330 | + EraseContingency(SectionName,KeyPrefix); | |
| 1170 | 1331 | // todo: contingencies on top, meta on bootom... |
| 1171 | - KeyName := GetLC(ExtractFileNameWithoutExt(KeyName) = ExtractFileNameWithoutExt(KEY_METACONTINGENCY)); | |
| 1332 | + KeyPrefix := GetContingencyName(ExtractFileNameWithoutExt(KeyPrefix) = ExtractFileNameWithoutExt(KEY_METACONTINGENCY)); | |
| 1172 | 1333 | for Line in SectionKeys do |
| 1173 | 1334 | begin |
| 1174 | 1335 | KeyName := SectionKeys.ExtractName(Line); |
| ... | ... | @@ -1176,7 +1337,7 @@ var |
| 1176 | 1337 | end; |
| 1177 | 1338 | SectionKeys.Clear; |
| 1178 | 1339 | ComboCurrentContingency.Items[i] := |
| 1179 | - KeyName + '|' + ExtractDelimited(2, ComboCurrentContingency.Items[i], ['|']); | |
| 1340 | + KeyPrefix + '|' + ExtractDelimited(2, ComboCurrentContingency.Items[i], ['|']); | |
| 1180 | 1341 | end; |
| 1181 | 1342 | SectionKeys.Free; |
| 1182 | 1343 | end; |
| ... | ... | @@ -1195,15 +1356,18 @@ begin |
| 1195 | 1356 | else |
| 1196 | 1357 | ComboCurrentContingency.ItemIndex := i -1; |
| 1197 | 1358 | end; |
| 1198 | - ListBoxContingencies.Items.Text := ComboCurrentContingency.Items.Text; | |
| 1359 | + UpdateContingencyList(ExtractDelimited(1,ComboCurrentCondition.Text,['|'])); | |
| 1199 | 1360 | end; |
| 1200 | 1361 | |
| 1201 | -procedure TFormDesigner.CBPointsTypeChange(Sender: TObject); | |
| 1362 | +procedure TFormDesigner.ConsequenceStyleChange(Sender: TObject); | |
| 1363 | +var | |
| 1364 | + LS, LC: String; | |
| 1202 | 1365 | begin |
| 1203 | - | |
| 1366 | + LS := ExtractDelimited(1,ComboCurrentCondition.Text,['|']); | |
| 1367 | + LC := ExtractDelimited(1,ComboCurrentContingency.Text,['|']); | |
| 1368 | + FExperiment.WriteString(LS, LC+KEY_CONSEQUE, GetConsequenceStyle); | |
| 1204 | 1369 | end; |
| 1205 | 1370 | |
| 1206 | - | |
| 1207 | 1371 | procedure TFormDesigner.CGQuestionItemClick(Sender: TObject; Index: integer); |
| 1208 | 1372 | var |
| 1209 | 1373 | LS: String; |
| ... | ... | @@ -1216,68 +1380,22 @@ begin |
| 1216 | 1380 | end; |
| 1217 | 1381 | end; |
| 1218 | 1382 | |
| 1219 | -procedure TFormDesigner.CheckBoxIsMetaChange(Sender: TObject); | |
| 1220 | -var | |
| 1221 | - i: integer; | |
| 1222 | - CH: TCheckBox; | |
| 1223 | - LS,LC : string; | |
| 1224 | - | |
| 1225 | - procedure CreateChkBox(N, C: string; AOwner: TWinControl); | |
| 1226 | - begin | |
| 1227 | - CH := TCheckBox.Create(AOwner); | |
| 1228 | - CH.Name := N; | |
| 1229 | - CH.Caption := C; | |
| 1230 | - CH.Parent := AOwner; | |
| 1231 | - CH.ShowHint := True; | |
| 1232 | - CH.Hint := C; | |
| 1233 | - CH.OnChange := @CheckBoxColorsRowsChange; | |
| 1234 | - end; | |
| 1235 | - | |
| 1236 | -begin | |
| 1237 | - while GBContingencyRows.ComponentCount > 0 do | |
| 1238 | - GBContingencyRows.Components[0].Free; | |
| 1239 | - | |
| 1240 | - while GBContingencyColors.ComponentCount > 0 do | |
| 1241 | - GBContingencyColors.Components[0].Free; | |
| 1242 | - | |
| 1243 | - if TCheckBox(Sender).Checked then | |
| 1244 | - begin | |
| 1245 | - CreateChkBox('ChkEven', 'PARES', GBContingencyRows); | |
| 1246 | - CreateChkBox('ChkOdd', 'IMPARES', GBContingencyRows); | |
| 1247 | - | |
| 1248 | - CreateChkBox('ChkNot', 'TUDO EXCETO', GBContingencyColors); | |
| 1249 | - CreateChkBox('ChkEqual', 'CORES IGUAIS', GBContingencyColors); | |
| 1250 | - CreateChkBox('ChkDiff', 'CORES DIFERENTES', GBContingencyColors); | |
| 1251 | - LabelIf.Caption := 'SE OS PARTICIPANTES ESCOLHEREM'; | |
| 1252 | - end | |
| 1253 | - else | |
| 1254 | - begin | |
| 1255 | - for i := 0 to 9 do | |
| 1256 | - CreateChkBox('Chk' + IntToStr(i + 1), IntToStr(i + 1), GBContingencyRows); | |
| 1257 | - | |
| 1258 | - CreateChkBox('ChkEven', 'PAR', GBContingencyRows); | |
| 1259 | - CreateChkBox('ChkOdd', 'IMPAR', GBContingencyRows); | |
| 1260 | - | |
| 1261 | - CreateChkBox('ChkY', 'AMARELO', GBContingencyColors); | |
| 1262 | - CreateChkBox('ChkR', 'VERMELHO', GBContingencyColors); | |
| 1263 | - CreateChkBox('ChkM', 'ROXO', GBContingencyColors); | |
| 1264 | - CreateChkBox('ChkB', 'AZUL', GBContingencyColors); | |
| 1265 | - CreateChkBox('ChkG', 'VERDE', GBContingencyColors); | |
| 1266 | - LabelIf.Caption := 'SE O PARTICIPANTE ESCOLHER'; | |
| 1267 | - end; | |
| 1268 | - | |
| 1269 | - if ComboCurrentCondition.Items.Count > 0 then | |
| 1270 | - if ComboCurrentContingency.Items.Count > 0 then | |
| 1271 | - begin | |
| 1272 | - LS := ExtractDelimited(1,ComboCurrentCondition.Text,['|']); | |
| 1273 | - LC := ExtractDelimited(1, ComboCurrentContingency.Text,['|']); | |
| 1274 | - EraseContingency(LS,LC); | |
| 1275 | - LC := GetLC(TCheckBox(Sender).Checked,False); | |
| 1276 | - SaveContingency(LS,LC); | |
| 1277 | - ComboCurrentContingency.Items[ComboCurrentContingency.ItemIndex] := LC +'|'+ EditContingencyName.Text; | |
| 1278 | - ListBoxContingencies.Items.Text := ComboCurrentContingency.Items.Text; | |
| 1279 | - end; | |
| 1280 | -end; | |
| 1383 | +//procedure TFormDesigner.CheckBoxIsMetaClick(Sender: TObject); | |
| 1384 | +//var | |
| 1385 | +// LS, LC: String; | |
| 1386 | +//begin | |
| 1387 | +// if ComboCurrentCondition.Items.Count > 0 then | |
| 1388 | +// if ComboCurrentContingency.Items.Count > 0 then | |
| 1389 | +// begin | |
| 1390 | +// LS := ExtractDelimited(1,ComboCurrentCondition.Text,['|']); | |
| 1391 | +// LC := ExtractDelimited(1, ComboCurrentContingency.Text,['|']); | |
| 1392 | +// EraseContingency(LS,LC); | |
| 1393 | +// LC := GetLC(CheckBoxIsMeta.Checked,False); | |
| 1394 | +// SaveContingency(LS,LC); | |
| 1395 | +// ComboCurrentContingency.Items[ComboCurrentContingency.ItemIndex] := LC +'|'+ EditContingencyName.Text; | |
| 1396 | +// ListBoxContingencies.Items.Text := ComboCurrentContingency.Items.Text; | |
| 1397 | +// end; | |
| 1398 | +//end; | |
| 1281 | 1399 | |
| 1282 | 1400 | procedure TFormDesigner.CheckBoxColorsRowsChange(Sender: TObject); |
| 1283 | 1401 | var | ... | ... |