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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2012, 20:39   #1
spindul
Пользователь
 
Регистрация: 18.03.2012
Сообщений: 12
По умолчанию Проблема с калькулятором

Здравствуйте уважаемые форумчане. Как в калькуляторе избавиться от глобальных переменных и нужно ли это?
Код:
procedure TForm1.Button3Click(Sender: TObject); //кнопка +
begin
  a:=strtofloat(edit1.Text);
  edit1.Text:=' ';
  zn:='+';
end;
procedure TForm1.Button2Click(Sender: TObject); //кнопка =
begin
  b:=strtofloat(edit1.Text);
  case zn of
    '+': d:=a+b;
  end;
 edit1.Text:=floattostr(d);
end;
Вверху выложил пример работ двух кнопок '+' и '='. Если делать с глобальными перемеными, то понятно как делать. А вот если делать через локальные, то возникает вопрос что делать с кнопкой '=' т.к. на кнопку '+' делается обычная сумма(процедурой), а как связать с = это не очень представляю.
spindul вне форума Ответить с цитированием
Старый 18.03.2012, 20:46   #2
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

Мне кажется не нужно избавляться. Если только в какой-нибудь скрытый Tedit будешь ставить значение и считывать его в другой переменной...
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 18.03.2012, 21:09   #3
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Ну как раз для такого случая как у тебя и нужны глобальные переменные.
Если же хочется через локальные, то как уже и описали выше, можно внедрить edit или же метку.
Базиля вне форума Ответить с цитированием
Старый 18.03.2012, 23:28   #4
spindul
Пользователь
 
Регистрация: 18.03.2012
Сообщений: 12
По умолчанию

не через скрытый TEdit никак не получится? точнее как сделать меткой?)

Так какие будут советы работы с меткой, просто ни разу толком с ней не работал

Последний раз редактировалось Stilet; 22.03.2012 в 22:10.
spindul вне форума Ответить с цитированием
Старый 19.03.2012, 15:15   #5
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Что именно не получается то?
Кидаешь метку на форму, делаешь ее невидимой, тем самым она становится не визуальным объектом. Ну а далее уже программно работаешь с ней, присваиваешь необходимое значение, забираешь его в нужный момент с метки.(таже суть и с edit'ом)
Почитай соответствующий материал, полезно будет, дальше без этого никуда.

Последний раз редактировалось Базиля; 19.03.2012 в 15:18.
Базиля вне форума Ответить с цитированием
Старый 19.03.2012, 15:36   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

По поводу глобальных переменных.
А что если хранить значения не в глобальных переменных, а в private-полях какого-нибудь объекта?

Бодавлено []: переменная zn вполне может быть кандидатом такое поле

Цитата:
Так какие будут советы работы с меткой, просто ни разу толком с ней не работал
Я бы не советовал, если речь идёт о GOTO. Этот оператор имеет дурную репутацию.
А вообще так:

Код:
//Объявляем метку, как обычную переменную, только без типа
Label T;

begin
//...
T: // какой-то код
//...
goto T; // Перейдём к метке T
//..
end;
То есть этот оператор осуществляет переход к какому-то месту в коде, помеченного меткой.

Последний раз редактировалось Вадим Мошев; 19.03.2012 в 15:44.
Вадим Мошев вне форума Ответить с цитированием
Старый 19.03.2012, 15:42   #7
spindul
Пользователь
 
Регистрация: 18.03.2012
Сообщений: 12
По умолчанию

с метками ни разу не работал, поэтому и не знаю толком ничего про них. Вопрос в том, что если я с ней начну работать это всё равно будут только глобальные переменные, или я ошибаюсь?
Приват поля тоже ни разу не работал с ними, как с ними работать, можете показать пример
spindul вне форума Ответить с цитированием
Старый 19.03.2012, 15:58   #8
spindul
Пользователь
 
Регистрация: 18.03.2012
Сообщений: 12
По умолчанию

GO To явно запрещена, нужно искать другое решение
spindul вне форума Ответить с цитированием
Старый 19.03.2012, 16:07   #9
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Речь шла о компоненте Label.
Автор, повторю еше раз:
Цитата:
Почитай соответствующий материал, полезно будет, дальше без этого никуда.
И большинство вопросов отпадут сразу.
P.S. Вроде как я до этого и описал все подробно...

Последний раз редактировалось Базиля; 19.03.2012 в 16:10.
Базиля вне форума Ответить с цитированием
Старый 19.03.2012, 17:04   #10
spindul
Пользователь
 
Регистрация: 18.03.2012
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
P.S. Вроде как я до этого и описал все подробно...
можете показать кодом для наглядности. просто сейчас читаю в Библии Делфи и там это используется как-то для других целей
spindul вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с калькулятором neprogrammist Общие вопросы Delphi 7 21.06.2010 19:17
Проблема с калькулятором для матриц на С alexobenikov Общие вопросы C/C++ 10 03.12.2009 19:00
Проблемка с калькулятором... .:Stimer:. Общие вопросы C/C++ 11 07.11.2009 17:06
Помогите с калькулятором vishnya454 Помощь студентам 8 07.01.2009 10:35
Проблема з калькулятором carbon383 Помощь студентам 22 02.11.2008 11:49