![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
Здравствуйте уважаемые форумчане. Вопрос может показаться глупым, но хотелось бы дельного совета:
есть код сложения:
Как видно тут используются глобальные переменные. Как вы считаете, лучше оставить их или же использовать локальные переменные? Если же использовать локальные переменные, то как быть с кнопкой '=', ведь я могу создать специальную процедуру сложения, которая будет складывать две строки, вложить эту процедуру в button3Click(для кнопки +) Как же потом её вызвать при нажатии на кнопку '='? |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
Посоветовали произвести работу с меткой, как это можно сделать?
|
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
Размести переменные в секции private у TForm1
|
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
||||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
В смысле, ищи объявление класса TForm1 и размещай там переменные. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
вы имеете в виду это объявление?
так то всё так, но ведь это будет являться глобальными переменными, а не локальными |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
|
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
Спасибо, а какие еще возможны варианты?
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Варианты чего?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 4 Всего: 19 |
Ну разве что свой класс написать... -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
Я просто хочу обдумать все варианты решение поставленной задачи. Плюс у меня возник вопрос, как работать с памятью. Интересует не только как запрограммировать кнопки типа RM, M+, M-, но и просто отдельные кнопки памяти, к примеру A,B,C
|
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
Как сделать правильно переключение с GRAD/RAD/DEG. Как это сделать оптимально?
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 9 Всего: 58 |
Что значит оптимально? Лучше всего сделать свой класс и запихнуть все внутрь.
|
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Даже больше. Глядя на уже существующие программные калькуляторы напрашивается использование TRadioGroup. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
||||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Хочешь, чтобы мы тут выяснили, что на твоём калькуляторе означает DEG? -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 7 Всего: 41 |
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
||||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 7 Всего: 41 |
Град он и есть град, 1/100 от 90 градусов.
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
Ок, всё вроде понятно, т.е. надо будет для каждого режима программировать его, совместить это не получится....
|
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Чем дальше в лес, тем более не понятно что вас интересует. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
||||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 9 Всего: 58 |
Ну ты хотя бы какой-то кусок кода приведи, и мы подскажем
|
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
а какой можно кусок кода предоставить. Я просто себе представляю, что это будет что-то типа RadioButton. При переключении и будет происходить смена режима.
|
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Любой, который вы попробуете написать сами. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Delvish |
|
|||
![]() oO ![]() Профиль Группа: Участник Сообщений: 136 Регистрация: 13.12.2006 Репутация: нет Всего: 4 |
занеси в переменную значение, при событии onClick делай вычисления и выводи на экран без перезаписи этой переменной. в чем проблема? |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
Вроде бы должно всё работать, но однако выдает ошибку "Project raised exception class EConvertError with message '' ' is not a valid integer value'" Я не понимаю, почему здесь ошибка несовместимости типов |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Потому что из ничего не получится сделать число.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
||||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Ты сначала очищаешь, а затем то, что очистил, пытаешься приравнять ln_b.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
Как мне тогда считать два раза инфу с одного эдита?
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Сделать все переменные глобальными. Ввести булеву переменную. При нажатии на клавишу действия (сложение/вычитание и т.д.) заносить в эту переменную действие. И проверять: если она непустая, значит, в данный момент будет вводиться второе слагаемое.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
всё бы конечно хорошо, но использовать в данном калькуляторе глобальные переменные я не могу. Как по другому сделать(все обычные ф-ии, я сделал без проблем, возникли проблемы только при вычислении логарифмов и возведения в степень) |
|||
|
||||
| northener |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Почему?
В приведенном выше примере я проблем с логарифмами не вижу. Но вижу проблемы с делением. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
||||
|
|||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Без глобальных? ИМХО никак не сделаешь. Ну, можно временные данные хранить во временных файлах, но это уже высшая степень изврата.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Ну может он (а базовые знания у автора явно в зачаточном состоянии) слишком буквально понял приведенный вами термин "глобальная переменная"? Ведь на каждом углу твердят, что глобальные переменные - вселенское зло! -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Народное мнение ошибочно. Это не зло, это одна из возможностей языка программирования. Добавлено через 1 минуту и 30 секунд А ещё можно сделать две кнопки - "первое слагаемое" и "второе слагаемое" - и два едита. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Это будет уже не калькулятор, а тот ужастный монстр, который порой снится во сне нерадивому студенту -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
Я без понятия, что здесь за флуд, который расположен выше. У меня поставлена задача, сделать эти ф-ии без глобальных переменных, вроде бы ясно объяснил, так что господа northener и Данкинг, если не можете помочь зачем разводить флуд. Что надо изменить в коде, который был представлен раньше, чтобы ф-ия считывала два различных числа с одного эдита?
|
|||
|
||||
| Данкинг |
|
||||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Кроме тебя этого никому не ясно.
Какой флуд? Я тебе два варианта подсказал: сохранение в файле и в реестре. -------------------- There's nothing left but silent epitaphs. |
||||
|
|||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
каким образом сохранять в реестр, и как это будет по правильности, сколько будет занимать место в памяти?
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
В поиск, обсуждалось неоднократно. В данном случае - никак. Это бред, как я и говорил. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 7 Всего: 41 |
Как ты себе это представляешь? Вот, держи: Добавлено через 8 минут и 48 секунд А ведь можно все-таки. Присоединённый файл ( Кол-во скачиваний: 6 )
Логарифм_без_глобальных_переменных.7z 152,23 Kb-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
||||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Так логарифм - одно дело, а если сложение?
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
божечки, ну написал же выше, что все обычные ф-ии сделаны, как вы читаете?
|
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
Кто? Где именно это написано? С трудом. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Но тогда из-за чего возник вопрос Ведь и при сложении и при вычитании и при умножении и при делении нужно "считать два раза инфу с одного эдита". Это не "толковое решение". Это Чучмек "извратился" чтобы доказать Данкингу что "формально" возможно решить эту проблему используя только локальные переменные. Но вряд ли вас за такое решение учебной задачи похвалит преподаватель. Не любят они такие "извраты" Ведь наверняка требование "не используя глобальные переменные" всего лишь означает, что вместо глобальных переменных (которые часто употреблялись в Паскале до ООП) нынче программисту стоит использовать поля классов. В данном случае нужно уметь создать в нужной секции описания класса формы переменную нужного типа и использовать её для хранения промежуточных (в данном случае калькулятора) данных. Более в данном топике высказываться не буду. Это сообщение отредактировал(а) northener - 9.4.2012, 23:52 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
||||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 11 Всего: 130 |
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
-------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
||||
|
||||
| spindul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 30.7.2011 Репутация: нет Всего: нет |
спасибо, кто помогал и кто постоянно ворчал. тему можно закрывать
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |