![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться с калькулятором [D7]
Уця Шпиндель © (2006-10-28 23:29:00)хотел соорудить калькулятор:
3 Label(в первых двух слагаемые и другие, в 3-м сумма и т.д.), 1 combobox(действия выбирать), 1 button(вычислить)
вот код:
var
num1:real;
num2:real;
begin
num1:=StrtoFloat(edit1.text);
num2:=StrtoFloat(edit2.text);
if combobox1.text='/' then edit3.Text FloattoStr(num1/num2);
if combobox1.text='*' then edit3.Text FloattoStr(num1*num2);
if combobox1.text='-' then edit3.Text FloattoStr(num1-num2);
if combobox1.text='+' then edit3.Text FloattoStr(num1+num2);
end;
все это программируется на кнопку, но че-то где-то пропустил...
поправьте пожалуйста
Орион (2006-10-29 00:07:00) [1]> [13] Ketmar © (29.10.06 00:06)
там тоже метод тыка используется... метод тыка пальцем в Ф1 =)
Ketmar (2006-10-29 00:06:00) [2]>[12] Уця Шпиндель(c) 29-Oct-2006, 00:03
>метод тыка РУЛЕЗЗ!
а справка -- вообще рулез немеряный.
Уця Шпиндель (2006-10-29 00:03:00) [3]нашел!
ето в Items прописывается.
З.Ы.
метод тыка РУЛЕЗЗ!
З.З.Ы.
всем большое спасибо, что откликнулись.
Орион (2006-10-28 23:57:00) [4]> [9] Уця Шпиндель © (28.10.06 23:49)
а это будет домашним заданием ;)
DVM (2006-10-28 23:55:00) [5]
procedure TForm1.Button1Click(Sender: TObject);
var
num1, num2, res: real;
begin
try
num1 := StrtoFloat(edit1.text);
except
// Ошибка
exit;
end;
try
num2 := StrtoFloat(edit2.text);
except
// Ошибка
exit;
end;
case combobox1.text[1] of
'/': if num2 <> 0 then res := num1 / num2 else exit; // Ошибка
'*': res := num1 * num2;
'-': res := num1 - num2;
'+': res := num1 + num2;
end;
Edit3.Text := FloatToStr(res);
end;
end.
Уця Шпиндель (2006-10-28 23:49:00) [6]
> а всё проще. ":=" после edit3.text пропустил. %-)
точно!
а как в сombobox прописывать действия?(ну / * - + )
Орион (2006-10-28 23:48:00) [7]:) FloatToStr конечно же :)
Орион (2006-10-28 23:47:00) [8]и еще,
Edit3.Text:=FloatToStr(...);а каждой строке, как минимум глупо.
Лучше что-то вродеCalcRes:=num1(/,*,-,+)num2, а в концеEdit3.Text:=StrToFloat(CaclRes);
Орион (2006-10-28 23:45:00) [9]> [5] Уця Шпиндель © (28.10.06 23:44)
а зря...
Уця Шпиндель (2006-10-28 23:44:00) [10]
> деление на 0? ну и черт с ним :)
я тоже так думаю ..))
Ketmar (2006-10-28 23:41:00) [11]а всё проще. ":=" после edit3.text пропустил. %-)
Орион (2006-10-28 23:36:00) [12]
procedure TForm1.Button1Click(Sender: TObject);
var
num1, num2: Extended;
begin
num1:=StrToFloat(Edit1.Text);
num2:=StrToFloat(Edit2.Text);
//не мешало бы проверку вставить на содержание Edit1/2.Text, ну да ладно :)
case ComboBox1.ItemIndex of
0: Edit3.Text:=FloatToStr(num1/num2); //деление на 0? ну и черт с ним :)
1: Edit3.Text:=FloatToStr(num1*num2);
2: Edit3.Text:=FloatToStr(num1-num2);
3: Edit3.Text:=FloatToStr(num1+num2);
end;
end;
DVM (2006-10-28 23:36:00) [13]если в edit1 или edit2 будет что-то, что не преобразовать в число - возникнет исключение.
если при делении делитель = 0 то возникнет исключение
и т.д.
DVM (2006-10-28 23:33:00) [14]
> но че-то где-то пропустил...
Проверки на допустимость значений