Форум: "Основная";
Текущий архив: 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