anchor.diff:          if Ctl is TMemo then (Ctl as TMemo).Lines.Add(SListItem);
           if Ctl is TCheckGroup then (Ctl as TCheckGroup).Items.Add(SListItem);
           if Ctl is TRadioGroup then (Ctl as TRadioGroup).Items.Add(SListItem);
  +        if Ctl is TCheckListBox then (Ctl as TCheckListBox).Items.Add(SListItem);
         until false;
         Continue;
       end;
  
positive.code: 
  uses
    Classes, SysUtils, Graphics, Controls, StdCtrls, ExtCtrls, Forms,
    Dialogs,
    ATStringProc;
  
  procedure DoDialogCustom(const ATitle: string; ASizeX, ASizeY: integer;
  
negative.code:         Str:= Str+IntToStr(Ord((Ctl as TCheckGroup).Checked[k]))+',';
      end;
  
      if Ctl is TCheckListBox then
      begin
        Str:= '';
        for k:= 0 to (Ctl as TCheckListBox).Items.Count-1 do
          Str:= Str+IntToStr(Ord((Ctl as TCheckListBox).Checked[k]))+',';
      end;
  
      if Result<>'' then Result:= Result+#10;
      Result:= Result+Str;
    end;
  end;
  
  
  procedure DoSetCheckGroupState(C: TControl; AValue: string);
  var
    SItem: string;
    NCount, N: integer;
  begin
    if C is TCheckGroup then NCount:= (C as TCheckGroup).Items.Count else
     if C is TCheckListBox then NCount:= (C as TCheckListBox).Items.Count else
      exit;
  
    N:= 0;
    repeat
      if N>=NCount then exit;
      SItem:= SGetItem(AValue);
      if SItem='' then break;
  
      if C is TCheckGroup then (C as TCheckGroup).Checked[N]:= StrToBool(SItem);
      if C is TCheckListBox then (C as TCheckListBox).Checked[N]:= StrToBool(SItem);
  
      Inc(N);
    until false;
  end;
  