⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ievect.pas

📁 ·ImageEn 2.3.0 ImageEn一组用于图像处理、查看和分析的Delphi控件。能够保存几种图像格式
💻 PAS
📖 第 1 页 / 共 2 页
字号:
</TABLE>
!!}
  TIEMouseInteractVtItems = (
    miArea,           // Area of rectangle/polygon
    miLineLen,        // Measure line length
    miPutLine,        // Insert a line object
    miPutBox,         // Insert a rectangle object
    miPutEllipse,     // Insert a ellipse object
    miPutBitmap,      // Insert a bitmap object
    miPutText,        // Insert a text object
    miObjectSelect,   // Select/modify object
    miDragLen,        // dynamically measure distance
    miPutRuler,       // Insert a ruler object
    miPutPolyLine,    // Insert a polyline object
    miPutAngle,       // Insert an angle object
    miPutMemo,        // Insert a multi line text object
    miPutLineLabel,   // Insert a line with a label
    miEditPolyline,   // Edit points of a polyline
    miUnStampMode,    // single click doesn't insert a new object
    miPutExtendedObject // Insert a extended (custom) object defined by ExtendedObjectToPut property
    );

{!!
<FS>TIEMouseInteractVt

<FM>Declaration<FC>
type TIEMouseInteractVt = set of <A TIEMouseInteractVtItems>;
!!}
  TIEMouseInteractVt = set of TIEMouseInteractVtItems;

{!!
<FS>TIEVMeasureHintEvent

<FM>Declaration<FC>
TIEVMeasureHintEvent = procedure(Sender: TObject; var Text: string; Value: double) of object;

<FM>Description<FN>
Text is the text to display. Application can change it by customiizing hint.
Value is the measure value to display.
!!}
  TIEVMeasureHintEvent = procedure(Sender: TObject; var Text: string; Value: double) of object;

{!!
<FS>TIEVDragLenEndEvent

<FM>Declaration<FC>
TIEVDragLenEndEvent = procedure(Sender: TObject; Value: double) of object;

<FM>Description<FN>
Value is the measured length.
!!}
  TIEVDragLenEndEvent = procedure(Sender: TObject; Value: double) of object;

{!!
<FS>TIEVNewObject

<FM>Declaration<FC>
TIEVNewObject = procedure(Sender: TObject; hobj: integer) of object;

<FM>Description<FN>
hobj is the handle of the new created object.
!!}
  TIEVNewObject = procedure(Sender: TObject; hobj: integer) of object;

{!!
<FS>TIEUserSelectObject

<FM>Declaration<FC>
}
  TIEUserSelectObject = procedure(Sender:TObject; hobj:integer) of object;
{!!}

TIEVGripping = (iegrNone, iegrTopLeft, iegrBottomRight, iegrTranslation, iegrTopRight, iegrBottomLeft, iegrLeft, iegrRight, iegrUpper, iegrBottom);


{!!
<FS>TIEVObjectMoveResizeEvent

<FM>Declaration<FC>
TIEVObjectMoveResizeEvent = procedure(Sender: TObject; hobj: integer; Grip: integer; var OffsetX, OffsetY: integer) of object;

<FM>Description<FN>
hobj is the moved or resized object
Grip is the grip number when resized (1=top-left, 2=bottom-right, 3=center-translation, 4=top-right, 5=bottom-left, 6=left side, 7=right side, 8=upper side, 9=bottom side).
OffsetX, OffsetY : the translation offsets when moved
!!}
  TIEVObjectMoveResizeEvent = procedure(Sender: TObject; hobj: integer; Grip: integer; var OffsetX, OffsetY: integer) of object;

{!!
<FS>TIEVObjectClickEvent

<FM>Declaration<FC>
TIEVObjectClickEvent = procedure(Sender: TObject; hobj: integer) of object;

<FM>Description<FN>
hobj is the clicked object.
!!}
  TIEVObjectClickEvent = procedure(Sender: TObject; hobj: integer) of object;

  TIESelectObjectEvent = procedure(Sender: TObject; hobj: integer) of object;

