Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
обязательно получится -- сам писал, сам тестил smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)