| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Регионы |
| Автор: DriveSoftware 11.9.2003, 12:19 |
| Привет! Наверное всем приходилось из Bitmap-а делать форму (я о CombineRgn SetWindowRgn), но происходит это не слишком быстро! Вопрос: А можно созданный регион сохранить в файл, а потом уже без всяких расчетов просто загружать его в hRgn и делать SetWindowRgn, может уже у кого есть рабочий пример или хотя бы знает как это сделать? |
| Автор: <Spawn> 11.9.2003, 12:59 |
| По идее можно, если тебе удастся сохранить все вершины фигуры в файле. И потом останется загрузить их в массив и передить функции создания региона. |
| Автор: stab 11.9.2003, 16:24 |
| procedure SaveRegion(s: TStream; r: HRGN); var rdata: Pointer; size: Cardinal; begin size := GetRegionData(r, SizeOf(RGNDATA), nil); rdata := GlobalAllocPtr(GPTR, size); GetRegionData(r, size, rdata); s.Write(rdata^, size); GlobalFreePtr(rdata); end; function LoadRegion(s: TStream): HRGN; var rdata: PRgnData; begin rdata := GlobalAllocPtr(GPTR, s.size); s.Read(rdata^, s.Size); Result := ExtCreateRegion(nil, s.Size, rdata^); GlobalFreePtr(rdata); end; |
| Автор: DriveSoftware 12.9.2003, 14:43 |
| Сегодня попробую, можа и получится. |
| Автор: stab 12.9.2003, 21:01 |
| обязательно получится -- сам писал, сам тестил |