Declaration
TIEShiftLock = set of (iessCtrl_SubFromSel, iessCtrl_KeySizing, iessCtrl_DelPoint,
iessShift_AddToSel, iessShift_AddLyrSel, iessShift_FastMove, iessShift_RotateLock, iessShift_LineLock, iessShift_CircularCurve, iessShift_MoveSnapping,
iessAlt_Curve, iessAlt_MaintainAR, iessAlt_InvertWheel );
Description
Used by
ShiftKeyLock to force the application of the ssCtrl, ssShift or ssAlt key.
The shift keys have the following effects:
Ctrl Key
◼When creating a selection, it removes from the existing selection
◼Change to horizontal scrolling when using mouse wheel if
MouseWheelParams.Action = iemwVScroll
◼When using cursor keys it sizes the selection or layer (instead of moving it)
◼When editing layer points (
mlEditLayerPoints), it removes the point being clicked
◼When clicking a layer it creates a clone (if loCtrlClickToCopy is specified in
LayerOptions)
◼When using the
BrushTool (and
OpacityEnabled is enAuto) the brush transparency will be affected by pen pressure
Shift Key
◼When creating a selection, it adds to the existing selection (
EnableShiftKey)
◼When selecting layers, it adds the selected layer to the multiple selection
◼When using cursor keys to move or size the selection or layer, it increases the movement by 10x
◼When rotating using
miRotateTool it forces 45 deg. increments (or
MouseRotateShiftStep)
◼When rotating a layer it forces 45 deg. angles (or
LayersRotateStep)
◼When drawing a
TIELineLayer,
TIEPolylineLayer or
TIEAngleLayer it forces lines at 45 deg. angles (or
LayersRotateStep)
◼When rotating the Crop Tool (
miCropTool) it forces 15 deg. increments)
◼When creating a curve using the Alt key and
mlEditLayerPoints, the curve will be a perfect half-circle
◼When filling using
miColorFill or
miAlphaFill it increases the color tolerance
◼When using the
BrushTool the brush position will be snapped to the axes
Alt Key
◼When editing layer points (
mlEditLayerPoints), it converts the line being dragged into a curve
◼When creating/sizing a selection it forces a perfect square/circular selection
◼When creating/sizing a layer it maintains the aspect ratio
◼When rotating an angle layer, it changes the point being rotated
◼When using the
BrushTool (and
BrushSizeEnabled is enAuto) the brush size will be affected by pen pressure
Use
ShiftKeyLock to force any of these behaviours:
Value | Description |
iessCtrl_SubFromSel | When creating a selection, it remove from the existing selection |
iessCtrl_KeySizing | When using cursor keys it sizes the selection or layer (instead of moving it) |
iessCtrl_DelPoint | When editing layer points (mlEditLayerPoints), it removes the point being clicked |
iessShift_AddToSel | When creating a selection, it adds to the existing selection |
iessShift_AddLyrSel | When selecting layers, it adds the selected layer to the multiple selection |
iessShift_FastMove | When using cursor keys to move or size the selection or layer, it increases the movement by 10x |
iessShift_RotateLock | When rotating images, layers or crop selections it forces 45 deg. increments |
iessShift_LineLock | When drawing a TIELineLayer, TIEPolylineLayer or TIEAngleLayer it forces 45 deg. angles |
iessShift_CircularCurve | When creating a curve using the Alt key and mlEditLayerPoints, the curve will be a perfect half-circle |
iessShift_MoveSnapping | When drawing with a brush, movement is snapped along axes |
iessAlt_Curve | When editing layer points, it converts the line being dragged into a curve |
iessAlt_MaintainAR | When creating/sizing a selection or layer it maintains the aspect ratio |
iessAlt_InvertWheel | Change to horizontal scrolling when using the mouse wheel in TImageEnView |
// Force selections to add to existing ones
ImageEnView1.ShiftKeyLock := [ iessShift_AddToSel ];
// Force 45 deg angles for lines, and perfectly square or circular selections
ImageEnView1.ShiftKeyLock := [ iessShift_RotateLock, iessAlt_MaintainAR ];
// Select whole image and allow user to deselect circular regions
With ImageEnView1 do
begin
SelectionBase := iesbBitmap;
Select( 0, 0, IEBitmap.Width, IEBitmap.Height );
ShiftKeyLock := [ iessCtrl_SubFromSel ];
MouseInteractGeneral := [ miSelectCircle ];
end;