anchor.diff:            Cells[FocusCol, FocusRow] := FCellEditFloat.Text;
             FCellEditFloat.Text:= '';
             FCellEditFloat.Visible := False;
  -          case FEditWay of
  -            edNone:
  -              FEditing:= False;
  -            edColumn:
  -              if FocusCol < Pred(ColumnCount) then
  -                FocusCol := FocusCol + 1
  -              else
  -                FEditing:= False;
  -            edRow:
  -              if FocusRow < Pred(RowCount) then
  -                FocusRow := FocusRow + 1
  -              else
  -                FEditing:= False;
  -          end;
  -          SetFocus;
  -          if FEditing then
  -            SetEditCell;
  +          SetReturnWay;
           end;
         KeyTab:
           begin
             FCellEditFloat.Text := '';
             FCellEditFloat.Visible := False;
  -          if ssShift in ShiftState then
  -          begin
  -            if FocusCol > 0 then
  -              FocusCol := FocusCol - 1;
  -          end
  -          else
  -            if FocusCol < Pred(ColumnCount) then
  -              FocusCol := FocusCol + 1;
  -          FEditing := False;
  -          SetFocus;
  +          SetTabWay(ShiftState);
           end;
         KeyEscape:
           begin
  
positive.code:             Cells[FocusCol, FocusRow] := TfpgCheckBoxColumn(TfpgEditColumn(Columns[FocusCol]).Data).UncheckedText;
            FCellCheckBox.Text:= '';
            FCellCheckBox.Visible := False;
            case FEditWay of
              edNone:
                FEditing:= False;
              edColumn:
                if FocusCol < Pred(ColumnCount) then
                  FocusCol := FocusCol + 1
                else
                  FEditing:= False;
              edRow:
                if FocusRow < Pred(RowCount) then
                  FocusRow := FocusRow + 1
                else
                  FEditing:= False;
            end;
            SetFocus;
            if FEditing then
              SetEditCell;
          end;
        KeyTab:
          begin
            FCellCheckBox.Text := '';
            FCellCheckBox.Visible := False;
            if ssShift in ShiftState then
            begin
              if FocusCol > 0 then
                FocusCol := FocusCol - 1;
            end
            else
              if FocusCol < Pred(ColumnCount) then
                FocusCol := FocusCol + 1;
            FEditing := False;
            SetFocus;
          end;
        KeyEscape:
          begin
  
negative.code:             TfpgEditComboColumn(TfpgEditColumn(Columns[FocusCol]).Data).FItems.Add(FCellEditCombo.Text);
            FCellEditCombo.Text:= '';
            FCellEditCombo.Visible := False;
            SetReturnWay;
          end;
        KeyTab:
          begin
            FCellEditCombo.Text := '';
            FCellEditCombo.Visible := False;
            SetTabWay(ShiftState);
          end;
        KeyEscape:
          begin
  