|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.06.2007, 09:28 | #11 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Кидай на форму Edit и в свойстве KeyPress пиши:
////////////////////// procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); var a,b,rez:extended; znak,str:string; z,i:integer; begin znak:=''; z:=0; // {позиция знака} A:=0; // {первое число,} B:=0; // {второе число,} rez:=0; // {результат} if Key in ['0'..'9']+[#8,#13]+[',','.','+','-','*','/'] then begin end else Key:=#0; // {исключаем ввод букв и прочих лишних символов} if (Key=',')or(Key='.') then Key:=DecimalSeparator; { знак точки/запятой} if Key=(#13) then // {когда нажимаем ENTER} begin str:=Edit1.Text; for i:=0 to Length(str)-1 do begin case (str[i]) of // {ищем в строке вхождение знака + - * /} '+': begin znak:='+'; A:=strtofloat(copy(str,0,i-1)); B:=strtofloat(copy(str,i+1,Length(s tr)-1)); Rez:=A+B; end; '-': begin znak:='-'; A:=strtofloat(copy(str,0,i-1)); B:=strtofloat(copy(str,i+1,Length(s tr)-1)); Rez:=A-B; end; '*': begin znak:='*'; A:=strtofloat(copy(str,0,i-1)); B:=strtofloat(copy(str,i+1,Length(s tr)-1)); Rez:=A*B; end; '/': begin znak:='/'; A:=strtofloat(copy(str,0,i-1)); B:=strtofloat(copy(str,i+1,Length(s tr)-1)); Rez:=A/B; end; end; end; Form1.Caption:=floattostr(a)+znak+f loattostr(b)+'='+floattostr(rez); // {вывод в заголовок формы всей формулы} Edit1.Text:=floattostr(rez); // {вывод в едит ответа } end; end; ///////////////////// Вводишь в Edit примерно следующее: 123,45+6789 жмыкаешь Enter P.S.: Работает только для одного арифметического действия!!!!!!!!!
Life is too short, play more...
Как правильно задавать вопросы |
09.06.2007, 08:59 | #13 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
Вот.
Вложение 682 Может последовательно выполнять не более двух действий, например, a+b-c или a*b+c и т.п.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
Последний раз редактировалось ACE Valery; 17.06.2007 в 19:39. |
22.07.2007, 21:00 | #14 |
Пользователь
Регистрация: 01.07.2007
Сообщений: 30
|
Чтоюы бы не появлялась надпись Edit2 перед запуском программы выдели мышкой это ЭДИТ и в свойстве caption (заголовок) очисти (удали) надпись EDIT2
|
22.07.2007, 22:34 | #15 |
Вот я и
Форумчанин
Регистрация: 07.04.2007
Сообщений: 501
|
Взгляни на ссылку!!!!
[quote=RocKy;22985]есть готовая программа Каркулятора в Delphi!!!/quote]
Вот посмотри, на этой ссылке. Там много различных калькуляторов.
Исходники программ - http:\\www.kort.3dn.ru
|
22.07.2007, 22:38 | #16 | |
Вот я и
Форумчанин
Регистрация: 07.04.2007
Сообщений: 501
|
Цитата:
Исходники программ - http:\\www.kort.3dn.ru
|
|
23.07.2007, 02:23 | #17 |
stopfake.org
Участник клуба
Регистрация: 03.05.2007
Сообщений: 1,927
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно в edit1 вывести время! | zotox | Помощь студентам | 1 | 11.12.2008 10:24 |
вывести строку задом-наперёд (assembler) | Nikolai_90 | Помощь студентам | 1 | 03.06.2008 08:03 |
если поле Patr пусто или null то пустую строку возвращает | azat | БД в Delphi | 5 | 01.02.2008 13:05 |
Вывести конкретную строку из файла | Captain Nemo | Общие вопросы Delphi | 9 | 15.05.2007 03:44 |