Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Нужно ли после SetWindowRegion(H, R, ...) ;удалять регион R?


Dimk ©   (2002-09-06 14:39:00) 

Есть двоякое мнение.
Но я попробовал - удалил регион после закрытия формы.
OK := DeleteObject(R);
OK - судя по доке должно быть 1 если ОК. :0)
У меня 0.
Значит ли это что регион удален или занят системой и его удалять не нужно
или все же нужно но тогда когда?


Юрий Зотов   (2002-09-10 01:46:00) [1]

Именно так. Цитата из справки:

After a successful call to SetWindowRgn, the operating system owns the region specified by the region handle hRgn. The operating system does not make a copy of the region. Thus, you should not make any further function calls with this region handle. In particular, do not close this region handle.

Поэтому DeleteObject ничего не делает и просто возвращает признак ошибки.


Dimk   (2002-09-09 12:04:00) [2]

Я тоже примерно так делал. Только не так масштабно :0)
Вообщем у Вас Игорь DeleteObject тоже возвращает 0. ( попробовал Ваш код ). Регионы не назначенные окну - удаляются без проблем.
Из сего видимо нужно заключить что после SetWindowRegion регион оказывается занятым системой. Попытка удалить его (регион) до удаления окна или после удаления окна спомощью DeleteObject возвращает 0 что означает ошибку - ни к чему плохому впрочем это не приводит. :o)
Спасибо.


Игорь Шевченко   (2002-09-06 15:10:00) [3]

http://www.delphikingdom.com/treasury/hsdialogs.htm

Поглядите, там регион удаляется в нужный момент.


Наверх

Титульная страница Поиск, карта сайта Написать письмо