|
|
|
Указатель на метод интерфейса
|
|||
|---|---|---|---|
|
#18+
Есть интерфейс с методами одинаковой сигнатуры Код: pascal 1. 2. 3. 4. 5. и есть класс обертка, который создает экземпляр этого интерфейса, вызывает нужный метод и обрабатывает ошибки Код: 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. Хочется убрать повторения реализации TMyClass.GetField. Видится как-то так Код: 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. конструкцию IIntf.GetField1 компилятор воспринимать отказывается. Есть какое-то решение кроме анонимных функций? С уважением, Vasilisk ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2019, 20:53 |
|
||
|
Указатель на метод интерфейса
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Это safecall ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2019, 21:13 |
|
||
|
Указатель на метод интерфейса
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievЭто safecall ... А разве safecall не наоборот работает, преобразуя HRESULT в EOleSysError?.. https://switch-case.ru/96042 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2019, 22:09 |
|
||
|
Указатель на метод интерфейса
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievЭто safecall ...Во первых нет. Ибоalekcvpнаоборот работает, преобразуя HRESULT в EOleSysError во-вторых реализация интерфейса мне недоступна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2019, 12:04 |
|
||
|
Указатель на метод интерфейса
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_во-вторых реализация интерфейса мне недоступна Ну а сделать наследника интерфейса? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 14:16 |
|
||
|
Указатель на метод интерфейса
|
|||
|---|---|---|---|
|
#18+
Поправка на ветер Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2019, 15:04 |
|
||
|
Указатель на метод интерфейса
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, в этом топике куча мыслей. Посмотрите, может в RTTI решение: https://stackoverflow.com/questions/39584234/how-to-obtain-rtti-from-an-interface-reference-in-delphi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2019, 02:23 |
|
||
|
Указатель на метод интерфейса
|
|||
|---|---|---|---|
|
#18+
Кроик Семёнможет в RTTI решение:Та ну нафиг тащить RTTI из-за такой задачи. Сделал просто Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2019, 18:36 |
|
||
|
|

start [/forum/topic.php?fid=58&tid=2038907]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 357ms |

| 0 / 0 |
