ImageEn, unit imageenview

TImageEnView.OnNewLayer

TImageEnView.OnNewLayer


Declaration

property OnNewLayer: TIENewLayerEvent;


Description

Occurs whenever a layer is added. It is useful to assign default properties to the layer.
Both programmatic methods (e.g. using LayersAdd) and user methods (e.g. using mlCreateShapeLayers) trigger this event.

LayerIdx is the index of the new layer.
LayerKind is the kind of layer that was added.

Note:
- CurrentLayer will represent the new layer
- You can also use LayerDefaults to assign properties to new layers
- To capture the new layer after user has completed sizing and positioning it, use the OnLayerNotifyEx event
- Unlike ielNewLayer of the OnLayerNotifyEx event, OnNewLayer is called even for layers added programatically


Demo

Demo  Demos\LayerEditing\StampTextAndShapes\StampLayers.dpr


Examples

procedure Tfmain.ImageEnView1NewLayer(Sender: TObject; LayerIdx: Integer; LayerKind: TIELayerKind);
begin
  // Assign default properties for new objects
  case LayerKind of
    ielkImage    : TIEImageLayer( ImageEnView1.CurrentLayer ).AspectRatioLocked := True;
    ielkPolyline : if mlCreatePolylineLayers in ImageEnView1.MouseInteractLayers then // This ensures we don't fill the points when drawing our own polyline using miClickCreatePolylineLayer
                     TIEPolylineLayer( ImageEnView1.CurrentLayer ).SetPoints( iesExplosion, True );
    ielkText     : TIETextLayer( ImageEnView1.CurrentLayer ).Text := 'Double-click to edit text';
  end;
end;

// Make new shape layer a red star
procedure TfrmMain.ImageEnView1NewLayer(Sender: TObject; LayerIdx: integer; LayerKind: TIELayerKind);
begin
  if LayerKind = ielkShape then
  begin
    TIEShapeLayer( ImageEnView1.CurrentLayer ).Shape := iesStar5;
    TIEShapeLayer( ImageEnView1.CurrentLayer ).FillColor := clRed;
  end;
end;

// Use a default icon for image layers
procedure TfrmMain.ImageEnView1NewLayer(Sender: TObject; LayerIdx: integer; LayerKind: TIELayerKind);
begin
  if LayerKind = ielkImage then
    TIEImageLayer( ImageEnView1.CurrentLayer ).Bitmap.Read( 'd:\MyIcon.ico' );
end;


See Also

- OnLayerMoveSize
- OnLayerNotifyEx
- OnLayerSelectionChange
- LayerDefaults