Code: |
procedure TForm1.FormCreate(Sender: TObject); var R1,R2 : HRgn; P : array [0..2] of TPoint; // Массив для создания полигона begin // Создаем начальный прямоугольник R1 :=CreateRectRgn(0,0,270,233); // Отрезаем сверху слева R2:= CreateEllipticRgn(-20,-20,135+5,20); CombineRgn(R1,R1,R2,RGN_DIFF); // Отрезаем сверху справа R2:= CreateEllipticRgn(135-5,-20,270+20,20); CombineRgn(R1,R1,R2,RGN_DIFF); // Отрезаем левый бок R2:= CreateEllipticRgn(-15,10,8,233); CombineRgn(R1,R1,R2,RGN_DIFF); // Отрезаем правый бок R2:= CreateEllipticRgn(270-7,10,270+16,233); CombineRgn(R1,R1,R2,RGN_DIFF); // Добавляем овал снизу R2:= CreateEllipticRgn(0,150,270,320); CombineRgn(R1,R1,R2,RGN_OR); // Добавляем острие (треугольник) снизу P[0] := Point(135-40, 310); P[1] := Point(135+40, 310); P[2] := Point(135, 335); R2 := CreatePolygonRgn(P, 3, WINDING); CombineRgn(R1,R1,R2,RGN_OR); // Назначаем итоговый регион нашей форме SetWindowRgn(Handle, R1, True); end; |
Попробуем создать что-либо еще более сложное и непохожее на щит.
Code: |
procedure TForm1.FormCreate(Sender: TObject); var R1,R2 : HRgn; P : array [0..2] of TPoint; begin R1:= CreateEllipticRgn(135-110, 45, 135-40, 105); // Овал, образующий ухо R2:= CreateEllipticRgn(135+40, 45, 135+110, 105); // Овал, образующий ухо CombineRgn(R1,R1,R2,RGN_OR);
// Отсекаем треугольником лишнюю часть овалов, // тем самым завершаем формирование ушей P[0] := Point(135-140, 40);
P[1] := Point(135+140, 40); P[2] := Point(135, 140); R2 := CreatePolygonRgn(P, 3, WINDING); CombineRgn(R1,R1,R2,RGN_DIFF);
// Формируем полумесяц рогов R2:= CreateEllipticRgn(135-90, 0, 135+90, 100); CombineRgn(R1,R1,R2,RGN_OR);
R2:= CreateEllipticRgn(135-70, -5, 135+70, 70); CombineRgn(R1,R1,R2,RGN_DIFF);
// Формируем морду R2:= CreateEllipticRgn(135-70, 60, 135+70, 170); CombineRgn(R1,R1,R2,RGN_OR);
R2:= CreateEllipticRgn(135-40, 150, 135+40, 210); CombineRgn(R1,R1,R2,RGN_OR);
// Назначаем итоговый регион нашей форме SetWindowRgn(Handle, R1, True);
end; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!