_hi_onEvent(THIMultiElementEx(FParent).Events[Index],Data);[/code]
кто-то еще может повторно вызвать:
procedure THIEditMultiEx.onEvent;[/code]
А вызвать он может повторно потому, что компоненты живут в среде с возможностью паралельного исполнения кода схем. Таже самая проблема возникает и в обычном языке:
int *globalVar;
void my_proc(int tempVar) {
globalVar = &tempVar;
do_work();
globalVar = NULL;
}
do_work() {
use_globalVar_1();
use_globalVar_2();
}
void use_globalVar_1() {
//...
}
void use_globalVar_2() {
//...
}
ф-ции use_globalVar используют данные из глобальной переменной globalVar. Этот код будет совершенно корректен, если мы никогда и нигде не вызовем my_proc повторно, в противном случае никаких гарантий никто дать не может.
В схемах HiAsm на данный момент существует как минимум два таких способа:
1) Использование таймера
2) Использование потока
[size=-2]------ Добавлено в 21:05 [/size]
[quote]Мне кажется, что все нормально - как в стеке...[/quote]
С тем, что все нормально и будет при повторном вызове onEvent из самого себя я и не спорю.
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Хотя бы потому, что есть одна глобальная переменная и много схем, которые в нее пишут. Если развивать мысль дальше, то получается, что пока отрабатывает:
|
|||
карма: 27 |
|