anchor.diff:        if SValue='check' then begin Ctl:= TCheckBox.Create(AForm); end;
         if SValue='edit' then begin Ctl:= TEdit.Create(AForm); end;
         if SValue='listbox' then begin Ctl:= TListBox.Create(AForm); end;
  +      if SValue='spinedit' then begin Ctl:= TSpinEdit.Create(AForm) end;
         if SValue='memo' then
           begin
             Ctl:= TMemo.Create(AForm);
  
positive.code:     //-------items
      if SName='items' then
      begin
        repeat
          SListItem:= SGetItem(SValue, #9);
          if SListItem='' then break;
  
negative.code:     (C is TButton) or
      (C is TEdit) or
      (C is TComboBox) or
      (C is TCheckBox) or
      (C is TSpinEdit);
  end;
  
  
  function DoGetControlResult(C: TControl): string;
  var
    i: integer;
  begin
    Result:= '';
  
    if C is TEdit then
      Result:= (C as TEdit).Text;
    if C is TCheckBox then
      Result:= IntToStr(Ord((C as TCheckBox).Checked));
    if C is TComboBox then
      Result:= IntToStr((C as TComboBox).ItemIndex);
    if C is TListBox then
      Result:= IntToStr((C as TListBox).ItemIndex);
  
    if C is TMemo then
    begin
      Result:= (C as TMemo).Lines.Text;
      Result:= StringReplace(Result, #13#10, #9, [rfReplaceAll]);
      Result:= StringReplace(Result, #13, #9, [rfReplaceAll]);
      Result:= StringReplace(Result, #10, #9, [rfReplaceAll]);
    end;
  
    if C is TRadioGroup then
      Result:= IntToStr((C as TRadioGroup).ItemIndex);
  
    if C is TCheckGroup then
      for i:= 0 to (C as TCheckGroup).Items.Count-1 do
        Result:= Result+IntToStr(Ord((C as TCheckGroup).Checked[i]))+',';
  
    if C is TCheckListBox then
      for i:= 0 to (C as TCheckListBox).Items.Count-1 do
        Result:= Result+IntToStr(Ord((C as TCheckListBox).Checked[i]))+',';
  
    if C is TSpinEdit then
      Result:= IntToStr((C as TSpinEdit).Value);
  end;
  
  
  function DoGetFormResult(AForm: TForm): string;
  var
    Str: string;
    i: integer;
  begin
    Result:= '';
    for i:= 0 to AForm.ControlCount-1 do
    begin
      Str:= DoGetControlResult(AForm.Controls[i]);
      if Result<>'' then Result:= Result+#10;
      Result:= Result+Str;
    end;
  