Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

Как добраться из 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.066 c
4-1125311994
ANB
2005-08-29 14:39
2005.11.06
Как включить верхний регистр в чужом процессе ?


9-1118065319
Gashish
2005-06-06 17:41
2005.11.06
Перенос модели в из 3d max в Delphi


1-1129094952
SANEK_10289
2005-10-12 09:29
2005.11.06
Помогите пожалуйста... Я из реестра беру имя пользователя...


1-1129609852
7#Z$Ad!*7
2005-10-18 08:30
2005.11.06
Не работает TopItem в компоненте TTreeView


2-1129042250
Dofin
2005-10-11 18:50
2005.11.06
Как в SQL запрос подставить значение Edit1.Text?