%% Name=Demo
%% Identifier=CHECK_DEMO
%% Caption=Уставка Fault Enable Register
%% Title=Задайте Fault Enable Register:
%% Item0=Бит 0 - SPARE - Fixed to zero             - Не используется                  
%% Item1=Бит 1 - AC    - AC fail has occurred      - Сбой по питанию                  
%% Item2=Бит 2 - OTP   - OverTemperatureProtection - Защита по температуре            
%% Item3=Бит 3 - FOLD  - Foldback Protection       - Защита по току                   
%% Item4=Бит 4 - OVP   - OverVoltage Protection    - Защита по напряжению             
%% Item5=Бит 5 - SO    - Rear panel Shut Off       - Выключение (задняя панель)       
%% Item6=Бит 6 - OFF   - Front panel Output Off    - Откл. нагрузки (передняя панель) 
%% Item7=Бит 7 - ENA   - Rear panel J1 Closed      - Запуск размыкания (задняя панель)
%% Index=0
%% Bits=15
%% FontSize=12
%% FontStyle=Bold
%% PosX=270
%% PosY=107
 {
 CheckBoxList %Name% Starter to start editing.
 }
 procedure CheckBoxList%Name%Starter;
 var n:Integer;
 begin
  if EditStateReady then begin
   //////////////////////////////////////////
   n:=0+EditAddOpening('%Caption%');
   n:=n+EditAddInputLn('%Title%');
   //////////////////////////////////////////
   n:=n+EditAddInputLn('%Item0%');
   n:=n+EditAddInputLn('%Item1%');
   n:=n+EditAddInputLn('%Item2%');
   n:=n+EditAddInputLn('%Item3%');
   n:=n+EditAddInputLn('%Item4%');
   n:=n+EditAddInputLn('%Item5%');
   n:=n+EditAddInputLn('%Item6%');
   n:=n+EditAddInputLn('%Item7%');
   //////////////////////////////////////////
   n:=n+EditAddSetting('@set ListBox.Font Size:%FontSize%\Style:[%FontStyle%]');
   n:=n+EditAddSetting('@set Form.Left %PosX% relative '+Copy(DevName,2)+' PaintBox');
   n:=n+EditAddSetting('@set Form.Top  %PosY% relative '+Copy(DevName,2)+' PaintBox');
   //////////////////////////////////////////
   n:=n+EditAddClosing('CheckBoxList',EditGetUID('%Identifier%'),Str(%Index%)+' '+Str(%Bits%));
   if (n>0) then Problem('Error initializing CheckBoxList!');
  end else Problem('Cannot edit right now!');
 end;
 {
 CheckBoxList %Name% Handler to handle editing.
 }
 procedure CheckBoxList%Name%Handler;
 var i,m:Integer;
 begin
  if EditStateDone then begin
   if EditTestResultName(EditGetUID('%Identifier%')) then begin
    if EditTestResultCode(mr_OK) then begin
     m:=0; // Calculate bit mask (m) of checked items by editing answer
     for i:=1 to EditGetAnswerCount-1 do m:=iSetBit(m,Val(EditGetAnswer(i)),1);
     writeln('Selection bit mask is '+Str(m));
    end;
    EditReset;
   end;
  end;
 end;
