CreatePolygonRgn и динамические массивы в разработке VCL

KVV 21.03.2004 - 20:09 | Подскажите пожалуйста, работает ли вообще эта API функця с динамическими массивами при разработке VCL в Delphy?
VaS 1 - 21.03.2004 - 20:42 | var Rgn: HRGN; P: array of TPoint; begin SetLength(P, 4); P[0].X := 60; P[0].Y := 10; P[1].X := 110; P[1].Y := 110; P[2].X := 10; P[2].Y := 110; P[3].X := 60; P[3].Y := 10; Rgn := CreatePolygonRgn(P[0], Length(P), ALTERNATE); Canvas.Brush.Color := clBlue; FillRgn(Canvas.Handle, Rgn, Canvas.Brush.Handle); DeleteObject(Rgn); end;
KVV 2 - 21.03.2004 - 20:52 | VaS Большое спасибо... это так, но почему P[0], это указывает на обязательность с нулевого?
KVV 3 - 21.03.2004 - 21:11 | И вопрос про режимы заполнения PolyFill: Alternate и Winding?
VaS 4 - 22.03.2004 - 08:06 | Можешь передать любую непрерывную последовательность элементов массива - передай начальный элемент и количество: SetLength(P, 5); P[0].X := 0; P[0].Y := 0; P[1].X := 60; P[1].Y := 10; P[2].X := 110; P[2].Y := 110; P[3].X := 10; P[3].Y := 110; P[4].X := 60; P[4].Y := 10; Rgn := CreatePolygonRgn(P[1], Length(P) - 1, ALTERNATE); . In general, the modes differ only in cases where a complex, overlapping polygon must be filled (for example, a five-sided polygon that forms a five-pointed star with a pentagon in the center). In such cases, ALTERNATE mode fills every other enclosed region within the polygon (that is, the points of the star), but WINDING mode fills all regions (that is, the points and the pentagon). When the fill mode is ALTERNATE, GDI fills the area between odd-numbered and even-numbered polygon sides on each scan line. That is, GDI fills the area between the first and second side, between the third and fourth side, and so on. When the fill mode is WINDING, GDI fills any region that has a nonzero winding value. This value is defined as the number of times a pen used to draw the polygon would go around the region. The direction of each edge of the polygon is important.

>>