Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Генерация методов для свойств.
|
|||
|---|---|---|---|
|
#18+
Как реализовать генерацию методов для предопределенных свойств по типу системных propertynameDoSmth()? Пробовал делать следующим образом: Наследовался от какого-либо DataType класса (например %String), добавлял туда свой метод с генерацией необходимого кода в зависимости от различных параметров. Далее в нужном классе добавлял свойство по типу своего DataType и компилял. В итоге в программу добавляется нужный мне метод propertynameDoSmth(), но только он не работает должным образом, т.к. компилятор перед моим кодом добавляет следующую строчку: Код: plaintext Что делать в таком случае и как добиться правильной генерации метода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2008, 12:53 |
|
||
|
Генерация методов для свойств.
|
|||
|---|---|---|---|
|
#18+
Я бы делал с PropertyClass, например так: Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. Хотя, тут получается один и тот же метод для всех свойств, но можно в DemoProperties добавить какой-нибудь параметр и различать по нему методы. -------- Cache for Windows (x86-32) 2008.1 (Build 401U) Tue Feb 26 2008 11:46:52 EST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2008, 13:18 |
|
||
|
Генерация методов для свойств.
|
|||
|---|---|---|---|
|
#18+
Такой подход уже пробовался, результат тот же - компилятор добавляет в начало метода ранее упомянутую строчку и убивает переменную %this. В таком случае ни чего более, чем значение этого свойства в переменной %val я узнать не могу, а это не айс. Хочется достучаться до свойств. В Идеале - если не переопределены методы Get/Set для этого свойства, то сгенерировать для них свой код, который малость отличатся от системного... Вся проблема в генерации компилятором упомянутой строчки. Может кто подсказать решение или хотя бы подсказать направление поиска/работы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 11:03 |
|
||
|
Генерация методов для свойств.
|
|||
|---|---|---|---|
|
#18+
Not ProcedureBlock пробовали? Было бы неплохо выложить небольшой примерчик Вашего типа данных и пример его использования. PS: Насчёт использования PropertyClass . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 15:00 |
|
||
|
Генерация методов для свойств.
|
|||
|---|---|---|---|
|
#18+
Not ProcedureBlock тоже пробовал - результат такой же. Вот небольшой тестовый пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. После компиляции получаем программу TEST.TestObject.1.int : Код: plaintext 1. 2. 3. 4. 5. 6. Как видно, компилятор добавляет свою строчку, где убивается %this. Далее в терминале пробуем: Код: plaintext 1. 2. 3. 4. 5. В итоге получаем ошибку, которая появляется из-за отсутсвия %this: Код: plaintext 1. 2. 3. Есили попробовать выполнить ту же строчку до убития %this, то результат будет нормальным. В общем, основная проблема возникает из-за генерации компилятором дополнительной строчки. Как его заставить не делать этого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 07:43 |
|
||
|
Генерация методов для свойств.
|
|||
|---|---|---|---|
|
#18+
Попробуйте так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 16:27 |
|
||
|
|

start [/forum/topic.php?fid=39&fpage=69&tid=1558839]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 366ms |

| 0 / 0 |
