Форма окна по картинке

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

Автор: 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;

{/codecitation}

Добавить комментарий