Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Как нормально управлять кистями в Delphi  [new]
527470
Member

Откуда:
Сообщений: 24
Есть приложение, где гора кистей с битмапами, их используют куча объектов.
Как нормально освободить память используемую под битмап. Я никак не могу контролировать объекты в которых используется кисть.
4 янв 19, 17:51    [21778483]     Ответить | Цитировать Сообщить модератору
 Re: Как нормально управлять кистями в Delphi  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3903
527470
Как нормально освободить память используемую под битмап

Посмотреть в документации функции (метода), которым создавался битмап, как его впоследствии освобождать.
И этот способ - не "нормальный", а единственно верный.

P.S. При чем тут кисти - не понял.
4 янв 19, 19:30    [21778521]     Ответить | Цитировать Сообщить модератору
 Re: Как нормально управлять кистями в Delphi  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47534

527470
Я никак не могу контролировать объекты в которых используется кисть.

Обычно это и не надо. Если ты назначил какому-то компоненту кисть или битмап, то они
копируют его себе "внутрь" методом Assign. После чего оригинал можно спокойно уничтожать.
Просто посмотри исходники этих компонент.

Другое дело API приложения, там ты вызываешь SelectObject() в процессе рисования, а в
конце - возвращаешь всё на место ещё одним вызовом. Поэтому "внутренних копий" нет и ты
просто управляешь тем, что сам создал, освобождая вещь когда она больше не нужна.

Posted via ActualForum NNTP Server 1.5

4 янв 19, 19:49    [21778524]     Ответить | Цитировать Сообщить модератору
 Re: Как нормально управлять кистями в Delphi  [new]
527470
Member

Откуда:
Сообщений: 24
Я посмотрел исходники кистей и пришёл к выводу что с битмапами их вообще не планировали использовать, кроме как в варианте установить битмап, нарисовать, освободить битмап, что-то более сложное вообще не возможно сделать, либо по причине убогой реализации, либо по тому что все необходимые методы заткнуты в приватную секцию и уже ничего не исправить.
6 янв 19, 22:02    [21779258]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить