ImageEn, unit imageenview

TImageEnView.BeginSelect

TImageEnView.BeginSelect

Declaration

procedure BeginSelect();

Description

Call before a series of AddSelPoint and AddSelBreak calls to limit redrawing.

Note:
Unlike EndSelect, BeginSelect is Optional it only serves to prevent paint being called (same as wrapping your code in LockPaint/UnlockPaint)
If you call BeginSelect, you must call EndSelect
View a preview of all selection types

Examples

// Create a polygon selection from an array of TPoints
ImageEnView1.BeginSelect();
for I := Low( MyPolySelArray ) to High( MyPolySelArray ) do
  ImageEnView1.AddSelPoint( MyPolySelArray[ I ].x, MyPolySelArray[ I ].y );
ImageEnView1.EndSelect();


// Add a triangular selection
ImageEnView1.BeginSelect();
ImageEnView1.Deselect();
ImageEnView1.AddSelPoint( 200, 100 );
ImageEnView1.AddSelPoint( 300, 200 );
ImageEnView1.AddSelPoint( 100, 200 );
ImageEnView1.EndSelect();


// Make a polygonal selection and adjust luminance
const
  PENT_X1 = 0.00; PENT_Y1 = 0.39;
  PENT_X2 = 0.19; PENT_Y2 = 1.00;
  PENT_X3 = 0.81; PENT_Y3 = 1.00;
  PENT_X4 = 1.00; PENT_Y4 = 0.39;
  PENT_X5 = 0.50; PENT_Y5 = 0.00;
var
  bw, bh: Integer;
begin
  bw := ImageEnView1.IEBitmap.Width;
  bh := ImageEnView1.IEBitmap.Height;
  ImageEnView1.SelectionBase := iesbBitmap;
  ImageEnView1.BeginSelect();
  ImageEnView1.AddSelPoint( Round( PENT_X1 * bw ), Round( PENT_Y1 * bh ));
  ImageEnView1.AddSelPoint( Round( PENT_X2 * bw ), Round( PENT_Y2 * bh ));
  ImageEnView1.AddSelPoint( Round( PENT_X3 * bw ), Round( PENT_Y3 * bh ));
  ImageEnView1.AddSelPoint( Round( PENT_X4 * bw ), Round( PENT_Y4 * bh ));
  ImageEnView1.AddSelPoint( Round( PENT_X5 * bw ), Round( PENT_Y5 * bh ));
  ImageEnView1.EndSelect();
end;


ImageEnView1.Proc.AdjustLumSatHistogram( 0.00, 0.85 );



// Convert the current polyline layer to a polygon selection
ImageEnView1.BeginSelect();
ImageEnView1.Deselect();
ImageEnView1.SelectionBase := iesbClientArea;
plyr := TIEPolylineLayer( ImageEnView1.CurrentLayer );
ImageEnView1.LayersCurrent := 0;  // Selecting layer 0
for i := 0 to plyr.PointCount - 1 do
begin
  xx := Round( plyr.GetPoints( i, iepbClientArea).x );
  yy := Round( plyr.GetPoints( i, iepbClientArea).y );
  ImageEnView1.AddSelPoint(xx, yy);
end;
ImageEnView1.EndSelect();
ImageEnView1.LayersRemove( plyr.LayerIndex );