![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нужно ли после 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
Поглядите, там регион удаляется в нужный момент.