Lazarus strtofloat
Автор Ёергей Войнов задал вопрос в разделе Другие языки и технологии
Нужна помощь по lazarus.Ошибка при нажатии на кнопку... и получил лучший ответ
Ответ от ?[гуру]
Мммм, как занятно. А угадать, где обработчик этой кнопки, нам предлагаешь?
Высший разум
(529218)
У тебя дохуища обработчиков
procedure TForm1.ButtonXXXClick(Sender: TObject);
Какой тот - знает только дьявол.
Ответ от Виктор К[гуру]
Ошибка как я понимаю в конструкции типа:
x:=strtofloat(Edit1.Text);
Edit1.Clear;
n:= strtofloat(Edit1.Text);
if n=0 then
showmessage( 'на нуль делить нельзя' )
else c:=x/n;
Edit1.Clear;
Честно говоря это бред.
Вы сначала передаете переменной x числовое значение текстового поля. Потом очищаете это поле и передаете его числовое значение в переменную n. в итоге, или n будет равно 0 всегда, или в этот момент программа выдаст ошибку.
Или создайте второе текстовое поле (Edit2) или работайте со строками разделяя их по знаку-действию
Edit1.Text = "1+2"
a = Edit1.Text[1]
znak = Edit1.Text[2]
b = Edit1.Text[3]
только знак придется искать в строке один из (+-*/), потом получить его индекс в строке, разделить строку на три части по этому индексу (первое число, знак, второе число)
и потом уже проводить операцию, в зависимости от знака.
Ошибка как я понимаю в конструкции типа:
x:=strtofloat(Edit1.Text);
Edit1.Clear;
n:= strtofloat(Edit1.Text);
if n=0 then
showmessage( 'на нуль делить нельзя' )
else c:=x/n;
Edit1.Clear;
Честно говоря это бред.
Вы сначала передаете переменной x числовое значение текстового поля. Потом очищаете это поле и передаете его числовое значение в переменную n. в итоге, или n будет равно 0 всегда, или в этот момент программа выдаст ошибку.
Или создайте второе текстовое поле (Edit2) или работайте со строками разделяя их по знаку-действию
Edit1.Text = "1+2"
a = Edit1.Text[1]
znak = Edit1.Text[2]
b = Edit1.Text[3]
только знак придется искать в строке один из (+-*/), потом получить его индекс в строке, разделить строку на три части по этому индексу (первое число, знак, второе число)
и потом уже проводить операцию, в зависимости от знака.
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Нужна помощь по lazarus.Ошибка при нажатии на кнопку...