ImageEn, unit iexFolderMView

TImageEnFolderMView


Declaration

TImageEnFolderMView = class(TImageEnMView);


Description

The TImageEnFolderMView component is a descendent of TImageEnMView, but is designed specifically for displaying the content of file folders.


While much of TImageEnFolderMView's functionality can be replicated in TImageEnMView using FillFromDirectory, there are a number of features that are only available in this control:
 Dragging and dropping files from Windows
 Cut, copy and paste files from Windows Explorer
 Automatic refreshing when folder contents change
 Display of the Windows Explorer popup menu
 File functions to move, copy, rename and delete files
 Display of folders on connected cameras and other devices
 In-built file navigation, keyboard shortcuts and other functions

To use TImageEnFolderMView, specify a Folder and the file types that you wish to display. For more control you can specify your own file mask, exclusion mask and sort order.

For rapid UI development TImageEnFolderMView provides a set of actions, plus you can use all actions of TImageEnMView.

Navigating to the "Drives" folder:


TImageEnFolderMView supports VCL Theming:


Note: For a simpler component to display files of a folder, use TIEFileListBox, which shows icons rather than thumbnails


Overview




Display Styles

TImageEnFolderMView includes five standard styles. Ensure you set AutoAdjustStyle := True; so that setting the style automatically updates all relevant properties.
iemsFlat iemsFlatAndWide
iemsFilenames iemsColumns


Thumbnail Performance

Because a TImageEnMView may potentially load and store thousands of files, you should optimize your settings to ensure the best performance. Take note of the following:


Recommended Defaults

For compatibility, some of the default options of TImageEnFolderMView are not the recommended ones. Here are some suggested changes:


Keyboard Shortcuts

The following keyboard shortcuts are supported:
Description Type Shortcut Option to Enable
Navigate - Cursor Keys mkiMoveSelected
Select multiple files - Ctrl/Shift+Cursor Keys mkiMoveSelected
Select next filename starting with a letter - Numbers and letters mkiLetterNavigation
Select all files iesSelectAll Ctrl+A mkiMoveSelected
Delete the selected file iesDelete Delete ieboEnableFileShortcuts
Rename the selected file iesRename F2 ReadOnly
Open parent folder iesOpenParent Alt+Left/Backspace ieboEnableFolderShortcuts
Refresh file list iesRefresh F5 ieboEnableFolderShortcuts
Open folder/launch file (if launch option enabled in FolderInteract) - Enter ieboEnableFolderShortcuts
Display the File Properties Dialog iesProperties Alt+Enter ieboEnableFileShortcuts
Cut file to clipboard iesCut Ctrl+X ieboEnableFileShortcuts
Copy file to clipboard iesCopy Ctrl+C ieboEnableFileShortcuts
Paste file from clipboard iesPaste Ctrl+V ieboEnableFileShortcuts
Display the system popup menu (if PopupMenuUseSystem is enabled) iesSystemMenu Shift+F10 ieboEnableFileShortcuts

Note: Configure or disable individual keyboard shortcuts using KeyboardShortcuts



Demos

Demo Description Demo Project Folder Compiled Demo
ImageEnFolderMView Demo Using TImageEnFolderMView to display file folders Multi\FolderMView\FolderMView.dpr   
Explorer Demo A Windows Explorer style demo using a TIEFolderTree and TImageEnFolderMView Multi\Explorer\ExplorerDemo.dpr   
ImageEnMFolderView Actions Folder thumbnail application built using only TImageEnFolderMView actions Actions\Actions_Folder\FolderMViewActions.dpr   
Portable Devices Browser Browse content of connected cameras and smart phones in a TImageEnFolderMView ImageAcquisition\PortableDevicesBrowser\WPDBrowser.dpr   
ImageEnMView Styles Changing styles and display modes of a TImageEnMView Multi\MViewStyles\MViewStyles.dpr   
ImageEnMView Preview Using a TImageEnMView with a TImageEnView for previewing and navigation Multi\MViewPreview\MViewPreview.dpr   
ImageEnMView with Viewer Attaching a TImageEnView to a TImageEnMView for previewing and navigation Multi\MView_AttachedViewer\MViewPreview.dpr   
Contact Sheets Output thumbnail pages to file, bitmap or printer Multi\ContactSheets\ContactSheets.dpr   


