Собсно: во время выполнения на PageControl создаются TabSheet'ы с ListBox'ами. На нажатие Key=27 форма определяет активный (Form1.ActiveControl) контрол и его место (Form1.ActiveControl.Parent). Если это ListBox и TabSheet соответственно, то нужно уничтожить (не спрятать) TabSheet со всем содержимым.
Выдает ошибку. Как обойти это? Может мона как-то перенаправить активность на другой компонент (SetFocus не спасает)?
Как уничтожить TTabSheet с активным компонентом?
Модератор: Модераторы
А назначить другой ActiveControl?
Кстати, Form1.ActiveControl.Parent внутри метода класса TForm1 - плохой стиль
.
Кстати, Form1.ActiveControl.Parent внутри метода класса TForm1 - плохой стиль
Если использовать Form1.ActiveControl := (OtherComponent as TWinControl); то ошибка не исчезаетv-t-l писал(а):А назначить другой ActiveControl?
Добавлено спустя 23 минуты 36 секунд:
Так и не понял в чем конкретно глюк, но... Если обрабатывать событие OnKeyDown, то появляется ошибка с выбросом в qtwidgets, но если обрабатывать событие OnClick или OnKeyPress, то все отлично работает и активность никуда переводить не нуна! Скорее всего баг в qtwidgets.
VirtUX писал(а):Form1. := (OtherComponent as TWinControl);
а OtherComponent точно является потомком TWinControl?
И еще раз, писать Form1. в методах класса TForm1 - это обычно не смертельно, но привычка - плохая. Ты завязываешь всю работу класса на одну конкретную переменную этого класса - Form1.
Код: Выделить всё
Self.ActiveControl:=...Код: Выделить всё
ActiveControl:=...P.S. qtwidgetset пока еще сырой.
Даv-t-l писал(а):а OtherComponent точно является потомком TWinControl?
Я просто для наглядности описания конкретизировал.И еще раз, писать Form1. в методах класса TForm1 - это обычно не смертельно, но привычка - плохая
Это - точно. Но пока работаю с недельку, вроде, как уже... Хотя и достают иногда некоторые глюкиqtwidgetset пока еще сырой.
