Глюки с CreatePolygonRgn
И почему-то рисование начинается с точки (0,100).
Помогите, народ, plz.
procedure TForm1.FormCreate(Sender TObject);
Var
R1,R2hRGN;
a1,a2array[0..4] of TPoint;
Ptr1,Ptr2Pointer;
Num1,Num2Word;
begin
Width=Screen.Width;
Height=Screen.Height;
Num1=5;
Num2=3;
a1[0].y=300;
a1[0].x=250;
a1[1].y=500;
a1[1].x=250;
a1[2].y=500;
a1[2].x=350;
a1[3].y=300;
a1[3].x=350;
a1[4].y=a1[0].x;
a1[4].x=a1[0].y;
Ptr1=@a1;
a2[0].y=300;
a2[0].x=250;
a2[1].y=301;
a2[1].x=250;
a2[2].y=300;
a2[2].x=251;
a2[3].y=a2[0].y;
a2[3].x=a2[0].x;
Ptr2=@a2;
R1 = CreatePolygonRgn(Ptr1,Num1,ALTERNATE);
R2 = CreatePolygonRgn(Ptr2,Num2,ALTERNATE);
CombineRgn(R1,R1,R2,RGN_OR );
SetWindowRgn (Handle, R1, TRUE);
DeleteObject(R1);
DeleteObject(R2);
end;
Где тебе подсказали такоё? (Смотри дальше)
procedure TForm1.FormCreate(Sender TObject);
Var
R1,R2hRGN;
a1,a2array[0..4] of TPoint;
Ptr1,Ptr2Pointer; //Зачем?
Num1,Num2Word;
begin
Width=Screen.Width;
Height=Screen.Height;
Num1=5;
Num2=3;
a1[0].y=300;
a1[0].x=250;
a1[1].y=500;
a1[1].x=250;
a1[2].y=500;
a1[2].x=350;
a1[3].y=300;
a1[3].x=350;
a1[4].y=a1[0].x;
a1[4].x=a1[0].y;
Ptr1=@a1; //?
a2[0].y=300;
a2[0].x=250;
a2[1].y=301;
a2[1].x=250;
a2[2].y=300;
a2[2].x=251;
a2[3].y=a2[0].y;
a2[3].x=a2[0].x;
Ptr2=@a2; //?
//Следуюшие две строки вычёркиваем...
{R1=СreatePolygonRgn(Ptr1,Num1,ALTERNATE);}
{R2=CreatePolygonRgn(Ptr2,Num2,ALTERNATE);}
//И не много их меняя вставляем...
{R1=СreatePolygonRgn(a1,Num1,ALTERNATE);}
{R2=CreatePolygonRgn(a2,Num2,ALTERNATE);}
CombineRgn(R1,R1,R2,RGN_OR );
SetWindowRgn (Handle, R1, TRUE);
DeleteObject(R1);
DeleteObject(R2);
end;
Вот и всё.. )) Удачи...
[/quote]