Commit b3f417fe5880283ff32d08dccec6f57c30f804c7

Authored by Carlos Picanco
1 parent a1b6309a
Exists in master

first prototype GUI for creating and editing free-mtrix experiments

experiment_designer/experiment_designer.lpi 0 → 100644
... ... @@ -0,0 +1,84 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<CONFIG>
  3 + <ProjectOptions>
  4 + <Version Value="9"/>
  5 + <General>
  6 + <SessionStorage Value="InProjectDir"/>
  7 + <MainUnit Value="0"/>
  8 + <Title Value="experiment_designer"/>
  9 + <ResourceType Value="res"/>
  10 + <UseXPManifest Value="True"/>
  11 + <Icon Value="0"/>
  12 + </General>
  13 + <i18n>
  14 + <EnableI18N LFM="False"/>
  15 + </i18n>
  16 + <VersionInfo>
  17 + <StringTable ProductVersion=""/>
  18 + </VersionInfo>
  19 + <BuildModes Count="1">
  20 + <Item1 Name="Default" Default="True"/>
  21 + </BuildModes>
  22 + <PublishOptions>
  23 + <Version Value="2"/>
  24 + </PublishOptions>
  25 + <RunParams>
  26 + <local>
  27 + <FormatVersion Value="1"/>
  28 + </local>
  29 + </RunParams>
  30 + <RequiredPackages Count="1">
  31 + <Item1>
  32 + <PackageName Value="LCL"/>
  33 + </Item1>
  34 + </RequiredPackages>
  35 + <Units Count="3">
  36 + <Unit0>
  37 + <Filename Value="experiment_designer.lpr"/>
  38 + <IsPartOfProject Value="True"/>
  39 + </Unit0>
  40 + <Unit1>
  41 + <Filename Value="form_main.pas"/>
  42 + <IsPartOfProject Value="True"/>
  43 + <ComponentName Value="FormDesigner"/>
  44 + <HasResources Value="True"/>
  45 + <ResourceBaseClass Value="Form"/>
  46 + </Unit1>
  47 + <Unit2>
  48 + <Filename Value="../units/game_actors_helpers.pas"/>
  49 + <IsPartOfProject Value="True"/>
  50 + </Unit2>
  51 + </Units>
  52 + </ProjectOptions>
  53 + <CompilerOptions>
  54 + <Version Value="11"/>
  55 + <Target>
  56 + <Filename Value="experiment_designer"/>
  57 + </Target>
  58 + <SearchPaths>
  59 + <IncludeFiles Value="$(ProjOutDir)"/>
  60 + <OtherUnitFiles Value="../units"/>
  61 + <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
  62 + </SearchPaths>
  63 + <Linking>
  64 + <Options>
  65 + <Win32>
  66 + <GraphicApplication Value="True"/>
  67 + </Win32>
  68 + </Options>
  69 + </Linking>
  70 + </CompilerOptions>
  71 + <Debugging>
  72 + <Exceptions Count="3">
  73 + <Item1>
  74 + <Name Value="EAbort"/>
  75 + </Item1>
  76 + <Item2>
  77 + <Name Value="ECodetoolError"/>
  78 + </Item2>
  79 + <Item3>
  80 + <Name Value="EFOpenError"/>
  81 + </Item3>
  82 + </Exceptions>
  83 + </Debugging>
  84 +</CONFIG>
... ...
experiment_designer/experiment_designer.lpr 0 → 100644
... ... @@ -0,0 +1,21 @@
  1 +program experiment_designer;
  2 +
  3 +{$mode objfpc}{$H+}
  4 +
  5 +uses
  6 + {$IFDEF UNIX}{$IFDEF UseCThreads}
  7 + cthreads,
  8 + {$ENDIF}{$ENDIF}
  9 + Interfaces, // this includes the LCL widgetset
  10 + Forms, form_main
  11 + { you can add units after this };
  12 +
  13 +{$R *.res}
  14 +
  15 +begin
  16 + RequireDerivedFormResource:=True;
  17 + Application.Initialize;
  18 + Application.CreateForm(TFormDesigner, FormDesigner);
  19 + Application.Run;
  20 +end.
  21 +
