Форум: "Система";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];
ВнизТребуется помощь по свойствам обьектов Найти похожие ветки
← →
SashaS (2002-12-19 12:44) [0]Приветствую Всех знатоков Делфи !
Натолкнулся на проблему - нужно вмешательство "хирургов".
Как достучаться в RunTime к PUBLIC свойству(свойствам) обьекта,
имея строку с именем свойства ???
Буду признателен Всем, но особенно тем кто поможем выйти из тупиковой ситуации.
← →
F1 (2002-12-19 12:51) [1]TypInfo.pas копай...
Но там только Published можно вытащить.
Но с другой стороны, никто не мешает сделать все что надо Published...
← →
SashaS (2002-12-19 12:59) [2]Именно таким образом я и достаю Published свойства,
а вот с PUBLIC - у меня ничего не выходит.... :(
Наверное я чего-то не знаю :(
← →
F1 (2002-12-19 13:08) [3]Ну сделай ты все нужное Published...
Published ведь для того и предназначены, чтобы их можно было вытащить...
Или делай бо-ольшой case, где по строке все определяешь :)))
Но енто гемор еще тот...
← →
SashaS (2002-12-19 13:20) [4]Это грусно в любом случае :(
И это эдинственные решения маей проблемы ?
← →
F1 (2002-12-19 13:27) [5]А это тебе точно надо???
Может быть проблема не стоит решения???
← →
SashaS (2002-12-19 13:43) [6]Это мне нодо ТОЧНО.
← →
Digitman (2002-12-19 14:19) [7]
> Это грусно в любом случае :(
Почему ? Поясни. Что мешает тебе перенести нужные идентификаторы в published ?
← →
SashaS (2002-12-19 15:03) [8]Когда понадобится новое PUBLIC свойство (при настройке системы у клиента) - ннеобходимо перенести нужные идентификаторы
в published и пересобрать ЕХЕ-шник.
А это немного неудобно :(
← →
Digitman (2002-12-19 15:24) [9]Ничего не понял. Нужно новое Public - добавляй в public, нужно Published - соотв-но в published. Сомневаешься ? Сразу (однократно) перенеси все public-идент-ры в published-секцию и переcобери EXE. Впоследствии будешь иметь к ним доступ через RTTI, если вдруг понадобится в какой-то момент. Какие проблемы ?
Единственная секция класса, идент-ры которой НА ЭТАПЕ КОМПИЛЯЦИИ будут фигурировать в RTTI - это секция published. Все остальные секции (private, protected, public) образуют различные области видимости ТОЛЬКО на этапе компиляции, в run-time инф-ция об идент-рах этих секций недоступна (попросту выброшена компилятором за ненадобностью - смещения он уже посчитал)
← →
Digitman (2002-12-19 15:28) [10]извиняюсь
"..идент-ры которой НА ЭТАПЕ КОМПИЛЯЦИИ будут фигурировать в RTTI.."
следует читать как
"..идент-ры которой, будучи обработанные НА ЭТАПЕ КОМПИЛЯЦИИ, будут в последствии (в run-time) фигурировать и в RTTI (имена, типы, значения).. "
← →
SashaS (2002-12-19 15:49) [11]Свойство Parent переопределить сотне компонентам
и таким образом написать следующюю версию Делфи?
← →
NailS (2002-12-19 16:17) [12]
> SashaS
Может расскажешь в чем задача?
Наверное, все гораздо проще?
← →
Digitman (2002-12-19 16:30) [13]Ааа ! Вот ты куда клонишь !
Имеется ввиду - TControl.Parent ? И в результате менять родительский TWinControl ?
Ну а почему обязательно требуется доступ к этому св-ву как к published ? Что, ты до него не в состоянии добраться обычным образом ?
← →
Digitman (2002-12-19 16:40) [14]По-моему, ты себе сам проблему ищешь)
← →
SashaS (2002-12-19 18:08) [15]Может быть Ты и прав.
Но хотелось бы сделать, по возможности, гибкую систему.
>>Ну а почему обязательно требуется доступ к этому св-ву как к >>published ? Что, ты до него не в состоянии добраться обычным >>образом ?
В состоянии но....
Предположим
Создаю динамически 2 формы; -|______ что создавать - в
Создаю динамически TButton -| настройках (в таблицах)
нужно TButton.Parent := нужная форма
string "Parent" и строку "нужная форма" - Тоже хочу хранить в таблице
Published - достаю
а вот Public - .............. :(
← →
Digitman (2002-12-20 08:43) [16]Что есть "нужная форма" ? Адрес целевого объекта-формы в памяти ? Откуда он тебе известен на момент назначения св-ва Parent ? Ведь св-во TButton.Parent при установке требует адрес экз-ра класса, унасл. от TWinControl !
Как ты собираешься искать адрес parent-объекта ? по каким критериям ?
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c