Показать сообщение отдельно
  #3  
Старый 10.03.2010, 23:58
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,106
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тебе надо где-то зранить курсы.
Выбираем базовую валюту. Пусть это будут твои гривны.
Т.е. храним выражение любой валюты в гривнах.

Когда у нас идет пересчет, то нам надо сначала перевести из одной валюты в гривны, в потом из гривен в другую валюту (если надо).

Код:
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;
Ответить с цитированием