ImageEn, unit ImageEnView

TImageEnView.LayerDefaults

TImageEnView.LayerDefaults

Declaration

property LayerDefaults: TStringList;

Description

Specifies a list of properties that are assigned to all new layers.
The properties are a list of Name=Value pairs, with names from the TIELayer Property Constants.

Note:
◼These properties apply to layers created programmatically (e.g. using LayersAdd) and by the user (e.g. using mlCreateShapeLayers).
◼The OnNewLayer event can also be used to apply default properties
◼For all colors properties, e.g. IELP_FillColor, IELP_FillColor2, IELP_BorderColor, IELP_LineColor, IELP_FontColor, IELP_LabelColor, you can specify -1 for a random color, or -2 for a random pastel color

Sample Output

IELP_BorderColor=clNone
IELP_BorderWidth=0
IELP_FillColor=clYellow
IELP_FillColor2=clRed
IELP_FillGradient=1
IELP_Rotate=0

Examples

ImageEnView1.LayerDefaults.Clear();
ImageEnView1.LayerDefaults.Values[ IELP_BorderColor ] := '$008000FF';
ImageEnView1.LayerDefaults.Values[ IELP_BorderWidth ] := '3';
ImageEnView1.LayersAdd( 'C:\New Zealand.jpg' );    // Added image will have a pink border



// Allow the user to create, size and rotate red arrows
ImageEnView1.LayerDefaults.Clear();
ImageEnView1.LayerDefaults.Values[ IELP_LineColor ] := 'clRed';
ImageEnView1.LayerDefaults.Values[ IELP_LineWidth ] := '6';
ImageEnView1.LayerDefaults.Values[ IELP_LineShapeSize  ] := '20';
ImageEnView1.LayerDefaults.Values[ IELP_LineStartShape ] := '1';
ImageEnView1.LayerDefaults.Values[ IELP_Rotate ] := '235';
ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loShowRotationGrip ];
ImageEnView1.MouseInteractLayers := [ mlCreateLineLayers, mlMoveLayers, mlResizeLayers, mlRotateLayers ];


// Allow users to draw rulers (lines with measurement values)
With ImageEnView1.LayerDefaults do
begin
  Clear();
  Values[ IELP_RulerMode ]  := IntToStr( ord( iermLabel ));
  Values[ IELP_RulerUnits ] := IntToStr( ord( ieuCentimeters ));
  Values[ IELP_LabelPosition  ] := IntToStr( ord( ielpAutoAbove ));
  Values[ IELP_LineStartShape ] := IntToStr( ord( ieesBar ));
  Values[ IELP_LineEndShape   ] := IntToStr( ord( ieesBar ));
  Values[ IELP_LineWidth ] := '2';
end;
IEGlobalSettings().MeasureDecimalPlaces := 1;
ImageEnView1.MouseInteractLayers := [ mlClickCreateLineLayers, mlEditLayerPoints ];


// All layers have a random fill and border
ImageEnView1.LayerDefaults.Values[ IELP_BorderColor ] := '-2';
ImageEnView1.LayerDefaults.Values[ IELP_FillColor   ] := '-2';


// Enable our star stamping mode, which adds a star directly to the image wherever the user clicks
procedure Tfmain.btnAddStampClick(Sender: TObject);
const
  Stamp_Border_Color = clRed;
  Stamp_Border_Width = 2;
  Stamp_Fill_Color   = clYellow;
  Stamp_Shape        = iesStar5;
  Stamp_Width        = 50;
  Stamp_Height       = 50;
var
  cursorBMP: TIEBitmap;
begin
  // Set default style of our layer
  // Note: Can also use OnNewLayer event to customize further
  ImageEnView1.LayerDefaults.Clear();
  ImageEnView1.LayerDefaults.Values[ IELP_BorderColor ] := ColorToString( Stamp_Border_Color );
  ImageEnView1.LayerDefaults.Values[ IELP_BorderWidth ] := IntToStr( Stamp_Border_Width );
  ImageEnView1.LayerDefaults.Values[ IELP_FillColor ] := ColorToString( Stamp_Fill_Color );
  // Easier to use DefaultLayerShape, e.g. ImageEnView1.LayerDefaults.Values[ IELP_Shape ] := IntToStr( Ord( Stamp_Shape ));
  ImageEnView1.LayerDefaults.Values[ IELP_Width ]     := IntToStr( Stamp_Width );
  ImageEnView1.LayerDefaults.Values[ IELP_Height ]    := IntToStr( Stamp_Height );

  // Enable stamp mode, and automatic merging of layers
  ImageEnView1.LayerOptions := ImageEnView1.LayerOptions + [ loStampMode, loAutoMergeNewLayers ];
  IEGlobalSettings().DefaultLayerShape := Stamp_Shape;
  ImageEnView1.MouseInteractLayers := [ mlCreateShapeLayers ];

  // Show a matching star shaped cursor
  cursorBMP := TIEBitmap.Create( Stamp_Width, Stamp_Height );
  try
    cursorBMP.FillWithShape( Stamp_Shape, Stamp_Width, Stamp_Height, Stamp_Border_Color, Stamp_Border_Width, Stamp_Fill_Color, True, False );
    ImageEnView1.SetZoneCursorBitmap( cursorBMP );
  finally
    cursorBMP.Free();
  end;
end;

See Also

◼DefaultLayerShape
◼DefaultLayerText
◼OnNewLayer
◼GetProperties
◼SetProperties