📄 iemview.pas
字号:
<FS>TIEMKeyInteract
<FM>Declaration<FC>
TIEMKeyInteract = set of <A TIEMKeyInteractItems>;
!!}
TIEMKeyInteract = set of TIEMKeyInteractItems;
{!!
<FS>TIEMDisplayMode
<FM>Declaration<FC>
type TIEMDisplayMode = (mdGrid, mdSingle);
<FM>Description<FN>
<TABLE>
<R> <H>Value</H> <H>Description</H> </R>
<R> <C>mdGrid</C> <C>shows images in a grid of GridWidth columns.</C> </R>
<R> <C>mdSingle</C> <C>shows images overlapped: only one (VisibleFrame property) is visible.</C> </R>
</TABLE>
!!}
TIEMDisplayMode = (
mdGrid, // grid (active fGridWidth property)
mdSingle // single frame
);
{!!
<FS>TIESeek
<FM>Declaration<FC>
TIESeek = (iskLeft, iskRight, iskUp, iskDown, iskFirst, iskLast, iskPagDown, iskPagUp);
<FM>Description<FN>
<TABLE>
<R> <H>Value</H> <H>Description</H> </R>
<R> <C>iskLeft</C> <C>move to the left (one column)</C> </R>
<R> <C>iskRight</C> <C>move to the right (one column)</C> </R>
<R> <C>iskUp</C> <C>move up (one row)</C> </R>
<R> <C>iskDown</C> <C>move down (one row)</C> </R>
<R> <C>iskFirst</C> <C>move to first image</C> </R>
<R> <C>iskLast</C> <C>move to the last image</C> </R>
<R> <C>iskPagDown</C> <C>move to the next page</C> </R>
<R> <C>iskPagUp</C> <C>move the the previous page</C> </R>
</TABLE>
!!}
TIESeek = (iskLeft, iskRight, iskUp, iskDown, iskFirst, iskLast, iskPagDown, iskPagUp);
{!!
<FS>TIEMStyle
<FM>Declaration<FC>
TIEMStyle = (iemsFlat, iemsACD);
<FM>Description<FN>
<TABLE>
<R> <H>Value</H> <H>Description</H> </R>
<R> <C>iemsFlat</C> <C>flat style (old ImageEn style)</C></R>
<R> <C>iemsACD</C> <C>3D style (default)</C></R>
</TABLE>
!!}
TIEMStyle = (iemsFlat, iemsACD);
{!!
<FS>TIESStyle
<FM>Declaration<FC>
TIESStyle = (iessAround, iessACD);
<FM>Description<FN>
<TABLE>
<R> <H>Value</H> <H>Description</H> </R>
<R> <C>iessAround</C> <C>Draw a rectangle around the thumbnail.</C> </R>
<R> <C>iessACD</C> <C>Use clHighlight for background and clHighlightText for text (default).</C> </R>
</TABLE>
!!}
TIESStyle = (iessAround, iessACD);
{!!
<FS>TIEMultiSelectionOptions
<FM>Declaration<FC>
}
TIEMultiSelectionOptions = set of ( iemoRegion, iemoSelectOnMouseUp );
{!!}
TImageEnMView = class;
TIEStarter = class(TThread)
public
mview: TImageEnMView;
procedure Execute; override;
end;
{!!
<FS>TImageEnMView
<FM>Description<FN>
TImageEnMView component is the same as <A TImageEnView>, but it can handle multiple images.
TImageEnMView can display images in rows, in columns, in a grid or in a single frame. The images can be animated: if you choose to show a single frame, you can view an animated sequence (as a Gif or an AVI). Each image has assigned a delay time.
The images can be stored fully, as thumbnails (a sub-resampled image of the original), or loaded when displayed (you have to specify only the file name), or upon request (whenever an image is to be shown, an event is generated).
If you choose, the user can select an image: selected images will have a bordered frame.
You can also specify a custom function whenever an image is shown (i.e., to paint the image index near the image).
Note: Users often attach a <A TImageEnIO> component to TImageEnMView component. This is not correct. The <A TImageEnMIO> component must be attached only to a TImageEnMView component, or you can use embedded <A TImageEnMView.MIO> object.
<FM>Properties<FN>
<A TImageEnMView.Bitmap>
<A TImageEnMView.BackgroundStyle>
<A TImageEnMView.BottomGap>
<A TImageEnMView.DisplayMode>
<A TImageEnMView.DrawImageBackground>
<A TImageEnMView.EnableAdjustOrientation>
<A TImageEnMView.EnableAlphaChannel>
<A TImageEnMView.EnableImageCaching>
<A TImageEnMView.EnableLoadEXIFThumbnails>
<A TImageEnMView.EnableMultiSelect>
<A TImageEnMView.EnableResamplingOnMinor>
<A TImageEnMView.FillThumbnail>
<A TImageEnMView.FlatScrollBars>
<A TImageEnMView.GradientEndColor>
<A TImageEnMView.GridWidth>
<A TImageEnMView.HorizBorder>
<A TImageEnMView.HScrollBarParams>
<A TImageEnMView.KeyInteract>
<A TImageEnMView.IEBitmap>
<A TImageEnMView.ImageBackground>
<A TImageEnMView.ImageBitCount>
<A TImageEnMView.ImageBottomText>
<A TImageEnMView.ImageCacheSize>
<A TImageEnMView.ImageCol>
<A TImageEnMView.ImageCount>
<A TImageEnMView.ImageDelayTime>
<A TImageEnMView.ImageEnVersion>
<A TImageEnMView.ImageFileName>
<A TImageEnMView.ImageHeight>
<A TImageEnMView.ImageID>
<A TImageEnMView.ImageInfoText>
<A TImageEnMView.ImageOriginalHeight>
<A TImageEnMView.ImageOriginalWidth>
<A TImageEnMView.ImageRow>
<A TImageEnMView.ImageTopText>
<A TImageEnMView.ImageWidth>
<A TImageEnMView.ImageX>
<A TImageEnMView.ImageY>
<A TImageEnMView.LookAhead>
<A TImageEnMView.JobsRunning>
<A TImageEnMView.JobsWaiting>
<A TImageEnMView.LockPaintCount>
<A TImageEnMView.MaintainInvisibleImages>
<A TImageEnMView.MaximumViewX>
<A TImageEnMView.MaximumViewY>
<A TImageEnMView.MIO>
<A TImageEnMView.MouseInteract>
<A TImageEnMView.MultiSelectedimagesCount>
<A TImageEnMView.MultiSelectedImages>
<A TImageEnMView.MultiSelecting>
<A TImageEnMView.MultiSelectionOptions>
<A TImageEnMView.Playing>
<A TImageEnMView.PlayLoop>
<A TImageEnMView.Proc>
<A TImageEnMView.RemoveCorrupted>
<A TImageEnMView.ScrollBars>
<A TImageEnMView.ScrollBarsAlwaysVisible>
<A TImageEnMView.SelectedImage>
<A TImageEnMView.SelectionColor>
<A TImageEnMView.SelectionStyle>
<A TImageEnMView.SelectionWidth>
<A TImageEnMView.SelectionWidthNoFocus>
<A TImageEnMView.SoftShadow>
<A TImageEnMView.StoreType>
<A TImageEnMView.Style>
<A TImageEnMView.ThreadPoolSize>
<A TImageEnMView.ThumbHeight>
<A TImageEnMView.ThumbnailDisplayFilter>
<A TImageEnMView.ThumbnailFrameRect>
<A TImageEnMView.ThumbnailFrameSelected>
<A TImageEnMView.ThumbnailFrame>
<A TImageEnMView.ThumbnailResampleFilter>
<A TImageEnMView.ThumbnailsBackground>
<A TImageEnMView.ThumbnailsBackgroundStyle>
<A TImageEnMView.ThumbnailsBorderColor>
<A TImageEnMView.ThumbnailsBorderWidth>
<A TImageEnMView.ThumbnailsInternalBorderColor>
<A TImageEnMView.ThumbnailsInternalBorder>
<A TImageEnMView.ThumbsRounded>
<A TImageEnMView.ThumbWidth>
<A TImageEnMView.TransitionDuration>
<A TImageEnMView.TransitionEffect>
<A TImageEnMView.TransitionRunning>
<A TImageEnMView.UpperGap>
<A TImageEnMView.VertBorder>
<A TImageEnMView.ViewX>
<A TImageEnMView.ViewY>
<A TImageEnMView.VisibleFrame>
<A TImageEnMView.VisibleSelection>
<A TImageEnMView.VScrollBarParams>
<A TImageEnMView.WallPaperStyle>
<A TImageEnMView.WallPaper>
<FM>Methods<FN>
<A TImageEnMView.AppendImage>
<A TImageEnMView.AppendImage2>
<A TImageEnMView.BeginSelectImages>
<A TImageEnMView.CenterFrame>
<A TImageEnMView.CenterSelected>
<A TImageEnMView.ClearImageCache>
<A TImageEnMView.Clear>
<A TImageEnMView.CopyToIEBitmap>
<A TImageEnMView.CreateMorphingSequence>
<A TImageEnMView.DeleteImage>
<A TImageEnMView.DeleteSelectedImages>
<A TImageEnMView.DeSelect>
<A TImageEnMView.EndSelectImages>
<A TImageEnMView.FillFromDirectory>
<A TImageEnMView.GetBitmap>
<A TImageEnMView.GetImageVisibility>
<A TImageEnMView.GetLastOpIdx>
<A TImageEnMView.GetLastOp>
<A TImageEnMView.GetTIEBitmap>
<A TImageEnMView.IEBeginDrag>
<A TImageEnMView.IEEndDrag>
<A TImageEnMView.ImageAtGridPos>
<A TImageEnMView.ImageAtPos>
<A TImageEnMView.InsertImageEx>
<A TImageEnMView.InsertImage>
<A TImageEnMView.InsertingPoint>
<A TImageEnMView.IsSelected>
<A TImageEnMView.IsVisible>
<A TImageEnMView.LoadFromFileOnDemand>
<A TImageEnMView.LockPaint>
<A TImageEnMView.MoveImage>
<A TImageEnMView.MultiSelectSortList>
<A TImageEnMView.PrepareSpaceFor>
<A TImageEnMView.ReleaseBitmap>
<A TImageEnMView.ReloadImage>
<A TImageEnMView.SelectAll>
<A TImageEnMView.SelectSeek>
<A TImageEnMView.SetChessboardStyle>
<A TImageEnMView.SetIEBitmap>
<A TImageEnMView.SetImageEx>
<A TImageEnMView.SetImageFromFile>
<A TImageEnMView.SetImageFromStream>
<A TImageEnMView.SetImageRect>
<A TImageEnMView.SetImage>
<A TImageEnMView.SetPresetThumbnailFrame>
<A TImageEnMView.SetViewXY>
<A TImageEnMView.Sort>
<A TImageEnMView.UnLockPaint>
<A TImageEnMView.UnSelectImage>
<A TImageEnMView.Update>
<A TImageEnMView.UpdateCoords>
<A TImageEnMView.UpdateImage>
<FM>Events<FN>
<A TImageEnMView.OnAllDisplayed>
<A TImageEnMView.OnBeforeImageDrawEx>
<A TImageEnMView.OnBeforeImageDraw>
<A TImageEnMView.OnDrawProgress>
<A TImageEnMView.OnFinishWork>
<A TImageEnMView.OnImageDeselect>
<A TImageEnMView.OnImageDraw>
<A TImageEnMView.OnImageDraw2>
<A TImageEnMView.OnImageIDRequestEx>
<A TImageEnMView.OnImageIDRequest>
<A TImageEnMView.OnImageSelect>
<A TImageEnMView.OnIOProgress>
<A TIEView.OnMouseEnter>
<A TIEView.OnMouseLeave>
<A TImageEnMView.OnViewChange>
<A TImageEnMView.OnWrongImage>
!!}
TImageEnMView = class(TIEView)
private
/////////////////////////
// P R I V A T E
fMDown: boolean;
fBackBuffer: TIEBitmap;
fHSVX1, fHSVY1: integer; // view in mouse down
fScrollBars: TScrollStyle;
fRXScroll, fRYScroll: double;
fViewX, fViewY: integer;
fImageList: TIEVirtualImageList;
fCacheList: TIEVirtualImageList;
fImageInfo: TList; // contains TIEImageInfo structures
fStoreType: TIEStoreType; // how to store images
fThumbWidth, fThumbHeight: integer; // thumbsnails size
fHorizBorder: integer; // horizontal border
fVertBorder: integer; // vertical border
fVWidth, fVHeight: integer; // virtual space size (Updated by UpdateCoords)
fOnViewChange: TViewChangeEvent;
fOnDrawProgress: TIEMProgressEvent;
fOnWrongImage: TIEWrongImageEvent;
fHDrawDib: HDRAWDIB; // to draw on display
fOnImageIDRequest: TIEImageIDRequestEvent;
fOnImageIDRequestEx: TIEImageIDRequestExEvent;
fOnImageDraw: TIEImageDrawEvent;
fOnImageDraw2: TIEImageDraw2Event;
fOnIOProgress: TIEProgressEvent;
fBottomGap: integer;
fUpperGap: integer;
fDisplayMode: TIEMDisplayMode; // display mode
fGridWidth: integer; // number of horizontal images (1=all vertical, other is a grid)
fHSX1, fHSY1: integer; // mouse down coordinates
fHSIDX, fLHSIDX: integer;
fHSIDX2:integer;
fImageEnIO: TImageEnIO; // to load images
fLockPaint: integer; // 0=paint unlocked
fRemoveCorrupted: boolean; // works only when ImageFileName[] contains valid names
fDrawImageBackground: boolean; // true=draw image background false=draw component background
fScrollBarsAlwaysVisible: boolean; // true if the scrollbars are always visible
fVScrollBarParams: TIEScrollBarParams;
fHScrollBarParams: TIEScrollBarParams;
fThumbnailResampleFilter: TResampleFilter;
fThumbnailDisplayFilter: TResampleFilter;
fDestroying: boolean; // component is destroying
fStyle: TIEMStyle;
fSelectionStyle: TIESStyle;
fDoubleClicking: boolean;
fThumbnailsBackground: TColor;
fThumbnailsBorderWidth: integer;
fThumbnailsBorderColor: TColor;
fThumbnailsInternalBorder: boolean;
fThumbnailsInternalBorderColor: TColor;
fUpdating: boolean;
fEnableResamplingOnMinor: boolean; // Enable resampling when the image has width and height < of thumbnail width and height
fThumbsRounded:integer;
fEnableAdjustOrientation:boolean;
fEnableLoadEXIFThumbnails:boolean; // if we need thumbnails, allow to use EXIF thumbnails
// when true (default) the image will be resized to the thumbnail sizes
fEnableAlphaChannel: boolean;
fBackgroundStyle: TIEBackgroundStyle;
fThumbnailsBackgroundStyle: TIEBackgroundStyle;
fFillThumbnail: boolean;
fCurrentCompare: TIEImageEnMViewSortCompare;
// Multithread
fThreadPoolSize: integer; // maximum threads count (0=disable multithread)
fThreadPoolIO: TList; // list of TImageEnIO objects (maximum size is fThreadPoolSize)
fThreadRequests: TList; // list of integers, the indexes of the image to load (no maximum size)
fThreadStarter: TIEStarter; // starter main thread
fLookAheadList:TList; // list of lookaheaded images (index of)
// Wall paper
fWallPaper: TPicture;
fWallPaperStyle: TIEWallPaperStyle;
// Selections
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -