A comprehensive unit conversion library for Delphi applications. The library provides conversion capabilities for various measurement categories including temperature, length, weight, volume, area, speed, time, energy, and pressure.
- Multiple Conversion Categories: Convert between units in 9 different measurement categories
- Comprehensive Unit Support: Support for both metric and imperial measurement systems
- Easy to Use: Simple and intuitive API with clear method names
- Type Safety: Uses enumerated types to prevent invalid conversions
- Error Handling: Custom exception class for conversion errors
- Formatting Utility: Built-in method to format conversion results as readable strings
- Zero Dependencies: No external dependencies required
- Add the
DFConversion.pas
file to your Delphi project - Add
DFConversion
to your unit's uses clause - Start converting!
// Convert from Celsius to Fahrenheit
var
TempC, TempF: Double;
begin
TempC := 25;
TempF := TDFConverter.ConvertTemperature(TempC, tuCelsius, tuFahrenheit);
ShowMessage(Format('%.1f°C = %.1f°F', [TempC, TempF]));
// Or use the formatting helper
ShowMessage(TDFConverter.FormatConversion(
TempC, TempF,
TDFConverter.GetTemperatureUnitName(tuCelsius),
TDFConverter.GetTemperatureUnitName(tuFahrenheit)
));
end;
// Convert from meters to feet
var
Meters, Feet: Double;
begin
Meters := 10;
Feet := TDFConverter.ConvertLength(Meters, luMeter, luFoot);
ShowMessage(Format('%.2f meters = %.2f feet', [Meters, Feet]));
end;
// Convert from kilograms to pounds
var
Kg, Lb: Double;
begin
Kg := 70;
Lb := TDFConverter.ConvertWeight(Kg, wuKilogram, wuPound);
ShowMessage(Format('%.2f kg = %.2f lb', [Kg, Lb]));
end;
- Celsius (°C)
- Fahrenheit (°F)
- Kelvin (K)
- Meter (m)
- Kilometer (km)
- Centimeter (cm)
- Millimeter (mm)
- Mile (mi)
- Yard (yd)
- Foot (ft)
- Inch (in)
- Kilogram (kg)
- Gram (g)
- Milligram (mg)
- Metric Ton (t)
- Pound (lb)
- Ounce (oz)
- Liter (L)
- Milliliter (mL)
- Cubic Meter (m³)
- Gallon (US) (gal)
- Quart (US) (qt)
- Pint (US) (pt)
- Cup (US)
- Fluid Ounce (US) (fl oz)
- Square Meter (m²)
- Square Kilometer (km²)
- Hectare (ha)
- Square Foot (ft²)
- Square Yard (yd²)
- Acre
- Square Mile (mi²)
- Meters per Second (m/s)
- Kilometers per Hour (km/h)
- Miles per Hour (mph)
- Knot (kn)
- Second (s)
- Minute (min)
- Hour (h)
- Day (d)
- Week (w)
- Year (y)
- Joule (J)
- Kilojoule (kJ)
- Calorie (cal)
- Kilocalorie (kcal)
- Watt Hour (Wh)
- Kilowatt Hour (kWh)
- Pascal (Pa)
- Kilopascal (kPa)
- Bar
- PSI (lb/in²)
- Atmosphere (atm)
Below is a complete example showing how to use the library in a console application:
program ConversionExample;
{$APPTYPE CONSOLE}
uses
System.SysUtils,
DFConversion;
begin
try
// Convert 25°C to Fahrenheit
var Celsius := 25.0;
var Fahrenheit := TDFConverter.ConvertTemperature(Celsius, tuCelsius, tuFahrenheit);
Writeln(Format('%.2f°C = %.2f°F', [Celsius, Fahrenheit]));
// Convert 10 kilometers to miles
var Kilometers := 10.0;
var Miles := TDFConverter.ConvertLength(Kilometers * 1000, luMeter, luMile);
Writeln(Format('%.2f km = %.2f miles', [Kilometers, Miles]));
// Convert 1 gallon to liters
var Gallons := 1.0;
var Liters := TDFConverter.ConvertVolume(Gallons, vuGallon, vuLiter);
Writeln(Format('%.2f gallons = %.2f liters', [Gallons, Liters]));
Writeln('Press Enter to exit...');
Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
The library is designed to be easily extensible. To add new unit types or conversion categories:
- Add the new units to the appropriate enumeration or create a new enumeration
- Implement the conversion method for the new category
- Add a unit name retrieval method for the new category
This library is released under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
DF Libraries Team