Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.009 c
4-63910
mate
2003-01-10 11:00
2003.02.20
Нажатие клавиши Ctrl


14-63755
Term
2003-02-03 16:38
2003.02.20
KLADR кто нибудь работал с класификатором...


3-63579
Senator
2003-02-04 10:48
2003.02.20
Запуск программы


3-63484
Nuclear
2003-02-04 19:32
2003.02.20
Методы ADOTable1.Append и ADOTable1.Cancel


14-63791
трям
2003-02-03 11:50
2003.02.20
HDD





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