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