Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
2-1129103833
Rykow
2005-10-12 11:57
2005.11.06
не могу прочитать вложение письма


6-1122275828
Marsel83
2005-07-25 11:17
2005.11.06
CGI смена кодировок


14-1129023215
БарЛог
2005-10-11 13:33
2005.11.06
Прокси-сервер


4-1125728116
Antonn
2005-09-03 10:15
2005.11.06
Вывести компьютер из ждущего режима


2-1129031302
zodiak
2005-10-11 15:48
2005.11.06
Как считать файл и получить массив из байт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский