Тебе надо где-то зранить курсы.
Выбираем базовую валюту. Пусть это будут твои гривны.
Т.е. храним выражение любой валюты в гривнах.
Когда у нас идет пересчет, то нам надо сначала перевести из одной валюты в гривны, в потом из гривен в другую валюту (если надо).
Код:
function FindBaseXRate(ACurr : String) : Currency;
begin
// Ищем курс валюты ACurr в гривнах
// Зависит от того, как ты их хранишь
end;
function XRate(AFrom, ATo : String; AValue : Currency) : Currency;
begin
If AFrom = ATo
Then Result := AValue
Else
If AFrom = 'UAH'
Then Result := AValue / FindBaseXRate(ATo)
Else
If ATo = 'UAH'
Then Result := AValue * FindBaseXRate(AFrom)
Else
Result := XRate('UAH',ATo,XRate(AFrom,'UAH',AValue));
end;