zmiana kształtu komponentu - nietypowe kształty

0

Jak można zmienić kształt komponentu, ale w nieco bardziej komplikowaną figure, np. w pięciokąt ???

0

Może byś napisał jeszcze jakiego komponentu ???

0

Zrób to na regionach. SetWindowRgn(Handle, HRng);

0

przeanalizuj ten przykład.

komponent musi być większy niż kształt jaki wykreślają współrzędne w tablicy punktów.
a handle może być z dowolnego kpmponentu (który go posiada oczywiście)

Var
a : Array[0..29] Of TPoint;
Begin
a[0].y:=0;
a[0].x:=0;

a[1].y:=0;
a[1].x:=580;
a[2].y:=3;
a[2].x:=585;
a[3].y:=6;
a[3].x:=588;
a[4].y:=9;
a[4].x:=590;
a[5].y:=12;
a[5].x:=592;
a[6].y:=15;
a[6].x:=595;
a[7].y:=18;
a[7].x:=600;

a[8].y:=432;
a[8].x:=600;
a[9].y:=435;
a[9].x:=595;
a[10].y:=438;
a[10].x:=592;
a[11].y:=441;
a[11].x:=590;
a[12].y:=444;
a[12].x:=588;
a[13].y:=447;
a[13].x:=585;
a[14].y:=450;
a[14].x:=580;

a[15].y:=450;
a[15].x:=20;
a[16].y:=447;
a[16].x:=15;
a[17].y:=444;
a[17].x:=12;
a[18].y:=441;
a[18].x:=10;
a[19].y:=438;
a[19].x:=8;
a[20].y:=435;
a[20].x:=5;
a[21].y:=432;
a[21].x:=0;

a[22].y:=18;
a[22].x:=0;
a[23].y:=15;
a[23].x:=5;
a[24].y:=12;
a[24].x:=8;
a[25].y:=9;
a[25].x:=10;
a[26].y:=6;
a[26].x:=12;
a[27].y:=3;
a[27].x:=15;
a[28].y:=0;
a[28].x:=20;

a[29].y:=0;
a[29].x:=0;

SetWindowRgn(Handle,CreatePolygonRgn(a,29,ALTERNATE),True);

0

Czyli tylko dla potomkw WinControla.

0

Osobiście polecam wspomniane regiony - tu jest fajny opis - http://www.republika.pl/delphipl/wyklady/region/region.htm
lub komponenty z serii LMD - jest dostępna darmowa wersja.

1 użytkowników online, w tym zalogowanych: 0, gości: 1