|
|
|
Использование Variant в атрибутах
|
|||
|---|---|---|---|
|
#18+
В очередной раз решил проникнуться атрибутами и снова косяк. В документации ограничения на использование в атрибутах Variant не нашел, компилятор тоже не ругнулся. Однако при получении атрибутов у класса TMyClass валится ошибка Invalid variant type. Это баг или фича ? :) Код Код: pascal 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2018, 17:47 |
|
||
|
Использование Variant в атрибутах
|
|||
|---|---|---|---|
|
#18+
[MyTest(Int32(1))] попробуйте явное приведение. Иои TValue. Или если не работает то перегрузку конструкторов а в них уже вариант храните. Вообще variant это моветон для ленивых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2018, 21:44 |
|
||
|
Использование Variant в атрибутах
|
|||
|---|---|---|---|
|
#18+
X-Cite Иои TValue. Кстати, а что такое TValue? Новая замена Variant? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2018, 21:53 |
|
||
|
Использование Variant в атрибутах
|
|||
|---|---|---|---|
|
#18+
Аналог variant только управляемый и нативный в delphi. По мне удобнее если не требуется поддержка старого кода. И то для TValue есть преобразование из variant ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2018, 21:59 |
|
||
|
Использование Variant в атрибутах
|
|||
|---|---|---|---|
|
#18+
Так и не понял, причём здесь Variant ? Ну объявлен MyTestAttribute в модуле, а каким боком он относится к классу TMyClass ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2018, 02:06 |
|
||
|
Использование Variant в атрибутах
|
|||
|---|---|---|---|
|
#18+
DimaBr, Тем боком, что MyTestAttribute является атрибутом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2018, 11:23 |
|
||
|
Использование Variant в атрибутах
|
|||
|---|---|---|---|
|
#18+
PanBuslikВ документации ограничения на использование в атрибутах Variant не нашел http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Annotating_Types_and_Type_Members You can only use constant expressions, including sets, strings, and ordinal expressions. PanBuslikЭто баг или фича ? :) Посмотри на реализацию System.Classes.DefaultAttribute. Вариантное значение, но куча перегруженных конструкторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2018, 13:22 |
|
||
|
Использование Variant в атрибутах
|
|||
|---|---|---|---|
|
#18+
PanBuslikВ очередной раз решил проникнуться атрибутами и снова косяк. В документации ограничения на использование в атрибутах Variant не нашел, компилятор тоже не ругнулся. Однако при получении атрибутов у класса TMyClass валится ошибка Invalid variant type. Это баг или фича ? :) Согласен с предыдущим оратором. У тебя всё равно ограниченное количество вариантов инициализации атрибута, поэтому сделай несколько конструкторов на возможные типы (string, integer, double, ненужное вычеркнуть). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 10:52 |
|
||
|
Использование Variant в атрибутах
|
|||
|---|---|---|---|
|
#18+
Спасибо всем за то что откликнулись! Вариантов решения действительно хватает. Больше скорее интересовало почему валится при использовании Variant. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 09:53 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39680907&tid=2040574]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 478ms |

| 0 / 0 |
