Тебе надо где-то зранить курсы.
Выбираем базовую валюту. Пусть это будут твои гривны.
Т.е. храним выражение любой валюты в гривнах.
Когда у нас идет пересчет, то нам надо сначала перевести из одной валюты в гривны, в потом из гривен в другую валюту (если надо).
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | function FindBaseXRate(ACurr : String ) : Currency ;
begin
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 ;
|