Форма окна по картинке
Автор: Nikolay
WEB-сайт: http://delphibase.endimus.com
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Создание непрямоугольных окон.
Данный пример наглядно показывает как можно создавать прямоугольные окна, по
картинке.
Зависимости: Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms.
Автор: Nikolay, hapnik@mail.ru, Moscow
Copyright: http://delphi.mastak.ru
Дата: 27 апреля 2002 г.
***************************************************** }
// Свойства окна небходимо поставить
//Borders=None
var
regn, tmpRegn: integer; // регион окна и временный регион
x, y: integer; // координаты пикселя
nullClr: TColor; // «прозрачный цвет»
begin
nullClr := image1.picture.Bitmap.Canvas.Pixels[0, 0];
// Image1 это картинка по которой создается форма окна
regn := CreateRectRgn(0, 0, image1.picture.Graphic.Width,
image1.picture.Graphic.Height);
for x := 1 to image1.picture.Graphic.Width do
for y := 1 to image1.picture.Graphic.Height do
if image1.picture.Bitmap.Canvas.Pixels[x - 1, y - 1] = nullClr then
begin
tmpRegn := CreateRectRgn(x - 1, y - 1, x, y);
CombineRgn(regn, regn, tmpRegn, RGN_DIFF);
DeleteObject(tmpRegn);
end;
SetWindowRgn(form1.handle, regn, true);
end;
|