Vielleicht ist es für mich noch zu früh am Morgen, aber bei uns bin ich hiermit eigentlich glücklich geworden:
Für Einheiten eigenen Typ definieren, wie z.B.
Delphi-Quellcode:
type
/// <summary>Luftdruck in <b>kPa</b></summary>
TAirPressure = Single;
/// <summary>Temperatur in °C</summary>
TTemperature = Single;
Wenn man das dann irgendwo auf dem Bildschirm oder anzeigt gibt es einen
IUnitFormatter
mit z.B
Delphi-Quellcode:
IUnitFormatter = interface
function format(
const airPressure: TAirPressure;
const digits: Byte = 0
): String; overload;
function format(
const temperature: TTemperature;
const digits: Byte = 1
): String; overload;
end;
Dann beschränkt sich das Anzeigen in Edit-Feldern, Grids usw. meist auf ein simples:
Text := myFormatter.format(myTemperature);
Ist der Benutzer dann z.B. so verrückt dass er statt °C lieber diese komischen Ami-Einheiten (°F und so) haben will, wird zur Laufzeit einfach der Formatter ausgetauscht der dann als Ergebnis nicht "40,1 °C" sondern "60.4 °F" ausgibt.