![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 25.02.2009
Сообщений: 3
|
![]()
Пишу компонент-визуализатор задачи про Ханойские башни.
Кто не знает,читаем здесь:http://ru.wikipedia.org/wiki/Ханойская_башня Вот рекурсивное решение: Код:
Соответственно,открываем Шарп или Дельфи,кидаем на новую форму готовый компонент,на вкладке Properties вводим свойства number и delay, нажимаем на кнопку,которая вызывает метод: Код:
И все хорошо бы,но программа дожна рисовать пошагово как нужно перекидывать кольца,через время задержки,а у меня она рисует только конечный результат,через суммарное время заддержки. -- Насколько я понял проблема в том,что рекурсия забивает стэк,и Invalidate(),остается в конце стэка(то есть в начале..ну вообщем,самым нижним в стопке) поэтому когда выполняется сама отрисовка,параметры уже просчитаны для уже решенной задачи. Кто знает как с этим бороться? Модератор: тег CODE Последний раз редактировалось MaTBeu; 25.02.2009 в 19:28. |
![]() |
![]() |
![]() |
#2 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
Попробуйте вот так
Код:
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 25.02.2009
Сообщений: 3
|
![]()
MaTBeu,спасибо,но не помогло(
Если,вдруг,проблема заинтересовала или знаете еще способы,могу кинуть ссылку на исходники библиотеки. |
![]() |
![]() |
![]() |
#4 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
![]()
Попробуйте посовать функцию Invalidate между рекурсивными вызовами процедур. Должно помочь.
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 25.02.2009
Сообщений: 3
|
![]()
Уже пробовал,не поможет.Если бы можно было вместо инвалидэйта саму отрисовку,тогда помогло бы,а так нет.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
visual c++ 2008 и ATL | vvviperrr | Свободное общение | 2 | 18.06.2008 17:15 |