|
|
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
А как бы проще организовать конвертацию энумератора в строку и обратно для таких конечных строк 'lower', 'upper', 'title', 'none', 'assume-lower', 'assume-title', 'assume-upper'? Функции GetEnumName/GetEnumValue не подходят, т.к. конечные строки содержат знак "-" и я не объявлю такие идентификаторы Таких энумераторов много, так что не очень хочется под каждый писать отдельные функции конвертации С уважением, Vasilisk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 18:15 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
Напиши свою функцию. Ну или класс, если требуется что-то большее, чем просто имена. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 18:25 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, System.TypInfo.AddEnumElementAliases ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 18:28 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
> System.TypInfo.AddEnumElementAliases Ух-ты, круто... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 18:30 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey System.TypInfo.AddEnumElementAliases ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 19:04 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
Альтенативный вопрос Код: pascal 1. Можно ли получить TRttiType для элемента перечисления, чтобы потом у него вызвать GetAttributse()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 19:38 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
Родилaсь такая структура Код: 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. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2021, 21:25 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey _Vasilisk_, System.TypInfo.AddEnumElementAliases http://docwiki.embarcadero.com/Libraries/Sydney/en/System.TypInfo.AddEnumElementAliases а справки и примеров нет :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2021, 09:50 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Ммм? Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2021, 12:27 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
alekcvp, вдруг просочится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2021, 12:37 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
alekcvp Ммм? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2021, 18:39 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
wadman alekcvp, вдруг просочится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2021, 21:57 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. я бы такие проверки в конструктор класса убрал, это и быстрее и проверка будет при запуске, а не при использовании ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 09:46 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan) _Vasilisk_, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. я бы такие проверки в конструктор класса убрал, это и быстрее и проверка будет при запуске, а не при использовании а я не люблю в конструкторе никаких исключений поднимать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 10:16 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
А я задачу, аналогичную задаче ТC, сделал через helper, реализовал в нем .ToString для enum и всё работает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 10:39 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan) я бы такие проверки в конструктор класса убрал, это и быстрее и проверка будет при запуске, а не при использовании asutp2 А я задачу, аналогичную задаче ТC, сделал через helper, реализовал в нем .ToString для enum и всё работает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 16:03 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan) я бы такие проверки в конструктор класса убрал, Код: pascal 1. вызывается раньше чем классовый конструктор Код: pascal 1. Т.е. проверку нужно вставлять в двух местах: и в конструкторе и в методе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 16:34 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ kealon(Ruslan) я бы такие проверки в конструктор класса убрал, есть простое правило: "если программа работает неправильно, значит ты что-то неправильно написал" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 19:41 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan) есть простое правило: "если программа работает неправильно, значит ты что-то неправильно написал" Код: 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. TClass2.Create TClass1<Byte>.Method TClass1<Byte>.CreateНу конечно же я что-то неправильно написал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 20:59 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Наверное это потому что ты вызываешь метод класса из конструктора другого класса, нет?.. Никто не обещал что конструктор будет вызываться при любом обращении к классу. Более того, если прочитать справку то там, внезапно, написано: Note: Even though the compiler takes care of ordering the initialization of classes, in some complex scenarios, ordering may become random. This happens when the class constructor of a class depends on the state of another class that, in turn, depends on the first class. У тебя класс2 зависит от класса1, потому что он вызывает его методы, а класс1 зависит от класса2, потому что это дженерик и до первого обращения к нему с указанием типа его вообще не существует. Более того, дальше тебя ждёт ещё больше сюрпризов, потому что: Note: The class constructor for a generic class or record may execute multiple times. The exact number of times the class constructor is executed in this case depends on the number of specialized versions of the generic type. For example, the class constructor for a specialized TList<String> class may execute multiple times in the same application. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2021, 21:42 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
alekcvp, 1-е верно, компилятор может упустить вызов конструктора если он например может его выкинуть или если "не видит" связи между вызовами - запустить его как получится авторNote: The class constructor for a generic class or record may execute multiple times. The exact number of times the class constructor is executed in this case depends on the number of specialized versions of the generic type. For example, the class constructor for a specialized TList<String> class may execute multiple times in the same application. а вот это неправда, там такой же счётчик как и у Unit-ов. Эту багу хорошо повыправляли на 10-ке Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2021, 10:53 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan) а вот это неправда, там такой же счётчик как и у Unit-ов. Эту багу хорошо повыправляли Это цитата из справки, если что. Причём из справки для 10.4. Так что если ты с чем-то не согласен - пиши сразу в Эмбу 😁 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2021, 11:05 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
alekcvp, и что же я им напишу, верните багу назад в соответствии с этой документацией? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2021, 11:35 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
Столько проблем, хотя в варианте с хелпером все работает предсказуемо и без багов))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2021, 11:38 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
asutp2, да я кажется знаю где у _Vasilisk_ бага, он как-то просил пример по одному вопросу "почему так делать нельзя", похоже он сам его и написал но пока не видно как он его использует, однозначно утверждать нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2021, 11:57 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40041839&tid=2037634]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 200ms |
| total: | 460ms |

| 0 / 0 |
