0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 31
|
|
1 | |
калькулятор в делкси13.12.2012, 23:29. Показов 562. Ответов 0
Метки нет (Все метки)
здравствуйте!!! помогите пожалуйста! вот самое начало все правильно в конце что то не так, Объясняю что нужно Например складываю edt1 и edt2 в edt3 получаю ответ, и когда в конце этого ответа я ставлю K(английскую),то у меня в edt1 перетаскивается ответ с этой же буквой а мне надо чтобы перетаскивалось просто число
var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Edt1.Text:='0';Edt2.Text:='0';Edt3.Text:='0'; end; procedure TForm1.btn2Click(Sender: TObject); var s1,s2,s3:string; r1,r2,r3:Extended; k:Integer; begin s1:=Edt1.Text; Val(s1,r1,k); if k<>0 then begin Application.MessageBox( 'Первый операнд должен быть числом!', 'Open Error', MB_OKCANCEL + MB_DEFBUTTON1); exit end; s2:=Edt2.Text; Val(s2,r2,k); if k<>0 then begin Application.MessageBox( 'Второй операнд должен быть числом!', 'Open Error', MB_OKCANCEL + MB_DEFBUTTON1); exit end; begin if Btn1.Caption='+' then r3:=r1+r2 //вычисление суммы else if Btn1.Caption='x' then r3:=r1*r2 else if Btn1.Caption='/' then r3:=r1/r2 else if Btn1.Caption='-' then r3:=r1-r2 else if Btn1.Caption='^' then r3:=exp(r2*ln(r1)); end; s3:=FloatToStr(r3); //преобразование числа в строку k:=Pos(',',s3); //проверка, используется ли разделитель запятая между if k>0 then begin //целой и дробной частями числа, и замена ее на точку. Delete(s3,k,1); Insert('.',s3,k); end; Edt3.Text:=s3; //запись результата в поле ввода Edit3 end; procedure TForm1.btn1Click(Sender: TObject); begin if Btn1.Caption='+' then Btn1.Caption:='x' else if Btn1.Caption='x' then Btn1.Caption:='/' else if Btn1.Caption='/' then Btn1.Caption:='-' else if Btn1.Caption='^' then Btn1.Caption:='+'; end; procedure TForm1.btn1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if not(Key in [17,18]) then exit; if IntToStr(Key)='18' then begin //Клавиша Alt if Btn1.Caption='+' then Btn1.Caption:='x' else if Btn1.Caption='x' then Btn1.Caption:='/' else if Btn1.Caption='/' then Btn1.Caption:='-' else if Btn1.Caption='-' then Btn1.Caption:='+'; end else begin //Клавиша Ctrl if Btn1.Caption='+' then Btn1.Caption:='-' else if Btn1.Caption='-' then Btn1.Caption:='/' else if Btn1.Caption='/' then Btn1.Caption:='x' else if Btn1.Caption='x' then Btn1.Caption:='+' end; end; procedure TForm1.edt3KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if not(Key in [71,75]) then exit; if IntToStr(Key)='75' then begin //Клавиша Л л K k Edt1.Text:=edt3.Text; Edt2.Text:=''; Edt3.Text:=''; Edt2.SetFocus end else begin //Клавиша П п G g Edt2.Text:=edt3.Text; Edt1.Text:=''; Edt3.Text:=''; Edt1.SetFocus end; end; end.
0
|
13.12.2012, 23:29 | |
Ответы с готовыми решениями:
0
Как преобразовать обычный калькулятор в калькулятор использующий класс стек? Простой калькулятор и калькулятор с парсингом Калькулятор! калькулятор |
13.12.2012, 23:29 | |
13.12.2012, 23:29 | |
Помогаю со студенческими работами здесь
1
Калькулятор Калькулятор Калькулятор Калькулятор с СС Калькулятор Калькулятор Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |