1 / 1 / 0
Регистрация: 07.05.2009
Сообщений: 5
1

Помощь в доработке калькулятора.

10.05.2009, 01:12. Показов 1174. Ответов 5
Метки нет (Все метки)

Люди, помогите пожалуйста. написал простенький калькулятор, который умеет выполнять несколько действий... не могу разобраться. Во-первых, как сделать так, чтобы при нажатии на клавиатуре на клавишу, например, 1, происходило то же самое что при нажатии на кнопку "1" в программе, при нажатии на * сраьатывало то же самое что и при нажатии на кнопку "*" и т.д.
Во-вторых, очень интересует вот что:
например, при нажатии на кнопку "+" происходит сделующее:

Delphi
1
2
3
4
5
6
procedure TForm1.Button14Click(Sender: TObject);
begin
a:=StrToInt(Edit1.Text);
mode:=1;
Edit1.Text:='0';
end;
т.е. при нажатиии значение в строке записывается и строка опустошается. (переменная Моде вообще тут не для этого)...
т.е. если нажать в такой последовательности:
число- >плюс- >число- >плюс
произойдет сделающее:
при первом нажатии на плюс число из строки скопируется и строка опустошится, и при втором нажатии на плюс произойдет то же самое. а мне нужно, чтобы при нажатии в такой последовательности:
число- >плюс- >число- >плюс
произошло следующее: при первом нажатии на плюс число бы скопировалось, а при втором нажатии на плюс сначала посчиталась бы сумма, потом она бы вывелась на экран и тогда уже СУММА сорранилась бы в переменную. Помогите пожалуйста...
ПыСы:я в делфи новичок и практически ничего не знаю, поэтому очень пошу писать понятным новичку языком (иначе не пойму просто :-(((()
Заранее благодарен...
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2009, 01:12
Ответы с готовыми решениями:

Помощь в доработке сортировки
Сортировка по 1-ому столбцу массива ss := StringGrid1.Cells; // Раздел 1.1 ss1 :=...

Помощь в доработке сортировки
Помогите отсортировать список в StringGride

Нужна помощь в написании калькулятора.
У меня приключилась беда,нужно написать обычный калькулятор с самыми стандартными функциями, но...

Посодействуйте в доработке
procedure TForm1.Button1Click(Sender: TObject); var a:array of integer; i,j,obr:integer; ...

5
421 / 130 / 33
Регистрация: 24.02.2009
Сообщений: 1,122
10.05.2009, 09:35 2
исходник калкулятора...
Вложения
Тип файла: rar Калькулятор.rar (175.3 Кб, 74 просмотров)
0
1 / 1 / 0
Регистрация: 07.05.2009
Сообщений: 5
10.05.2009, 09:52  [ТС] 3
эмм... спасибо, конечно, но в этом калькулторе (я его просматривал уже раз десять) нет функции ввода с клавиатуры, а вот со знаками я попытаюсьь разобраться... и, кстати, при нажатии на кнопку действия там происходит совершенно другое действие... т.е. мне придется весь код переписывать... можете пожалуйста кто-нибудь сказать, что мне делать в именно моем случае...буда сильно рад...
0
421 / 130 / 33
Регистрация: 24.02.2009
Сообщений: 1,122
10.05.2009, 10:03 4
исползуй код клавиши...нампимер код
"*''-42
''+"-43
''-''-45
0
1 / 1 / 0
Регистрация: 07.05.2009
Сообщений: 5
10.05.2009, 11:00  [ТС] 5
Цитата Сообщение от kentaw Посмотреть сообщение
исползуй код клавиши...нампимер код
"*''-42
''+"-43
''-''-45
эммм... я же говорил что я новичок... разъясните, пожалуйста, буду очень признателен... т.е. как мне это сделать...
0
421 / 130 / 33
Регистрация: 24.02.2009
Сообщений: 1,122
10.05.2009, 12:12 6
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
var chisla1,chisla2:real;
    c:boolean=false;
    operasiya:char;
    s:string;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  s:=Edit1.Text;
  case key of
  '0'..'9': begin
            if c then
                  begin
                    if (s='+')or (s='*') or(s='-') or(s='/') then Edit1.Text:='0';
                    chisla1:=StrToFloat(Edit1.text);
                  end
                  else
                   begin
                    chisla2:=StrToFloat(Edit1.text);
                   end;
            end;
  '+':begin Edit1.Text:=''; operasiya:='+';  c:=not c; end;
  '-':begin Edit1.Text:=''; operasiya:='-';  c:=not c; end;
  '*':begin Edit1.Text:=''; operasiya:='*';  c:=not c; end;
  '/':begin Edit1.Text:=''; operasiya:='/';  c:=not c; end;
  '=':case operasiya of
            '+':Edit1.Text:=Floattostr(chisla1+chisla2);
            '-':Edit1.Text:=Floattostr(chisla1+chisla2);
            '*':Edit1.Text:=Floattostr(chisla1+chisla2);
            '/':Edit1.Text:=Floattostr(chisla1+chisla2);
      end;
  end;
 
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.text:='0';
end;
 
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.05.2009, 12:12

Помощь в доработке кода
Здравствуйте. Начал учить C месяц назад. Выполняю упражнение из книги. В книге написано, что...

Нужна Помощь В Доработке Базы
Уважаемые участники форума, не мастер в программирование (админ), но руководство поставило задачу,...

Нужна помощь в доработке скрипта
Здравствуйте. Скачал тизерный скрипт, сейчас дорабатываю для себя и теперь возникла проблема,...

Помощь в доработке программы. привязка Excel-файла
Всем привет! такое дело, нужно привязать к проге excel файл, в котором хранится табличка с данными,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.