Commit 84ecb7380151c05922da910fdd6146e4199b41ee

Authored by Carlos Picanco
1 parent 183cd075
Exists in master

improve popup customization

experiment_designer/form_main.lfm
1 object FormDesigner: TFormDesigner 1 object FormDesigner: TFormDesigner
2 - Left = 291  
3 - Height = 635  
4 - Top = 44  
5 - Width = 656  
6 - HorzScrollBar.Page = 315  
7 - VertScrollBar.Page = 615 2 + Left = 127
  3 + Height = 712
  4 + Top = 29
  5 + Width = 674
  6 + HorzScrollBar.Page = 387
  7 + VertScrollBar.Page = 693
8 AutoScroll = True 8 AutoScroll = True
9 Caption = 'Planejar Experimento' 9 Caption = 'Planejar Experimento'
10 - ClientHeight = 615  
11 - ClientWidth = 639 10 + ClientHeight = 693
  11 + ClientWidth = 664
12 Menu = MainMenu1 12 Menu = MainMenu1
13 OnActivate = FormActivate 13 OnActivate = FormActivate
14 OnCreate = FormCreate 14 OnCreate = FormCreate
15 OnDestroy = FormDestroy 15 OnDestroy = FormDestroy
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 + SessionProperties = 'Caption;ComboCurrentCondition.ItemIndex;ComboCurrentCondition.Items;ComboCurrentCondition.Text;ComboCurrentContingency.ItemIndex;ComboCurrentContingency.Items;ComboCurrentContingency.Text;Height;LabelIf.Caption;Left;PageControl.TabIndex;RGContingencyType.ItemIndex;Top;Width;WindowState;LabelCsq3.Caption'
17 ShowHint = True 17 ShowHint = True
18 LCLVersion = '1.6.2.0' 18 LCLVersion = '1.6.2.0'
19 object PageControl: TPageControl 19 object PageControl: TPageControl
20 Left = 0 20 Left = 0
21 - Height = 726 21 + Height = 825
22 Top = 0 22 Top = 0
23 - Width = 639  
24 - ActivePage = TabSheetExperiment 23 + Width = 664
  24 + ActivePage = TabSheetContingencies
25 Align = alClient 25 Align = alClient
26 TabIndex = 2 26 TabIndex = 2
27 TabOrder = 0 27 TabOrder = 0
@@ -32,54 +32,54 @@ object FormDesigner: TFormDesigner @@ -32,54 +32,54 @@ object FormDesigner: TFormDesigner
32 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize 32 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
33 ChildSizing.Layout = cclLeftToRightThenTopToBottom 33 ChildSizing.Layout = cclLeftToRightThenTopToBottom
34 ChildSizing.ControlsPerLine = 1 34 ChildSizing.ControlsPerLine = 1
35 - ClientHeight = 698  
36 - ClientWidth = 631 35 + ClientHeight = 792
  36 + ClientWidth = 658
37 object LabelResearcherName: TLabel 37 object LabelResearcherName: TLabel
38 Left = 0 38 Left = 0
39 Height = 15 39 Height = 15
40 Top = 10 40 Top = 10
41 - Width = 631 41 + Width = 640
42 Caption = 'Nome do Pesquisador' 42 Caption = 'Nome do Pesquisador'
43 ParentColor = False 43 ParentColor = False
44 end 44 end
45 object EditResearcherName: TEdit 45 object EditResearcherName: TEdit
46 Left = 0 46 Left = 0
47 - Height = 23 47 + Height = 25
48 Hint = 'Uma pasta será criada com o seu nome. Os seus experimentos serão salvos dentro dela.' 48 Hint = 'Uma pasta será criada com o seu nome. Os seus experimentos serão salvos dentro dela.'
49 Top = 30 49 Top = 30
50 - Width = 631 50 + Width = 640
51 TabOrder = 0 51 TabOrder = 0
52 end 52 end
53 object LabelExperimentName: TLabel 53 object LabelExperimentName: TLabel
54 Left = 0 54 Left = 0
55 Height = 15 55 Height = 15
56 - Top = 58  
57 - Width = 631 56 + Top = 60
  57 + Width = 640
58 Caption = 'Nome do Experimento' 58 Caption = 'Nome do Experimento'
59 ParentColor = False 59 ParentColor = False
60 end 60 end
61 object EditExperimentName: TEdit 61 object EditExperimentName: TEdit
62 Left = 0 62 Left = 0
63 - Height = 23 63 + Height = 25
64 Hint = 'Uma pasta será criada com o nome do experimento. Os dados desse experimento serão salvos dentro dela.' 64 Hint = 'Uma pasta será criada com o nome do experimento. Os dados desse experimento serão salvos dentro dela.'
65 - Top = 78  
66 - Width = 631 65 + Top = 80
  66 + Width = 640
67 TabOrder = 1 67 TabOrder = 1
68 end 68 end
69 object GBExperimentAim: TGroupBox 69 object GBExperimentAim: TGroupBox
70 Left = 0 70 Left = 0
71 - Height = 162  
72 - Top = 106  
73 - Width = 631 71 + Height = 159
  72 + Top = 110
  73 + Width = 640
74 Caption = 'Objetivo do Experimento' 74 Caption = 'Objetivo do Experimento'
75 ClientHeight = 142 75 ClientHeight = 142
76 - ClientWidth = 627 76 + ClientWidth = 636
77 TabOrder = 2 77 TabOrder = 2
78 object MemoExperimentAim: TMemo 78 object MemoExperimentAim: TMemo
79 Left = 0 79 Left = 0
80 Height = 142 80 Height = 142
81 Top = 0 81 Top = 0
82 - Width = 627 82 + Width = 636
83 Align = alCustom 83 Align = alCustom
84 Anchors = [akTop, akLeft, akRight] 84 Anchors = [akTop, akLeft, akRight]
85 TabOrder = 0 85 TabOrder = 0
@@ -87,10 +87,10 @@ object FormDesigner: TFormDesigner @@ -87,10 +87,10 @@ object FormDesigner: TFormDesigner
87 end 87 end
88 object CGGlobal: TCheckGroup 88 object CGGlobal: TCheckGroup
89 Left = 0 89 Left = 0
90 - Height = 108 90 + Height = 113
91 Hint = 'Aplicáveis ao longo de todo o experimento' 91 Hint = 'Aplicáveis ao longo de todo o experimento'
92 - Top = 273  
93 - Width = 631 92 + Top = 274
  93 + Width = 640
94 AutoFill = True 94 AutoFill = True
95 Caption = 'Configurações globais' 95 Caption = 'Configurações globais'
96 ChildSizing.LeftRightSpacing = 6 96 ChildSizing.LeftRightSpacing = 6
@@ -101,8 +101,8 @@ object FormDesigner: TFormDesigner @@ -101,8 +101,8 @@ object FormDesigner: TFormDesigner
101 ChildSizing.ShrinkVertical = crsScaleChilds 101 ChildSizing.ShrinkVertical = crsScaleChilds
102 ChildSizing.Layout = cclLeftToRightThenTopToBottom 102 ChildSizing.Layout = cclLeftToRightThenTopToBottom
103 ChildSizing.ControlsPerLine = 1 103 ChildSizing.ControlsPerLine = 1
104 - ClientHeight = 88  
105 - ClientWidth = 627 104 + ClientHeight = 96
  105 + ClientWidth = 636
106 Items.Strings = ( 106 Items.Strings = (
107 'Enviar histórico do bate-papo a novos participantes' 107 'Enviar histórico do bate-papo a novos participantes'
108 'Gerar participantes automaticamente' 108 'Gerar participantes automaticamente'
@@ -116,9 +116,9 @@ object FormDesigner: TFormDesigner @@ -116,9 +116,9 @@ object FormDesigner: TFormDesigner
116 end 116 end
117 object RGPoints: TRadioGroup 117 object RGPoints: TRadioGroup
118 Left = 0 118 Left = 0
119 - Height = 58  
120 - Top = 386  
121 - Width = 631 119 + Height = 59
  120 + Top = 392
  121 + Width = 640
122 AutoFill = True 122 AutoFill = True
123 Caption = 'Tipo de pontuação' 123 Caption = 'Tipo de pontuação'
124 ChildSizing.LeftRightSpacing = 6 124 ChildSizing.LeftRightSpacing = 6
@@ -128,8 +128,8 @@ object FormDesigner: TFormDesigner @@ -128,8 +128,8 @@ object FormDesigner: TFormDesigner
128 ChildSizing.ShrinkVertical = crsScaleChilds 128 ChildSizing.ShrinkVertical = crsScaleChilds
129 ChildSizing.Layout = cclLeftToRightThenTopToBottom 129 ChildSizing.Layout = cclLeftToRightThenTopToBottom
130 ChildSizing.ControlsPerLine = 1 130 ChildSizing.ControlsPerLine = 1
131 - ClientHeight = 38  
132 - ClientWidth = 627 131 + ClientHeight = 42
  132 + ClientWidth = 636
133 ItemIndex = 0 133 ItemIndex = 0
134 Items.Strings = ( 134 Items.Strings = (
135 'A e B' 135 'A e B'
@@ -140,21 +140,21 @@ object FormDesigner: TFormDesigner @@ -140,21 +140,21 @@ object FormDesigner: TFormDesigner
140 end 140 end
141 object GBMatrix: TGroupBox 141 object GBMatrix: TGroupBox
142 Left = 0 142 Left = 0
143 - Height = 134  
144 - Top = 449  
145 - Width = 631 143 + Height = 143
  144 + Top = 456
  145 + Width = 640
146 Caption = 'Tipo da Matrix' 146 Caption = 'Tipo da Matrix'
147 ChildSizing.LeftRightSpacing = 5 147 ChildSizing.LeftRightSpacing = 5
148 ChildSizing.Layout = cclLeftToRightThenTopToBottom 148 ChildSizing.Layout = cclLeftToRightThenTopToBottom
149 ChildSizing.ControlsPerLine = 1 149 ChildSizing.ControlsPerLine = 1
150 - ClientHeight = 114  
151 - ClientWidth = 627 150 + ClientHeight = 126
  151 + ClientWidth = 636
152 TabOrder = 6 152 TabOrder = 6
153 object ChkColors: TCheckBox 153 object ChkColors: TCheckBox
154 Left = 5 154 Left = 5
155 - Height = 19 155 + Height = 21
156 Top = 0 156 Top = 0
157 - Width = 215 157 + Width = 239
158 Caption = '5 cores' 158 Caption = '5 cores'
159 Checked = True 159 Checked = True
160 Enabled = False 160 Enabled = False
@@ -163,9 +163,9 @@ object FormDesigner: TFormDesigner @@ -163,9 +163,9 @@ object FormDesigner: TFormDesigner
163 end 163 end
164 object ChkRows: TCheckBox 164 object ChkRows: TCheckBox
165 Left = 5 165 Left = 5
166 - Height = 19  
167 - Top = 19  
168 - Width = 215 166 + Height = 21
  167 + Top = 21
  168 + Width = 239
169 Caption = '10 linhas' 169 Caption = '10 linhas'
170 Checked = True 170 Checked = True
171 Enabled = False 171 Enabled = False
@@ -174,35 +174,35 @@ object FormDesigner: TFormDesigner @@ -174,35 +174,35 @@ object FormDesigner: TFormDesigner
174 end 174 end
175 object ChkCols: TCheckBox 175 object ChkCols: TCheckBox
176 Left = 5 176 Left = 5
177 - Height = 19  
178 - Top = 38  
179 - Width = 215 177 + Height = 21
  178 + Top = 42
  179 + Width = 239
180 Caption = '10 colunas' 180 Caption = '10 colunas'
181 TabOrder = 2 181 TabOrder = 2
182 end 182 end
183 object ChkDots: TCheckBox 183 object ChkDots: TCheckBox
184 Left = 5 184 Left = 5
185 - Height = 19  
186 - Top = 57  
187 - Width = 215 185 + Height = 21
  186 + Top = 63
  187 + Width = 239
188 Caption = 'Com Círculos Preechidos' 188 Caption = 'Com Círculos Preechidos'
189 OnChange = ChkDotsChange 189 OnChange = ChkDotsChange
190 TabOrder = 3 190 TabOrder = 3
191 end 191 end
192 object ChkCleanDots: TCheckBox 192 object ChkCleanDots: TCheckBox
193 Left = 5 193 Left = 5
194 - Height = 19  
195 - Top = 76  
196 - Width = 215 194 + Height = 21
  195 + Top = 84
  196 + Width = 239
197 Caption = 'Com Círculos Vazados' 197 Caption = 'Com Círculos Vazados'
198 OnChange = ChkCleanDotsChange 198 OnChange = ChkCleanDotsChange
199 TabOrder = 4 199 TabOrder = 4
200 end 200 end
201 object ChkDotsCleanDots: TCheckBox 201 object ChkDotsCleanDots: TCheckBox
202 Left = 5 202 Left = 5
203 - Height = 19  
204 - Top = 95  
205 - Width = 215 203 + Height = 21
  204 + Top = 105
  205 + Width = 239
206 Caption = 'Com Círculos Vazados e Preenchidos' 206 Caption = 'Com Círculos Vazados e Preenchidos'
207 OnChange = ChkDotsCleanDotsChange 207 OnChange = ChkDotsCleanDotsChange
208 TabOrder = 5 208 TabOrder = 5
@@ -210,22 +210,23 @@ object FormDesigner: TFormDesigner @@ -210,22 +210,23 @@ object FormDesigner: TFormDesigner
210 end 210 end
211 object GBConditions: TGroupBox 211 object GBConditions: TGroupBox
212 Left = 0 212 Left = 0
213 - Height = 100  
214 - Top = 588  
215 - Width = 631 213 + Height = 97
  214 + Top = 604
  215 + Width = 640
216 Caption = 'Condições' 216 Caption = 'Condições'
217 ClientHeight = 80 217 ClientHeight = 80
218 - ClientWidth = 627 218 + ClientWidth = 636
219 TabOrder = 5 219 TabOrder = 5
220 object ListBoxConditions: TListBox 220 object ListBoxConditions: TListBox
221 Left = 0 221 Left = 0
222 Height = 80 222 Height = 80
223 Top = 0 223 Top = 0
224 - Width = 627 224 + Width = 636
225 Anchors = [akTop, akLeft, akRight] 225 Anchors = [akTop, akLeft, akRight]
226 ItemHeight = 0 226 ItemHeight = 0
227 ScrollWidth = 634 227 ScrollWidth = 634
228 TabOrder = 0 228 TabOrder = 0
  229 + TopIndex = -1
229 end 230 end
230 end 231 end
231 end 232 end
@@ -236,14 +237,14 @@ object FormDesigner: TFormDesigner @@ -236,14 +237,14 @@ object FormDesigner: TFormDesigner
236 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize 237 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
237 ChildSizing.Layout = cclLeftToRightThenTopToBottom 238 ChildSizing.Layout = cclLeftToRightThenTopToBottom
238 ChildSizing.ControlsPerLine = 1 239 ChildSizing.ControlsPerLine = 1
239 - ClientHeight = 583  
240 - ClientWidth = 650 240 + ClientHeight = 792
  241 + ClientWidth = 658
241 object ComboCurrentCondition: TComboBox 242 object ComboCurrentCondition: TComboBox
242 Left = 0 243 Left = 0
243 Height = 23 244 Height = 23
244 Top = 10 245 Top = 10
245 Width = 640 246 Width = 640
246 - ItemHeight = 15 247 + ItemHeight = 0
247 OnChange = ComboCurrentConditionChange 248 OnChange = ComboCurrentConditionChange
248 Style = csDropDownList 249 Style = csDropDownList
249 TabOrder = 0 250 TabOrder = 0
@@ -371,7 +372,7 @@ object FormDesigner: TFormDesigner @@ -371,7 +372,7 @@ object FormDesigner: TFormDesigner
371 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize 372 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
372 ChildSizing.Layout = cclLeftToRightThenTopToBottom 373 ChildSizing.Layout = cclLeftToRightThenTopToBottom
373 ChildSizing.ControlsPerLine = 1 374 ChildSizing.ControlsPerLine = 1
374 - ClientHeight = 144 375 + ClientHeight = 147
375 ClientWidth = 636 376 ClientWidth = 636
376 TabOrder = 5 377 TabOrder = 5
377 object CheckBoxShouldAskQuestion: TCheckBox 378 object CheckBoxShouldAskQuestion: TCheckBox
@@ -416,7 +417,7 @@ object FormDesigner: TFormDesigner @@ -416,7 +417,7 @@ object FormDesigner: TFormDesigner
416 ChildSizing.ShrinkVertical = crsScaleChilds 417 ChildSizing.ShrinkVertical = crsScaleChilds
417 ChildSizing.Layout = cclLeftToRightThenTopToBottom 418 ChildSizing.Layout = cclLeftToRightThenTopToBottom
418 ChildSizing.ControlsPerLine = 1 419 ChildSizing.ControlsPerLine = 1
419 - ClientHeight = 51 420 + ClientHeight = 54
420 ClientWidth = 532 421 ClientWidth = 532
421 Items.Strings = ( 422 Items.Strings = (
422 'Reverter consequências das metacontingências e contingências' 423 'Reverter consequências das metacontingências e contingências'
@@ -444,7 +445,7 @@ object FormDesigner: TFormDesigner @@ -444,7 +445,7 @@ object FormDesigner: TFormDesigner
444 ChildSizing.ShrinkVertical = crsScaleChilds 445 ChildSizing.ShrinkVertical = crsScaleChilds
445 ChildSizing.Layout = cclLeftToRightThenTopToBottom 446 ChildSizing.Layout = cclLeftToRightThenTopToBottom
446 ChildSizing.ControlsPerLine = 1 447 ChildSizing.ControlsPerLine = 1
447 - ClientHeight = 60 448 + ClientHeight = 63
448 ClientWidth = 636 449 ClientWidth = 636
449 ItemIndex = 2 450 ItemIndex = 2
450 Items.Strings = ( 451 Items.Strings = (
@@ -466,7 +467,7 @@ object FormDesigner: TFormDesigner @@ -466,7 +467,7 @@ object FormDesigner: TFormDesigner
466 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize 467 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
467 ChildSizing.Layout = cclLeftToRightThenTopToBottom 468 ChildSizing.Layout = cclLeftToRightThenTopToBottom
468 ChildSizing.ControlsPerLine = 1 469 ChildSizing.ControlsPerLine = 1
469 - ClientHeight = 89 470 + ClientHeight = 92
470 ClientWidth = 636 471 ClientWidth = 636
471 TabOrder = 7 472 TabOrder = 7
472 object LabelEndCriteriaAbsCycles: TLabel 473 object LabelEndCriteriaAbsCycles: TLabel
@@ -496,7 +497,7 @@ object FormDesigner: TFormDesigner @@ -496,7 +497,7 @@ object FormDesigner: TFormDesigner
496 ChildSizing.HorizontalSpacing = 5 497 ChildSizing.HorizontalSpacing = 5
497 ChildSizing.Layout = cclLeftToRightThenTopToBottom 498 ChildSizing.Layout = cclLeftToRightThenTopToBottom
498 ChildSizing.ControlsPerLine = 4 499 ChildSizing.ControlsPerLine = 4
499 - ClientHeight = 22 500 + ClientHeight = 25
500 ClientWidth = 532 501 ClientWidth = 532
501 TabOrder = 1 502 TabOrder = 1
502 object SpinEditEndCriteriaInterlockingPorcentage: TSpinEdit 503 object SpinEditEndCriteriaInterlockingPorcentage: TSpinEdit
@@ -547,7 +548,7 @@ object FormDesigner: TFormDesigner @@ -547,7 +548,7 @@ object FormDesigner: TFormDesigner
547 Top = 641 548 Top = 641
548 Width = 640 549 Width = 640
549 Caption = 'Contingências e Metacontingências' 550 Caption = 'Contingências e Metacontingências'
550 - ClientHeight = 77 551 + ClientHeight = 80
551 ClientWidth = 636 552 ClientWidth = 636
552 TabOrder = 8 553 TabOrder = 8
553 object ListBoxContingencies: TListBox 554 object ListBoxContingencies: TListBox
@@ -559,6 +560,7 @@ object FormDesigner: TFormDesigner @@ -559,6 +560,7 @@ object FormDesigner: TFormDesigner
559 ItemHeight = 0 560 ItemHeight = 0
560 ScrollWidth = 634 561 ScrollWidth = 634
561 TabOrder = 0 562 TabOrder = 0
  563 + TopIndex = -1
562 end 564 end
563 end 565 end
564 end 566 end
@@ -569,14 +571,14 @@ object FormDesigner: TFormDesigner @@ -569,14 +571,14 @@ object FormDesigner: TFormDesigner
569 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize 571 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
570 ChildSizing.Layout = cclLeftToRightThenTopToBottom 572 ChildSizing.Layout = cclLeftToRightThenTopToBottom
571 ChildSizing.ControlsPerLine = 1 573 ChildSizing.ControlsPerLine = 1
572 - ClientHeight = 583  
573 - ClientWidth = 650 574 + ClientHeight = 792
  575 + ClientWidth = 658
574 Enabled = False 576 Enabled = False
575 object RGContingencyType: TRadioGroup 577 object RGContingencyType: TRadioGroup
576 Left = 0 578 Left = 0
577 Height = 59 579 Height = 59
578 Top = 10 580 Top = 10
579 - Width = 650 581 + Width = 658
580 AutoFill = True 582 AutoFill = True
581 Caption = 'Mostrar' 583 Caption = 'Mostrar'
582 ChildSizing.LeftRightSpacing = 6 584 ChildSizing.LeftRightSpacing = 6
@@ -586,8 +588,8 @@ object FormDesigner: TFormDesigner @@ -586,8 +588,8 @@ object FormDesigner: TFormDesigner
586 ChildSizing.ShrinkVertical = crsScaleChilds 588 ChildSizing.ShrinkVertical = crsScaleChilds
587 ChildSizing.Layout = cclLeftToRightThenTopToBottom 589 ChildSizing.Layout = cclLeftToRightThenTopToBottom
588 ChildSizing.ControlsPerLine = 1 590 ChildSizing.ControlsPerLine = 1
589 - ClientHeight = 39  
590 - ClientWidth = 646 591 + ClientHeight = 42
  592 + ClientWidth = 654
591 Items.Strings = ( 593 Items.Strings = (
592 'Contingências Operantes' 594 'Contingências Operantes'
593 'Metacontingências' 595 'Metacontingências'
@@ -597,10 +599,10 @@ object FormDesigner: TFormDesigner @@ -597,10 +599,10 @@ object FormDesigner: TFormDesigner
597 end 599 end
598 object ComboCurrentContingency: TComboBox 600 object ComboCurrentContingency: TComboBox
599 Left = 0 601 Left = 0
600 - Height = 23 602 + Height = 27
601 Top = 74 603 Top = 74
602 - Width = 650  
603 - ItemHeight = 15 604 + Width = 658
  605 + ItemHeight = 0
604 OnChange = ComboCurrentContingencyChange 606 OnChange = ComboCurrentContingencyChange
605 Style = csDropDownList 607 Style = csDropDownList
606 TabOrder = 0 608 TabOrder = 0
@@ -609,38 +611,38 @@ object FormDesigner: TFormDesigner @@ -609,38 +611,38 @@ object FormDesigner: TFormDesigner
609 Left = 0 611 Left = 0
610 Height = 26 612 Height = 26
611 Top = 106 613 Top = 106
612 - Width = 650 614 + Width = 658
613 ChildSizing.LeftRightSpacing = 25 615 ChildSizing.LeftRightSpacing = 25
614 ChildSizing.HorizontalSpacing = 50 616 ChildSizing.HorizontalSpacing = 50
615 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize 617 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
616 ChildSizing.Layout = cclLeftToRightThenTopToBottom 618 ChildSizing.Layout = cclLeftToRightThenTopToBottom
617 ChildSizing.ControlsPerLine = 3 619 ChildSizing.ControlsPerLine = 3
618 ClientHeight = 26 620 ClientHeight = 26
619 - ClientWidth = 650 621 + ClientWidth = 658
620 TabOrder = 1 622 TabOrder = 1
621 object BtnAppendContingency: TButton 623 object BtnAppendContingency: TButton
622 Left = 25 624 Left = 25
623 Height = 25 625 Height = 25
624 Top = 0 626 Top = 0
625 - Width = 166 627 + Width = 168
626 Caption = 'Adicionar' 628 Caption = 'Adicionar'
627 OnClick = BtnAppendContingencyClick 629 OnClick = BtnAppendContingencyClick
628 TabOrder = 0 630 TabOrder = 0
629 end 631 end
630 object BtnRemoveContingency: TButton 632 object BtnRemoveContingency: TButton
631 - Left = 241 633 + Left = 243
632 Height = 25 634 Height = 25
633 Top = 0 635 Top = 0
634 - Width = 163 636 + Width = 165
635 Caption = 'Remover' 637 Caption = 'Remover'
636 OnClick = BtnRemoveContingencyClick 638 OnClick = BtnRemoveContingencyClick
637 TabOrder = 1 639 TabOrder = 1
638 end 640 end
639 object BtnReorderContingency: TButton 641 object BtnReorderContingency: TButton
640 - Left = 454 642 + Left = 458
641 Height = 25 643 Height = 25
642 Top = 0 644 Top = 0
643 - Width = 171 645 + Width = 175
644 Caption = 'Reordenar' 646 Caption = 'Reordenar'
645 OnClick = BtnReorderContingencyClick 647 OnClick = BtnReorderContingencyClick
646 TabOrder = 2 648 TabOrder = 2
@@ -650,7 +652,7 @@ object FormDesigner: TFormDesigner @@ -650,7 +652,7 @@ object FormDesigner: TFormDesigner
650 Left = 0 652 Left = 0
651 Height = 15 653 Height = 15
652 Top = 137 654 Top = 137
653 - Width = 650 655 + Width = 658
654 Caption = 'Nome da contingência' 656 Caption = 'Nome da contingência'
655 ParentColor = False 657 ParentColor = False
656 end 658 end
@@ -658,7 +660,7 @@ object FormDesigner: TFormDesigner @@ -658,7 +660,7 @@ object FormDesigner: TFormDesigner
658 Left = 0 660 Left = 0
659 Height = 25 661 Height = 25
660 Top = 157 662 Top = 157
661 - Width = 650 663 + Width = 658
662 OnEditingDone = EditContingencyNameEditingDone 664 OnEditingDone = EditContingencyNameEditingDone
663 TabOrder = 2 665 TabOrder = 2
664 end 666 end
@@ -666,7 +668,7 @@ object FormDesigner: TFormDesigner @@ -666,7 +668,7 @@ object FormDesigner: TFormDesigner
666 Left = 0 668 Left = 0
667 Height = 122 669 Height = 122
668 Top = 187 670 Top = 187
669 - Width = 650 671 + Width = 658
670 AutoFill = True 672 AutoFill = True
671 Caption = 'Estilo da Resposta' 673 Caption = 'Estilo da Resposta'
672 ChildSizing.LeftRightSpacing = 6 674 ChildSizing.LeftRightSpacing = 6
@@ -676,8 +678,8 @@ object FormDesigner: TFormDesigner @@ -676,8 +678,8 @@ object FormDesigner: TFormDesigner
676 ChildSizing.ShrinkVertical = crsScaleChilds 678 ChildSizing.ShrinkVertical = crsScaleChilds
677 ChildSizing.Layout = cclLeftToRightThenTopToBottom 679 ChildSizing.Layout = cclLeftToRightThenTopToBottom
678 ChildSizing.ControlsPerLine = 1 680 ChildSizing.ControlsPerLine = 1
679 - ClientHeight = 102  
680 - ClientWidth = 646 681 + ClientHeight = 105
  682 + ClientWidth = 654
681 ItemIndex = 0 683 ItemIndex = 0
682 Items.Strings = ( 684 Items.Strings = (
683 'Extinção' 685 'Extinção'
@@ -694,7 +696,7 @@ object FormDesigner: TFormDesigner @@ -694,7 +696,7 @@ object FormDesigner: TFormDesigner
694 Left = 0 696 Left = 0
695 Height = 15 697 Height = 15
696 Top = 314 698 Top = 314
697 - Width = 650 699 + Width = 658
698 Alignment = taCenter 700 Alignment = taCenter
699 Caption = 'SE O PARTICIPANTE ESCOLHER' 701 Caption = 'SE O PARTICIPANTE ESCOLHER'
700 ParentColor = False 702 ParentColor = False
@@ -704,7 +706,7 @@ object FormDesigner: TFormDesigner @@ -704,7 +706,7 @@ object FormDesigner: TFormDesigner
704 Left = 0 706 Left = 0
705 Height = 17 707 Height = 17
706 Top = 334 708 Top = 334
707 - Width = 650 709 + Width = 658
708 Caption = 'Linhas' 710 Caption = 'Linhas'
709 ChildSizing.LeftRightSpacing = 5 711 ChildSizing.LeftRightSpacing = 5
710 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize 712 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
@@ -717,7 +719,7 @@ object FormDesigner: TFormDesigner @@ -717,7 +719,7 @@ object FormDesigner: TFormDesigner
717 Left = 0 719 Left = 0
718 Height = 15 720 Height = 15
719 Top = 356 721 Top = 356
720 - Width = 650 722 + Width = 658
721 Alignment = taCenter 723 Alignment = taCenter
722 Caption = 'E' 724 Caption = 'E'
723 ParentColor = False 725 ParentColor = False
@@ -727,7 +729,7 @@ object FormDesigner: TFormDesigner @@ -727,7 +729,7 @@ object FormDesigner: TFormDesigner
727 Left = 0 729 Left = 0
728 Height = 17 730 Height = 17
729 Top = 376 731 Top = 376
730 - Width = 650 732 + Width = 658
731 Caption = 'Cores' 733 Caption = 'Cores'
732 ChildSizing.HorizontalSpacing = 5 734 ChildSizing.HorizontalSpacing = 5
733 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize 735 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
@@ -740,7 +742,7 @@ object FormDesigner: TFormDesigner @@ -740,7 +742,7 @@ object FormDesigner: TFormDesigner
740 Left = 0 742 Left = 0
741 Height = 15 743 Height = 15
742 Top = 398 744 Top = 398
743 - Width = 650 745 + Width = 658
744 Alignment = taCenter 746 Alignment = taCenter
745 Caption = 'ENTÃO' 747 Caption = 'ENTÃO'
746 ParentColor = False 748 ParentColor = False
@@ -748,105 +750,221 @@ object FormDesigner: TFormDesigner @@ -748,105 +750,221 @@ object FormDesigner: TFormDesigner
748 end 750 end
749 object GBContingencyConsequence: TGroupBox 751 object GBContingencyConsequence: TGroupBox
750 Left = 0 752 Left = 0
751 - Height = 59 753 + Height = 364
752 Top = 418 754 Top = 418
753 - Width = 650 755 + Width = 658
754 Caption = 'Consequência' 756 Caption = 'Consequência'
755 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize 757 ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
756 - ChildSizing.Layout = cclTopToBottomThenLeftToRight 758 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
757 ChildSizing.ControlsPerLine = 2 759 ChildSizing.ControlsPerLine = 2
758 - ClientHeight = 39  
759 - ClientWidth = 646 760 + ClientHeight = 347
  761 + ClientWidth = 654
760 TabOrder = 6 762 TabOrder = 6
761 Visible = False 763 Visible = False
762 - object LabelC6: TLabel 764 + object LabelCsq1: TLabel
763 Left = 0 765 Left = 0
764 Height = 15 766 Height = 15
765 Top = 0 767 Top = 0
766 - Width = 154  
767 - Caption = 'do Tipo' 768 + Width = 416
  769 + Caption = 'Pontos'
768 ParentColor = False 770 ParentColor = False
769 end 771 end
770 - object CBPointsType: TComboBox  
771 - Left = 0  
772 - Height = 23  
773 - Top = 15  
774 - Width = 154  
775 - ItemHeight = 15  
776 - OnChange = ConsequenceStyleChange  
777 - Style = csDropDownList  
778 - TabOrder = 4  
779 - end  
780 - object LabelC1: TLabel  
781 - Left = 154 772 + object LabelCsq2: TLabel
  773 + Left = 416
782 Height = 15 774 Height = 15
783 Top = 0 775 Top = 0
784 - Width = 134  
785 - Caption = 'Prefixo'  
786 - ParentColor = False  
787 - end  
788 - object EditMessPrefix: TEdit  
789 - Left = 154  
790 - Height = 27  
791 - Top = 15  
792 - Width = 134  
793 - TabOrder = 0  
794 - Text = '$NICNAME produziu'  
795 - end  
796 - object LabelC4: TLabel  
797 - Left = 288  
798 - Height = 15  
799 - Top = 0  
800 - Width = 104  
801 - Caption = 'Pontos' 776 + Width = 238
  777 + Caption = 'do Tipo'
802 ParentColor = False 778 ParentColor = False
803 end 779 end
804 object SpinEditContingencyPoints: TSpinEdit 780 object SpinEditContingencyPoints: TSpinEdit
805 - Left = 288 781 + Left = 0
806 Height = 27 782 Height = 27
807 Top = 15 783 Top = 15
808 - Width = 104 784 + Width = 416
809 MaxValue = 0 785 MaxValue = 0
810 OnEditingDone = ConsequenceStyleChange 786 OnEditingDone = ConsequenceStyleChange
811 - TabOrder = 2 787 + TabOrder = 0
812 Value = 1 788 Value = 1
813 end 789 end
814 - object LabelC2: TLabel  
815 - Left = 392  
816 - Height = 15  
817 - Top = 0  
818 - Width = 134  
819 - Caption = 'Sufixo'  
820 - ParentColor = False  
821 - end  
822 - object EditMessSufix: TEdit  
823 - Left = 392 790 + object CBPointsType: TComboBox
  791 + Left = 416
824 Height = 27 792 Height = 27
825 - Hint = 'singular|plural'  
826 Top = 15 793 Top = 15
827 - Width = 134 794 + Width = 238
  795 + ItemHeight = 0
  796 + OnChange = ConsequenceStyleChange
  797 + Style = csDropDownList
828 TabOrder = 1 798 TabOrder = 1
829 - Text = 'ponto.|pontos.'  
830 end 799 end
831 - object LabelC5: TLabel  
832 - Left = 526  
833 - Height = 15  
834 - Top = 0  
835 - Width = 120  
836 - Caption = 'Apresentar' 800 + object RGBroadcastMessage: TRadioGroup
  801 + Left = 0
  802 + Height = 80
  803 + Top = 42
  804 + Width = 416
  805 + AutoFill = True
  806 + Caption = 'Apresentar mensagem de notificação'
  807 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  808 + ChildSizing.ControlsPerLine = 1
  809 + ClientHeight = 63
  810 + ClientWidth = 412
  811 + ItemIndex = 0
  812 + Items.Strings = (
  813 + 'a todos os participantes'
  814 + 'apenas ao participante alvo da pontuação'
  815 + 'Não apresentar mensagem de notificação'
  816 + )
  817 + OnClick = RGBroadcastMessageClick
  818 + TabOrder = 9
  819 + end
  820 + object CheckBoxImutableMessage: TCheckBox
  821 + Left = 416
  822 + Height = 80
  823 + Hint = 'Marque se deseja uma mensagem fixa; o programa não atualizará o texto da mensagem caso o valor da pontuação mude ao longo do experimento.'
  824 + Top = 42
  825 + Width = 238
  826 + AutoSize = False
  827 + Caption = 'imutável'
  828 + OnChange = CheckBoxImutableMessageChange
  829 + TabOrder = 10
  830 + end
  831 + object LabelCsq3: TLabel
  832 + Left = 0
  833 + Height = 25
  834 + Top = 122
  835 + Width = 416
  836 + Caption = 'Texto no início da mensagem'
837 ParentColor = False 837 ParentColor = False
838 end 838 end
839 - object CheckBoxBroadcast: TCheckBox  
840 - Left = 526  
841 - Height = 27  
842 - Top = 15  
843 - Width = 120  
844 - AllowGrayed = True  
845 - Caption = 'a todos'  
846 - Checked = True  
847 - OnChange = CheckBoxBroadcastChange  
848 - State = cbChecked 839 + object EditMessPrefix: TEdit
  840 + Left = 416
  841 + Height = 25
  842 + Top = 122
  843 + Width = 238
  844 + TabOrder = 2
  845 + Text = '$NICNAME'
  846 + end
  847 + object LabelCsq4: TLabel
  848 + Left = 0
  849 + Height = 25
  850 + Top = 147
  851 + Width = 416
  852 + Caption = 'Prefixo ao perder pontos'
  853 + ParentColor = False
  854 + end
  855 + object EditMessPrefixLoss: TEdit
  856 + Left = 416
  857 + Height = 25
  858 + Top = 147
  859 + Width = 238
849 TabOrder = 3 860 TabOrder = 3
  861 + Text = 'perdeu'
  862 + end
  863 + object LabelCsq5: TLabel
  864 + Left = 0
  865 + Height = 25
  866 + Top = 172
  867 + Width = 416
  868 + Caption = 'Sufixo ao perder pontos (Singular)'
  869 + ParentColor = False
  870 + end
  871 + object EditMessSufixLossSingular: TEdit
  872 + Left = 416
  873 + Height = 25
  874 + Top = 172
  875 + Width = 238
  876 + TabOrder = 4
  877 + Text = 'ponto.'
  878 + end
  879 + object LabelCsq6: TLabel
  880 + Left = 0
  881 + Height = 25
  882 + Top = 197
  883 + Width = 416
  884 + Caption = 'Sufixo ao perder pontos (Plural)'
  885 + ParentColor = False
  886 + end
  887 + object EditMessSufixLossPlural: TEdit
  888 + Left = 416
  889 + Height = 25
  890 + Top = 197
  891 + Width = 238
  892 + TabOrder = 5
  893 + Text = 'pontos.'
  894 + end
  895 + object LabelCsq7: TLabel
  896 + Left = 0
  897 + Height = 25
  898 + Top = 222
  899 + Width = 416
  900 + Caption = 'Prefixo ao ganhar pontos'
  901 + ParentColor = False
  902 + end
  903 + object EditMessPrefixEarn: TEdit
  904 + Left = 416
  905 + Height = 25
  906 + Top = 222
  907 + Width = 238
  908 + TabOrder = 6
  909 + Text = 'ganhou'
  910 + end
  911 + object LabelCsq8: TLabel
  912 + Left = 0
  913 + Height = 25
  914 + Top = 247
  915 + Width = 416
  916 + Caption = 'Sufixo ao ganhar pontos (Singular)'
  917 + ParentColor = False
  918 + end
  919 + object EditMessSufixEarnSingular: TEdit
  920 + Left = 416
  921 + Height = 25
  922 + Top = 247
  923 + Width = 238
  924 + TabOrder = 7
  925 + Text = 'ponto.'
  926 + end
  927 + object LabelCsq9: TLabel
  928 + Left = 0
  929 + Height = 25
  930 + Top = 272
  931 + Width = 416
  932 + Caption = 'Sufixo ao ganhar pontos (Plural)'
  933 + ParentColor = False
  934 + end
  935 + object EditMessSufixEarnPlural: TEdit
  936 + Left = 416
  937 + Height = 25
  938 + Top = 272
  939 + Width = 238
  940 + TabOrder = 8
  941 + Text = 'pontos.'
  942 + end
  943 + object LabelCsq10: TLabel
  944 + Left = 0
  945 + Height = 25
  946 + Top = 297
  947 + Width = 416
  948 + Caption = 'Sufixo ao ganhar pontos (Plural)'
  949 + ParentColor = False
  950 + end
  951 + object EditMessSufixZero: TEdit
  952 + Left = 416
  953 + Height = 25
  954 + Top = 297
  955 + Width = 238
  956 + OnChange = EditMessSufixZeroChange
  957 + TabOrder = 11
  958 + Text = 'não ganhou nem perdeu pontos.'
  959 + end
  960 + object ButtonPreviewMessage: TButton
  961 + Left = 0
  962 + Height = 25
  963 + Top = 322
  964 + Width = 416
  965 + Caption = 'Ver como a mensagem pode ser apresentada'
  966 + OnClick = ButtonPreviewMessageClick
  967 + TabOrder = 12
850 end 968 end
851 end 969 end
852 end 970 end
experiment_designer/form_main.pas
@@ -15,7 +15,8 @@ interface @@ -15,7 +15,8 @@ interface
15 15
16 uses 16 uses
17 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, 17 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
18 - Menus, ExtCtrls, StdCtrls, XMLPropStorage, IniFiles, Spin, PropertyStorage; 18 + Menus, ExtCtrls, StdCtrls, XMLPropStorage, IniFiles, Spin, PropertyStorage,
  19 + PopupNotifier;
19 20
20 type 21 type
21 22
@@ -28,22 +29,29 @@ type @@ -28,22 +29,29 @@ type
28 BtnRemoveContingency: TButton; 29 BtnRemoveContingency: TButton;
29 BtnReorderCond: TButton; 30 BtnReorderCond: TButton;
30 BtnReorderContingency: TButton; 31 BtnReorderContingency: TButton;
  32 + ButtonPreviewMessage: TButton;
31 CGGlobal: TCheckGroup; 33 CGGlobal: TCheckGroup;
  34 + CheckBoxImutableMessage: TCheckBox;
32 ChkDotsCleanDots: TCheckBox; 35 ChkDotsCleanDots: TCheckBox;
33 ChkColors: TCheckBox; 36 ChkColors: TCheckBox;
34 ChkRows: TCheckBox; 37 ChkRows: TCheckBox;
35 ChkCols: TCheckBox; 38 ChkCols: TCheckBox;
36 ChkDots: TCheckBox; 39 ChkDots: TCheckBox;
37 ChkCleanDots: TCheckBox; 40 ChkCleanDots: TCheckBox;
38 - CheckBoxBroadcast: TCheckBox;  
39 CheckBoxShouldAskQuestion: TCheckBox; 41 CheckBoxShouldAskQuestion: TCheckBox;
40 CGQuestion: TCheckGroup; 42 CGQuestion: TCheckGroup;
41 CBPointsType: TComboBox; 43 CBPointsType: TComboBox;
42 ComboCurrentCondition: TComboBox; 44 ComboCurrentCondition: TComboBox;
43 ComboCurrentContingency: TComboBox; 45 ComboCurrentContingency: TComboBox;
44 - EditMessPrefix: TEdit;  
45 - EditMessSufix: TEdit;  
46 EditContingencyName: TEdit; 46 EditContingencyName: TEdit;
  47 + EditMessPrefix: TEdit;
  48 + EditMessSufixEarnPlural: TEdit;
  49 + EditMessPrefixEarn: TEdit;
  50 + EditMessSufixZero: TEdit;
  51 + EditMessPrefixLoss: TEdit;
  52 + EditMessSufixLossSingular: TEdit;
  53 + EditMessSufixLossPlural: TEdit;
  54 + EditMessSufixEarnSingular: TEdit;
47 EditQuestion: TEdit; 55 EditQuestion: TEdit;
48 EditConditionName: TEdit; 56 EditConditionName: TEdit;
49 EditExperimentName: TEdit; 57 EditExperimentName: TEdit;
@@ -58,13 +66,18 @@ type @@ -58,13 +66,18 @@ type
58 GBContingencyRows: TGroupBox; 66 GBContingencyRows: TGroupBox;
59 GBContingencyConsequence: TGroupBox; 67 GBContingencyConsequence: TGroupBox;
60 GBMatrix: TGroupBox; 68 GBMatrix: TGroupBox;
  69 + LabelCsq10: TLabel;
  70 + LabelCsq3: TLabel;
  71 + LabelCsq5: TLabel;
  72 + LabelCsq8: TLabel;
  73 + LabelCsq6: TLabel;
  74 + LabelCsq9: TLabel;
  75 + LabelCsq4: TLabel;
  76 + LabelCsq7: TLabel;
61 LabelQuestion: TLabel; 77 LabelQuestion: TLabel;
62 LabelPointsOnConditionBegin: TLabel; 78 LabelPointsOnConditionBegin: TLabel;
63 - LabelC1: TLabel;  
64 - LabelC2: TLabel;  
65 - LabelC4: TLabel;  
66 - LabelC5: TLabel;  
67 - LabelC6: TLabel; 79 + LabelCsq1: TLabel;
  80 + LabelCsq2: TLabel;
68 LabelThen: TLabel; 81 LabelThen: TLabel;
69 LabelOperator: TLabel; 82 LabelOperator: TLabel;
70 LabelContingencyName: TLabel; 83 LabelContingencyName: TLabel;
@@ -89,6 +102,7 @@ type @@ -89,6 +102,7 @@ type
89 PageControl: TPageControl; 102 PageControl: TPageControl;
90 PanelConditionButtons: TPanel; 103 PanelConditionButtons: TPanel;
91 PanelContingenciesButtons: TPanel; 104 PanelContingenciesButtons: TPanel;
  105 + RGBroadcastMessage: TRadioGroup;
92 RGContingencyType: TRadioGroup; 106 RGContingencyType: TRadioGroup;
93 RGContingencyStyle: TRadioGroup; 107 RGContingencyStyle: TRadioGroup;
94 RGEndCriteriaStyle: TRadioGroup; 108 RGEndCriteriaStyle: TRadioGroup;
@@ -110,13 +124,14 @@ type @@ -110,13 +124,14 @@ type
110 procedure BtnRemoveContingencyClick(Sender: TObject); 124 procedure BtnRemoveContingencyClick(Sender: TObject);
111 procedure BtnReorderCondClick(Sender: TObject); 125 procedure BtnReorderCondClick(Sender: TObject);
112 procedure BtnReorderContingencyClick(Sender: TObject); 126 procedure BtnReorderContingencyClick(Sender: TObject);
  127 + procedure ButtonPreviewMessageClick(Sender: TObject);
  128 + procedure CheckBoxImutableMessageChange(Sender: TObject);
113 procedure ChkDotsCleanDotsChange(Sender: TObject); 129 procedure ChkDotsCleanDotsChange(Sender: TObject);
114 // 130 //
115 procedure ConsequenceMessageEditingDone(Sender: TObject); 131 procedure ConsequenceMessageEditingDone(Sender: TObject);
116 procedure ConsequenceStyleChange(Sender: TObject); 132 procedure ConsequenceStyleChange(Sender: TObject);
117 133
118 procedure CGQuestionItemClick(Sender: TObject; Index: integer); 134 procedure CGQuestionItemClick(Sender: TObject; Index: integer);
119 - procedure CheckBoxBroadcastChange(Sender: TObject);  
120 procedure CheckBoxColorsRowsChange(Sender: TObject); 135 procedure CheckBoxColorsRowsChange(Sender: TObject);
121 procedure CheckBoxShouldAskQuestionChange(Sender: TObject); 136 procedure CheckBoxShouldAskQuestionChange(Sender: TObject);
122 procedure ChkCleanDotsChange(Sender: TObject); 137 procedure ChkCleanDotsChange(Sender: TObject);
@@ -125,12 +140,14 @@ type @@ -125,12 +140,14 @@ type
125 procedure ComboCurrentContingencyChange(Sender: TObject); 140 procedure ComboCurrentContingencyChange(Sender: TObject);
126 procedure EditConditionNameEditingDone(Sender: TObject); 141 procedure EditConditionNameEditingDone(Sender: TObject);
127 procedure EditContingencyNameEditingDone(Sender: TObject); 142 procedure EditContingencyNameEditingDone(Sender: TObject);
  143 + procedure EditMessSufixZeroChange(Sender: TObject);
128 procedure EditQuestionEditingDone(Sender: TObject); 144 procedure EditQuestionEditingDone(Sender: TObject);
129 procedure FormActivate(Sender: TObject); 145 procedure FormActivate(Sender: TObject);
130 procedure FormCreate(Sender: TObject); 146 procedure FormCreate(Sender: TObject);
131 procedure FormDestroy(Sender: TObject); 147 procedure FormDestroy(Sender: TObject);
132 procedure MenuItemExitClick(Sender: TObject); 148 procedure MenuItemExitClick(Sender: TObject);
133 procedure MenuItemOpenClick(Sender: TObject); 149 procedure MenuItemOpenClick(Sender: TObject);
  150 + procedure RGBroadcastMessageClick(Sender: TObject);
134 procedure RGContingencyStyleClick(Sender: TObject); 151 procedure RGContingencyStyleClick(Sender: TObject);
135 procedure RGContingencyStyleExit(Sender: TObject); 152 procedure RGContingencyStyleExit(Sender: TObject);
136 153
@@ -187,7 +204,7 @@ var @@ -187,7 +204,7 @@ var
187 204
188 implementation 205 implementation
189 206
190 -uses game_resources, game_actors, string_methods, strutils; 207 +uses game_resources, game_actors, game_actors_point, string_methods, strutils;
191 208
192 {$R *.lfm} 209 {$R *.lfm}
193 210
@@ -205,6 +222,35 @@ begin @@ -205,6 +222,35 @@ begin
205 end; 222 end;
206 end; 223 end;
207 224
  225 +procedure TFormDesigner.RGBroadcastMessageClick(Sender: TObject);
  226 +var
  227 + LVisible : Boolean;
  228 +begin
  229 + case RGBroadcastMessage.ItemIndex of
  230 + 0,1: LVisible := True;
  231 + 2 : LVisible := False;
  232 + end;
  233 + CheckBoxImutableMessage.Visible := LVisible;
  234 + LabelCsq3.Visible := LVisible;
  235 + LabelCsq4.Visible := LVisible;
  236 + LabelCsq5.Visible := LVisible;
  237 + LabelCsq6.Visible := LVisible;
  238 + LabelCsq7.Visible := LVisible;
  239 + LabelCsq8.Visible := LVisible;
  240 + LabelCsq9.Visible := LVisible;
  241 + LabelCsq10.Visible := LVisible;
  242 + EditMessPrefix.Visible := LVisible;
  243 + EditMessPrefixLoss.Visible:= LVisible;
  244 + EditMessSufixLossPlural.Visible:= LVisible;
  245 + EditMessSufixLossSingular.Visible:= LVisible;
  246 + EditMessPrefixEarn.Visible:= LVisible;
  247 + EditMessSufixEarnPlural.Visible:= LVisible;
  248 + EditMessSufixEarnSingular.Visible:= LVisible;
  249 + EditMessSufixZero.Visible:= LVisible;
  250 + ButtonPreviewMessage.Visible:=LVisible;
  251 + ConsequenceStyleChange(RGBroadcastMessage);
  252 +end;
  253 +
208 procedure TFormDesigner.RGContingencyStyleClick(Sender: TObject); 254 procedure TFormDesigner.RGContingencyStyleClick(Sender: TObject);
209 var 255 var
210 LVisible: boolean; 256 LVisible: boolean;
@@ -716,19 +762,14 @@ begin @@ -716,19 +762,14 @@ begin
716 // end; 762 // end;
717 763
718 if gscBroadcastMessage in CS then 764 if gscBroadcastMessage in CS then
719 - CheckBoxBroadcast.State := cbChecked 765 + RGBroadcastMessage.ItemIndex := 0
720 else 766 else
721 if gscMessage in CS then 767 if gscMessage in CS then
722 - CheckBoxBroadcast.State := cbGrayed 768 + RGBroadcastMessage.ItemIndex := 1
723 else 769 else
724 - CheckBoxBroadcast.State := cbUnchecked; 770 + RGBroadcastMessage.ItemIndex := 2;
725 771
726 772
727 - case CheckBoxBroadcast.State of  
728 - cbChecked: CheckBoxBroadcast.Caption := 'a todos';  
729 - cbUnchecked: CheckBoxBroadcast.Caption := 'ao participante';  
730 - cbGrayed: CheckBoxBroadcast.Caption := 'a ninguém';  
731 - end;  
732 end; 773 end;
733 774
734 procedure TFormDesigner.UpdateContingencyList(ASection: String); 775 procedure TFormDesigner.UpdateContingencyList(ASection: String);
@@ -854,15 +895,21 @@ begin @@ -854,15 +895,21 @@ begin
854 WriteString(ASection, AContingency + KEY_CRITERIA, GetContingencyCriteria); 895 WriteString(ASection, AContingency + KEY_CRITERIA, GetContingencyCriteria);
855 WriteString(ASection, AContingency + KEY_CONSEQUE, GetConsequenceStyle); 896 WriteString(ASection, AContingency + KEY_CONSEQUE, GetConsequenceStyle);
856 WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND, EditMessPrefix.Text); 897 WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND, EditMessPrefix.Text);
857 - try  
858 - WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDS, ExtractDelimited(1,EditMessSufix.Text,['|']));  
859 - WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDP, ExtractDelimited(2,EditMessSufix.Text,['|']));  
860 - except  
861 - on E: Exception do  
862 - Exit;  
863 - //if E.Message = 'E';  
864 898
865 - end; 899 + if EditMessPrefixLoss.Text <> '' then
  900 + WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND_LOSS,EditMessPrefixLoss.Text);
  901 + if EditMessSufixLossSingular.Text <> '' then
  902 + WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_S,EditMessSufixLossSingular.Text);
  903 + if EditMessSufixLossPlural.Text <> '' then
  904 + WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_P,EditMessSufixLossPlural.Text);
  905 + if EditMessPrefixEarn.Text <> '' then
  906 + WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND_EARN,EditMessPrefixEarn.Text);
  907 + if EditMessSufixEarnSingular.Text <> '' then
  908 + WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_EARN_S,EditMessSufixEarnSingular.Text);
  909 + if EditMessSufixEarnPlural.Text <> '' then
  910 + WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_EARN_P,EditMessSufixEarnPlural.Text);
  911 + if EditMessSufixZero.Text <> '' then
  912 + WriteString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_ZERO, EditMessSufixZero.Text);
866 end; 913 end;
867 end; 914 end;
868 915
@@ -874,8 +921,13 @@ begin @@ -874,8 +921,13 @@ begin
874 DeleteKey(ASection, AContingency + KEY_CRITERIA); 921 DeleteKey(ASection, AContingency + KEY_CRITERIA);
875 DeleteKey(ASection, AContingency + KEY_CONSEQUE); 922 DeleteKey(ASection, AContingency + KEY_CONSEQUE);
876 DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND); 923 DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND);
877 - DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDS);  
878 - DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDP); 924 + DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND_LOSS);
  925 + DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_S);
  926 + DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_P);
  927 + DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND_EARN);
  928 + DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_EARN_S);
  929 + DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_EARN_P);
  930 + DeleteKey(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_ZERO);
879 end; 931 end;
880 end; 932 end;
881 933
@@ -968,10 +1020,10 @@ begin @@ -968,10 +1020,10 @@ begin
968 end; 1020 end;
969 end; 1021 end;
970 1022
971 - case CheckBoxBroadcast.State of  
972 - cbChecked : CS += [gscBroadcastMessage];  
973 - cbUnchecked: { do nothing };  
974 - cbGrayed: CS -= [gscMessage]; 1023 + case RGBroadcastMessage.ItemIndex of
  1024 + 0 : CS += [gscBroadcastMessage];
  1025 + 1: { do nothing };
  1026 + 2: CS -= [gscMessage];
975 end; 1027 end;
976 1028
977 Result := IntToStr(SpinEditContingencyPoints.Value)+',0|'; 1029 Result := IntToStr(SpinEditContingencyPoints.Value)+',0|';
@@ -1090,8 +1142,20 @@ begin @@ -1090,8 +1142,20 @@ begin
1090 SetContingencyCriteria(ReadString(ASection, AContingency + KEY_CRITERIA, '')); 1142 SetContingencyCriteria(ReadString(ASection, AContingency + KEY_CRITERIA, ''));
1091 SetConsequenceStyle(ReadString(ASection, AContingency + KEY_CONSEQUE, '')); 1143 SetConsequenceStyle(ReadString(ASection, AContingency + KEY_CONSEQUE, ''));
1092 EditMessPrefix.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND,''); 1144 EditMessPrefix.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND,'');
1093 - EditMessSufix.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDS,'')+'|'+  
1094 - ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPENDP,''); 1145 + EditMessPrefixLoss.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND_LOSS,'');
  1146 + EditMessSufixLossSingular.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_S,'');
  1147 + EditMessSufixLossPlural.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_P,'');
  1148 + EditMessPrefixEarn.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_PREPEND_EARN,'');
  1149 + EditMessSufixEarnSingular.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_EARN_S,'');
  1150 + EditMessSufixEarnPlural.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_EARN_P,'');
  1151 + EditMessSufixZero.Text := ReadString(ASection, AContingency + KEY_CONSEQUE_MESSAGE_APPEND_ZERO, '');
  1152 +
  1153 + if (EditMessPrefixLoss.Text = '') and (EditMessSufixLossSingular.Text = '') and (EditMessSufixLossPlural.Text = '') and
  1154 + (EditMessPrefixEarn.Text = '') and (EditMessSufixEarnSingular.Text = '') and (EditMessSufixEarnPlural.Text = '') and
  1155 + (EditMessSufixZero.Text = '') then
  1156 + CheckBoxImutableMessage.Checked := True
  1157 + else
  1158 + CheckBoxImutableMessage.Checked := False;
1095 end; 1159 end;
1096 end; 1160 end;
1097 1161
@@ -1215,6 +1279,11 @@ begin @@ -1215,6 +1279,11 @@ begin
1215 end; 1279 end;
1216 end; 1280 end;
1217 1281
  1282 +procedure TFormDesigner.EditMessSufixZeroChange(Sender: TObject);
  1283 +begin
  1284 +
  1285 +end;
  1286 +
1218 procedure TFormDesigner.ConsequenceMessageEditingDone(Sender: TObject); 1287 procedure TFormDesigner.ConsequenceMessageEditingDone(Sender: TObject);
1219 var 1288 var
1220 LS, LC: String; 1289 LS, LC: String;
@@ -1241,16 +1310,6 @@ begin @@ -1241,16 +1310,6 @@ begin
1241 FLoading := False; 1310 FLoading := False;
1242 end; 1311 end;
1243 1312
1244 -procedure TFormDesigner.CheckBoxBroadcastChange(Sender: TObject);  
1245 -begin  
1246 - case TCheckBox(Sender).State of  
1247 - cbChecked: TCheckBox(Sender).Caption := 'a todos';  
1248 - cbUnchecked: TCheckBox(Sender).Caption := 'ao participante';  
1249 - cbGrayed: TCheckBox(Sender).Caption := 'a ninguém';  
1250 - end;  
1251 - ConsequenceStyleChange(CheckBoxBroadcast);  
1252 -end;  
1253 -  
1254 1313
1255 procedure TFormDesigner.BtnAppendCondClick(Sender: TObject); 1314 procedure TFormDesigner.BtnAppendCondClick(Sender: TObject);
1256 var 1315 var
@@ -1355,8 +1414,13 @@ var @@ -1355,8 +1414,13 @@ var
1355 Keys.Values[LC + KEY_CRITERIA] := ReadString(LS, LC + KEY_CRITERIA,''); 1414 Keys.Values[LC + KEY_CRITERIA] := ReadString(LS, LC + KEY_CRITERIA,'');
1356 Keys.Values[LC + KEY_CONSEQUE] := ReadString(LS, LC + KEY_CONSEQUE,''); 1415 Keys.Values[LC + KEY_CONSEQUE] := ReadString(LS, LC + KEY_CONSEQUE,'');
1357 Keys.Values[LC + KEY_CONSEQUE_MESSAGE_PREPEND] := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_PREPEND,''); 1416 Keys.Values[LC + KEY_CONSEQUE_MESSAGE_PREPEND] := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_PREPEND,'');
1358 - Keys.Values[LC + KEY_CONSEQUE_MESSAGE_APPENDS] := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_APPENDS,'');  
1359 - Keys.Values[LC + KEY_CONSEQUE_MESSAGE_APPENDP] := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_APPENDP,''); 1417 + Keys.Values[LC + KEY_CONSEQUE_MESSAGE_PREPEND_LOSS] := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_PREPEND_LOSS,'');
  1418 + Keys.Values[LC + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_S] := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_S,'');
  1419 + Keys.Values[LC + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_P] := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_P,'');
  1420 + Keys.Values[LC + KEY_CONSEQUE_MESSAGE_PREPEND_EARN] := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_PREPEND_EARN,'');
  1421 + Keys.Values[LC + KEY_CONSEQUE_MESSAGE_APPEND_EARN_S] := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_APPEND_EARN_S,'');
  1422 + Keys.Values[LC + KEY_CONSEQUE_MESSAGE_APPEND_EARN_P] := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_APPEND_EARN_P,'');
  1423 + Keys.Values[LC + KEY_CONSEQUE_MESSAGE_APPEND_ZERO] := ReadString(LS, LC + KEY_CONSEQUE_MESSAGE_APPEND_ZERO,'');
1360 end; 1424 end;
1361 Keys.EndUpdate; 1425 Keys.EndUpdate;
1362 end; 1426 end;
@@ -1427,6 +1491,89 @@ begin @@ -1427,6 +1491,89 @@ begin
1427 ShowMessage('Não implementado.'); 1491 ShowMessage('Não implementado.');
1428 end; 1492 end;
1429 1493
  1494 +procedure TFormDesigner.ButtonPreviewMessageClick(Sender: TObject);
  1495 +var
  1496 + LGamePoint : TGamePoint;
  1497 + LMessage : TPopupNotifier;
  1498 + i: Integer;
  1499 + procedure CreateMessage(AValue : integer = 0);
  1500 + begin
  1501 + if CheckBoxImutableMessage.Checked then
  1502 + LGamePoint := TGamePoint.Create(Nil,IntToStr(SpinEditContingencyPoints.Value))
  1503 + else
  1504 + LGamePoint := TGamePoint.Create(Nil,IntToStr(AValue));
  1505 + LMessage := TPopupNotifier.Create(nil);
  1506 + LMessage.Title := '';
  1507 + LMessage.Color := clTeal;
  1508 + LMessage.Text := LGamePoint.PointMessage(EditMessPrefix.Text,
  1509 + EditMessPrefixLoss.Text,EditMessSufixLossSingular.Text,EditMessSufixLossPlural.Text,
  1510 + EditMessPrefixEarn.Text,EditMessSufixEarnSingular.Text,EditMessSufixEarnPlural.Text,
  1511 + EditMessSufixZero.Text,
  1512 + RGContingencyType.ItemIndex = 1);
  1513 + LMessage.ShowAtPos(
  1514 + (Screen.Width div 2)-150,(Screen.Height div 2)-50);
  1515 + end;
  1516 +
  1517 +begin
  1518 + if CheckBoxImutableMessage.Checked then
  1519 + CreateMessage
  1520 + else
  1521 + for i := -2 to 2 do
  1522 + CreateMessage(i);
  1523 +end;
  1524 +
  1525 +procedure TFormDesigner.CheckBoxImutableMessageChange(Sender: TObject);
  1526 +var
  1527 + LVisible : Boolean;
  1528 + LGamePoint : TGamePoint;
  1529 +begin
  1530 + LVisible := TCheckBox(Sender).Checked;
  1531 + if LVisible then
  1532 + begin
  1533 + LabelCsq3.Caption := 'Texto da mensagem de notificação';
  1534 + LGamePoint := TGamePoint.Create(Self,IntToStr(SpinEditContingencyPoints.Value));
  1535 + if not FLoading then
  1536 + case RGContingencyType.ItemIndex of
  1537 + 0:EditMessPrefix.Text := LGamePoint.PointMessage('','','','','','','','',False);
  1538 + 1:EditMessPrefix.Text := LGamePoint.PointMessage('','','','','','','','',True);
  1539 + end;
  1540 + LGamePoint.Free;
  1541 + ButtonPreviewMessage.Caption:= 'Ver como a mensagem será apresentada';
  1542 + end
  1543 + else
  1544 + begin
  1545 + LabelCsq3.Caption := 'Texto no início da mensagem';
  1546 + if not FLoading then
  1547 + case RGContingencyType.ItemIndex of
  1548 + 0:EditMessPrefix.Text := '$NICNAME';
  1549 + 1:EditMessPrefix.Text := 'Vocês';
  1550 + end;
  1551 + ButtonPreviewMessage.Caption:= 'Ver como a mensagem pode ser apresentada';
  1552 + end;
  1553 +
  1554 + LabelCsq4.Visible := not LVisible;
  1555 + LabelCsq5.Visible := not LVisible;
  1556 + LabelCsq6.Visible := not LVisible;
  1557 + LabelCsq7.Visible := not LVisible;
  1558 + LabelCsq8.Visible := not LVisible;
  1559 + LabelCsq9.Visible := not LVisible;
  1560 + LabelCsq10.Visible := not LVisible;
  1561 + EditMessPrefixLoss.Visible:= not LVisible;
  1562 + EditMessPrefixLoss.Text := '';
  1563 + EditMessSufixLossPlural.Visible:= not LVisible;
  1564 + EditMessSufixLossPlural.Text := '';
  1565 + EditMessSufixLossSingular.Visible:= not LVisible;
  1566 + EditMessSufixLossSingular.Text := '';
  1567 + EditMessPrefixEarn.Visible:= not LVisible;
  1568 + EditMessPrefixEarn.Text := '';
  1569 + EditMessSufixEarnPlural.Visible:= not LVisible;
  1570 + EditMessSufixEarnPlural.Text := '';
  1571 + EditMessSufixEarnSingular.Visible:= not LVisible;
  1572 + EditMessSufixEarnSingular.Text := '';
  1573 + EditMessSufixZero.Visible:= not LVisible;
  1574 + EditMessSufixZero.Text := '';
  1575 +end;
  1576 +
1430 1577
1431 procedure TFormDesigner.ConsequenceStyleChange(Sender: TObject); 1578 procedure TFormDesigner.ConsequenceStyleChange(Sender: TObject);
1432 var 1579 var
units/game_actors_point.pas
@@ -29,7 +29,6 @@ type @@ -29,7 +29,6 @@ type
29 function GetResultAsString: string; 29 function GetResultAsString: string;
30 function GetValue: integer; 30 function GetValue: integer;
31 public 31 public
32 - //Cycles : integer; // specify when present points regarding condition cycles  
33 constructor Create(AOwner:TComponent;AValue : integer);overload; 32 constructor Create(AOwner:TComponent;AValue : integer);overload;
34 constructor Create(AOwner:TComponent;AValue : array of integer); overload; 33 constructor Create(AOwner:TComponent;AValue : array of integer); overload;
35 constructor Create(AOwner:TComponent;AResult : string); overload; 34 constructor Create(AOwner:TComponent;AResult : string); overload;
@@ -37,17 +36,17 @@ type @@ -37,17 +36,17 @@ type
37 APrependEarn,AAppendiceEarnSingular,AAppendiceEarnPlural,AAppendiceZero: string; IsGroupPoint: Boolean) : string; 36 APrependEarn,AAppendiceEarnSingular,AAppendiceEarnPlural,AAppendiceZero: string; IsGroupPoint: Boolean) : string;
38 property ValueWithVariation : integer read GetValue write FValue; 37 property ValueWithVariation : integer read GetValue write FValue;
39 property Variation : integer read FVariation write FVariation; 38 property Variation : integer read FVariation write FVariation;
40 -  
41 property AsString : string read GetResultAsString; 39 property AsString : string read GetResultAsString;
42 property ResultAsInteger : integer read GetResult; 40 property ResultAsInteger : integer read GetResult;
43 end; 41 end;
44 42
45 //operator :=(I :integer) : TGamePoint; 43 //operator :=(I :integer) : TGamePoint;
46 //operator :=(A : array of integer):TGamePoint; 44 //operator :=(A : array of integer):TGamePoint;
47 -// 45 +
48 implementation 46 implementation
49 47
50 uses strutils; 48 uses strutils;
  49 +
