Тема: FindComponent
Показать сообщение отдельно
  #1  
Старый 24.10.2006, 13:04
johnos johnos вне форума
Прохожий
 
Регистрация: 23.10.2006
Сообщения: 2
Репутация: 10
По умолчанию FindComponent

Привет всем!
Такой вопрос! На форме есть 5 CheckBox'ов с именами CheckBox1 .. CheckBox5. Когда делаю
I:=0;
while I<5 do begin
S:='CheckBox'+IntToStr(I+1);
with (FindComponent(S) as TCheckBox) do Checked:=True
Inc(I)
end
на строчке with (FindComponent(S) as TCheckBox) do Checked:=True выдается сообщение об ошибке:
Project CBReg.exe raised exception class EAccessViolation with message 'Access violation at address 004045A8 in module 'CBReg.exe'. Write of address 00000080'. Process stopped. Use Step or Run to continue.
т.е. судя по всему не находится компонент.
ПОЧЕМУ?!?!

Если сделать, например, в обработчике события OnMouseMove для CheckBox1 следующее
TCheckBox(FindComponent('CheckBox'+IntToStr(1))).C hecked:=True
все проходит отлично. Ставится галочка без ошибок...
Ответить с цитированием