logo search
Литература_1 / photon_old

Ссылка на поверхности управления

Вы можете ссылаться на поверхности управления через:

Этот идентификатор уникальным образом идентифицирует поверхность управления внутри его соотнесённого виджета. Действительными значениями для идентификатора поверхности являются значения в диапазоне от 1 до 255 включительно.

Хотя метод указателя действует напрямую и потому более быстр, он не настолько безопасен, как метод идентификатора. Чтобы понять почему, обсудим, как поверхности управления организованы и хранятся в памяти.

В отличие от иерархии виджетов, выполненной как связанный список, поверхности управления хранятся как массив структур поверхностей (PtSurface_t). Основными причинами для хранения таким способом являются:

Поскольку Вы физически перемещаете поверхности управления по кругу в стековом порядке, их размещение в массиве изменяется, в результате чего меняются их адреса в памяти. Кроме того, при добавлении или удалении Вами поверхностей управления к виджету, массив необходимо переразмещать, что также станет причиной того, что сам массив в целом будет перемещаться в памяти. Со всеми этими возможностями по перемещению в памяти, цифровые идентификаторы являются единственным реальным способом локализации поверхности.

Если Вы в достаточной степени уверены, что конфигурация поверхностей виджета не будет изменяться, то метод указателя является безопасным (и более быстрым, поскольку метод идентификатора требует исполнения линейной петли обработки в массиве поверхности).