100-процентная загрузка процессора
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) |
||
| Строка 1: | Строка 1: | ||
| + | Если в обработчике события OnUpdate компонента [[TAction]] сначала идет присваивание свойства Enabled = True, а затем Enabled = False, то можем получить 100% загрузки процессора при отображении такой формы на экране. | ||
| − | + | Например, рассмотрим такой код: | |
option explicit | option explicit | ||
| Строка 27: | Строка 28: | ||
end if | end if | ||
end sub | end sub | ||
| + | |||
| + | [[Category:Работа над ошибками]] | ||
Текущая версия на 12:08, 15 января 2009
Если в обработчике события OnUpdate компонента TAction сначала идет присваивание свойства Enabled = True, а затем Enabled = False, то можем получить 100% загрузки процессора при отображении такой формы на экране.
Например, рассмотрим такой код:
option explicit
sub actNewOnUpdate(ByVal Sender)
'*** Данный код необходим для вызова встроенного обработчика ***
'*** В случае его удаления возможно нарушение работы системы ***
call Inherited(Sender, "OnUpdate", Array(Sender))
'*** конец кода поддержки встроенного обработчика ***
Sender.Enabled = not Sender.Owner.FindComponent("usrg_gdcEmployee").IsEmpty
end sub
сначала вызываем наследованный обработчик, который, например, установит Enabled = True, а потом переприсваиваем Enabled в False. Естественно получаем 100% загрузку процессора.
В данном случае, правильно писать так:
option explicit
sub actNewOnUpdate(ByVal Sender)
if Sender.Owner.FindComponent("usrg_gdcEmployee").IsEmpty then
Sender.Enabled = False
else
'*** Данный код необходим для вызова встроенного обработчика ***
'*** В случае его удаления возможно нарушение работы системы ***
call Inherited(Sender, "OnUpdate", Array(Sender))
'*** конец кода поддержки встроенного обработчика ***
end if
end sub