Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.09.2013, 11:30   #1
anghela
Пользователь
 
Регистрация: 21.05.2013
Сообщений: 42
Восклицание Ошибка при выводе значения в лейбл

Ошибка в коде:

Код:
procedure TForm2_new_schet.But_perevodClick(Sender: TObject);
var dol,evro,sum,rez,dol_pr,evro_pr:single;
begin
  dol:=StrToFloat(Edit_kurs_dol.Text);
  evro:=StrToFloat(Edit_kurs_evro.Text);
  sum:=StrToFloat(Edit15_perevod.Text);
  { If Not TryStrToFloat(Edit15_perevod.Text,sum) then
   begin
    ShowMessage('Вы ввели не корректную сумму');
   // Exit;
    end; }
 if (CB_valuta_per.Text='Рубль') then
  begin
    if (CB_perevod_v.Text='Доллар') then
    rez:=sum/dol;
    Label24.Caption:=FloatToStr(rez) + ' доллара';
    if (CB_perevod_v.Text='Евро') then
    rez:=sum/evro;
    Label24.Caption:=FloatToStr(rez) + ' евро';
  end;
  dol_pr:=StrToFloat(Edit_dol_prod.Text);
  evro_pr:=StrToFloat(Edit_evro_prod.Text);
  if (CB_valuta_per.Text='Доллар') and (CB_perevod_v.Text='Рубль') then
  rez:=sum*dol_pr;
   Label24.Caption:=FloatToStr(rez) + ' рубля';
  if (CB_valuta_per.Text='Евро') and (CB_perevod_v.Text='Рубль') then
  rez:=sum*evro_pr;
   Label24.Caption:=FloatToStr(rez) + ' рубля';
end;
Работает все, только при выводе значений в лейбл он выводит правильно значения типа "столько то рублей", а значения "столько то долларов/столько то евро" он не выводит, а заменяет доллар и евро так же на рубли.

И как сделать проверку поля на символы, типа что введены только цифры? TryStrToFloat почему то не работает

Последний раз редактировалось anghela; 26.09.2013 в 11:32. Причина: неправильный код
anghela вне форума
Старый 26.09.2013, 11:38   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,880
По умолчанию

Цитата:
а значения "столько то долларов/столько то евро" он не выводит
Этот код будет выводить "столько то долларов/столько то евро" только тогда, когда одновременно CB_valuta_per.Text='Рубль' и CB_valuta_per.Text='Доллар'(или CB_valuta_per.Text='Евро'). Т.е. никогда.

Цитата:
TryStrToFloat почему то не работает
Как пробовали?
northener вне форума
Старый 26.09.2013, 11:41   #3
anghela
Пользователь
 
Регистрация: 21.05.2013
Сообщений: 42
По умолчанию

поля же разные, они не совпадают
Код:
 if (CB_valuta_per.Text='Рубль') then
  begin
    if (CB_perevod_v.Text='Доллар') then
    rez:=sum/dol;
    Label24.Caption:=FloatToStr(rez) + ' доллара';
    if (CB_perevod_v.Text='Евро') then
    rez:=sum/evro;
    Label24.Caption:=FloatToStr(rez) + ' евро';
  end;
anghela вне форума
Старый 26.09.2013, 11:42   #4
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Код:
if CB_valuta_per.Text='Рубль' then
  begin
    if CB_perevod_v.Text='Доллар' then
     begin
       rez:=sum/dol;
       Label24.Caption:=FloatToStr(rez) + ' доллара';
     end;  
    if CB_perevod_v.Text='Евро' then
     begin    
       rez:=sum/evro;
       Label24.Caption:=FloatToStr(rez) + ' евро';
     end;
  end;
Код:
if CB_valuta_per.Text='Доллар' then
  begin
    rez:=sum*dol_pr; 
    Label24.Caption:=FloatToStr(rez) + ' рубля';
  end;
if CB_valuta_per.Text='Евро' then
  begin  
    rez:=sum*evro_pr;
    Label24.Caption:=FloatToStr(rez) + ' рубля';
  end;
у вас не выводит значение в долларах и в евро при каком значении лейбла "CB_valuta_per"?

насколько я понял, если надо переводить рубли, то перевести их надо и в доллары и в евро... если переводят евро или доллары, то только в рубли?

или же нужно вывести значения во всех трех валютах?

Последний раз редактировалось unbanned; 26.09.2013 в 12:18.
unbanned вне форума
Старый 26.09.2013, 11:53   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,880
По умолчанию

Цитата:
Label24.Caption:=FloatToStr(rez) + ' рубля';
Вот эта строка выполняется в конце кода дважды независимо ни от каких условий.

Последний раз редактировалось northener; 26.09.2013 в 11:58.
northener вне форума
Старый 26.09.2013, 12:27   #6
anghela
Пользователь
 
Регистрация: 21.05.2013
Сообщений: 42
По умолчанию

Всем спасибо! Работает
anghela вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при выводе отчета в Excel Valik93 C++ Builder 2 24.04.2013 12:36
Скрытие значения при выводе в listbox tema654 Visual C++ 1 30.04.2012 11:11
Ошибка при выводе xml DKENT Работа с сетью в Delphi 0 08.02.2011 21:49
Ошибка при выводе trad Общие вопросы C/C++ 7 15.01.2011 11:32
Ошибка при выводе инфо из БД Xeon332 PHP 4 30.12.2009 05:41