... ...
experiment_designer/form_main.lfm 0 → 100644
... ... @@ -0,0 +1,828 @@
  1 +object FormDesigner: TFormDesigner
  2 + Left = 114
  3 + Height = 635
  4 + Top = 53
  5 + Width = 656
  6 + HorzScrollBar.Page = 521
  7 + VertScrollBar.Page = 616
  8 + AutoScroll = True
  9 + Caption = 'Planejar Experimento'
  10 + ClientHeight = 616
  11 + ClientWidth = 646
  12 + Menu = MainMenu1
  13 + OnCreate = FormCreate
  14 + OnDestroy = FormDestroy
  15 + SessionProperties = 'Caption;ComboCurrentCondition.ItemIndex;ComboCurrentCondition.Items;ComboCurrentContingency.ItemIndex;ComboCurrentContingency.Items;Height;Left;PageControl.TabIndex;Top;Width;WindowState'
  16 + LCLVersion = '1.6.2.0'
  17 + object PageControl: TPageControl
  18 + Left = 0
  19 + Height = 711
  20 + Top = 0
  21 + Width = 646
  22 + ActivePage = TabSheetConditions
  23 + Align = alClient
  24 + TabIndex = 1
  25 + TabOrder = 0
  26 + object TabSheetExperiment: TTabSheet
  27 + Caption = 'Experimento'
  28 + ChildSizing.TopBottomSpacing = 10
  29 + ChildSizing.VerticalSpacing = 5
  30 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  31 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  32 + ChildSizing.ControlsPerLine = 1
  33 + ClientHeight = 678
  34 + ClientWidth = 640
  35 + object LabelResearcherName: TLabel
  36 + Left = 0
  37 + Height = 15
  38 + Top = 10
  39 + Width = 619
  40 + Caption = 'Nome do Pesquisador'
  41 + ParentColor = False
  42 + end
  43 + object EditResearcherName: TEdit
  44 + Left = 0
  45 + Height = 25
  46 + Hint = 'Uma pasta será criada com o seu nome. Os seus experimentos serão salvos dentro dela.'
  47 + Top = 30
  48 + Width = 619
  49 + TabOrder = 0
  50 + end
  51 + object LabelExperimentName: TLabel
  52 + Left = 0
  53 + Height = 15
  54 + Top = 60
  55 + Width = 619
  56 + Caption = 'Nome do Experimento'
  57 + ParentColor = False
  58 + end
  59 + object EditExperimentName: TEdit
  60 + Left = 0
  61 + Height = 25
  62 + Hint = 'Uma pasta será criada com o nome do experimento. Os dados desse experimento serão salvos dentro dela.'
  63 + Top = 80
  64 + Width = 619
  65 + TabOrder = 1
  66 + end
  67 + object GBExperimentAim: TGroupBox
  68 + Left = 0
  69 + Height = 159
  70 + Top = 110
  71 + Width = 619
  72 + Caption = 'Objetivo do Experimento'
  73 + ClientHeight = 142
  74 + ClientWidth = 615
  75 + TabOrder = 2
  76 + object MemoExperimentAim: TMemo
  77 + Left = 0
  78 + Height = 142
  79 + Top = 0
  80 + Width = 615
  81 + Align = alCustom
  82 + Anchors = [akTop, akLeft, akRight]
  83 + TabOrder = 0
  84 + end
  85 + end
  86 + object CGGlobal: TCheckGroup
  87 + Left = 0
  88 + Height = 113
  89 + Hint = 'Aplicáveis ao longo de todo o experimento'
  90 + Top = 274
  91 + Width = 619
  92 + AutoFill = True
  93 + Caption = 'Configurações globais'
  94 + ChildSizing.LeftRightSpacing = 6
  95 + ChildSizing.TopBottomSpacing = 6
  96 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  97 + ChildSizing.EnlargeVertical = crsHomogenousChildResize
  98 + ChildSizing.ShrinkHorizontal = crsScaleChilds
  99 + ChildSizing.ShrinkVertical = crsScaleChilds
  100 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  101 + ChildSizing.ControlsPerLine = 1
  102 + ClientHeight = 96
  103 + ClientWidth = 615
  104 + Items.Strings = (
  105 + 'Enviar histórico do bate-papo a novos participantes'
  106 + 'Gerar participantes automaticamente'
  107 + 'Habilitar matrix para o pesquisador jogar'
  108 + 'Habilitar bate-papo para o pesquisador'
  109 + )
  110 + TabOrder = 3
  111 + Data = {
  112 + 0400000002030202
  113 + }
  114 + end
  115 + object RGPoints: TRadioGroup
  116 + Left = 0
  117 + Height = 59
  118 + Top = 392
  119 + Width = 619
  120 + AutoFill = True
  121 + Caption = 'Tipo de pontuação'
  122 + ChildSizing.LeftRightSpacing = 6
  123 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  124 + ChildSizing.EnlargeVertical = crsHomogenousChildResize
  125 + ChildSizing.ShrinkHorizontal = crsScaleChilds
  126 + ChildSizing.ShrinkVertical = crsScaleChilds
  127 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  128 + ChildSizing.ControlsPerLine = 1
  129 + ClientHeight = 42
  130 + ClientWidth = 615
  131 + ItemIndex = 0
  132 + Items.Strings = (
  133 + 'A e B'
  134 + 'Apenas um tipo'
  135 + )
  136 + OnClick = RGPointsClick
  137 + TabOrder = 4
  138 + end
  139 + object CGMatrix: TCheckGroup
  140 + Left = 0
  141 + Height = 134
  142 + Top = 456
  143 + Width = 619
  144 + AutoFill = True
  145 + Caption = 'Tipo da matrix'
  146 + ChildSizing.LeftRightSpacing = 6
  147 + ChildSizing.TopBottomSpacing = 6
  148 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  149 + ChildSizing.EnlargeVertical = crsHomogenousChildResize
  150 + ChildSizing.ShrinkHorizontal = crsScaleChilds
  151 + ChildSizing.ShrinkVertical = crsScaleChilds
  152 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  153 + ChildSizing.ControlsPerLine = 1
  154 + ClientHeight = 117
  155 + ClientWidth = 615
  156 + Items.Strings = (
  157 + '5 cores'
  158 + '10 Linhas'
  159 + '10 Colunas'
  160 + 'Círculos'
  161 + 'Círculos Vazados'
  162 + )
  163 + TabOrder = 5
  164 + Data = {
  165 + 050000000303020202
  166 + }
  167 + end
  168 + object GBConditions: TGroupBox
  169 + Left = 0
  170 + Height = 97
  171 + Top = 595
  172 + Width = 619
  173 + Caption = 'Condições'
  174 + ClientHeight = 80
  175 + ClientWidth = 615
  176 + TabOrder = 6
  177 + object ListBoxConditions: TListBox
  178 + Left = 0
  179 + Height = 80
  180 + Top = 0
  181 + Width = 615
  182 + Anchors = [akTop, akLeft, akRight]
  183 + ItemHeight = 0
  184 + ScrollWidth = 613
  185 + TabOrder = 0
  186 + TopIndex = -1
  187 + end
  188 + end
  189 + end
  190 + object TabSheetConditions: TTabSheet
  191 + Caption = 'Condições'
  192 + ChildSizing.TopBottomSpacing = 10
  193 + ChildSizing.VerticalSpacing = 5
  194 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  195 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  196 + ChildSizing.ControlsPerLine = 1
  197 + ClientHeight = 678
  198 + ClientWidth = 640
  199 + object ComboCurrentCondition: TComboBox
  200 + Left = 0
  201 + Height = 27
  202 + Top = 10
  203 + Width = 640
  204 + ItemHeight = 0
  205 + Style = csDropDownList
  206 + TabOrder = 0
  207 + end
  208 + object PanelConditionButtons: TPanel
  209 + Left = 0
  210 + Height = 26
  211 + Top = 42
  212 + Width = 640
  213 + ChildSizing.LeftRightSpacing = 25
  214 + ChildSizing.HorizontalSpacing = 50
  215 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  216 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  217 + ChildSizing.ControlsPerLine = 3
  218 + ClientHeight = 26
  219 + ClientWidth = 640
  220 + TabOrder = 1
  221 + object BtnAppendCond: TButton
  222 + Left = 25
  223 + Height = 25
  224 + Top = 0
  225 + Width = 162
  226 + Caption = 'Adicionar'
  227 + TabOrder = 0
  228 + end
  229 + object BtnRemoveCond: TButton
  230 + Left = 237
  231 + Height = 25
  232 + Top = 0
  233 + Width = 159
  234 + Caption = 'Remover'
  235 + TabOrder = 1
  236 + end
  237 + object BtnReorderCond: TButton
  238 + Left = 446
  239 + Height = 25
  240 + Top = 0
  241 + Width = 169
  242 + Caption = 'Reordenar'
  243 + TabOrder = 2
  244 + end
  245 + end
  246 + object LabelConditionName: TLabel
  247 + Left = 0
  248 + Height = 15
  249 + Hint = 'Nome da condição no relatório.'
  250 + Top = 73
  251 + Width = 640
  252 + Caption = 'Nome da Condição'
  253 + ParentColor = False
  254 + end
  255 + object EditConditionName: TEdit
  256 + Left = 0
  257 + Height = 25
  258 + Top = 93
  259 + Width = 640
  260 + TabOrder = 2
  261 + end
  262 + object LabelTurnValue: TLabel
  263 + Left = 0
  264 + Height = 15
  265 + Top = 123
  266 + Width = 640
  267 + Caption = 'Número de Jogadores / Turnos'
  268 + ParentColor = False
  269 + end
  270 + object SpinEditTurnValue: TSpinEdit
  271 + Left = 0
  272 + Height = 25
  273 + Top = 143
  274 + Width = 640
  275 + MaxValue = 5
  276 + MinValue = 2
  277 + TabOrder = 3
  278 + Value = 2
  279 + end
  280 + object LabelCyclesValue: TLabel
  281 + Left = 0
  282 + Height = 15
  283 + Top = 173
  284 + Width = 640
  285 + Caption = 'Ciclos para mudança de geração / linhagem'
  286 + ParentColor = False
  287 + end
  288 + object SpinEditCyclesValue: TSpinEdit
  289 + Left = 0
  290 + Height = 25
  291 + Top = 193
  292 + Width = 640
  293 + MaxValue = 1000
  294 + MinValue = 1
  295 + TabOrder = 4
  296 + Value = 1
  297 + end
  298 + object GBQuestion: TGroupBox
  299 + Left = 0
  300 + Height = 144
  301 + Top = 223
  302 + Width = 640
  303 + Caption = 'Apresentar pergunta ao final do ciclo'
  304 + ChildSizing.LeftRightSpacing = 50
  305 + ChildSizing.VerticalSpacing = 5
  306 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  307 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  308 + ChildSizing.ControlsPerLine = 1
  309 + ClientHeight = 127
  310 + ClientWidth = 636
  311 + TabOrder = 8
  312 + object CheckBoxShouldAskQuestion: TCheckBox
  313 + Left = 50
  314 + Height = 21
  315 + Top = 0
  316 + Width = 536
  317 + Caption = 'Não'
  318 + OnChange = CheckBoxShouldAskQuestionChange
  319 + TabOrder = 0
  320 + end
  321 + object EditQuestion: TEdit
  322 + Left = 50
  323 + Height = 25
  324 + Top = 26
  325 + Width = 536
  326 + TabOrder = 1
  327 + Text = 'Um item escolar foi perdido, desejam recuperá-lo gastando pontos do Tipo A?'
  328 + Visible = False
  329 + end
  330 + object CGQuestion: TCheckGroup
  331 + Left = 50
  332 + Height = 71
  333 + Top = 56
  334 + Width = 536
  335 + AutoFill = True
  336 + Caption = 'O que deve acontecer quando todos responderem sim?'
  337 + ChildSizing.LeftRightSpacing = 6
  338 + ChildSizing.TopBottomSpacing = 6
  339 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  340 + ChildSizing.EnlargeVertical = crsHomogenousChildResize
  341 + ChildSizing.ShrinkHorizontal = crsScaleChilds
  342 + ChildSizing.ShrinkVertical = crsScaleChilds
  343 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  344 + ChildSizing.ControlsPerLine = 1
  345 + ClientHeight = 54
  346 + ClientWidth = 532
  347 + Items.Strings = (
  348 + 'Reverter consequências das metacontingências e contingências'
  349 + 'Inverter pontos A e B quando pontos B forem consequências'
  350 + )
  351 + TabOrder = 2
  352 + Visible = False
  353 + Data = {
  354 + 020000000303
  355 + }
  356 + end
  357 + end
  358 + object RGEndCriteriaStyle: TRadioGroup
  359 + Left = 0
  360 + Height = 80
  361 + Top = 372
  362 + Width = 640
  363 + AutoFill = True
  364 + Caption = 'Estilo do critério de finalização da condição'
  365 + ChildSizing.LeftRightSpacing = 6
  366 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  367 + ChildSizing.EnlargeVertical = crsHomogenousChildResize
  368 + ChildSizing.ShrinkHorizontal = crsScaleChilds
  369 + ChildSizing.ShrinkVertical = crsScaleChilds
  370 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  371 + ChildSizing.ControlsPerLine = 1
  372 + ClientHeight = 63
  373 + ClientWidth = 636
  374 + ItemIndex = 2
  375 + Items.Strings = (
  376 + 'Finalizar após um número de ciclos'
  377 + 'Finalizar quando uma porcentagem de entrelaçamentos for atingida'
  378 + 'O que ocorrer primeiro (ciclos ou entrelaçamentos)'
  379 + )
  380 + OnClick = RGEndCriteriaStyleClick
  381 + TabOrder = 6
  382 + end
  383 + object GBEndCriteria: TGroupBox
  384 + Left = 0
  385 + Height = 109
  386 + Top = 457
  387 + Width = 640
  388 + Caption = 'Valores do critério de finalização da condição'
  389 + ChildSizing.LeftRightSpacing = 50
  390 + ChildSizing.VerticalSpacing = 5
  391 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  392 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  393 + ChildSizing.ControlsPerLine = 1
  394 + ClientHeight = 92
  395 + ClientWidth = 636
  396 + TabOrder = 5
  397 + object LabelEndCriteriaAbsCycles: TLabel
  398 + Left = 50
  399 + Height = 15
  400 + Top = 0
  401 + Width = 536
  402 + Caption = 'Número de ciclos'
  403 + ParentColor = False
  404 + end
  405 + object SpinEditEndCriteriaAbsCycles: TSpinEdit
  406 + Left = 50
  407 + Height = 25
  408 + Top = 20
  409 + Width = 536
  410 + MaxValue = 1000
  411 + TabOrder = 0
  412 + Value = 20
  413 + end
  414 + object GBEndCriteriaLastCycles: TGroupBox
  415 + Left = 50
  416 + Height = 42
  417 + Top = 50
  418 + Width = 536
  419 + Caption = 'Porcentagem de entrelaçamentos'
  420 + ChildSizing.HorizontalSpacing = 5
  421 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  422 + ChildSizing.ControlsPerLine = 4
  423 + ClientHeight = 25
  424 + ClientWidth = 532
  425 + TabOrder = 1
  426 + object SpinEditEndCriteriaInterlockingPorcentage: TSpinEdit
  427 + Left = 0
  428 + Height = 25
  429 + Top = 0
  430 + Width = 50
  431 + TabOrder = 0
  432 + Value = 80
  433 + end
  434 + object LabelEndCriteriaInt: TLabel
  435 + Left = 55
  436 + Height = 25
  437 + Top = 0
  438 + Width = 206
  439 + Alignment = taCenter
  440 + Caption = '% de entrelaçamentos nos últimos '
  441 + Layout = tlCenter
  442 + ParentColor = False
  443 + end
  444 + object SpinEditEndCriteriaLastCycles: TSpinEdit
  445 + Left = 266
  446 + Height = 25
  447 + Top = 0
  448 + Width = 50
  449 + MaxValue = 1000
  450 + MinValue = 2
  451 + TabOrder = 1
  452 + Value = 10
  453 + end
  454 + object LabelEndCriteriaLastCycles: TLabel
  455 + Left = 321
  456 + Height = 25
  457 + Top = 0
  458 + Width = 35
  459 + Alignment = taCenter
  460 + Caption = 'ciclos.'
  461 + Layout = tlCenter
  462 + ParentColor = False
  463 + end
  464 + end
  465 + end
  466 + object GBContingencies: TGroupBox
  467 + Left = 0
  468 + Height = 97
  469 + Top = 571
  470 + Width = 640
  471 + Caption = 'Contingências e Metacontingências'
  472 + ClientHeight = 80
  473 + ClientWidth = 636
  474 + TabOrder = 7
  475 + object ListBoxContingencies: TListBox
  476 + Left = 0
  477 + Height = 80
  478 + Top = 0
  479 + Width = 636
  480 + Anchors = [akTop, akLeft, akRight]
  481 + ItemHeight = 0
  482 + ScrollWidth = 634
  483 + TabOrder = 0
  484 + TopIndex = -1
  485 + end
  486 + end
  487 + end
  488 + object TabSheetContingencies: TTabSheet
  489 + Caption = 'Contingências'
  490 + ChildSizing.TopBottomSpacing = 10
  491 + ChildSizing.VerticalSpacing = 5
  492 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  493 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  494 + ChildSizing.ControlsPerLine = 1
  495 + ClientHeight = 678
  496 + ClientWidth = 640
  497 + object ComboCurrentContingency: TComboBox
  498 + Left = 0
  499 + Height = 27
  500 + Top = 10
  501 + Width = 650
  502 + ItemHeight = 0
  503 + Style = csDropDownList
  504 + TabOrder = 0
  505 + end
  506 + object PanelContingenciesButtons: TPanel
  507 + Left = 0
  508 + Height = 26
  509 + Top = 42
  510 + Width = 650
  511 + ChildSizing.LeftRightSpacing = 25
  512 + ChildSizing.HorizontalSpacing = 50
  513 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  514 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  515 + ChildSizing.ControlsPerLine = 3
  516 + ClientHeight = 26
  517 + ClientWidth = 650
  518 + TabOrder = 1
  519 + object BtnAppendContingency: TButton
  520 + Left = 25
  521 + Height = 25
  522 + Top = 0
  523 + Width = 166
  524 + Caption = 'Adicionar'
  525 + TabOrder = 0
  526 + end
  527 + object BtnRemoveContingency: TButton
  528 + Left = 241
  529 + Height = 25
  530 + Top = 0
  531 + Width = 163
  532 + Caption = 'Remover'
  533 + TabOrder = 1
  534 + end
  535 + object BtnReorderContingency: TButton
  536 + Left = 454
  537 + Height = 25
  538 + Top = 0
  539 + Width = 171
  540 + Caption = 'Reordenar'
  541 + TabOrder = 2
  542 + end
  543 + end
  544 + object CheckBoxIsMeta: TCheckBox
  545 + Left = 0
  546 + Height = 21
  547 + Top = 73
  548 + Width = 650
  549 + Caption = 'Meta'
  550 + OnChange = CheckBoxIsMetaChange
  551 + TabOrder = 2
  552 + end
  553 + object LabelContingencyName: TLabel
  554 + Left = 0
  555 + Height = 15
  556 + Top = 99
  557 + Width = 650
  558 + Caption = 'Nome da contingência'
  559 + ParentColor = False
  560 + end
  561 + object EditContingencyName: TEdit
  562 + Left = 0
  563 + Height = 25
  564 + Top = 119
  565 + Width = 650
  566 + TabOrder = 3
  567 + end
  568 + object RGContingencyStyle: TRadioGroup
  569 + Left = 0
  570 + Height = 122
  571 + Top = 149
  572 + Width = 650
  573 + AutoFill = True
  574 + Caption = 'Estilo da Resposta'
  575 + ChildSizing.LeftRightSpacing = 6
  576 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  577 + ChildSizing.EnlargeVertical = crsHomogenousChildResize
  578 + ChildSizing.ShrinkHorizontal = crsScaleChilds
  579 + ChildSizing.ShrinkVertical = crsScaleChilds
  580 + ChildSizing.Layout = cclLeftToRightThenTopToBottom
  581 + ChildSizing.ControlsPerLine = 1
  582 + ClientHeight = 105
  583 + ClientWidth = 646
  584 + ItemIndex = 0
  585 + Items.Strings = (
  586 + 'Extinção'
  587 + 'Linhas'
  588 + 'Cores'
  589 + 'Linhas e Cores'
  590 + 'Linhas ou Cores'
  591 + )
  592 + OnClick = RGContingencyStyleClick
  593 + TabOrder = 4
  594 + end
  595 + object LabelIf: TLabel
  596 + Left = 0
  597 + Height = 15
  598 + Top = 276
  599 + Width = 650
  600 + Alignment = taCenter
  601 + Caption = 'SE'
  602 + ParentColor = False
  603 + Visible = False
  604 + end
  605 + object GBContingencyRows: TGroupBox
  606 + Left = 0
  607 + Height = 40
  608 + Top = 296
  609 + Width = 650
  610 + Caption = 'Linhas'
  611 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  612 + ChildSizing.Layout = cclTopToBottomThenLeftToRight
  613 + ChildSizing.ControlsPerLine = 1
  614 + ClientHeight = 23
  615 + ClientWidth = 646
  616 + TabOrder = 5
  617 + Visible = False
  618 + object ComboBoxRows: TComboBox
  619 + Left = 0
  620 + Height = 23
  621 + Top = 0
  622 + Width = 646
  623 + ItemHeight = 0
  624 + ItemIndex = 0
  625 + Items.Strings = (
  626 + '1'
  627 + '2'
  628 + '3'
  629 + '4'
  630 + '5'
  631 + '6'
  632 + '7'
  633 + '8'
  634 + '9'
  635 + '10'
  636 + 'PARES'
  637 + 'IMPARES'
  638 + 'TUDO EXCETO PARES'
  639 + 'TUDO EXCETO IMPARES'
  640 + )
  641 + Style = csDropDownList
  642 + TabOrder = 0
  643 + Text = '1'
  644 + end
  645 + end
  646 + object LabelOperator: TLabel
  647 + Left = 0
  648 + Height = 15
  649 + Top = 341
  650 + Width = 650
  651 + Alignment = taCenter
  652 + Caption = 'E'
  653 + ParentColor = False
  654 + Visible = False
  655 + end
  656 + object GBContingencyColors: TGroupBox
  657 + Left = 0
  658 + Height = 40
  659 + Top = 361
  660 + Width = 650
  661 + Caption = 'Cores'
  662 + ClientHeight = 23
  663 + ClientWidth = 646
  664 + TabOrder = 6
  665 + Visible = False
  666 + object ComboBoxColors: TComboBox
  667 + Left = 0
  668 + Height = 27
  669 + Top = 0
  670 + Width = 641
  671 + ItemHeight = 0
  672 + ItemIndex = 5
  673 + Items.Strings = (
  674 + 'AMARELO'
  675 + 'VERMELHO'
  676 + 'ROXO'
  677 + 'AZUL'
  678 + 'VERDE'
  679 + 'DIFERENTES'
  680 + 'IGUAIS'
  681 + )
  682 + Style = csDropDownList
  683 + TabOrder = 0
  684 + Text = 'DIFERENTES'
  685 + end
  686 + end
  687 + object LabelThen: TLabel
  688 + Left = 0
  689 + Height = 15
  690 + Top = 406
  691 + Width = 650
  692 + Alignment = taCenter
  693 + Caption = 'ENTÃO'
  694 + ParentColor = False
  695 + Visible = False
  696 + end
  697 + object GBContingencyConsequence: TGroupBox
  698 + Left = 0
  699 + Height = 59
  700 + Top = 426
  701 + Width = 650
  702 + Caption = 'Consequência'
  703 + ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
  704 + ChildSizing.Layout = cclTopToBottomThenLeftToRight
  705 + ChildSizing.ControlsPerLine = 2
  706 + ClientHeight = 42
  707 + ClientWidth = 646
  708 + TabOrder = 7
  709 + Visible = False
  710 + object LabelC1: TLabel
  711 + Left = 0
  712 + Height = 15
  713 + Top = 0
  714 + Width = 134
  715 + Caption = 'Prefixo'
  716 + ParentColor = False
  717 + end
  718 + object EditMessPrefix: TEdit
  719 + Left = 0
  720 + Height = 27
  721 + Top = 15
  722 + Width = 134
  723 + TabOrder = 0
  724 + Text = '$NICNAME produziu'
  725 + end
  726 + object LabelC4: TLabel
  727 + Left = 134
  728 + Height = 15
  729 + Top = 0
  730 + Width = 104
  731 + Caption = 'Pontos'
  732 + ParentColor = False
  733 + end
  734 + object SpinEditContingencyPoints: TSpinEdit
  735 + Left = 134
  736 + Height = 27
  737 + Top = 15
  738 + Width = 104
  739 + MaxValue = 1000
  740 + TabOrder = 2
  741 + Value = 1
  742 + end
  743 + object LabelC6: TLabel
  744 + Left = 238
  745 + Height = 15
  746 + Top = 0
  747 + Width = 154
  748 + Caption = 'do Tipo'
  749 + ParentColor = False
  750 + end
  751 + object CBPointsType: TComboBox
  752 + Left = 238
  753 + Height = 27
  754 + Top = 15
  755 + Width = 154
  756 + ItemHeight = 0
  757 + Style = csDropDownList
  758 + TabOrder = 4
  759 + end
  760 + object LabelC2: TLabel
  761 + Left = 392
  762 + Height = 15
  763 + Top = 0
  764 + Width = 134
  765 + Caption = 'Sufixo'
  766 + ParentColor = False
  767 + end
  768 + object EditMessSufix: TEdit
  769 + Left = 392
  770 + Height = 27
  771 + Top = 15
  772 + Width = 134
  773 + TabOrder = 1
  774 + Text = 'ponto.'
  775 + end
  776 + object LabelC5: TLabel
  777 + Left = 526
  778 + Height = 15
  779 + Top = 0
  780 + Width = 120
  781 + Caption = 'Apresentar'
  782 + ParentColor = False
  783 + end
  784 + object CheckBoxBroadcast: TCheckBox
  785 + Left = 526
  786 + Height = 27
  787 + Top = 15
  788 + Width = 120
  789 + Caption = 'a todos'
  790 + Checked = True
  791 + OnChange = CheckBoxBroadcastChange
  792 + State = cbChecked
  793 + TabOrder = 3
  794 + end
  795 + end
  796 + end
  797 + end
  798 + object MainMenu1: TMainMenu
  799 + left = 552
  800 + top = 8
  801 + object MenuItemFile: TMenuItem
  802 + Caption = 'Arquivo'
  803 + object MenuItemOpen: TMenuItem
  804 + Caption = 'Abrir'
  805 + OnClick = MenuItemOpenClick
  806 + end
  807 + object MenuItemSeparator1: TMenuItem
  808 + Caption = '-'
  809 + end
  810 + object MenuItemExit: TMenuItem
  811 + Caption = 'Exit'
  812 + OnClick = MenuItemExitClick
  813 + end
  814 + end
  815 + end
  816 + object OpenDialog: TOpenDialog
  817 + left = 464
  818 + top = 8
  819 + end
  820 + object XMLPropStorage: TXMLPropStorage
  821 + StoredValues = <>
  822 + FileName = 'persistence.xml'
  823 + OnSavingProperties = XMLPropStorageSavingProperties
  824 + OnRestoreProperties = XMLPropStorageRestoreProperties
  825 + left = 464
  826 + top = 64
  827 + end
  828 +end
