Ошибка при выводе значения в лейбл

Ошибка в коде:
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 почему то не работает
5 ответов

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


поля же разные, они не совпадают
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;


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"? насколько я понял, если надо переводить рубли, то перевести их надо и в доллары и в евро... если переводят евро или доллары, то только в рубли?или же нужно вывести значения во всех трех валютах?


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


Всем спасибо! Работает