Tabstop и TRectangle
У меня есть TTabControl с некоторыми элементами управления (приложение Delphi XE7 Firemonkey). Все отлично работает, табстоп тоже. Теперь мне нужно раскрасить одну панель с помощью CheckBox. Добавьте TRectangle на эту панель и установите родительский элемент для CheckBox для этого TRectangle. Интерфейс выглядит нормально, но теперь этот CheckBox отсутствует в списке вкладок и не получил команду tabstop.
Как исправить эту проблему?
Как воспроизвести: Добавьте к форме TRectangle, добавьте 3 CheckBox, переместите один CheckBox3 на TRectangle с помощью панели "Структура" (установите TRectangle в качестве родительского для CheckBox3). Запустите это приложение и попробуйте навигацию, используя клавишу Tab. Вы не можете перейти к CheckBox3!
1 ответ
Вы должны либо установить вручную TabOrder
к некоторой (разумной) стоимости, потому что TShape
не опубликовано и, следовательно, установлено -1
(который делает то же самое, что и TabStop = False
) или не размещает TCheckBox
в TRectangle
Просто поместите его перед TRectangle
так что притягивает TRectangle
,
Другой вариант не использовать TRectangle
на все и изменить стиль TPanel
: Щелкните правой кнопкой мыши на панели в конструкторе и выберите Edit Custom Style...
, Затем выберите новый стиль для вас (что-то вроде panel1style: TRectangle
) и изменить Fill
собственность, как вам нужно. Нажмите Apply and Close
и вы сделали. Используя стили, вы можете создавать сложные виды для любого элемента управления, который на первый взгляд может показаться простым. Для получения дополнительной информации см. http://docwiki.embarcadero.com/RADStudio/XE7/en/Customizing_FireMonkey_Applications_with_Styles и связанные с ними темы.