Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2010, 22:44   #1
Hilda
Пользователь
 
Регистрация: 18.12.2009
Сообщений: 16
По умолчанию калькулятор

необходимо чтобы при вводе точки в калькуляторе, она менялась на запятую
Hilda вне форума Ответить с цитированием
Старый 28.04.2010, 22:45   #2
Hilda
Пользователь
 
Регистрация: 18.12.2009
Сообщений: 16
По умолчанию

Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Math;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    Button18: TButton;
    Button20: TButton;
    Button21: TButton;
    Button22: TButton;
    Edit1: TEdit;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button22Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button21Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button20Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button24Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 i,p,r,skob:real;
 t,j:integer;
  mode:integer;
  flag,X:boolean;
  A,B,C,s:string;
  float : single;
 
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button2Click(Sender: TObject);
begin
 Edit1.text:=Edit1.text+'2'
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 Edit1.text:=Edit1.text+'1'
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
 Edit1.text:=Edit1.text+'3'
end;
 
procedure TForm1.Button4Click(Sender: TObject);
begin
 Edit1.text:=Edit1.text+'4'
end;
 
procedure TForm1.Button5Click(Sender: TObject);
begin
Edit1.text:=Edit1.text+'5'
end;
 
procedure TForm1.Button6Click(Sender: TObject);
begin
Edit1.text:=Edit1.text+'6'
end;
 
procedure TForm1.Button7Click(Sender: TObject);
begin
 Edit1.text:=Edit1.text+'7'
end;
 
procedure TForm1.Button8Click(Sender: TObject);
begin
Edit1.text:=Edit1.text+'8'
end;
 
procedure TForm1.Button9Click(Sender: TObject);
begin
Edit1.text:=Edit1.text+'9'
end;
 
procedure TForm1.Button10Click(Sender: TObject);
 begin
If Pos(',', Edit1.Text)>0 then
Edit1.Text:=Edit1.Text+'0' else
Try
If (Edit1.Text<>'0') and (Edit1.Text<>',') then
Edit1.Text:=Edit1.Text+'0';
Except
Edit1.Text:=Edit1.Text+'0';
end;
end;
 
procedure TForm1.Button20Click(Sender: TObject);
begin
{if Edit1.Text='.' then
Edit1.Text:=','; }
If Edit1.Text='' then
Edit1.Text:=Edit1.Text+'0';
If Pos(',', Edit1.Text)<1 then
Edit1.text:=Edit1.Text+',';
end;
 
procedure TForm1.Button13Click(Sender: TObject);
begin
     i:=StrToFloat(Edit1.Text);
  mode:=2;
Edit1.Text:='';
end;
 
 procedure TForm1.Button22Click(Sender: TObject);
begin
  i:=StrToFloat(Edit1.Text);
mode:=3;
Edit1.Text:=''
end;
 
procedure TForm1.Button14Click(Sender: TObject);
begin
  i:=StrToFloat(Edit1.Text);
mode:=4;
Edit1.Text:='';
end;
 
procedure TForm1.Button12Click(Sender: TObject);
begin
  i:=StrToFloat(Edit1.Text);
mode:=1;
Edit1.Text:='';
end;
 
 procedure TForm1.Button17Click(Sender: TObject);
begin
  i:=StrToFloat(Edit1.Text);
mode:=5;
Edit1.Text:='';
 
end;
 
procedure TForm1.Button15Click(Sender: TObject);
begin
 
p:=StrToFloat(Edit1.Text);
   p:=(p*3.14)/180;
   edit1.Clear;
   r:=sin(p);
   Edit1.Text:=FloatToStr(r);
 
end;
 
procedure TForm1.Button16Click(Sender: TObject);
begin
p:=StrToFloat(Edit1.Text);
 p:=(p*3.14)/180;
   edit1.Clear;
   r:=cos(p);
   Edit1.Text:=FloatToStr(r);
end;
 
procedure TForm1.Button24Click(Sender: TObject);
begin
p:=StrToFloat(Edit1.Text);
 p:=(p*3.14)/180;
   edit1.Clear;
   r:=tan(p);
   Edit1.Text:=FloatToStr(r);
end;
 
 
procedure TForm1.Button21Click(Sender: TObject);
begin
   
case mode of
1:begin
   p:=StrToFloat(Edit1.Text);
   r:=i+p;
   Edit1.Text:=FloatToStr(r);
  end;
2:begin
   p:=StrToFloat(Edit1.Text);
   r:=i-p;
   Edit1.Text:=FloatToStr(r);
  end;
3:begin
   p:=StrToFloat(Edit1.Text);
   r:=i/p;
   Edit1.Text:=FloatToStr(r);
  end;
4:begin
   p:=StrToFloat(Edit1.Text);
   r:=i*p;
   Edit1.Text:=FloatToStr(r);
  end;
5:begin
   p:=StrToFloat(Edit1.Text);
   r:=Power(i,p);
   Edit1.Text:=FloatToStr(r);
   end;
end;
end;
 
procedure TForm1.Button18Click(Sender: TObject);
begin
 X:=true;
    Edit1.Clear;
    A:='';
    B:='';
    C:='';
end;
end.
Hilda вне форума Ответить с цитированием
Старый 28.04.2010, 22:50   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

используем событие OnKeyPress эдита
там пишем
Код:
 if not(Key in ['0'..'9']) then if Key in ['.',','] then Key:=DecimalSeparator else Key:=#0;
я думаю вам пригодится это все.
выделил именно по вопросу
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор SPQR10000 Помощь студентам 11 25.02.2010 22:01
Калькулятор на C++ stox11 Помощь студентам 2 09.02.2010 07:31
Калькулятор BaRSyk174 Помощь студентам 4 26.01.2010 20:19
калькулятор vetalij Общие вопросы C/C++ 3 25.01.2010 21:04
Калькулятор slivochny Общие вопросы C/C++ 4 17.06.2009 20:49