|
|
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
Есть класс TFrame реализующий интерфейс Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. При выходе из процедуры AnyProc не происходит вызов деструктора TAnyFrame, как я ожидал. Почему это происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 16:22:14 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
DesWindПочему это происходит?Потому, что для TComponent отключен автоматический подсчет ссылок Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 16:25:23 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Это я видел. А по какой причине это сделано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 16:28:41 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
DesWind_Vasilisk_, Это я видел. А по какой причине это сделано? Ты думаешь, здесь присутствуют разработчики этих чудес? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 16:41:50 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
чччД, Щас, покопался... конечно надо литературку почитать... Но в общих чертах, TComponent надо уже регистрировать как COM-объект и тогда все будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 16:47:24 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
DesWindпо какой причине это сделано?Жизненный цикл TComponent определяется владельцами. И скрещивать две, принципиально разных, модели в Борланде не рискнули. Представьте, Вы в программе работаете с объектом. Потом кастанули его к интерфейсу и объект потеряли. Подумайте над таким кодом Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 17:13:40 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
DesWindтогда все будет.Расскажите, какую цель Вы преследуете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 17:14:42 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, В данном конкретном случае, это для единообразия и "более жесткой розетки", можно было бы обойтись и базовым классом, с абстрактными методами. Интерфейс ужесточает, требование перекрытия/реализации. Но дальше потомки могут поддерживать различный функционал который определяется по наличию того или иного интерфейса. Т.е. автоматическое уничтожение это не сама цель, просто обнаружил такое поведение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 18:06:19 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
DesWindТ.е. автоматическое уничтожение это не сама цель, просто обнаружил такое поведение.Не смешивайте интерфейсные и классовые объект. Проблем потом будет куча. Работайте или с объектами (тогда вопроса об автоматическом удалении не возникает), или с интерфейсами (тогда при чем здесь TFrame?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 18:19:10 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
DesWind... В данном конкретном случае, это для единообразия и "более жесткой розетки", можно было бы обойтись и базовым классом, с абстрактными методами. Интерфейс ужесточает, требование перекрытия/реализации. Но дальше потомки могут поддерживать различный функционал который определяется по наличию того или иного интерфейса. Т.е. автоматическое уничтожение это не сама цель, просто обнаружил такое поведение. Очередную сову на глобус, понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 18:21:50 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Есть десяток приборов, с определенным общим набором команд(общий интерфейс), но с различными данными которые надо отображать поразному(TFrame). Так же есть дополнительный набор функциональности, который может быть а может и не быть, что определяется наличием того или иного интерфейса. Классовые переменные и переменные интерфейсные вобщем-то никак не смешиваются. Фрейм создается и уничтожается вручную. У текущего фрейма запрашивается тот или иной интерфейс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 18:38:36 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
DesWindФрейм создается и уничтожается вручную. У текущего фрейма запрашивается тот или иной интерфейс.Тогда текущее поведение именно то, что Вам нужно. В чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 18:55:18 |
|
||
|
Автоматическое уничтожение TFrame
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Я ж говорил выше. Никаких претензий к поведению не имею. Любопытно было почему оно такое. Понял. Различные модели. За экземляром TComponent должен присматривать владелец. Правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2017, 19:03:00 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39553742&tid=2041579]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 474ms |

| 0 / 0 |
