Вопросы и Ответы
4. Как определить при разработке компонента в какой стадии он находится, в стадии проектирования или в стадии выполнения?
Все компоненты являются наследниками класса TComponent и обладают свойством ComponentState. Данное свойство содержит набор значений, указывающих на текущее состояние компонента.
Флаг | Состояние компонента |
csDesigning | Компонент находится в стадии проектирования. |
csDestroying | Компонент сейчас будет разрушен. |
csLoading | Компонент загружается из файла формы. |
csReading | Компонент считывает значения своих свойств из потока. |
csWriting | Компонент записывает значения своих свойств в поток. |
Пример:
............
if
cdDesigning in ComponentState then begin ............ end
............ ............ Необходимость узнать, в какой
стадии находится компонент, возникает при
большом объеме отображаемых данных или при их
сложности, что делает проектирование более
удобным. Некоторые компоненты должны
срабатывать только на стадии выполнения, иначе
последствия могут быть самыми неожиданными,
например при работе компонент с портами COM и LPT. Так же, в последнее время,
появились двигающиеся по форме компоненты.
Всякие летающие рисунки и надписи. И те
компоненты которые не проверяют ComponentState бывает
довольно сложно поймать и (удалить)
отредактировать, да и под ногами они путаются...
else begin
end
...предыдущая страница следующая...
оглавление