Example

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Setup TImageEnFolderMView
  IEFolderMView1.AutoAdjustStyle   := True;       // Enable so that setting "Style" will automatically update all relevant properties
  IEFolderMView1.GridWidth         := -1;         // Automatically adjust the column count to match the control width
  IEFolderMView1.ThumbWidth        := 150;        // Increase size of thumbnails
  IEFolderMView1.ThumbHeight       := 140;        // Increase size of thumbnails
  IEFolderMView1.ShowThumbnailHint := true;       // Show file details when hovering over a thumbnail
  IEFolderMView1.EnableMultiSelect := true;       // Enable selection of multiple files
end;


// Now display the images of a folder in the grid
IEFolderMView1.Folder := 'C:\MyImages\';
IEFolderMView1.FileTypes := iefAllImages;   // Images only
IEFolderMView1.SortOrder := iesbImageSize;  // Sort by image dimensions


// Alternatively you can fill the control manually
// Note: Some functionality will be unavailable such as pasting and dragging files to the folder
IEFolderMView1.LockUpdate();
IEFolderMView1.Folder := '';
IEFolderMView1.AppendFile( 'C:\image.jpg' );
IEFolderMView1.AppendFile( 'D:\WordDoc.docx' );
IEFolderMView1.AppendFile( 'D:\Documents\' );        // Only the icon for the folder, not all the files it contains
IEFolderMView1.FillFromDirectory( 'C:\MyImages\' );  // Add all the files it contains
IEFolderMView1.RefreshSorting();                     // Sort all files
IEFolderMView1.UnlockUpdate();



Methods and Properties

Embedded Components
Public Property  Proc (Image editing and analysis methods)
Public Property  MIO (Acquisition and printing)

Folder Display
Public Property  AutoRefresh
Published Property  DefaultFolder
Published Property  EnableSpecialFolders
Published Property  ExclusionMask
Public Property  FileLimit
Published Property  FileTypes
Published Property  FileTypesMask
Published Property  Filter
Published Property  FilterField
Public Property  FilteredCount
Public Method  GetUnfilteredImage
Published Property  Folder
Published Property  IncludeSubFolders
Published Property  PopupMenuUseSystem
Public Method  PromptForFolder
Public Method  RefreshFileList
Public Method  RefreshSorting
Public Method  SetFolderEx
Public Method  SetSortOrderEx
Published Property  SortOrder
Published Property  SortOptions
Published Property  ShowDevices
Published Property  ShowFolders
Published Property  ShowHiddenFiles
Public Property  SubFolderLimit

File Operations
Published Property  AutoDragFiles
Published Property  AutoDropFiles
Public Method  CreateNewFolder
Public Method  ExecuteFile
Public Method  ExecuteFolder
Public Method  CopyFilesToCurrentFolder
Public Method  CopySelectedFilesToClipboard
Public Method  CopySelectedFilesToFolder
Public Method  CutSelectedFilesToClipboard
Public Method  DeleteSelectedFilesFromFolder
Published Property  FileOperationOptions
Published Property  FolderInteract
Public Method  MoveFilesToCurrentFolder
Public Method  MoveSelectedFilesToFolder
Public Method  OpenFolder
Public Method  OpenParentFolder
Public Method  CanOpenParentFolder
Public Method  PasteFilesFromClipboard
Public Method  CanPasteFilesFromClipboard
Public Method  PopupSystemMenu
Published Property  ReadOnly
Public Method  RenameFile

Display
Public Property  Animation
Public Property  AnnotationsVisible
Published Property  AttachedImageEnView
Published Property  AutoAdjustStyle
Published Property  Background
Published Property  BackgroundColor2
Published Property  BackgroundStyle
Published Property  BiDiMode
Public Method  CenterFrame
Public Property  DefaultFileIcon
Public Method  DisplayImageAt
Published Property  GradientDir
Published Property  GradientEndColor
Published Property  GridWidth (Column count)
Public Method  LockPaint
Public Property  LockPaintCount
Public Method  LockUpdate
Public Property  LockUpdateCount
Public Property  MaximumViewX
Public Property  MaximumViewY
Public Method  SetChessboardStyle
Public Method  SetModernStyling
Public Method  SetStyleEx
Public Method  SetViewXY
Published Property  Style
Public Method  UnlockPaint
Public Method  UnlockUpdate
Public Property  ViewX
Public Property  ViewY
Published Property  Wallpaper
Published Property  WallpaperStyle

Editing
Public Method  AppendFile
Public Method  AppendImage
Public Method  AppendSplit
Public Method  Clear
Public Method  CreateMorphingSequence
Public Method  DeleteImage
Public Property  ImageCount
Public Method  InsertFile
Public Method  InsertImageEx
Public Method  InsertImage
Public Method  MoveImage
Public Method  RemoveBlankPages
Public Method  RemoveFile

Image Access
Public Method  CopyToIEBitmap
Public Method  GetBitmap
Public Method  GetTIEBitmap
Public Property  IEBitmap
Public Method  PrepareSpaceFor
Public Method  ReleaseBitmap
Public Method  SetImage
Public Method  SetImageEx
Public Method  SetImageRect
Public Method  UpdateImage

Image Information
Public Method  FilenameToIndex
Public Property  ImageBackground
Public Property  ImageBitCount
Public Property  ImageCol
Public Property  ImageCreateDate
Public Property  ImageDelayTime
Public Property  ImageEditDate
Public Property  ImageFileName
Public Property  ImageFileSize
Public Property  ImageFileType
Public Property  ImageFiltered
Public Method  ImageGetDisplayText
Public Property  ImageHeight
Public Property  ImageID
Public Property  ImageOriginalHeight
Public Property  ImageOriginalWidth
Public Property  ImageRow
Public Property  ImageTag
Public Property  ImageUserPointer
Public Property  ImageWidth
Public Property  ImageX
Public Property  ImageY

Image Text
Published Property  BottomTextFont
Published Property  DefaultBottomText
Published Property  DefaultInfoText
Published Property  DefaultTopText
Public Property  ImageBottomText
Public Property  ImageInfoText
Public Property  ImageTopText
Published Property  InfoTextFont
Published Property  ParentFont
Published Property  SelectedFontColor
Public Method  SetAllText
Public Property  ShowText
Public Property  TextBackgroundColor
Public Property  TextBackgroundStyle
Public Property  TextBlockWidth
Public Property  TextColumns
Public Property  TextColumnWidths
Published Property  TextMargin
Published Property  TextTruncSide
Published Property  TopTextFont

Thumbnail Appearance
Published Property  EnableAlphaChannel
Public Property  FillThumbnail (Highlight Selection)
Public Property  IconSize
Public Method  SetThumbnailSize
Published Property  ShowThumbnailHint
Public Property  SoftShadow
Published Property  ThumbnailClipping
Published Property  ThumbnailDisplayFilter
Public Property  ThumbnailFrameRect
Public Property  ThumbnailFrameSelected
Public Property  ThumbnailFrame
Published Property  ThumbHeight
Published Property  ThumbnailResampleFilter
Published Property  ThumbnailsBackground
Published Property  ThumbnailsBackgroundHover
Published Property  ThumbnailsBackgroundSelected
Published Property  ThumbnailsBackgroundStyle
Published Property  ThumbnailsBorderColor
Public Property  ThumbnailsBorderCurved
Published Property  ThumbnailsBorderWidth
Published Property  ThumbnailsInternalBorderColor
Published Property  ThumbnailsInternalBorder
Published Property  ThumbnailOptionsEx
Public Property  ThumbsRounded
Public Method  ThumbSizeInfo
Published Property  ThumbWidth
Published Property  Zoom

Thumbnail Spacing
Published Property  BottomGap
Published Property  HorizBorder
Published Property  LeftGap
Published Property  RightGap
Published Property  UpperGap
Published Property  VertBorder

Input/Output
Public Method  ClearImageCache
Published Property  DiskCache
Public Property  DeprioritizeLargeImages
Public Property  DeprioritizeLargeImageMethod
Public Property  EnableAdjustOrientation (Auto-Rotate)
Public Property  EnableImageCaching
Public Property  EnableLoadEXIFThumbnails
Public Property  EnableLoadExplorerThumbnails
Public Method  EnsureImageLoaded
Public Method  GetImageToFile
Public Method  GetImageToStream
Published Property  ImageCacheSize
Public Property  ImageCacheUseDisk
Published Property  IOOptionsEx
Public Property  JobsRunning
Public Property  JobsWaiting
Public Method  LoadFromFileOnDemand
Public Method  LoadSnapshot
Public Property  LookAhead
Public Property  MaintainInvisibleImages
Public Property  PortableDevices
Public Method  ReloadImage
Public Method  SaveSnapshot
Public Method  Seek
Public Method  SetImageFromFile
Public Method  SetImageFromStream
Published Property  ThreadPoolSize
Public Property  WicFastLoading

Selections
Public Method  BeginSelectImages
Public Method  CenterSelected
Public Property  CheckThumbBoundsOnSelect
Public Method  DeleteSelectedImages
Public Method  Deselect
Published Property  EnableMultiSelect
Public Method  EndSelectImages
Published Property  HideSelectionOnDefocus
Public Method  IsSelected
Public Method  MoveSelectedImagesTo
Public Property  MultiSelectedImages
Public Property  MultiSelectedImagesCount
Public Property  MultiSelectedImagesList
Public Property  MultiSelecting
Published Property  MultiSelectionOptions
Public Method  SelectAll
Public Property  SelectedFilename
Public Method  SelectedFilenames
Public Property  SelectedImage
Public Property  SelectedImageAlwaysVisible
Published Property  SelectionColor
Published Property  SelectionWidth
Public Method  SelectSeek
Published Property  VisibleSelection

Checkboxes
Published Property  Checkboxes
Public Property  Checked
Public Method  CheckedCount
Public Property  CheckboxPos
Public Method  SetCheckboxParams
Public Method  CheckAll
Public Method  UncheckAll

User Interaction
Public Property  Gestures
Public Method  GetImageVisibility
Public Method  ImageAtGridPos
Public Method  ImageAtPos
Public Method  InsertingPoint
Public Method  IsVisible
Published Property  KeyInteract
Published Property  MouseInteract
Published Property  MouseWheelParams (Default)
Published Property  MouseWheelParamsAlt (Ctrl Key)
Published Property  PopupMenus

ScrollBars
Public Property  CurrentScrollBars
Public Property  HScrollBarParams
Published Property  ScrollBars
Public Property  ScrollBarsAlwaysVisible
Public Property  VScrollBarParams

Single Frame View
Published Property  DisplayMode (Single frame view)
Public Property  Playing
Public Property  PlayLoop
Public Property  PlaySpeed
Published Property  TransitionDuration
Published Property  TransitionEffect
Public Property  TransitionRunning
Public Property  VisibleFrame

Other
Public Method  AddThumbButtons
Public Method  CalcGridHeight
Public Method  CalcGridWidth
Published Property  DesignTimeView
Published Property  DrawVersion
Public Method  IEBeginDrag
Public Method  IEEndDrag
Published Property  ImageEnVersion
Public Method  LoadProperties
Public Property  ProgressTask
Public Method  SaveProperties
Published Property  StoreType
Public Method  Update

Internal
Public Method  FillFromDirectory
Public Method  FillFromList
Public Method  Sort


Events

Folder Events
Event  OnAutoRefresh
Event  OnFolderChanging
Event  OnFolderChanged

User Interaction Events
Event  OnActionExecute
Event  OnCheckboxClick
Event  OnDropFiles
Event  OnEditText
Event  OnImageDeselect
Event  OnImageSelect
Event  OnImageEnGesture
Event  OnSelectionChanging
Event  OnSelectionChanged
Event  OnZoomIn
Event  OnZoomOut

Loading Events
Event  OnAllDisplayed
Event  OnGetLoadFilename
Event  OnImageIDRequestEx
Event  OnImageIDRequest
Event  OnImageLoaded
Event  OnIOProgress
Event  OnWrongImage

Paint Events
Event  OnAnimationText
Event  OnBeforeImageDrawEx
Event  OnBeforeImageDraw
Event  OnDrawProgress
Event  OnGetColors
Event  OnGetText
Event  OnGetTextEx
Event  OnImageDraw
Event  OnImageDraw2
Event  OnImageOut

Other Events
Event  OnAcquireBitmap
Event  OnAfterEvent
Event  OnCreateImage
Event  OnCreateParams
Event  OnCustomSortCompare
Event  OnDestroyImage
Event  OnFilter
Event  OnFinishWork
Event  OnGetHint
Event  OnImageAdd
Event  OnImageAdded
Event  OnImageAtPos
Event  OnPlayFrame
Event  OnPrintPage
Event  OnProgress
Event  OnShowDialog
Event  OnUndoRedo
Event  OnViewChange

 Unique to TImageEnFolderMView