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

Вниз

Требуется помощь по свойствам обьектов   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.011 c
1-63603
bkv
2003-02-11 11:47
2003.02.20
Мастера, помогите разобраться.


3-63569
Dik
2003-02-04 01:50
2003.02.20
DBComboBox


1-63646
OlkaGTS
2003-02-11 15:12
2003.02.20
Создание компонента


3-63501
denis24
2003-02-05 10:13
2003.02.20
Ttable.Tablename


1-63616
Илайдж
2003-02-11 12:13
2003.02.20
Сканирование памяти