Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Хотите ли вы стать модератором раздела сайта или форума? (Желающие пишем админу.)

Да, конечно.
Только за большие деньги.
Нет, ни за что.
Ну может в будущем...


Результаты
Другие опросы

Всего голосов: 650
Комментарии: 2


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Статьи и обзоры



Сохранение и загрузка регионов

Статьи по объектно-ориентированному программированию на языке Pascal и в среде программирования Delphi. Примеры работающего кода, тексты компонентов и классов, советы мастеров. Все данные о регионе храняться в структуре RGNDATA. Упоминалась также и функция, позволяющая эту структуру получить: GetRegionData. У этой функции есть приятная особенность: если в третий параметр передать nil, то она вернёт размер памяти, необходимый для сохранения региона.





Код
procedure SaveRegion (FileName: string);
var
s: TStream;
size: cardinal;
data: pointer;
begin
s := TFileStream.Create (FileName, fmCreate);
try
size := GetRegionData (fRgn, SizeOf (RGNDATA), nil);
data := GlobalAllocPtr(GPTR, size);
try
GetRegionData(fRgn, size, data);
s.Write(data^, size);
finally
GlobalFreePtr(data);
end;
finally
s.Free;
end;
end;



Аналогичным образом можно и прочитать записанный на диск регион:


Код
function LoadRegion (FileName: string): hRGN;
var
data: PRgnData;
s: TStream;
begin
s := TFileStream.Create (FileName, fmOpenRead);
try
data := GlobalAllocPtr(GPTR, s.size);
try
s.Read(data^, s.Size);
Result := ExtCreateRegion(nil, s.Size, data^);
finally
GlobalFreePtr(data);
end;
finally
s.Free;
end;
end;



Вот на этом, пожалуй, можно закончить этот обзор, отнюдь не претендующий на исчерпываемость.
Хочется надеятся, что кого-то сей опус подвигнет на создание чего-нить хорошего, или просто сэкономит несколько часов ползанья по Win32 SDK.



Ирина
Дата: 30.11.2024 Комментарий: 1
ИринаНичего себе :)
Дата регистрации: Нет информации Персональная информация


Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



Статьи и обзоры Delphi и TurboPascal Сохранение и загрузка регионов Все данные регионе храняться структуре RGNDATA Упоминалась также функция позволяющая эту структуру получить GetRegionData этой функции есть приятная особенность если третий параметр передать то она вернёт размер памяти необходимый для сохранения региона Кодprocedure SaveRegion FileName string TStream size cardinal data pointer begin TFileStream Create fmCreate fRgn SizeOf GlobalAllocPtr GPTR Write data^ finally GlobalFreePtr Free Аналогичным образом можно прочитать записанный на