|
Интерфейсы, доступ к родителю
|
|||
---|---|---|---|
#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.
Его реализация: Код: 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.
Реrистрация Springs4D: Код: 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.
В отдельной форме такой код: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Получается у объекта TCommunicator есть свойства FDataProcessor и FSettings (или методы). Вопрос: Как мне в методе ... Код: pascal 1. 2. 3. 4.
... получить доступ на уровень выше? То есть например, из FDataProcessor получить его родителя TCommunicator и прочитать его свойства, например. Или свойства его же свойства/метода FSettings? Большое спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2021, 09:20 |
|
Интерфейсы, доступ к родителю
|
|||
---|---|---|---|
#18+
bzums Получается у объекта TCommunicator есть свойства FDataProcessor и FSettings (или методы). Вопрос: Как мне в методе ... Код: pascal 1. 2. 3. 4.
... получить доступ на уровень выше? Код: pascal 1. 2. 3. 4.
или же Код: pascal 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2021, 09:47 |
|
Интерфейсы, доступ к родителю
|
|||
---|---|---|---|
#18+
При создании или присвоении dataprocessor присваивай поле Owner. Через него выходи на communicator. Settings можно отдельно присваивать, чтобы снизить или вовсе убрать взаимную зависимость. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2021, 10:19 |
|
Интерфейсы, доступ к родителю
|
|||
---|---|---|---|
#18+
Параметр получается единственный вариант. Это описание просит, чтобы обьект ICommunicator был описан выше: Код: pascal 1. 2. 3. 4. 5.
Если я их поменяю местами, то здесь есть IDataProcessor, который тоже не находится (должен быть выше): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Замкнутый круг. Спасибо. Вся эта тема была поднята для того, чтобы была возможность одну настройку обьекта IDataProcessor ( потому что это по смыслу настройка и есть) вынести в ISettings. Но образаться туда из IDataProcessor. Это даже не родитель, получается. У обоих, IDataProcessor и IDataProcessor, родителем является ICommunicator. Спасибо большое. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2021, 10:51 |
|
Интерфейсы, доступ к родителю
|
|||
---|---|---|---|
#18+
offtopic: У интерфейсов методы вида Код: pascal 1.
являются плохой идеей по той причине, что в будущем, когда у вас появится V2, весь ваш код будет выглядеть так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8.
Вместо этого гораздо лучше делать так: Код: pascal 1.
тогда вызывающий код будет: Код: pascal 1. 2. 3. 4. 5. 6.
для любого типа ISomething - и сегодняшнего, и будущего. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2021, 11:09 |
|
Интерфейсы, доступ к родителю
|
|||
---|---|---|---|
#18+
bzums Замкнутый круг. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2021, 11:40 |
|
Интерфейсы, доступ к родителю
|
|||
---|---|---|---|
#18+
GunSmoker для любого типа ISomething - и сегодняшнего, и будущего. Код: plaintext 1.
но потом нужно будет после каждого импорта править _TLB файл с Код: pascal 1.
на Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2021, 19:29 |
|
|
start [/forum/topic.php?fid=58&gotonew=1&tid=2037110]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 268ms |
total: | 415ms |
0 / 0 |