{!!
<FS>TIEDrawObjectEvent

<FM>Declaration<FC>
TIEDrawObjectEvent = procedure(Sender:TObject; hobj:integer; destination:TBitmap; destRect:TRect; drawingAlpha:boolean; var handled:boolean) of object;

<FM>Description<FN>
If you set handled=true, ImageEn doesn't draw the object.
hobj is the object to draw.
destination is the destination bitmap.
destRect is the destination rectangle inside the bitmap.
DrawingAlpha is true when it is needed to draw the alpha channel.
!!}
  TIEDrawObjectEvent = procedure(Sender:TObject; hobj:integer; destination:TBitmap; destRect:TRect; drawingAlpha:boolean; var handled:boolean) of object;

{!!
<FS>TIEPolylineEndingMode

<FM>Declaration<FC>
}
  TIEPolylineEndingMode = (ieemDoubleClick, ieemManual);
{!!}


{!!
<FS>TIEMemoShortCut

<FM>Declaration<FC>
}
  TIEMemoShortCut = (iesLEFTALIGN, iesCENTERALIGN, iesRIGHTALIGN, iesJUSTIFIED, iesCOPY, iesCUT, iesPASTE, iesFONTSELECT, iesBOLD, iesITALIC, iesUNDERLINE, iesBACKCOLORSELECT);
{!!}

{!!
<FS>TIEMemoShortCuts

<FM>Declaration<FC>
TIEMemoShortCuts = array [<A TIEMemoShortCut>] of TShortCut;
!!}
  TIEMemoShortCuts = array [TIEMemoShortCut] of TShortCut;

{!!
<FS>TIEVUndoMode

<FM>Declaration<FC>
TIEVUndoMode = (ieumSeparated, ieumShared);

<FM>Description<FN>
Value <FC>ieumShared<FN> activates the unique Undo/Redo system for image processing and vectorial objects.
<FM>ieumSeparated<FN> separates image processing and vectorial undo/redo systems.
!!}
  TIEVUndoMode = (ieumSeparated, ieumShared);

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// TImageEnVect

