Skip over navigation

Welcome to the all new DelphiDabbler website.

I hope you like it.

There are going to be bugs. Please report any you find on the website's issues page (GitHub account required). Thanks.

Click the close button and you won't see this message again.

Fractions Unit

Encapsulates fractions and operations on them

Version 0.1.1-beta
Released 11 Jan 2014
Platforms Win32 & Win64
Framework RTL
Compatibilty Delphi 2009 & later

Overview

This unit, named DelphiDabbler.Lib.Fractions.pas, provides a single Delphi Pascal "Advanced" record, TFraction, that encapsulates a fraction and a number of operations on it.

A whole bunch of operator overloads make it straightforward to perform all the usual arithmetic operations on a fraction and to cast a TFraction to and from an integer or floating point value.

Testing

DUnit tests for TFraction are included in the download.

Get The Code

You can download the latest version of the Fractions Unit directly from SourceForge as dd-fractions-0.1.1-beta.zip.

Download v0.1.1-beta

Fractions Unit is a sub-project of the DDabLib project which is maintained in a Subversion repository. The code is developed in the trunk/projects/fractions branch.

Subversion users can check out the source code of the current release from the repository on SourceForge by doing:

svn checkout http://svn.code.sf.net/p/ddablib/code/tags/projects/fractions/release-0.1.1-beta codedir

where codedir is the directory where you want to checkout code. To check out other versions, simply specify a different version number.

The latest development tree can be checked out using:

 svn checkout http://svn.code.sf.net/p/ddablib/code/trunk/projects/fractions codedir

Check outs are read only, but you can easily contribute code: see Feedback & Queries below.

Installation

The Fractions Unit is supplied in a zip file. Before installing you need to extract all the files from the zip file, preserving the directory structure. The following files will be extracted:

  • DelphiDabbler.Lib.Fractions.pas – source code.
  • ReadMe.htm – read-me file.
  • ChangeLog.txt – project change log.
  • MPL-2.txt – the Mozilla Public License v2.0.
  • Documentation.URL – short-cut to the class' online documentation.

In addition to the above files you will find the DUnit tests for DelphiDabbler.Lib.Fractions.pas in the Test sub-directory.

There are three possible ways to use the unit.

  1. The simplest way is to add DelphiDabbler.Lib.Fractions.pas to your projects as you need it.
  2. To make the unit easier to re-use you can either copy it to a folder on your Delphi search path, or add the folder where you extracted the unit to the search path. You then simply use the unit as required without needing to add it to your project.
  3. For maximum portability you can add the unit to a Delphi design time package. If you need help doing this see here.

Documentation

The Fractions Unit is comprehensively documented online here

The project's change log can be viewed on SourceForge

A read-me file (ReadMe.htm) is included in the project download.

Feedback & Queries

If you find any bugs or want to suggest a new feature please report them using the Issue Tracker.

Click the Create Ticket button to create a ticket then complete the form giving as much information as possible.

The issue tracker is shared among all the projects in the DelphiDabbler Code Library, so please make sure you enter fractions in the Project edit box to make it clear which project you are referring to. You should also choose Defect in the Type drop down list to report a bug or Enhancement to request a new feature.

If you have created a bug fix or have implemented a new feature please attach a zip file to your ticket that contains your source code.

Should you have any queries about using the unit please read the documentation. If you can't find an answer in the documentation then post a message in the discussion group.

License

The Fractions Unit is open source. It is copyright © 2013-2014 by Peter Johnson. The source code is made available under the terms of the Mozilla Public License v2.0. All relevant trademarks are acknowledged.