ImageEn, unit imageenview |
|
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
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... 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