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ď č. 1Tá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;