Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Вниз

Помогите разобраться с калькулятором   Найти похожие ветки 

 
Уця Шпиндель ©   (2006-10-28 23:29) [0]

хотел соорудить калькулятор:
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;
все это программируется на кнопку, но че-то где-то пропустил...
поправьте пожалуйста


 
DVM ©   (2006-10-28 23:33) [1]


> но че-то где-то пропустил...

Проверки на допустимость значений


 
Орион ©   (2006-10-28 23:36) [2]

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) [3]

если в edit1 или edit2 будет что-то, что не преобразовать в число - возникнет исключение.
если при делении делитель = 0 то возникнет исключение
и т.д.


 
Ketmar ©   (2006-10-28 23:41) [4]

а всё проще. ":=" после edit3.text пропустил. %-)


 
Уця Шпиндель ©   (2006-10-28 23:44) [5]


> деление на 0? ну и черт с ним :)

я тоже так думаю ..))


 
Орион ©   (2006-10-28 23:45) [6]

> [5] Уця Шпиндель ©   (28.10.06 23:44)

а зря...


 
Орион ©   (2006-10-28 23:47) [7]

и еще, Edit3.Text:=FloatToStr(...); а каждой строке, как минимум глупо.
Лучше что-то вроде CalcRes:=num1(/,*,-,+)num2, а в конце Edit3.Text:=StrToFloat(CaclRes);


 
Орион ©   (2006-10-28 23:48) [8]

:) FloatToStr конечно же :)


 
Уця Шпиндель ©   (2006-10-28 23:49) [9]


> а всё проще. ":=" после edit3.text пропустил. %-)

точно!
а как в сombobox прописывать действия?(ну / * - + )


 
DVM ©   (2006-10-28 23:55) [10]

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:57) [11]

> [9] Уця Шпиндель ©   (28.10.06 23:49)

а это будет домашним заданием ;)


 
Уця Шпиндель ©   (2006-10-29 00:03) [12]

нашел!
ето в Items прописывается.
З.Ы.
метод тыка РУЛЕЗЗ!
З.З.Ы.
всем большое спасибо, что откликнулись.


 
Ketmar ©   (2006-10-29 00:06) [13]

>[12] Уця Шпиндель(c) 29-Oct-2006, 00:03
>метод тыка РУЛЕЗЗ!
а справка -- вообще рулез немеряный.


 
Орион ©   (2006-10-29 00:07) [14]

> [13] Ketmar ©   (29.10.06 00:06)

там тоже метод тыка используется... метод тыка пальцем в Ф1 =)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.046 c
6-1150974651
N
2006-06-22 15:10
2006.11.12
Авторизация TIdHTTPServer


2-1161806369
Kolan
2006-10-25 23:59
2006.11.12
Ошибка "CommandText does not return a result set".


15-1161879231
Витян
2006-10-26 20:13
2006.11.12
Подскажите алгоритм, который подошел бы для данной задачи на граф


2-1162193337
viper03
2006-10-30 10:28
2006.11.12
OnMouseEnter, OnMouseLeave


15-1161657276
Slider007
2006-10-24 06:34
2006.11.12
С днем рождения ! 24 октября





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский