Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];

Вниз

Чем можно заменить   Найти похожие ветки 

 
NAlexey   (2003-05-27 10:21) [0]

Например мне надо проверить:

if Control is TCustomGrid then
...

Но не хочется включать в Uses-Grids. Чем можно заменить такую конструкцию?


 
VMcL   (2003-05-27 10:23) [1]

>NAlexey © (27.05.03 10:21)

Ничем.


 
Skier   (2003-05-27 10:27) [2]

>NAlexey
TObject.ClassNameIs(...)


 
VMcL   (2003-05-27 10:33) [3]

>Skier © (27.05.03 10:27)

ClassNameIs performs much the same function as the is operator, except that it requires an exact match, returning False for descendants of the named class.


 
NAlexey   (2003-05-27 10:34) [4]

>TObject.ClassNameIs(...)
А если наследник? Может там что с RTTI помудрить?


 
Skier   (2003-05-27 10:37) [5]

>NAlexey © (27.05.03 10:34)

> Может там что с RTTI помудрить?

Помудри...


 
rounin   (2003-05-27 10:40) [6]

Можно пройтись по всем предкам с помощью
ClassNameIs + ClassParent

Можно передать в модуль указатель на TCustomGrid:

var
_TCustomGrid: TClass;

// где-то в другом модуле {YourUnit.}_TCustomGrid := TCustomGrid;

if Control.InheritsFrom(_TCustomGrid) then...


 
Skier   (2003-05-27 10:41) [7]

>rounin (27.05.03 10:40)

А как с этим быть ? :)


> Но не хочется включать в Uses-Grids.



 
Digitman   (2003-05-27 10:42) [8]

Раз ты предполагаешь, что среди контролов м.б. грид, это означает, что где-то в uses-секциях прочих модулей уже фигурирует модуль Grids.
И какая разница, укажешь ты в этом модуле Grids или не укажешь ? Ни на что это уже не влияет - коль грид где-то фигурирует, модуль уже используется, и лишняя ссылка на него в данном модуле никаких доп.ресурсов не потребует (если речь идет, насколько это очевидно из вопроса, о якобы нежелательности задействовать неиспользуемые "по полной программе" ресурсы модуля)

Другой вопрос, что сторока с IS-проверкой типа м.б. в хост-приложении, в то время как проверяемый контрол - в DLL. Но в таком случае достаточно собрать и хост-приложение и DLL c опцией build with run-time package, и код модуля grids будет загружен и использован один и тот же (т.е. существовать он будет в единственном экз-ре в вирт.адр.пространстве процесса)


 
NAlexey   (2003-05-27 10:50) [9]

>Digitman ©
Наверное ты прав, хотя RTTI помогла.


 
Palladin   (2003-05-27 10:51) [10]

мда, странные задумки... какой смысл отказыватся от grids...


 
Digitman   (2003-05-27 10:57) [11]


> хотя RTTI помогла


... и помогла именно потому, что информация об интересующем тебя классе появилась в ней в результате компиляции при явно фигурировавшем где-то в uses модуле Grids



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-13307
Suhomlin
2003-05-25 00:29
2003.06.05
Взаимодействие с Outlook


1-13205
Jaxtor
2003-05-26 16:05
2003.06.05
TRadioButton


1-13266
Sandman25
2003-05-22 18:44
2003.06.05
Delphi таймер некорректен? (D6, win2000)


1-13319
Flex
2003-05-25 01:39
2003.06.05
Как получить фокус ввода, при exception?


7-13488
Клавишник
2003-04-02 21:54
2003.06.05
Программирование СОМ -портов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский