Форум: "Основная";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];
ВнизКорректная работа программы Найти похожие ветки
← →
Оля (2003-01-30 13:55) [0]Форма имеет ряд ячеек для ввода значений Edit. В ячейках прописаны циферки учавствующие в расчете. Программа не очень хорошо воспринимает пустую ячейку при выполнении расчета. Можно ли сделать так чтобы даже при нажатии Backspace or Delete в ячейке оставался "0"?
← →
MBo (2003-01-30 13:57) [1]А почему не очень хорошо воспринимает? Как обрабатывается строка из Edit? Может, устроит что-то вроде StrToIntDef(Edit.Text,0)?
← →
Anatoly Podgoretsky (2003-01-30 14:05) [2]Приведи коротенький пример расчета
← →
Оля (2003-01-30 14:25) [3]Допустим ячейка Edit4 (Dtr_1) пуста,
а procedure TForm1.Edit4Change(Sender: TObject) еще весит на Edit12 и Edit13
StrToFloat как я поняла не может считывать из пустой ячейки
procedure TForm1.Edit4Change(Sender: TObject);
begin
Dtr_1:= StrToFloat(Edit4.Text);
Dtr_7:= StrToFloat(Edit12.Text);
Dtr_8:= StrToFloat(Edit13.Text);
Dtr_2:=Dtr_1+Dtr_7-Dtr_8;
Edit17.Text:=FloatToStrF(Dtr_2,ffGeneral,5,1);
end;
← →
Max Zyuzin (2003-01-30 14:29) [4]Попробуй что нить вроде
onChange у Edit-а и проверку
if Edit1.Text = "" then Edit1.Text := "0";
← →
Anatoly Podgoretsky (2003-01-30 14:36) [5]Все зависит как относиться к пустому полу, это же не число, включи преобразование в блок try except end
try
Dtr_1:= StrToFloat(Edit4.Text);
except
Dtr_1:= 0; // или то что ты считаешь должно быть вместо пустого значения.
end
И так же для остальных преобразований.
← →
han_malign (2003-01-30 14:36) [6]if(Not TextToFloat(PChar(Edit.Text),dtr,fvExtended))then dtr:=0;
← →
Романов Р.В. (2003-01-30 14:39) [7]Пишем за 30 секунд такую функцию и усе работает без вопросов.
function StrToFloatDef(const Text: string; Def: double = 0): double;
begin
try
Result := StrToFloat(Text);
except
Result := Def;
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c