Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с калькулятором, не понятна причина бездействия 
:(
    Опции темы
spindul
Дата 18.3.2012, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.7.2011

Репутация: нет
Всего: нет



Здравствуйте уважаемые форумчане. Вопрос может показаться глупым, но хотелось бы дельного совета:
есть код сложения:
Код

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;


Как видно тут используются глобальные переменные. Как вы считаете, лучше оставить их или же использовать локальные переменные? Если же использовать локальные переменные, то как быть с кнопкой '=', ведь я могу создать специальную процедуру сложения, которая будет складывать две строки, вложить эту процедуру в button3Click(для кнопки +) Как же потом её вызвать при нажатии на кнопку '='?
PM MAIL   Вверх
spindul
  Дата 19.3.2012, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.7.2011

Репутация: нет
Всего: нет



Посоветовали произвести работу с меткой, как это можно сделать?
PM MAIL   Вверх
Snowy
Дата 19.3.2012, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Размести переменные в секции private у TForm1
PM MAIL   Вверх
spindul
Дата 19.3.2012, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.7.2011

Репутация: нет
Всего: нет



Цитата(Snowy @  19.3.2012,  13:43 Найти цитируемый пост)
Размести переменные в секции private у TForm1 

всмысле? как это выполнить кодом, точнее как это делать подробней хотя бы
PM MAIL   Вверх
Данкинг
Дата 19.3.2012, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(spindul @  19.3.2012,  15:27 Найти цитируемый пост)
всмысле

В смысле, ищи объявление класса TForm1 и размещай там переменные.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
spindul
Дата 19.3.2012, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.7.2011

Репутация: нет
Всего: нет



Цитата(Данкинг @  19.3.2012,  14:32 Найти цитируемый пост)
объявление класса TForm1

вы имеете в виду это объявление?
Код

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
var
  Form1: TForm1;
  a,b,d:extended;
  zn:char;

так то всё так, но ведь это будет являться глобальными переменными, а не локальными
PM MAIL   Вверх
Snowy
Дата 19.3.2012, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Код
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
  private // личные поля класса TForm1
    a,b,d:extended;
    zn:char;
  end; // конец класса TForm1

var  // глобальные переменные
  Form1: TForm1;
Таким образом эти переменные будут доступны везде внутри класса TForm1 и недоступны за его пределами.
PM MAIL   Вверх
spindul
Дата 19.3.2012, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.7.2011

Репутация: нет
Всего: нет



Спасибо, а какие еще возможны варианты?
PM MAIL   Вверх
Данкинг
Дата 19.3.2012, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Варианты чего?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
DarkProg
Дата 19.3.2012, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 4
Всего: 19



Цитата(spindul @  19.3.2012,  17:24 Найти цитируемый пост)
Спасибо, а какие еще возможны варианты? 

Ну разве что свой класс написать...


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
spindul
Дата 19.3.2012, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.7.2011

Репутация: нет
Всего: нет



Я просто хочу обдумать все варианты решение поставленной задачи. Плюс у меня возник вопрос, как работать с памятью. Интересует не только как запрограммировать кнопки типа RM, M+, M-, но и просто отдельные кнопки памяти, к примеру A,B,C
PM MAIL   Вверх
spindul
Дата 23.3.2012, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.7.2011

Репутация: нет
Всего: нет



Как сделать правильно переключение с GRAD/RAD/DEG. Как это сделать оптимально?
PM MAIL   Вверх
Данкинг
Дата 23.3.2012, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(spindul @  23.3.2012,  22:53 Найти цитируемый пост)
Как сделать правильно переключение с GRAD/RAD/DEG. 

Radiobutton.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Keeper89
Дата 24.3.2012, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



Что значит оптимально? Лучше всего сделать свой класс и запихнуть все внутрь.


--------------------
PM MAIL WWW   Вверх
northener
Дата 24.3.2012, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Данкинг @  23.3.2012,  22:34 Найти цитируемый пост)
Цитата(spindul @  23.3.2012,  22:53 Найти цитируемый пост)
Как сделать правильно переключение с GRAD/RAD/DEG. 

Radiobutton.

Даже больше. Глядя на уже существующие программные калькуляторы напрашивается использование TRadioGroup.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0887 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.