Кент Рейсдорф. BORLAND C++BUILDER. Раздел 3
Кент Рейсдорф. BORLAND C++BUILDER. Страница 376
Панели инструментов, строго говоря, не относятся к декоративным элементам окна, но они попадают в рамки той же темы, поэтому я кратко их коснусь. Панель инструментов (toolbox) — это просто вторичная форма, которая содержит кнопки быстрого доступа. Вы могли заметить, что такие панели инструментов, как палитра выравнивания и инспектор объектов C++Builder, имеют меньшие размеры строки заголовка, чем обычные окна. Такие строки заголовка создаются установкой для свойства BorderStyle значения bsSizeToolWindow (для панелей инструментов с изменяемыми размерами) или bsToolWindow (для панелей инструментов с фиксированными размерами). За исключением этого отличия, панель инструментов представляет собой просто форму другого вида.
Управление доступом к командам
Управление доступом к командам (command enabling) — это разрешение или запрещение доступа к кнопкам или пунктам меню в зависимости от текущего состояния программы. Например, если в текстовом редакторе будет разрешен доступ к кнопкам Cut или Сору (или к соответствующим пунктам меню) в то время, когда в нем не выделен текст, это не принесет никакой пользы. Точно так же, если в буфере обмена не содержится какого-либо текста, кнопку Paste следует заблокировать.
Управление доступом к командам не очень сложно, но требует времени. От вас потребуется уделять внимание некоторым деталям.
Проблемы управления доступом к командам
Вы можете управлять доступом к командам в любое время и любым способом. Чтобы разрешить доступ к пункту меню или кнопке оперативной панели, нужно просто установить для свойства Enabled соответствующего компонента значение true. Чтобы запретить доступ к компоненту, измените значение свойства Enabled на false. Само по себе разрешение или запрещение доступа к компоненту действительно является простой операцией. Основная же работа состоит в том, чтобы создать код, который будет определять, когда и как запрещать или разрешать доступ. Чтобы перевести разговор в практическое русло, вернемся к программе Scratchpad. Мы доработаем ее, добавив управление доступом для пунктов меню Cut, Сору и Paste. (Я сказал для пунктов меню, имея в виду все элементы управления программой: пункты главного меню, кнопки оперативной панели и пункты контекстного меню.)