Главная страница
    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.042 c
3-1158223456
Alex'
2006-09-14 12:44
2006.11.12
Параметры соединения DSN через BDE


15-1161777805
Shopot
2006-10-25 16:03
2006.11.12
Сетевой график.


15-1161828627
Карелин Артем
2006-10-26 06:10
2006.11.12
Нет илишеств. Как понимаете эту фразу в отношении СОВРЕМЕННЫХ ОС?


6-1151227166
Новичоккк
2006-06-25 13:19
2006.11.12
Proxy сервер с редактированием траффика


2-1162043286
uhhh
2006-10-28 17:48
2006.11.12
копирование файла





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский