|
|
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan) на 10-ке kealon(Ruslan) но пока не видно как он его использует, однозначно утверждать нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2021, 17:08 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, 10.2 Update 1 ты лишь модуль привёл, а где использование? вот твой код Код: 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. всё пучком Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2021, 19:13 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan) ты лишь модуль привёл, а где использование? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2021, 15:07 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ kealon(Ruslan) ты лишь модуль привёл, а где использование? полностью модуль где ты это использовал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2021, 10:47 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Гаджимурадов Рустам> System.TypInfo.AddEnumElementAliases Ух-ты, круто... Круто-то круто, но скажем в 10.2 разумно использовать невозможно: Код: pascal 1. не объявлена в интерфейсной секции. Лучше использовать спец. атрибуты (что-то вроде TEnumAttribute), привязываемые к перечислимому типу: Код: 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. Можно добавить: Код: 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. Использование всего этого - что-то вроде такого: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2021, 06:25 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kapas, а смысл этой всей городушки, если элементарное SomeDescr[EnumVal] при SomeDescr: array[TEnum] вернет то, что надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2021, 10:26 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal kapas, а смысл этой всей городушки, если элементарное SomeDescr[EnumVal] при SomeDescr: array[TEnum] вернет то, что надо Вы везде вставляете константы и явно используете глобальные переменные? И не надоедает? Ведь если звёзды зажигают- значит- это кому то надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2021, 10:59 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kapas не объявлена в интерфейсной секции. kapas Лучше использовать спец. атрибуты Код: pascal 1. 2. 3. 4. Fr0sT-Brutal а смысл этой всей городушки, если элементарное SomeDescr[EnumVal] при SomeDescr: array[TEnum] вернет то, что надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2021, 16:37 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
1. _Vasilisk_В 10.3 объявлена. Может плохо ищете? Я же четко указал 10.2. Можете убедиться сами. Видимо забыли это сделать в 10.2., а в 10.3 исправили. Хм. На самом деле GetAliasEnumValue вызывается из GetEnumValue косвенно. И это работает. Но похоже - нельзя получить по значению сам алиас. Ну да ладно. Вещь конечно удобная, но я ее использовать пока не собираюсь. 2. _Vasilisk_Если бы атрибуты можно было повесить на само значение. А так, в таком виде, сомнительное удовольствие. Что значить на само значение? Можно привести пример? Вы имели ввиду следующее? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 3. _Vasilisk_... Лучше было бы уже делать так Можно сделать и так: Код: pascal 1. , но это не тоже самое что привязать атрибуты к значениям. Хотя тут есть нюансы, о которых нужно говорить отдельно. Но это - другая история. 4. Такой "штукой", о которой я писал, пользуюсь с момента появления в Delphi атрибутов и с переходом к новым версиям проблем не было. Это часть других тех. решений (сериализация/десериализация; описатели в элементах управления и др.). Для меня решение которое я набросал вполне удобно в использовании. Я не агитирую - просто показываю одно из возможных решений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2021, 09:44 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kapas Вы везде вставляете константы и явно используете глобальные переменные? И не надоедает? Константы вставляю, а при чем тут глобальные переменные, не понял. _Vasilisk_ Вернет. И этот вариант был бы идеален. Если бы не требовалось обратное преобразование. А мостить в кучу мест реализацию IndexOf, причем для разных энумераторов, ну такое... А это уже другой вопрос. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2021, 10:20 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
P.S.: Если авторВы имели ввиду следующее? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Это вы объявить сможете, а использовать, увы - невозможно (см. довольно старое сообщение: https://stackoverflow.com/questions/2134120/delphi-2010-rtti-explore-enumerations). С того времени ничего не изменилось и вряд ли сейчас разработчики пойдут на то, чтобы реализовать хранение такой RTTI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2021, 10:26 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, а что бы просто не написать парсер? ckCascadeAll -> "Cascade All" + для сложных случаев добавили бы отдельный метод установки TEnum<T>['Name'] := 'Test'; вполне приемлимо ещё можно такой фокус сделать Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2021, 13:15 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kapas Вы имели ввиду следующее? Fr0sT-Brutal А это уже другой вопрос. kealon(Ruslan) а что бы просто не написать парсер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2021, 14:30 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
По-поводу инициализации: будете прописывать ее в секции инициализации? Что вы например, будете делать при использовании этого вашего реестра в приложении требующего сериализацию/десериализацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2021, 16:34 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
и _Vasilisk_ kealon(Ruslan) а что бы просто не написать парсер?
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2021, 17:31 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
kapas Что вы например, будете делать при использовании этого вашего реестра в приложении требующего сериализацию/десериализацию? kealon(Ruslan) пока у тебя довольно посредственно kealon(Ruslan) TEnumAliasesManager<T>.IndexOf - перебор kealon(Ruslan) нет проверки использования пока не вызовется хоть одна функция kealon(Ruslan) [li]TEnumAliasesManager<T>.Register сложно проверяется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2021, 18:14 |
|
||
|
Enum to string и обратно
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ kealon(Ruslan) пока у тебя довольно посредственно ИМХО:
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2021, 20:49 |
|
||
|
|

start [/forum/topic.php?fid=58&startmsg=40042255&tid=2037634]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
186ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 502ms |

| 0 / 0 |
