|
|
|
RTTI: Interface method (dispid)
|
|||
|---|---|---|---|
|
#18+
Мне нужно пронумеровать на уровне языка методы интерфейса, а потом с помощью RTTI получить этот номер. Если это возможно конечно. Разумеется VirtualIndex не подходит, так как он выдаёт порядковый номер метода, а мне нужна произвольная "метка". Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 20:50 |
|
||
|
RTTI: Interface method (dispid)
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 08:05 |
|
||
|
RTTI: Interface method (dispid)
|
|||
|---|---|---|---|
|
#18+
AX-Class, Благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 08:55 |
|
||
|
RTTI: Interface method (dispid)
|
|||
|---|---|---|---|
|
#18+
Давно хотел использовать атрибуты в своих проектах, да все как-то руки не доходили. Что-то не получается использовать строковые свойства атрибутов... Точнее получается, но только с типом ShortString. Кто в теме подскажите, может я не так что-то делаю? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 10:55 |
|
||
|
RTTI: Interface method (dispid)
|
|||
|---|---|---|---|
|
#18+
В примере выше все будет работать если тип свойства атрибута MethName заменить на ShortString . Типы с переменной длинной строки не работают. А хотелось бы использовать именно их! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 10:58 |
|
||
|
RTTI: Interface method (dispid)
|
|||
|---|---|---|---|
|
#18+
Virtual Student, Полагаю, что не надо отпускать контекст. Код: 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. 119. 120. 121. 122. 123. 124. 125. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:47 |
|
||
|
RTTI: Interface method (dispid)
|
|||
|---|---|---|---|
|
#18+
AX-ClassПолагаю, что не надо отпускать контекст. Да, выходит, что так! Работает почти с любыми типами данных. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:54 |
|
||
|
RTTI: Interface method (dispid)
|
|||
|---|---|---|---|
|
#18+
Virtual Student, Небольшой оффтоп, но зачем вы дублируете код? Код: pascal 1. 2. 3. 4. можно же сделать Код: pascal 1. 2. 3. А так по-сути, лишний цикл выполняется, плюс если вы захотите что-то поменять, то надо синхронизировать изменения в обоих процедурах... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:54 |
|
||
|
RTTI: Interface method (dispid)
|
|||
|---|---|---|---|
|
#18+
alekcvpVirtual Student, Небольшой оффтоп, но зачем вы дублируете код? Код: pascal 1. 2. 3. 4. можно же сделать Код: pascal 1. 2. 3. А так по-сути, лишний цикл выполняется, плюс если вы захотите что-то поменять, то надо синхронизировать изменения в обоих процедурах... Это не рабочий код, а просто для изучения и понимания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:59 |
|
||
|
RTTI: Interface method (dispid)
|
|||
|---|---|---|---|
|
#18+
Вброс.. Чтобы не писать каждый раз Код: pascal 1. 2. 3. заменить на Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 15:03 |
|
||
|
RTTI: Interface method (dispid)
|
|||
|---|---|---|---|
|
#18+
Virtual StudentAX-ClassПолагаю, что не надо отпускать контекст. Да, выходит, что так! Работает почти с любыми типами данных. Спасибо! Тут не в типах проблема, а в том, что ты обращался к убитому объекту. Вставь в старый код и увидишь: Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 16:07 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2041400]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
203ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 523ms |

| 0 / 0 |
