Форум: "Основная";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
ВнизКак добраться из TComponent до свойства Visible потомков Найти похожие ветки
← →
dip (2005-10-12 16:07) [0]Уважаемые мастера! У меня такая ситуация: нужно скрывать/показывать любой компонент формы (Form1.Components) имеющий свойство Visible в режиме runtime. Проблема в том, что TComponent не имеет свойства Visible, а у каждого потомка определен свой метод Visible (TControl, TAction, TMenuItem, ...). Можно ли обойтись без явного преобразования для того, чтобы добраться до свойства Visible.
← →
umbra © (2005-10-12 16:22) [1]свойство Visible появляется только у TWinControl (и его потомков), поэтому без приведения типов обойтись нельзя (но это НЕ преобразование)
← →
ZeroDivide © (2005-10-12 16:56) [2]Можно обойтись. Смотри TypInfo.pas
Можно посмотреть, есть ли у компонента, которого ты получаешь перебирая все Form1.Components, определенное всойство. И можно даже установить свойство по его имени, совсем не обязательно разбираться к какому классу этот компонент относится.
← →
Игорь Шевченко © (2005-10-13 01:13) [3]Например:
if IsPublishedProp(AComponent, "Visible") then
SetOrdProp (AComponent, "Visible", Ord(True));
← →
dip (2005-10-13 16:54) [4]А где определены функции IsPublishedProp и SetOrdProp?
← →
Amoeba © (2005-10-13 17:00) [5]Наверное, в TypInfo.pas
← →
dip (2005-10-13 17:17) [6]Спасибо всем! Работает!!!
← →
evvcom © (2005-10-14 14:44) [7]
> свойство Visible появляется только у TWinControl
Появляется у TControl. Можно и без TypInfo.pas. Зачем лишние функции без необходимости?
if AComponent is TControl then
TControl(AComponent).Visible := AVisible;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.11.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.037 c