/ / S týmito parametrami (pole bodov) nie je preťažená metóda „Otočiť“ - .net, polia, metódy, parametre, delphi-hranol

Neexistuje preťažená metóda „Rotate“ s týmito parametrami (pole bodov) - .net, polia, metódy, parametre, delphi-prism

Mám metódu nazvanú Rotate a volám ju z inej metódy nasledovne:

Metóda rotácie podľa definície:

method TMakerGraphic.Rotate(var pts:array of Point; pcnt,xc,yc:integer);

Nazývame to inou metódou nasledovne:

method TMakerLine.GetDynamicBounds(var r:Rectangle);
var
pts:array[1..2] of Point;
midx,midy:integer;
begin
with bounds do
begin
pts[1].x := left;
pts[1].y := top;
pts[2].x := right;
pts[2].y := bottom;

if Active then
begin
r := bounds;
with r do
begin
midx := ((right - left) div 2) + left;
midy := ((bottom - top) div 2) + top;
end;
Rotate(var pts,2,midx,midy);    <<<<============= Here is where it raises the error
end;
end;
end;

Vyvoláva chybu: „Nie je preťaženémetóda „Otočiť“ s týmito parametrami. „Skontroloval som, či sú parametre a volania metód správne a myslím si, že sú, ale zvyšuje túto chybu. Nerozumiem prečo.

Vopred ďakujem,

odpovede:

1 pre odpoveď č. 1

Táto chyba je spôsobená tým, že array of Point typ je neviazané pole a array[1..2] of Point je viazané pole, takže odovzdávate rôzne typy, na vyriešenie problému vyhláste pts premenná ako array of Point a potom pomocou New môžete nastaviť veľkosť poľa.

Skontrolujte túto vzorku

var
pts:array of Point;
midx,midy:integer;
begin
with bounds do
begin
pts:= New Point[2];
pts[0].x := left;
pts[0].y := top;
pts[1].x := right;
pts[1].y := bottom;