![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Корректная работа программы
Оля © (2003-01-30 13:55:00)Форма имеет ряд ячеек для ввода значений Edit. В ячейках прописаны циферки учавствующие в расчете. Программа не очень хорошо воспринимает пустую ячейку при выполнении расчета. Можно ли сделать так чтобы даже при нажатии Backspace or Delete в ячейке оставался "0"?
Романов Р.В. (2003-01-30 14:39:00) [1]Пишем за 30 секунд такую функцию и усе работает без вопросов.
function StrToFloatDef(const Text: string; Def: double = 0): double;
begin
try
Result := StrToFloat(Text);
except
Result := Def;
end;
end;
Anatoly Podgoretsky (2003-01-30 14:36:00) [2]Все зависит как относиться к пустому полу, это же не число, включи преобразование в блок try except end
try
Dtr_1:= StrToFloat(Edit4.Text);
except
Dtr_1:= 0; // или то что ты считаешь должно быть вместо пустого значения.
end
И так же для остальных преобразований.
han_malign (2003-01-30 14:36:00) [3]if(Not TextToFloat(PChar(Edit.Text),dtr,fvExtended))then dtr:=0;
Max Zyuzin (2003-01-30 14:29:00) [4]Попробуй что нить вроде
onChange у Edit-а и проверку
if Edit1.Text = "" then Edit1.Text := "0";
Оля (2003-01-30 14:25:00) [5]Допустим ячейка 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;
Anatoly Podgoretsky (2003-01-30 14:05:00) [6]Приведи коротенький пример расчета
MBo (2003-01-30 13:57:00) [7]А почему не очень хорошо воспринимает? Как обрабатывается строка из Edit? Может, устроит что-то вроде StrToIntDef(Edit.Text,0)?