... ...
experiment_designer/form_main.pas 0 → 100644
... ... @@ -0,0 +1,337 @@
  1 +unit form_main;
  2 +
  3 +{$mode objfpc}{$H+}
  4 +
  5 +interface
  6 +
  7 +uses
  8 + Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
  9 + Menus, ExtCtrls, StdCtrls, XMLPropStorage, IniFiles, Spin;
  10 +
  11 +type
  12 +
  13 + { TFormDesigner }
  14 +
  15 + TFormDesigner = class(TForm)
  16 + BtnAppendCond: TButton;
  17 + BtnAppendContingency: TButton;
  18 + BtnRemoveCond: TButton;
  19 + BtnRemoveContingency: TButton;
  20 + BtnReorderCond: TButton;
  21 + BtnReorderContingency: TButton;
  22 + CGGlobal: TCheckGroup;
  23 + CGMatrix: TCheckGroup;
  24 + CheckBoxBroadcast: TCheckBox;
  25 + CheckBoxIsMeta: TCheckBox;
  26 + CheckBoxShouldAskQuestion: TCheckBox;
  27 + CGQuestion: TCheckGroup;
  28 + ComboBoxRows: TComboBox;
  29 + ComboBoxColors: TComboBox;
  30 + CBPointsType: TComboBox;
  31 + ComboCurrentCondition: TComboBox;
  32 + ComboCurrentContingency: TComboBox;
  33 + EditMessPrefix: TEdit;
  34 + EditMessSufix: TEdit;
  35 + EditContingencyName: TEdit;
  36 + EditQuestion: TEdit;
  37 + EditConditionName: TEdit;
  38 + EditExperimentName: TEdit;
  39 + EditResearcherName: TEdit;
  40 + GBContingencies: TGroupBox;
  41 + GBContingencyColors: TGroupBox;
  42 + GBExperimentAim: TGroupBox;
  43 + GBConditions: TGroupBox;
  44 + GBEndCriteria: TGroupBox;
  45 + GBEndCriteriaLastCycles: TGroupBox;
  46 + GBQuestion: TGroupBox;
  47 + GBContingencyRows: TGroupBox;
  48 + GBContingencyConsequence: TGroupBox;
  49 + LabelC1: TLabel;
  50 + LabelC2: TLabel;
  51 + LabelC4: TLabel;
  52 + LabelC5: TLabel;
  53 + LabelC6: TLabel;
  54 + LabelThen: TLabel;
  55 + LabelOperator: TLabel;
  56 + LabelContingencyName: TLabel;
  57 + LabelEndCriteriaInt: TLabel;
  58 + LabelEndCriteriaLastCycles: TLabel;
  59 + LabelEndCriteriaAbsCycles: TLabel;
  60 + LabelCyclesValue: TLabel;
  61 + LabelIf: TLabel;
  62 + LabelTurnValue: TLabel;
  63 + LabelConditionName: TLabel;
  64 + LabelExperimentName: TLabel;
  65 + LabelResearcherName: TLabel;
  66 + ListBoxConditions: TListBox;
  67 + ListBoxContingencies: TListBox;
  68 + MainMenu1: TMainMenu;
  69 + MemoExperimentAim: TMemo;
  70 + MenuItemFile: TMenuItem;
  71 + MenuItemExit: TMenuItem;
  72 + MenuItemOpen: TMenuItem;
  73 + MenuItemSeparator1: TMenuItem;
  74 + OpenDialog: TOpenDialog;
  75 + PageControl: TPageControl;
  76 + PanelConditionButtons: TPanel;
  77 + PanelContingenciesButtons: TPanel;
  78 + RGContingencyStyle: TRadioGroup;
  79 + RGEndCriteriaStyle: TRadioGroup;
  80 + RGPoints: TRadioGroup;
  81 + SpinEditContingencyPoints: TSpinEdit;
  82 + SpinEditEndCriteriaInterlockingPorcentage: TSpinEdit;
  83 + SpinEditEndCriteriaLastCycles: TSpinEdit;
  84 + SpinEditEndCriteriaAbsCycles: TSpinEdit;
  85 + SpinEditCyclesValue: TSpinEdit;
  86 + SpinEditTurnValue: TSpinEdit;
  87 + TabSheetContingencies: TTabSheet;
  88 + TabSheetConditions: TTabSheet;
  89 + TabSheetExperiment: TTabSheet;
  90 + XMLPropStorage: TXMLPropStorage;
  91 + procedure CheckBoxBroadcastChange(Sender: TObject);
  92 + procedure CheckBoxIsMetaChange(Sender: TObject);
  93 + procedure CheckBoxShouldAskQuestionChange(Sender: TObject);
  94 + procedure FormCreate(Sender: TObject);
  95 + procedure FormDestroy(Sender: TObject);
  96 + procedure MenuItemExitClick(Sender: TObject);
  97 + procedure MenuItemOpenClick(Sender: TObject);
  98 + procedure RGContingencyStyleClick(Sender: TObject);
  99 + procedure RGEndCriteriaStyleClick(Sender: TObject);
  100 + procedure RGPointsClick(Sender: TObject);
  101 + procedure XMLPropStorageRestoreProperties(Sender: TObject);
  102 + procedure XMLPropStorageSavingProperties(Sender: TObject);
  103 + private
  104 + FExperiment : TIniFile;
  105 + public
  106 + { public declarations }
  107 + end;
  108 +
  109 +var
  110 + FormDesigner: TFormDesigner;
  111 +
  112 +implementation
  113 +
  114 +uses game_resources, game_file_methods;
  115 +
  116 +{$R *.lfm}
  117 +
  118 +{ TFormDesigner }
  119 +
  120 +
  121 +procedure TFormDesigner.MenuItemOpenClick(Sender: TObject);
  122 +begin
  123 + if OpenDialog.Execute then
  124 + begin
  125 + if FExperiment.FileName = OpenDialog.FileName then Exit;
  126 + FExperiment := TIniFile.Create(OpenDialog.FileName);
  127 + end;
  128 +end;
  129 +
  130 +procedure TFormDesigner.RGContingencyStyleClick(Sender: TObject);
  131 +var LVisible : Boolean;
  132 +begin
  133 + LVisible := True;
  134 + case TRadioGroup(Sender).ItemIndex of
  135 + 0:
  136 + begin
  137 + LabelIf.Visible:= not LVisible;
  138 + LabelThen.Visible:= not LVisible;
  139 + LabelOperator.Visible:= not LVisible;
  140 + GBContingencyRows.Visible:= not LVisible;
  141 + GBContingencyColors.Visible:= not LVisible;
  142 + GBContingencyConsequence.Visible:= not LVisible;
  143 + end;
  144 +
  145 + 1:
  146 + begin
  147 + LabelIf.Visible:= LVisible;
  148 + LabelThen.Visible:= LVisible;
  149 + LabelOperator.Visible:= not LVisible;
  150 + GBContingencyRows.Visible:= LVisible;
  151 + GBContingencyColors.Visible:= not LVisible;
  152 + GBContingencyConsequence.Visible:= LVisible;
  153 + end;
  154 +
  155 + 2:
  156 + begin
  157 + LabelIf.Visible:= LVisible;
  158 + LabelThen.Visible:= LVisible;
  159 + LabelOperator.Visible:= not LVisible;
  160 + GBContingencyRows.Visible:= not LVisible;
  161 + GBContingencyColors.Visible:= LVisible;
  162 + GBContingencyConsequence.Visible:= LVisible;
  163 + end;
  164 + 3:
  165 + begin
  166 + LabelIf.Visible:= LVisible;
  167 + LabelThen.Visible:= LVisible;
  168 + LabelOperator.Caption:='E';
  169 + LabelOperator.Visible:= LVisible;
  170 + GBContingencyRows.Visible:= LVisible;
  171 + GBContingencyColors.Visible:= LVisible;
  172 + GBContingencyConsequence.Visible:= LVisible;
  173 + end;
  174 + 4:
  175 + begin
  176 + LabelIf.Visible:= LVisible;
  177 + LabelThen.Visible:= LVisible;
  178 + LabelOperator.Caption:='OU';
  179 + LabelOperator.Visible:= LVisible;
  180 + GBContingencyRows.Visible:= LVisible;
  181 + GBContingencyColors.Visible:= LVisible;
  182 + GBContingencyConsequence.Visible:= LVisible;
  183 + end;
  184 + end;
  185 + CheckBoxIsMetaChange(CheckBoxIsMeta);
  186 +end;
  187 +
  188 +procedure TFormDesigner.RGEndCriteriaStyleClick(Sender: TObject);
  189 +begin
  190 + case TRadioGroup(Sender).ItemIndex of
  191 + 0:
  192 + begin
  193 + LabelEndCriteriaAbsCycles.Visible := True;
  194 + SpinEditEndCriteriaAbsCycles.Visible:= True;
  195 + GBEndCriteriaLastCycles.Visible:= False;
  196 +
  197 + end;
  198 + 1:
  199 + begin
  200 + LabelEndCriteriaAbsCycles.Visible := False;
  201 + SpinEditEndCriteriaAbsCycles.Visible:= False;
  202 + GBEndCriteriaLastCycles.Visible:= True;
  203 + end;
  204 + 2:
  205 + begin
  206 + LabelEndCriteriaAbsCycles.Visible := True;
  207 + SpinEditEndCriteriaAbsCycles.Visible:= True;
  208 + GBEndCriteriaLastCycles.Visible:= True;
  209 + end;
  210 + end;
  211 +end;
  212 +
  213 +procedure TFormDesigner.RGPointsClick(Sender: TObject);
  214 +begin
  215 + case TRadioGroup(Sender).ItemIndex of
  216 + 0:
  217 + begin
  218 + CBPointsType.Items.Clear;
  219 + CBPointsType.Items.Append('Individual A');
  220 + CBPointsType.Items.Append('Individual B');
  221 + CBPointsType.Items.Append('Para o Grupo');
  222 + end;
  223 +
  224 + 1:
  225 + begin
  226 + CBPointsType.Items.Clear;
  227 + CBPointsType.Items.Append('Individual');
  228 + CBPointsType.Items.Append('Para o Grupo');
  229 + end;
  230 + end;
  231 +end;
  232 +
  233 +procedure TFormDesigner.XMLPropStorageRestoreProperties(Sender: TObject);
  234 +//var
  235 +// i: Integer;
  236 +begin
  237 + //for i := 0 to CGGlobal.Items.Count-1 do
  238 + // CGGlobal.Checked[i] := StrToBool(XMLPropStorage.StoredValue['CGGLobal.Checked'+IntToStr(i)]);
  239 + //
  240 + //for i := 0 to CGMatrix.Items.Count-1 do
  241 + // CGMatrix.Checked[i] := StrToBool(XMLPropStorage.StoredValue['CGMatrix.Checked'+IntToStr(i)]);
  242 +end;
  243 +
  244 +procedure TFormDesigner.XMLPropStorageSavingProperties(Sender: TObject);
  245 +//var
  246 +// i: Integer;
  247 +begin
  248 + //for i := 0 to CGGlobal.Items.Count-1 do
  249 + // XMLPropStorage.StoredValue['CGGLobal.Checked'+IntToStr(i)] := BoolToStr(CGGLobal.Checked[i]);
  250 + //
  251 + //for i := 0 to CGMatrix.Items.Count-1 do
  252 + // XMLPropStorage.StoredValue['CGMatrix.Checked'+IntToStr(i)] := BoolToStr(CGMatrix.Checked[i]);
  253 +end;
  254 +
  255 +procedure TFormDesigner.MenuItemExitClick(Sender: TObject);
  256 +begin
  257 + Close;
  258 +end;
  259 +
  260 +procedure TFormDesigner.FormCreate(Sender: TObject);
  261 +//var
  262 +// LFileName: String;
  263 +begin
  264 + //LFileName := 'default.txt';
  265 + //IPSExperiment.IniFileName := LFileName;
  266 + //IPSExperiment.IniSection := SEC_EXPERIMENT;
  267 + //IPSConditions.IniFileName := LFileName;
  268 + //IPSConditions.IniSection := SEC_CONDITION;
  269 + //IPSPlayers.IniFileName := LFileName;
  270 + //IPSPlayers.IniSection := SEC_PLAYER;
  271 + RGPointsClick(RGPoints);
  272 + RGEndCriteriaStyleClick(RGEndCriteriaStyle);
  273 + FExperiment := TCIniFile.Create('default.txt');
  274 + //FExperiment.FileName;
  275 +end;
  276 +
  277 +procedure TFormDesigner.FormDestroy(Sender: TObject);
  278 +begin
  279 + FExperiment.Destroy;
  280 +end;
  281 +
  282 +procedure TFormDesigner.CheckBoxShouldAskQuestionChange(Sender: TObject);
  283 +begin
  284 + if TCheckBox(Sender).Checked then
  285 + TCheckBox(Sender).Caption := 'Sim'
  286 + else
  287 + TCheckBox(Sender).Caption := 'Não';
  288 +
  289 + EditQuestion.Visible := CheckBoxShouldAskQuestion.Checked;
  290 + CGQuestion.Visible := CheckBoxShouldAskQuestion.Checked;
  291 +end;
  292 +
  293 +procedure TFormDesigner.CheckBoxBroadcastChange(Sender: TObject);
  294 +begin
  295 + if TCheckBox(Sender).Checked then
  296 + TCheckBox(Sender).Caption := 'a todos'
  297 + else
  298 + TCheckBox(Sender).Caption := 'ao participante';
  299 +
  300 +end;
  301 +
  302 +procedure TFormDesigner.CheckBoxIsMetaChange(Sender: TObject);
  303 +var
  304 + i: Integer;
  305 +begin
  306 + if TCheckBox(Sender).Checked then
  307 + begin
  308 + ComboBoxRows.Items.Clear;
  309 + ComboBoxRows.Items.Append('PARES');
  310 + ComboBoxRows.Items.Append('IMPARES');
  311 +
  312 + ComboBoxColors.Items.Clear;
  313 + ComboBoxColors.Items.Append('CORES IGUAIS');
  314 + ComboBoxColors.Items.Append('CORES DIFERENTES');
  315 + ComboBoxColors.Items.Append('TUDO EXCETO CORES IGUAIS');
  316 + ComboBoxColors.Items.Append('TUDO EXCETO CORES DIFERENTES');
  317 + end
  318 + else
  319 + begin
  320 + ComboBoxRows.Items.Clear;
  321 + for i:=0 to 9 do
  322 + ComboBoxRows.Items.Append(IntToStr(i+1));
  323 +
  324 + ComboBoxRows.Items.Append('PAR');
  325 + ComboBoxRows.Items.Append('IMPAR');
  326 +
  327 + ComboBoxColors.Items.Clear;
  328 + ComboBoxColors.Items.Append('AMARELO');
  329 + ComboBoxColors.Items.Append('VERMELHO');
  330 + ComboBoxColors.Items.Append('ROXO');
  331 + ComboBoxColors.Items.Append('AZUL');
  332 + ComboBoxColors.Items.Append('VERDE');
  333 + end
  334 +end;
  335 +
  336 +end.
  337 +
