anchor.diff:    Move(PChar(AString)^, FData[0], FLength * SizeOf(Char));
   end;
   
  -constructor TStringBuffer.Create(Capacity: Integer);
  +constructor TStringBuffer.Create(ACapacity: Integer);
   begin
     FLength := 0;
     FPosition := 0;
  -  FCapacity := Capacity;
  -  SetLength(FData, Capacity);
  +  FCapacity := ACapacity;
  +  SetLength(FData, ACapacity);
   end;
   
   procedure TStringBuffer.Grow;
  
positive.code:     procedure SetCount(NewCount: Integer); virtual; abstract;
      function Compare(const Value1, Value2: Variant): Integer; virtual;
    public
      constructor Create(Capacity: Integer = 4; Sync: Boolean = True;
        ReadWriteSync: Boolean = False); overload; virtual; abstract;
      constructor Create(Sync: Boolean;
        ReadWriteSync: Boolean = False); overload; virtual;
  
negative.code:       ReadWriteSync: Boolean = False); overload; virtual;
      {$IFDEF BCB}
          constructor Create0; virtual; // for C++ Builder
          constructor Create1(ACapacity: Integer); virtual; // for C++ Builder
          constructor Create2(ACapacity: Integer; Sync: Boolean); virtual; // for C++ Builder
          constructor CreateS(Sync: Boolean); virtual; // for C++ Builder
          constructor CreateL1(const AList: IList); virtual; // for C++ Builder
          constructor CreateA1(const Container: Variant); virtual; // for C++ Builder
  