|
•Re: Выложил в буффер демку 007 (поиск пути) - Geo, 26.05.2003 13:00:29 |
|
|
Если у тебя процесс очень долгий, то нельзя его вешать на обработчик события целиком. Ты этим подвешиваешь винду, не отдавая управление другим программа, которые тоже хотят чтио-нить сделать. Чтобы мзбежать этоя бяки нужно сделать так: разбить свой алгоритм на части, каждая из которых выполняется отдельным вызовом функции. Допустим, за один вызов генерить не всю карту, а только один ряд карты. Вешать вызов этой функции можно на событие Application.OnIdle. Только разберись с переменной, которая передается обработчику этого события: нужно выбрать правильное значение (на память не помню), чтобы Винда, обежав все остальные программы, вернулась к тебе. Иначе управление к твоей проге не верннется, пока не будет внешнего события, которое требует обработки (например, движения мышки над окном).
Динамический (как, впрочем, и статический) массив -- это всего лишь непрерывная область памяти определенного размера. То, что ты вопринимаешь ее как массив и соответствующим образом доступаешься, это не более, чем интерпретация данной области памяти. С этой точки зрения не понятен вопрос о массиве с дырой посередине. |
|
| |