|
10 / 10 / 7
Регистрация: 18.10.2015
Сообщений: 160
|
||||||
RTTI XE726.11.2015, 09:29. Показов 2399. Ответов 13
Метки нет (Все метки)
Хотелось бы узнать, есть ли обёртка по работе с RTTI к примеру
Кликните здесь для просмотра всего текста
Добавлено через 10 минут Была бы полезно если бы она сама ещё могла параметр конвертритровать в нужный тип, к примеру, если мы передаём в свойств parent цифры, то он бы попытался её конвертировать в класс TObject или TClass если это tkClassRef
0
|
||||||
| 26.11.2015, 09:29 | |
|
Ответы с готовыми решениями:
13
Модуль RTTI.PAS Delphi XE7 Не устанавливается delphi xe7 |
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 26.11.2015, 11:01 | |
|
Класс RTTI.TRttiContext являет собой интересующую тебя оболочку RTTI
0
|
|
|
10 / 10 / 7
Регистрация: 18.10.2015
Сообщений: 160
|
|||||||
| 26.11.2015, 12:18 [ТС] | |||||||
|
Я привёл код, там явно видно что через одну функцию (Value\GetValue) можно обратиться к индексированному свойству - обычному, а так же и к полю Field (хоть явно это не показано) (По этому я и просил помочь найти готовое средство обёртки) И не нужно где то в дебрях хранить Owner (TStrings) что бы потом составить по нему цепочку обращений для свойств. Вот вообщем, приведу пример, тока там ещё и обработка вызовов функций всунута Кликните здесь для просмотра всего текста
0
|
|||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 26.11.2015, 12:50 | |
|
Мне, например, так вполне хватает "оберток" в виде RTTI.TRttiContext (для быстрого доступа к любым зарегистрированным методам) и набора рег.процедур/ф-ций из состава TypInfo (для быстрого доступа к любым зарегистрированным полям и свойствам)
0
|
|
|
10 / 10 / 7
Регистрация: 18.10.2015
Сообщений: 160
|
|
| 26.11.2015, 13:17 [ТС] | |
|
Вы хотите сказать что тот длинный код можно заменить на пару строк ? не обращая внимания на свойства (индексированные) полей (Field) А так же конвертацию параметров ?
(которая между прочим ещё занимает плюсом 96 строк и 2872 символов)
0
|
|
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 26.11.2015, 14:05 | |
|
я хочу сказать что универсальной на все случаи жизни оболочки не существует
0
|
|
|
10 / 10 / 7
Регистрация: 18.10.2015
Сообщений: 160
|
||
| 26.11.2015, 19:25 [ТС] | ||
|
Добавлено через 5 часов 1 минуту Неужели нет обёрток по лёгкой работе с RTTI ?
0
|
||
|
10 / 10 / 7
Регистрация: 18.10.2015
Сообщений: 160
|
||||||
| 28.11.2015, 14:01 [ТС] | ||||||
|
Раз уж так хорошо назвал тему, что самая первая в списке поисковика гугла.. то выложу хоть что - то.
Знаю для опытных может показаться это банальным, но всё - же. Функция позволяет вызывать любой методов полученный с помощью GetMethod
0
|
||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|
| 28.11.2015, 21:33 | |
|
Малополезный шматок кода
Поиск нужного TRttiMethod потребует в разы большее кол-во телодвижений. Но зато первым параметром можно будет передавать либо имя метода, либо его адрес, либо индекс VMT
0
|
|
|
10 / 10 / 7
Регистрация: 18.10.2015
Сообщений: 160
|
||||||||||||||||||||||||||||||
| 29.11.2015, 13:21 [ТС] | ||||||||||||||||||||||||||||||
Думаю в этом и полезность примера. А разработчики среды могли бы заранее всё это дела автоматизировать своими ручками, хотя бы в отельном методе, но не стали Кликните здесь для просмотра всего текста
Это overload
Добавлено через 4 часа 57 минут Может кому будет интересно посмотреть на это творение... - Вызываем конструктор с неизвестным именем, или более подходящий по параметрам
Если параметры не совпадают с методами, то вызов не происходит, даже если метод есть Кликните здесь для просмотра всего текста
0
|
||||||||||||||||||||||||||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
||||||
| 29.11.2015, 14:17 | ||||||
|
А где ты передаешь экземпляр (класса, метакласса, интерфейса или записи), метод которого должен быть вызван ?
Добавлено через 7 минут На мой взгляд, вот так было бы удобнее:
Instance - экземпляр класса, метакласса, интерфейс или адрес записи, метод которого д.б. вызван AMethod - имя, адрес или VMT-индекс метода Parans - параметры
0
|
||||||
|
10 / 10 / 7
Регистрация: 18.10.2015
Сообщений: 160
|
|||||||||||||||||
| 30.11.2015, 02:24 [ТС] | |||||||||||||||||
|
Кликните здесь для просмотра всего текста
Вот пример работы Кликните здесь для просмотра всего текста
А выдаст
В любом случае надо ещё многое продумать
0
|
|||||||||||||||||
|
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
|
|||||||
| 30.11.2015, 08:20 | |||||||
И нет возможности вызвать метод объекта, созданного вне контекста оболочки TGUIRtti
0
|
|||||||
|
10 / 10 / 7
Регистрация: 18.10.2015
Сообщений: 160
|
||||
| 30.11.2015, 08:47 [ТС] | ||||
|
Сейчас мне удалось с помощью него создавать окна, и на них кнопки, с привязкой событий. Что уже неплохо ![]() Добавлено через 9 минут
0
|
||||
| 30.11.2015, 08:47 | |
|
Помогаю со студенческими работами здесь
14
Значок exe в Delphi XE7
Delphi7 и RAD Studio XE7
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|