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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2008, 20:38   #11
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Цитата:
помощью клавиши Shift и назначь им общую процедуру onClick и в ней напиши:
малость не дошло!
Цитата:
А вообще, я бы создал глобальную переменную, типа extended (он самый крутой для калькульта как-раз; числовые типы данных) B И в нём бы все операции хранил тек. значение и ещё одну для буфера объявил-бы
и на это тоже хотелось бы посмотреть!
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 07.12.2008, 21:42   #12
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Цитата:
Сообщение от veter_s_morya Посмотреть сообщение
малость не дошло!
и на это тоже хотелось бы посмотреть!
Щёлкаешь по компонентам с задержанной кнопкой shift на клавиатуре. Получается мульти выделение...
_____________________
Объявляешь в разделе VAR, там где form1: tForm1, или как там й тебя главная форма называется, переменные curValue, bufValue: extended; и работаешь с ними. А когда в pole: tEdit понадобиться вывести, напишешь: pole.text := floatTOStr(curValue);
Кстате, чуть не забыл. У компонента pole: tEdit свойство readOnly в true у тебя, или в false. Предсказываю, что в false . Переставь в true .
Altera вне форума Ответить с цитированием
Старый 08.12.2008, 16:14   #13
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

вообще, если выпендриваться до конца, зачем вручную накидывать эти 10 кнопок-цифр?
я бы динамически их создал. один цикл от 0 до 9 и все.
......но просто ОООООчень ленивый
Bayazet вне форума Ответить с цитированием
Старый 09.12.2008, 21:21   #14
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Оригинально..! Но я пока обойдусь без этого! Я ступил. Mod и Div не работают с типом real. Сделал а:integer и поменял StrToFloat на StrToint...Вроде ошибок нет(компильнулось)!
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 13.12.2008, 15:17   #15
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
Восклицание

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Pole: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button0: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    ButtonRavno: TButton;
    ClearButton: TButton;
    procedure ClearButtonClick(Sender: TObject);
    procedure Button0Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(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 Button11Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure ButtonRavnoClick(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
 a:integer; b:char;
implementation

{$R *.dfm}

procedure TForm1.ClearButtonClick(Sender: TObject);
begin
Pole.Clear;
end;

procedure TForm1.Button0Click(Sender: TObject);
begin
 if Pole.Text='0' then Pole.Text:='0' else Pole.Clear; Pole.Text:=Pole.Text+'0';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if Pole.Text='0' then
        begin Pole.Clear; Pole.Text:='1'end
 else begin
        if (Pole.Text='+')
        or(Pole.Text='-')
        or(Pole.Text='*')
        or(Pole.Text='M')
        or(Pole.Text='D')
        then Pole.Clear; Pole.Text:=Pole.Text+'1'; end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if Pole.Text='0' then
        begin Pole.Clear; Pole.Text:='2'end
 else if (Pole.Text='+')
        or(Pole.Text='-')
        or(Pole.Text='*')
        or(Pole.Text='M')
        or(Pole.Text='D')
        then Pole.Clear; Pole.Text:=Pole.Text+'2';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 if Pole.Text='0' then
 begin Pole.Clear; Pole.Text:='3'end
 else if (Pole.Text='+')
        or(Pole.Text='-')
        or(Pole.Text='*')
        or(Pole.Text='M')
        or(Pole.Text='D')
        then Pole.Clear; Pole.Text:=Pole.Text+'3';
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
 if Pole.Text='0' then
 begin Pole.Clear; Pole.Text:='4'end
  else if (Pole.Text='+')
        or(Pole.Text='-')
        or(Pole.Text='*')
        or(Pole.Text='M')
        or(Pole.Text='D')
        then Pole.Clear; Pole.Text:=Pole.Text+'4'; end;


procedure TForm1.Button5Click(Sender: TObject);
begin
 if Pole.Text='0' then
 begin Pole.Clear; Pole.Text:='5'end
  else if (Pole.Text='+')
        or(Pole.Text='-')
        or(Pole.Text='*')
        or(Pole.Text='M')
        or(Pole.Text='D')
        then Pole.Clear; Pole.Text:=Pole.Text+'5'; end;

procedure TForm1.Button6Click(Sender: TObject);
begin
 if Pole.Text='0' then
 begin Pole.Clear; Pole.Text:='6'end
  else if (Pole.Text='+')
        or(Pole.Text='-')
        or(Pole.Text='*')
        or(Pole.Text='M')
        or(Pole.Text='D')
        then Pole.Clear; Pole.Text:=Pole.Text+'6'; end;
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 13.12.2008, 15:18   #16
veter_s_morya
ФорумчанинДжуниор
 
Аватар для veter_s_morya
 
Регистрация: 05.05.2008
Сообщений: 606
По умолчанию

Продолжение
Код:
procedure TForm1.Button7Click(Sender: TObject);
begin
 if Pole.Text='0' then
  begin Pole.Clear; Pole.Text:='7'end
   else if (Pole.Text='+')
        or(Pole.Text='-')
        or(Pole.Text='*')
        or(Pole.Text='M')
        or(Pole.Text='D')
        then Pole.Clear; Pole.Text:=Pole.Text+'7'; end;


procedure TForm1.Button8Click(Sender: TObject);
begin
 if Pole.Text='0' then
  begin Pole.Clear; Pole.Text:='8'end
   else if (Pole.Text='+')
        or(Pole.Text='-')
        or(Pole.Text='*')
        or(Pole.Text='M')
        or(Pole.Text='D')
        then Pole.Clear; Pole.Text:=Pole.Text+'8';end;


procedure TForm1.Button9Click(Sender: TObject);
begin
if Pole.Text='0' then
  begin Pole.Clear; Pole.Text:='9'end
   else if (Pole.Text='+')
        or(Pole.Text='-')
        or(Pole.Text='*')
        or(Pole.Text='M')
        or(Pole.Text='D')
        then Pole.Clear; Pole.Text:=Pole.Text+'9';end;

procedure TForm1.Button11Click(Sender: TObject);
begin
a:=StrToint(Pole.Text); Pole.Text:='+';  b:='+';
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
a:=StrToint(Pole.Text); Pole.Text:='-';  b:='-';
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
  a:=StrToint(Pole.Text); Pole.Text:='*';  b:='*';
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
  a:=StrToint(Pole.Text); Pole.Text:='M';  b:='/';
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  a:=StrToint(Pole.Text); Pole.Text:='D';  b:='.';
end;

procedure TForm1.ButtonRavnoClick(Sender: TObject);
 var c:integer;
begin

  case b of '+':begin c:=a+StrToint(Pole.Text);end;
            '-':begin c:=a-StrToint(Pole.Text);end;
            '*':begin c:=a*StrToint(Pole.Text);end;
            '/':begin c:=a Mod StrToint(Pole.Text);end;
            '.':begin c:=a Div strToint(Pole.Text);end;
end;
Pole.Text:=FloatTostr(c);
end;



end.
Это почти готовый код, т.е если вы введете 9999999 * 99999999 то бедняга войдет в глубокий даун. Как написать алгоритм увеличивающий тип integer...до космических масштабов???[/CODE]
------------------------------
Ум без разума –это беда!
veter_s_morya вне форума Ответить с цитированием
Старый 13.12.2008, 16:22   #17
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Используй тип Int64. Если нужны реально большие числа
Цитата:
космических масштабов
, то это уже много раз обсуждалось. Ищите на форуме
http://www.programmersforum.ru/showt...F7%E8%F1%EB%E0
ну и конечно в нэте
http://yandex.ru/yandsearch?text=%D0...3&stpar1=%2Fu0
Sibedir вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор Nixtone Помощь студентам 7 03.07.2008 23:17
Калькулятор =) noxer Microsoft Office Excel 1 29.04.2008 05:14
Делаю сайты, пишу маленькие/большие скрипты. Пишу веб-приложения и приложения под Windows. SkyM@n Фриланс 3 29.12.2007 16:21
Калькулятор Ivanich Помощь студентам 5 21.12.2007 14:48
Калькулятор Maycal Общие вопросы C/C++ 2 18.11.2007 06:02