51 //operator:=(I: integer):TGamePoint; 50 //operator:=(I: integer):TGamePoint;
52 //begin 51 //begin
53 // Result := ; 52 // Result := ;
@@ -106,6 +105,7 @@ function TGamePoint.PointMessage(APrepend, @@ -106,6 +105,7 @@ function TGamePoint.PointMessage(APrepend,
106 105
107 procedure ReadCustomMessage; 106 procedure ReadCustomMessage;
108 begin 107 begin
  108 + Result := APrepend;
109 case FResult of 109 case FResult of
110 -MaxInt..-2: Result += #32+APrependLoss+#32+Self.AsString+#32+AAppendiceLossPlural; 110 -MaxInt..-2: Result += #32+APrependLoss+#32+Self.AsString+#32+AAppendiceLossPlural;
111 -1 : Result += #32+APrependLoss+#32+Self.AsString+#32+AAppendiceLossSingular; 111 -1 : Result += #32+APrependLoss+#32+Self.AsString+#32+AAppendiceLossSingular;
@@ -115,52 +115,58 @@ function TGamePoint.PointMessage(APrepend, @@ -115,52 +115,58 @@ function TGamePoint.PointMessage(APrepend,
115 end; 115 end;
116 end; 116 end;
117 117
  118 + procedure ReadBuiltInGroupMessage;
  119 + begin
  120 + Result := 'Vocês';
  121 + case FResult of
  122 + -MaxInt..-2: Result += #32+'retiraram'+#32+Self.AsString+#32+'itens escolares de uma escola pública';
  123 + -1 : Result += #32+'retiraram'+#32+Self.AsString+#32+'item escolar de uma escola pública';
  124 + 0 : Result += #32+'não doaram e nem retiraram itens escolares';
  125 + 1 : Result += #32+'doaram'+#32+Self.AsString+#32+'item escolar a uma escola pública';
  126 + 2..MaxInt: Result += #32+'doaram'+#32+Self.AsString+#32+'itens escolares a uma escola pública';
  127 + end;
  128 + Result += '.';
  129 + end;
  130 +
  131 + procedure ReadBuiltInIndividualMessage;
  132 + begin
  133 + Result := '$NICNAME';
  134 + case FResult of
  135 + -MaxInt..-2: Result += #32+'perdeu'+#32+Self.AsString+#32+'pontos';
  136 + -1 : Result += #32+'perdeu'+#32+Self.AsString+#32+'ponto';
  137 + 0 : Result += #32+'não perdeu nem ganhou pontos';
  138 + 1 : Result += #32+'ganhou'+#32+Self.AsString+#32+'ponto';
  139 + 2..MaxInt: Result += #32+'ganhou'+#32+Self.AsString+#32+'pontos';
  140 + end;
  141 + Result += '.';
  142 + end;
  143 +
118 begin 144 begin
119 - if IsGroupPoint then 145 + if (APrependLoss = '') and (AAppendiceLossSingular = '') and (AAppendiceLossPlural = '') and
  146 + (APrependEarn = '') and (AAppendiceEarnSingular = '') and (AAppendiceEarnPlural = '') and
  147 + (AAppendiceZero = '') and (APrepend <> '') then
120 begin 148 begin
121 - if APrepend = '' then  
122 - Result := 'Vocês'  
123 - else  
124 - Result := APrepend;  
125 -  
126 - if (APrependLoss = '') or (AAppendiceLossSingular = '') or (AAppendiceLossPlural = '') or  
127 - (APrependEarn = '') or (AAppendiceEarnSingular = '') or (AAppendiceEarnPlural = '') or  
128 - (AAppendiceZero = '') then  
129 - begin  
130 - case FResult of  
131 - -MaxInt..-2: Result += #32+'retiraram'+#32+Self.AsString+#32+'itens escolares de uma escola pública';  
132 - -1 : Result += #32+'retiraram'+#32+Self.AsString+#32+'item escolar de uma escola pública';  
133 - 0 : Result += #32+'não doaram e nem retiraram itens escolares';  
134 - 1 : Result += #32+'doaram'+#32+Self.AsString+#32+'item escolar a uma escola pública';  
135 - 2..MaxInt: Result += #32+'doaram'+#32+Self.AsString+#32+'itens escolares a uma escola pública';  
136 - end;  
137 - end  
138 - else  
139 - ReadCustomMessage;  
140 - end  
141 - else 149 + Result := APrepend;
  150 + Exit;
  151 + end;
  152 +
  153 + if (APrependLoss <> '') and (AAppendiceLossSingular <> '') and (AAppendiceLossPlural <> '') and
  154 + (APrependEarn <> '') and (AAppendiceEarnSingular <> '') and (AAppendiceEarnPlural <> '') and
  155 + (AAppendiceZero <> '') and (APrepend <> '') then
142 begin 156 begin
143 - if APrepend = '' then  
144 - Result := 'Alguém'  
145 - else  
146 - Result := APrepend;  
147 -  
148 - if (APrependLoss = '') or (AAppendiceLossSingular = '') or (AAppendiceLossPlural = '') or  
149 - (APrependEarn = '') or (AAppendiceEarnSingular = '') or (AAppendiceEarnPlural = '') or  
150 - (AAppendiceZero = '') then  
151 - begin  
152 - case FResult of  
153 - -MaxInt..-2: Result += #32+'perdeu'+#32+Self.AsString+#32+'pontos';  
154 - -1 : Result += #32+'perdeu'+#32+Self.AsString+#32+'ponto';  
155 - 0 : Result += #32+'não perdeu nem ganhou pontos';  
156 - 1 : Result += #32+'ganhou'+#32+Self.AsString+#32+'ponto';  
157 - 2..MaxInt: Result += #32+'ganhou'+#32+Self.AsString+#32+'pontos';  
158 - end;  
159 - end  
160 - else  
161 - ReadCustomMessage; 157 + ReadCustomMessage;
  158 + Exit;
162 end; 159 end;
163 - Result += '.'; 160 +
  161 + if (APrependLoss = '') and (AAppendiceLossSingular = '') and (AAppendiceLossPlural = '') and
  162 + (APrependEarn = '') and (AAppendiceEarnSingular = '') and (AAppendiceEarnPlural = '') and
  163 + (AAppendiceZero = '') and (APrepend = '') then
  164 + begin
  165 + if IsGroupPoint then
  166 + ReadBuiltInGroupMessage
  167 + else
  168 + ReadBuiltInIndividualMessage;
  169 + end;
164 end; 170 end;
165 171
166 172
units/game_resources.pas
@@ -74,8 +74,13 @@ resourcestring @@ -74,8 +74,13 @@ resourcestring
74 KEY_CRITERIA = '.Resposta'; 74 KEY_CRITERIA = '.Resposta';
75 KEY_CONSEQUE = '.Consequência'; // A,B,G,CSQCODE 75 KEY_CONSEQUE = '.Consequência'; // A,B,G,CSQCODE
76 KEY_CONSEQUE_MESSAGE_PREPEND = '.Consequência.Mensagem.Prefixo'; 76 KEY_CONSEQUE_MESSAGE_PREPEND = '.Consequência.Mensagem.Prefixo';
77 - KEY_CONSEQUE_MESSAGE_APPENDS = '.Consequência.Mensagem.Sufixo.Singular';  
78 - KEY_CONSEQUE_MESSAGE_APPENDP = '.Consequência.Mensagem.Sufixo.Plural'; 77 + KEY_CONSEQUE_MESSAGE_PREPEND_LOSS = '.Consequência.Mensagem.Prefixo_ao_perder';
  78 + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_S = '.Consequência.Mensagem.Sufixo_ao_perder.Singular';
  79 + KEY_CONSEQUE_MESSAGE_APPEND_LOSS_P = '.Consequência.Mensagem.Sufixo_ao_perder.Plural';
  80 + KEY_CONSEQUE_MESSAGE_PREPEND_EARN = '.Consequência.Mensagem.Prefixo_ao_ganhar';
  81 + KEY_CONSEQUE_MESSAGE_APPEND_EARN_S = '.Consequência.Mensagem.Sufixo_ao_ganhar.Singular';
  82 + KEY_CONSEQUE_MESSAGE_APPEND_EARN_P = '.Consequência.Mensagem.Sufixo_ao_ganhar.Plural';
  83 + KEY_CONSEQUE_MESSAGE_APPEND_ZERO = '.Consequência.Mensagem.Sufixo_zero';
79 84
80 VAL_CONSEQUENCE = 'Cosequência'; 85 VAL_CONSEQUENCE = 'Cosequência';
81 VAL_RESEARCHER = 'Pesquisador'; 86 VAL_RESEARCHER = 'Pesquisador';