You should have asked what kind of selection you wanted to change to begin with. Anyway, you would have to change the position of each point to do this.
Maybe you can try to scale the array of points:
procedure ScalePoint(var APoint: TPoint; AHorzontalScale, AVerticalScale: extended; AOrigin: TPoint);
var
iLeft, iTop: Integer;
begin
iLeft := APoint.X - AOrigin.X;
iTop := APoint.Y - AOrigin.Y;
APoint := Point(Round(iLeft * AHorzontalScale) + AOrigin.X, Round(iTop * AVerticalScale) + AOrigin.Y);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
iPoint: TPoint;
iPointCount: Integer;
iPoints: Array of TPoint;
begin
ImageEnView1.LockPaint;
iPointCount := ImageEnView1.PolySelCount;
SetLength(iPoints, iPointCount);
for i := 0 to iPointCount - 1 do
begin
iPoint := ImageEnView1.PolySel[i];
ScalePoint(iPoint, 1.1, 1.1, ImageEnView1.PolySel[0]);
iPoints[i].X := iPoint.X;
iPoints[i].Y := iPoint.Y;
end;
ImageEnView1.DeSelect;
for i := 0 to iPointCount - 1 do
ImageEnView1.AddSelPoint(iPoints[i].X, iPoints[i].Y);
ImageEnView1.UnLockPaint;
end;
Bill Miller
Adirondack Software & Graphics
Email: w2m@hughes.net
EBook: http://www.imageen.com/ebook/
Custom Commercial ImageEn Development