... ...
experiment_designer/lib/x86_64-linux/experiment_designer.compiled 0 → 100644
... ... @@ -0,0 +1,5 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<CONFIG>
  3 + <Compiler Value="/usr/bin/fpc" Date="1449313866"/>
  4 + <Params Value=" -MObjFPC -Scghi -Cg -O1 -g -gl -l -vewnhibq -Fi/home/rafael/git/stimulus_control/tests/lacs-matrix/experiment_designer/lib/x86_64-linux -Fl/opt/gnome/lib -Fu/home/rafael/git/stimulus_control/tests/lacs-matrix/units -Fu/usr/share/lazarus/1.6.2/lcl/units/x86_64-linux/gtk2 -Fu/usr/share/lazarus/1.6.2/lcl/units/x86_64-linux -Fu/usr/share/lazarus/1.6.2/components/lazutils/lib/x86_64-linux -Fu/usr/share/lazarus/1.6.2/packager/units/x86_64-linux -Fu/home/rafael/git/stimulus_control/tests/lacs-matrix/experiment_designer/ -FU/home/rafael/git/stimulus_control/tests/lacs-matrix/experiment_designer/lib/x86_64-linux/ -dLCL -dLCLgtk2 experiment_designer.lpr"/>
  5 +</CONFIG>
... ...