{!!
<FS>TImageEnVect

<FM>Description<FN>
TImageEnVect inherits from <A TImageEnView> (has all method and properties), and handles vectorial objects and measurements.

Like TImageEnView, TImageEnVect can be linked to <A TImageEnProc> and <A TImageEnIO>, for image processing and input/output of the background image.
Anyway you can also use embedded objects in <A TImageEnView.IO> and <A TImageEnView.Proc> properties, without use further TImageEnIO and TImageEnProc components.
TImageEnVect has methods to load and save vectorial objects (doesn't need TImageEnIO for vectorial load/save).

<FM>Properties<FN>

  <A TImageEnVect.AllObjectsHidden>
  <A TImageEnVect.AllowOutOfBitmapMoving>
  <A TImageEnVect.AllowOutOfBitmapPolylines>
  <A TImageEnVect.BitmapResampleFilter>
  <A TImageEnVect.CenterNewObjects>
  <A TImageEnVect.EnableRangeObjectsSelection>
  <A TImageEnVect.FloatDigits>
  <A TImageEnVect.FloatPrecision>
  <A TImageEnVect.GripBrush>
  <A TImageEnVect.GripImage>
  <A TImageEnVect.GripPen>
  <A TImageEnVect.GripSize>
  <A TImageEnVect.MaxSelectionDistance>
  <A TImageEnVect.MeasureCoefX>
  <A TImageEnVect.MeasureCoefY>
  <A TImageEnVect.MeasureHintBorder1>
  <A TImageEnVect.MeasureHintBorder2>
  <A TImageEnVect.MeasureHintBrush>
  <A TImageEnVect.MeasureHintFont>
  <A TImageEnVect.MeasureTrack>
  <A TImageEnVect.MouseInteractVt>
  <A TImageEnVect.MUnit>
  <A TImageEnVect.ObjAntialias>
  <A TImageEnVect.ObjArcEndingAngle>
  <A TImageEnVect.ObjArcStartingAngle>
  <A TImageEnVect.ObjAspectRatio>
  <A TImageEnVect.ObjAutoUndo>
  <A TImageEnVect.ObjBeginShape>
  <A TImageEnVect.ObjBitmapAlpha>
  <A TImageEnVect.ObjBitmapBorder>
  <A TImageEnVect.ObjBitmap>
  <A TImageEnVect.ObjBoxHighLight>
  <A TImageEnVect.ObjBoxInnerSelectable>
  <A TImageEnVect.ObjBrushColor>
  <A TImageEnVect.ObjBrushStyle>
  <A TImageEnVect.ObjCanUndo>
  <A TImageEnVect.ObjectsCount>
  <A TImageEnVect.ObjectsExtents>
  <A TImageEnVect.ObjEditOnNewText>
  <A TImageEnVect.ObjEndShape>
  <A TImageEnVect.ObjFontAngle>
  <A TImageEnVect.ObjFontHeight>
  <A TImageEnVect.ObjFontLocked>
  <A TImageEnVect.ObjFontName>
  <A TImageEnVect.ObjFontStyles>
  <A TImageEnVect.ObjGraphicRender>
  <A TImageEnVect.ObjHeight>
  <A TImageEnVect.ObjID>
  <A TImageEnVect.ObjKind>
  <A TImageEnVect.ObjLabelBrushColor>
  <A TImageEnVect.ObjLabelBrushStyle>
  <A TImageEnVect.ObjLabelPosition>
  <A TImageEnVect.ObjLeft>
  <A TImageEnVect.ObjMemoBorderColor>
  <A TImageEnVect.ObjMemoBorderStyle>
  <A TImageEnVect.ObjMemoCharsBrushStyle>
  <A TImageEnVect.ObjMemoFixedHeight>
  <A TImageEnVect.ObjMemoHasBitmap>
  <A TImageEnVect.ObjMemoLineSpace>
  <A TImageEnVect.ObjMemoMarginBottom>
  <A TImageEnVect.ObjMemoMarginLeft>
  <A TImageEnVect.ObjMemoMarginRight>
  <A TImageEnVect.ObjMemoMarginTop>
  <A TImageEnVect.ObjName>
  <A TImageEnVect.ObjPenColor>
  <A TImageEnVect.ObjPenStyle>
  <A TImageEnVect.ObjPenWidth>
  <A TImageEnVect.ObjPolylineClosed>
  <A TImageEnVect.ObjPolylinePointsCount>
  <A TImageEnVect.ObjPolylinePoints>
  <A TImageEnVect.ObjRulerType>
  <A TImageEnVect.ObjRulerUnit>
  <A TImageEnVect.ObjShapeHeight>
  <A TImageEnVect.ObjShapeWidth>
  <A TImageEnVect.ObjSoftShadow>
  <A TImageEnVect.ObjStyle>
  <A TImageEnVect.ObjTextAlign>
  <A TImageEnVect.ObjTextAutoSize>
  <A TImageEnVect.ObjTextCurveCharRot>
  <A TImageEnVect.ObjTextEditable>
  <A TImageEnVect.ObjText>
  <A TImageEnVect.ObjTop>
  <A TImageEnVect.ObjTransparency>
  <A TImageEnVect.ObjUndoCount>
  <A TImageEnVect.ObjUndoLimit>
  <A TImageEnVect.ObjUndoMode>
  <A TImageEnVect.ObjUserDataLength>
  <A TImageEnVect.ObjUserData>
  <A TImageEnVect.ObjWidth>
  <A TImageEnVect.PolylineEndingMode>
  <A TImageEnVect.ShareBitmaps>
  <A TImageEnVect.ScaleFactor>
  <A TImageEnVect.SelectOnMouseDown>
  <A TImageEnVect.SelObjectsCount>
  <A TImageEnVect.SelObjects>
  <A TImageEnVect.UseCentralGrip>
  <A TImageEnVect.ZoomObjectsWidth>

<FM>Methods<FN>

  <A TImageEnVect.AddNewObject>
  <A TImageEnVect.AddSelObject>
  <A TImageEnView.AddSelPoint>
  <A TImageEnVect.CancelInteracts>
  <A TImageEnVect.CopyAllObjectsTo>
  <A TImageEnVect.CopyObjectsToBack>
  <A TImageEnVect.CopyObjectToBack>
  <A TImageEnVect.CopyObjectTo>
  <A TImageEnVect.CopySelectedObjectsTo>
  <A TImageEnVect.CreateImageFromSelectedArea>
  <A TImageEnVect.CreatePolygonFromEdge>
  <A TImageEnVect.CreatePolygonsFromSelection>
  <A TImageEnVect.DrawObjectsToBitmap>
  <A TImageEnVect.FindObjectAt>
  <A TImageEnVect.GetAngleValue>
  <A TImageEnVect.GetMemoFormattedString>
  <A TImageEnVect.GetObjDiagLen>
  <A TImageEnVect.GetObjFromID>
  <A TImageEnVect.GetObjFromIndex>
  <A TImageEnVect.GetObjFromName>
  <A TImageEnVect.GetObjRect>
  <A TImageEnVect.GetPolylineArea>
  <A TImageEnVect.GetPolylineCentroid>
  <A TImageEnVect.GetPolylineLen>
  <A TImageEnVect.GetSelectionArea>
  <A TImageEnVect.GetSelectionCentroid>
  <A TImageEnVect.GetSelectionLen>
  <A TImageEnVect.ImportDXF>
  <A TImageEnVect.IsEditMode>
  <A TImageEnVect.IsSelObject>
  <A TImageEnVect.LoadFromFileAll>
  <A TImageEnVect.LoadFromFileIEV>
  <A TImageEnVect.LoadFromStreamAll>
  <A TImageEnVect.LoadFromStreamIEV>
  <A TImageEnVect.LoadObjectsFromTIFF>
  <A TImageEnVect.MemoEditingGetCharInfo>
  <A TImageEnVect.MemoEditingSetCharInfo>
  <A TImageEnVect.ObjClearAllUndo>
  <A TImageEnVect.ObjClearUndo>
  <A TImageEnVect.ObjCopyToClipboard>
  <A TImageEnVect.ObjCutToClipboard>
  <A TImageEnVect.ObjPasteFromClipboard>
  <A TImageEnVect.ObjSaveUndo>
  <A TImageEnVect.ObjSetTBitmap>
  <A TImageEnVect.ObjTextEditMode>
  <A TImageEnVect.ObjUndoAt>
  <A TImageEnVect.ObjUndo>
  <A TImageEnVect.RemoveAllObjects>
  <A TImageEnVect.RemoveObject>
  <A TImageEnVect.RemovePolygonJaggedEdges>
  <A TImageEnVect.RotateAllObjects>
  <A TImageEnVect.RotateObject>
  <A TImageEnVect.SaveObjectsToTIFF>
  <A TImageEnVect.SaveToFileAll>
  <A TImageEnVect.SaveToFileIEV>
  <A TImageEnVect.SaveToStreamAll>
  <A TImageEnVect.SaveToStreamIEV>
  <A TImageEnVect.SelAllObjects>
  <A TImageEnVect.SetObjBackTo>
  <A TImageEnVect.SetObjBitmapFromFile>
  <A TImageEnVect.SetObjBitmapICO>
  <A TImageEnVect.SetObjFont>
  <A TImageEnVect.SetObjFrontOf>
  <A TImageEnVect.SetObjPolylinePoints>
  <A TImageEnVect.SetObjRect>
  <A TImageEnVect.SetObjTextCurveFromPolyline>
  <A TImageEnVect.SetObjTextCurveShape>
  <A TImageEnVect.SetObjTextCurve>
  <A TImageEnVect.SetScaleFromPixels>
  <A TImageEnVect.SetScaleFromSelectionLen>
  <A TImageEnVect.SimplifyPolygon>
  <A TImageEnVect.UnSelAllObjects>
  <A TImageEnVect.UnSelObject>

<FM>Events<FN>

  <A TImageEnVect.OnActivateTextEdit>
  <A TImageEnVect.OnAfterDrawObject>
  <A TImageEnVect.OnBeforeDrawObject>
  <A TImageEnVect.OnBeforeVectorialChanged>
  <A TImageEnVect.OnDeactivateTextEdit>
  <A TImageEnVect.OnDragLenEnd>
  <A TImageEnVect.OnMeasureHint>
  <A TImageEnVect.OnNewObject>
  <A TImageEnVect.OnObjectClick>
  <A TImageEnVect.OnObjectDblClick>
  <A TImageEnVect.OnObjectMoveResize>
  <A TImageEnVect.OnObjectOver>
  <A TImageEnVect.OnSelectObject>
  <A TImageEnVect.OnTextEditCursorMoved>
  <A TImageEnVect.OnTextKeyDown>
  <A TImageEnVect.OnUserDeselectObject>
  <A TImageEnVect.OnUserSelectObject>
  <A TImageEnVect.OnVectorialChanged>
!!}
  TImageEnVect = class(TImageEnView)
  private
    fCacheBitmap: TIEBitmap;
    fMouseInteractVt: TIEMouseInteractVt;
    fExtendedObjectToPut:string;
    fScale: double; // scale factor (e.g. for 1/100000 is 100000)
    fMUnit: TIEUnits; // measure unit for all tasks
    fCoefX, fCoefY: double; // Coef measure unit (includes DPI,Scale and MUnit)
    fFloatPrecision: integer; // to display values
    fFloatDigits: integer; // to display values
    fMeasureTrack: boolean; // nelle misure considera coordinate temporanee
    fVMoveX, fVMoveY: integer; // coordinate mousemove
    fOnSelectObject: TNotifyEvent;
    fOnUserSelectObject: TIEUserSelectObject;
    fOnUserDeselectObject: TIEUserSelectObject;
    fOnMeasureHint: TIEVMeasureHintEvent;
    fOnDragLenEnd: TIEVDragLenEndEvent;
    fZoomObjectsWidth: boolean;
    fOnVectorialChanged: TNotifyEvent;
    fOnBeforeVectorialChanged: TNotifyEvent;
    fLastHintValue: double;
    fMaxSelectionDistance: integer;
    flx, fly: integer;
    fHintSaveBitmap: TBitmap;
    fShowHint: boolean;
    fHintX, fHintY: integer;
    fMovX, fMovY: integer;
    fMeasureHintFont: TFont;
    fMeasureHintBrush: TBrush;
    fMeasureHintBorder1: TColor;
    fMeasureHintBorder2: TColor;
    fGripSize: integer;
    fGripPen: TPen;
    fGripBrush: TBrush;
    fMemoWriteFormattedString: PIEVObject; // nil no write, otherwise is an object pointer
    fMemoFormattedString: string;
    fUseCentralGrip: boolean;
    fCurPolylineGrip: integer;
    fCurPolylineIntraGrip: integer;
    fSelectOnMouseDown: boolean;
    fSelectOnMouseDown_WasSelected:boolean;
    fDoubleClicking:boolean; // used to fix double click on memo objects (they become unselected) look at note 5/11/2004 14.27
    fVectorialChanged:boolean;
    fGripImage:TPicture;
    fObjBoxInnerSelectable:boolean;  // false=select iekBOX only when brush is bsSolid  true=always select internal
    // Contains a list of PIEVObject. The order of the objects indicates the display order.
    // The first obejct [0] is painted first.
    fObjCount: integer; // TIEVObject objects count
    fObj: pintegerarray; // object indexes
    // Objects
    fVectorialChanging: boolean;
    fInserting: TIEVObjectKind; // Current inserting object kind (none=iekNONE)
    fInsertingPolylineObject: integer;
    fInsertingPolylineLastX, fInsertingPolylineLastY: integer;
    fInsertingAngleObject: integer;
    fNewObj: TIEVObject; // data of next object to insert
    fSelObj: pintegerarray; // selected objects
    fSelObjCount: integer; // selected objects count
    fGripping: TIEVGripping; // changing selected objects
    fTextEditing: integer; // >=0 object iekTEXT/iekMEMO that we are editing (-1=nothing)
    fTextEdit: TIEEdit; // Component for editing (fTextEditing)
    fMemoEdit: TIETextControl;
    fObjAntialias: boolean;
    // objects storage
    // Objects are allocated in sequence. Free items are reused for new objects.
    fObjHeap: PIEVObjectArray; // here are objects
    fObjHeapCount: integer; // allocated objects (could be not equal to existing objects)
    // Bitmaps
    fBitmaps: PIEVBitmapArray; // bitmap array (iebBITMAP)
    fBitmapsCount: integer; // fBitmaps count
    fShareBitmaps: boolean; // Se false ogni bitmap 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -