|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.08.2015, 19:22 | #11 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
То что вы описали практически невозможно сделать в таком виде.
Даже если играться с флагами и Application.ProcessMessages - получится глючное недоразумение. Как выглядит ТЗ целиком? |
31.08.2015, 08:49 | #12 | |
Пользователь
Регистрация: 13.05.2007
Сообщений: 60
|
Цитата:
не, обычное, с формой. Просто так сделано.Написали программу, основная функция которой разного рода расчеты и вывод графиков. Воткнули Memo и подряд в него выводят всю информацию: информацию по этапам расчетов, результаты, разные вопросы, указания ввести дополнительные данные и проч. По ходу дела вместе с сообщениями появляются панели с кнопками, эдитам и т.д. А вся информация и вопросы идут в Memo. Вот решили переделать, чтобы инфа шла не сплошным текстом, а отдельными сообщениями. А мне не хочется ковыряться в коде и переделывать его, думал, может как-то проще можно. Думаю, что остановлюсь на разбивке процедур на части. |
|
31.08.2015, 13:54 | #13 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
чтобы было меньше проблем с переменными, они ведь были объявлены ОДИН раз в начале большо-о-о-й процедуры (надеюсь что там, а не глобальные переменные).
Сделайте класс вычислениЯ. в котором будут 1) набор тех процедур вычислений (ЭТАПОВ), про которые мы уже говорили. 2) переменные (значения) необходимые для хранения промежуточных данных (которые БУДУТ нужны при переходе от одноЙ процедуры(этапа) к другой процедуре(этапу) 3) настроечные данные, получаемые путем уточнения задачи. Цитата:
Все что нужно вывести или наоборот ввести(заполнить нужные переменные) должно быть снаружи. ДО запуска(!!) ИЛИ ПОСЛЕ выполнения(!!) каких либо процедур(этапов). В этом случае ПРИ НЕОБХОДИМОСТИ(!) вы легко сможете ОБЪЕДИНЯТЬ этапы (просто последовательный вызов двух и более процедур(!) Да сейчас такой необходимости нет, но тот кто писал большую процедуру, тоже не предвидел необходимости разделения.
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 31.08.2015 в 14:05. |
|
31.08.2015, 14:22 | #14 |
Пользователь
Регистрация: 13.05.2007
Сообщений: 60
|
Хорошо, спасибо. Посмотрим, что у меня получился.
|
31.08.2015, 15:01 | #15 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,527
|
для контроля и самопроверки можете воспользоваться следующим тезисом.
Ваша имеющая большая процедура, должна сохранять работоспособность (и правильность вычислений) при замене ВСЕХ имеющихся блоков вычислений на соответствующих вызов этапов "нового" класса, а ВЕСЬ ввод-вывод можно и нужно оставить в ней.(с заменой переменных(!) на соответствующие данные из класса). т.е. в процедуре никаких переменных для хранения данных. допустимы только те переменные, которые нужны при преобразовании данных для вывода (или ввода). вроде этого Код:
программа — запись алгоритма на языке понятном транслятору
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нет вывода строки на экран | ДЕД_МАЗАЙ | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 23.11.2014 19:58 |
с++ рекурсивная функция вывода на экран строки в обратном порядке | archil | Помощь студентам | 1 | 26.05.2014 15:10 |
Ожидание завершения | DrBAXA | Общие вопросы Delphi | 8 | 26.01.2013 21:42 |
мультипоточное ожидание | Fun_tick | C# (си шарп) | 5 | 05.03.2012 15:00 |
Контроллер для вывода "бегущей строки" на светодиодные табло | HellMercenariess | Компьютерное железо | 4 | 20.07.2010 03:51 |