anchor.diff:  
   
   procedure DoSetListviewState(C: TListView; SValue: string);
  +// index;check0,check1,
   var
     N: integer;
     SItem: string;
   begin
  -  if not C.Checkboxes then
  -  begin
  -    N:= StrToIntDef(SValue, 0);
  -    if (N>=0) and (N<C.Items.Count) then
  -      C.ItemFocused:= C.Items[N];
  -  end
  -  else
  +  SItem:= SGetItem(SValue, ';');
  +  N:= StrToIntDef(SItem, 0);
  +  if (N>=0) and (N<C.Items.Count) then
  +    C.ItemFocused:= C.Items[N];
  +
  +  if C.Checkboxes then
     begin
       N:= 0;
       repeat
  
positive.code:   until false;
  end;
  
  procedure DoSetChecklistState(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;
  
negative.code:       end;
        if Ctl is TListBox then (Ctl as TListBox).ItemIndex:= StrToIntDef(SValue, 0);
        if Ctl is TRadioGroup then (Ctl as TRadioGroup).ItemIndex:= StrToIntDef(SValue, 0);
        if Ctl is TCheckGroup then DoSetCheckgroupState(Ctl as TCheckGroup, SValue);
        if Ctl is TCheckListBox then DoSetChecklistboxState(Ctl as TCheckListBox, SValue);
        if Ctl is TMemo then DoSetMemoState(Ctl as TMemo, SValue);
        if Ctl is TSpinEdit then (Ctl as TSpinEdit).Value:= StrToIntDef(SValue, 0);
        if Ctl is TListView then DoSetListviewState(Ctl as TListView, SValue);
  