
06.09.2011, 22:08
|
 |
Активный
|
|
Регистрация: 31.03.2009
Адрес: Украина, г.Днепропетровск
Сообщения: 324
Версия Delphi: Delphi7
Репутация: 3877
|
|
Вот ещё примерчик к этой теме, правда медленно работает:
Рисует форму по картинке в Image, прозрачным цветом считается цвет верхней левой точки.
Код:
procedure TForm1.FormCreate(Sender: TObject);
Var
R, TR, x, y: Integer;
C: TColor;
begin
Image1.Left:= 0;
Image1.Top:= 0;
C:= Image1.Picture.Bitmap.Canvas.Pixels[0, 0];
R:= CreateRectRgn(0, 0, Image1.Picture.Graphic.Width,
Image1.Picture.Graphic.Height);
For x:= 0 To Image1.Picture.Graphic.Width Do
For y:= 0 To Image1.Picture.Graphic.Height Do
if Image1.Picture.Bitmap.Canvas.Pixels[x-1, y-1] = C Then
begin
TR:= CreateRectRgn(x-1, y-1, x, y);
CombineRgn(R, R, TR, RGN_DIFF);
DeleteObject(TR);
end;
Form1.BorderStyle:= BsNone;
SetWindowRgn(Form1.Handle, R, True);
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
ReleaseCapture;
Form1.Perform(WM_SYSCOMMAND, $F012, 0);
end;
__________________
If end Then begin;
Последний раз редактировалось AND_REY, 06.09.2011 в 22:11.
|