home *** CD-ROM | disk | FTP | other *** search
- unit Main;
- interface
-
- uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus, Printers,
- StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, LEAD, LEADDef,
- OleCtrls, Twain, Info, Gauges, About, List, LTDLGOCX, OLEAuto,
- LTISIOCX, ISIS, LEADDlg, LEADISIS;
-
- const
- MAX_STRING_LIST = 8;
-
- type
- TStringArray = array[1..MAX_STRING_LIST] of string;
-
- TMainForm = class(TForm)
- MainMenu1: TMainMenu;
- File1: TMenuItem;
- FileOpenItem: TMenuItem;
- FileCloseItem: TMenuItem;
- Window1: TMenuItem;
- Help1: TMenuItem;
- N1: TMenuItem;
- FileExitItem: TMenuItem;
- WindowCascadeItem: TMenuItem;
- WindowTileItem: TMenuItem;
- WindowArrangeItem: TMenuItem;
- HelpAboutItem: TMenuItem;
- FileSaveAsItem: TMenuItem;
- Edit1: TMenuItem;
- CopyItem: TMenuItem;
- PasteItem: TMenuItem;
- WindowMinimizeItem: TMenuItem;
- SpeedPanel: TPanel;
- StatusBar: TStatusBar;
- CloseAll: TMenuItem;
- Print: TMenuItem;
- Preferences1: TMenuItem;
- Palette: TMenuItem;
- Dithering1: TMenuItem;
- BitonalScaling1: TMenuItem;
- StatusBarItem: TMenuItem;
- View1: TMenuItem;
- Normal1: TMenuItem;
- ZoomIn1: TMenuItem;
- ZoomOut1: TMenuItem;
- N2: TMenuItem;
- Effects1: TMenuItem;
- zoom50: TMenuItem;
- zoom33: TMenuItem;
- zoom25: TMenuItem;
- zoom200: TMenuItem;
- zoom300: TMenuItem;
- zoom400: TMenuItem;
- Image1: TMenuItem;
- Color1: TMenuItem;
- Flip1: TMenuItem;
- Reverse1: TMenuItem;
- Rotate1: TMenuItem;
- Shear1: TMenuItem;
- Deskew1: TMenuItem;
- N3: TMenuItem;
- Resize1: TMenuItem;
- Resample1: TMenuItem;
- N4: TMenuItem;
- SpatialFilter1: TMenuItem;
- BinaryFilter1: TMenuItem;
- Halftone1: TMenuItem;
- Grayscale1: TMenuItem;
- ColorResolution1: TMenuItem;
- N5: TMenuItem;
- Invert1: TMenuItem;
- Brightness1: TMenuItem;
- Contrast1: TMenuItem;
- Hue1: TMenuItem;
- HistogramEqualize1: TMenuItem;
- StretchIntensity1: TMenuItem;
- GammaCorrect1: TMenuItem;
- IntensityDetect1: TMenuItem;
- N6: TMenuItem;
- TwainSelect1: TMenuItem;
- TwainAcquire1: TMenuItem;
- TwainAcquireExtended1: TMenuItem;
- TwainAcquireCallback1: TMenuItem;
- ImageInfo1: TMenuItem;
- N7: TMenuItem;
- Gauge1: TGauge;
- PrinterSetupDialog1: TPrinterSetupDialog;
- OpenBtn: TSpeedButton;
- SaveBtn: TSpeedButton;
- CutBtn: TSpeedButton;
- CopyBtn: TSpeedButton;
- PasteBtn: TSpeedButton;
- SpeedButton7: TSpeedButton;
- CutItem: TMenuItem;
- Auto1: TMenuItem;
- Fixed1: TMenuItem;
- Ordered1: TMenuItem;
- ErrorDiffusion1: TMenuItem;
- BitonalNormal1: TMenuItem;
- FavorBlack1: TMenuItem;
- ScaleToGray1: TMenuItem;
- CaptureScreen1: TMenuItem;
- Erosion1: TMenuItem;
- Dilation1: TMenuItem;
- Gradient1: TMenuItem;
- Laplacian1: TMenuItem;
- Sobel1: TMenuItem;
- Prewitt1: TMenuItem;
- ShiftandDifference1: TMenuItem;
- LineSegment1: TMenuItem;
- ImageProcessing1: TMenuItem;
- Posterize1: TMenuItem;
- Mosaic1: TMenuItem;
- Average1: TMenuItem;
- Median1: TMenuItem;
- Sharpen1: TMenuItem;
- Despeckle1: TMenuItem;
- AddNoise1: TMenuItem;
- N8: TMenuItem;
- SelectRegion1: TMenuItem;
- CancelRegion1: TMenuItem;
- ToolNone1: TMenuItem;
- ToolRect1: TMenuItem;
- ToolEllipse1: TMenuItem;
- ToolRndRect1: TMenuItem;
- ToolFreeHand1: TMenuItem;
- N9: TMenuItem;
- FlipRegion1: TMenuItem;
- ReverseRegion1: TMenuItem;
- RotateRegion1: TMenuItem;
- ResizeRegion1: TMenuItem;
- ResampleRegion1: TMenuItem;
- Emboss2: TMenuItem;
- N10: TMenuItem;
- ISISSelect1: TMenuItem;
- ISISAcquire1: TMenuItem;
- ISISAcquireMulti1: TMenuItem;
- WindowLevel1: TMenuItem;
- Grayscale121: TMenuItem;
- Grayscale161: TMenuItem;
- LTDlgOcxCtl1: TLeadDlgCtrl;
- SaveDialog: TLeadDlgCtrl;
- OpenDialog: TLeadDlgCtrl;
- LTIsis: TLeadIsisCtrl;
- HiddenLead: TLeadCtrl;
- procedure FormCreate(Sender: TObject);
- procedure WindowCascadeItemClick(Sender: TObject);
- procedure OnActivate(Sender: TObject);
- procedure WindowTileItemClick(Sender: TObject);
- procedure WindowArrangeItemClick(Sender: TObject);
- procedure FileCloseItemClick(Sender: TObject);
- procedure FileOpenItemClick(Sender: TObject);
- procedure FileExitItemClick(Sender: TObject);
- procedure FileSaveAsItemClick(Sender: TObject);
- procedure CutItemClick(Sender: TObject);
- procedure CopyItemClick(Sender: TObject);
- procedure PasteItemClick(Sender: TObject);
- procedure WindowMinimizeItemClick(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- procedure CloseAllClick(Sender: TObject);
- procedure PrintClick(Sender: TObject);
- procedure TwainSelect1Click(Sender: TObject);
- procedure TwainAcquire1Click(Sender: TObject);
- procedure TwainAcquireExtended1Click(Sender: TObject);
- procedure TwainAcquireCallback1Click(Sender: TObject);
- procedure OnTwainPage(Sender: TObject);
- procedure ImageInfo1Click(Sender: TObject);
- procedure UpdateMenuItems(Sender: TObject);
- procedure StatusBarItemClick(Sender: TObject);
- procedure Normal1Click(Sender: TObject);
- procedure zoom25Click(Sender: TObject);
- procedure zoom33Click(Sender: TObject);
- procedure zoom50Click(Sender: TObject);
- procedure zoom200Click(Sender: TObject);
- procedure zoom300Click(Sender: TObject);
- procedure zoom400Click(Sender: TObject);
- procedure Effects1Click(Sender: TObject);
- procedure Flip1Click(Sender: TObject);
- procedure Reverse1Click(Sender: TObject);
- procedure Rotate1Click(Sender: TObject);
- procedure Shear1Click(Sender: TObject);
- procedure Deskew1Click(Sender: TObject);
- procedure Despeckle1Click(Sender: TObject);
- procedure Resize1Click(Sender: TObject);
- procedure Resample1Click(Sender: TObject);
- procedure Halftone1Click(Sender: TObject);
- procedure Grayscale1Click(Sender: TObject);
- procedure ColorResolution1Click(Sender: TObject);
- procedure Invert1Click(Sender: TObject);
- procedure Brightness1Click(Sender: TObject);
- procedure Contrast1Click(Sender: TObject);
- procedure Hue1Click(Sender: TObject);
- procedure HistogramEqualize1Click(Sender: TObject);
- procedure StretchIntensity1Click(Sender: TObject);
- procedure GammaCorrect1Click(Sender: TObject);
- procedure IntensityDetect1Click(Sender: TObject);
- procedure Auto1Click(Sender: TObject);
- procedure Fixed1Click(Sender: TObject);
- procedure Ordered1Click(Sender: TObject);
- procedure ErrorDiffusion1Click(Sender: TObject);
- procedure BitonalNormal1Click(Sender: TObject);
- procedure FavorBlack1Click(Sender: TObject);
- procedure ScaleToGray1Click(Sender: TObject);
- procedure HelpAboutItemClick(Sender: TObject);
- procedure CaptureScreen1Click(Sender: TObject);
- procedure Erosion1Click(Sender: TObject);
- procedure Dilation1Click(Sender: TObject);
- procedure Gradient1Click(Sender: TObject);
- procedure Laplacian1Click(Sender: TObject);
- procedure Sobel1Click(Sender: TObject);
- procedure Prewitt1Click(Sender: TObject);
- procedure ShiftandDifference1Click(Sender: TObject);
- procedure LineSegment1Click(Sender: TObject);
- procedure Posterize1Click(Sender: TObject);
- procedure Mosaic1Click(Sender: TObject);
- procedure Average1Click(Sender: TObject);
- procedure Median1Click(Sender: TObject);
- procedure Sharpen1Click(Sender: TObject);
- procedure AddNoise1Click(Sender: TObject);
- procedure Edit1Click(Sender: TObject);
- procedure SelectRegion1Click(Sender: TObject);
- procedure Image1Click(Sender: TObject);
- procedure ToolNone1Click(Sender: TObject);
- procedure ToolRect1Click(Sender: TObject);
- procedure ToolEllipse1Click(Sender: TObject);
- procedure ToolRndRect1Click(Sender: TObject);
- procedure ToolFreeHand1Click(Sender: TObject);
- procedure FlipRegion1Click(Sender: TObject);
- procedure ReverseRegion1Click(Sender: TObject);
- procedure RotateRegion1Click(Sender: TObject);
- procedure ResizeRegion1Click(Sender: TObject);
- procedure CancelRegion1Click(Sender: TObject);
- procedure ResampleRegion1Click(Sender: TObject);
- procedure Emboss2Click(Sender: TObject);
- procedure ISISSelect1Click(Sender: TObject);
- procedure ISISAcquire1Click(Sender: TObject);
- procedure ISISAcquireMulti1Click(Sender: TObject);
- procedure File1Click(Sender: TObject);
- procedure WindowLevel1Click(Sender: TObject);
- procedure Grayscale121Click(Sender: TObject);
- procedure Grayscale161Click(Sender: TObject);
- procedure Color1Click(Sender: TObject);
-
- private
- { Private declarations }
- procedure CreateMDIChild(const Name: string);
- procedure ShowHint(Sender: TObject);
- public
- { Public declarations }
- function CheckError(E: EOleError):boolean;
- end;
-
- const
- szLoadFilter = 'All files (*.*)|*.*|LEAD|*.cmp|JPEG|*.jpg|CALS 1|*.cal|Compuserve PNG|*.png|'+
- 'EPS|*.eps|GEM|*.gem|GIF|*.gif|IOCA|*.ica|Mac PICT|*.pct|'+
- 'MacPaint|*.mac|MSP|*.msp|PCX|*.pcx|PSD|*.psd|SUN|*.ras|TGA|*.tga|'+
- 'TIFF|*.tif;*.jtf|BMP|*.bmp|FPX|*.fpx|DIC|*.dic|ICO|*.ico|CUR|*.cur|AWD|*.awd';
-
- aChannelList: TStringArray = ( 'Master', 'Red', 'Green', 'Blue', '', '', '', '' );
-
- aEffectList: array[EFX_EFFECT_WIPE_CLASS..EFX_EFFECT_WIPE_MAX] of string = (
- 'Left to Right',
- 'Right to Left',
- 'Top to Bottom',
- 'Bottom to Top',
- 'Left-Top to Right-Bottom',
- 'Left-Bottom to Right-Top',
- 'Right-Top to Left-Bottom',
- 'Right-Bottom to Left-Top',
- 'Horz Interlace Left to Right twice',
- 'Vert Interlace Top to Bottom twice',
- 'Horz Interlace Left to Right then back',
- 'Vert Interlace Top to Bottom then back',
- 'Vert Interlace Left to Right twice',
- 'Vert Interlace Right to Left twice',
- 'Horz Interlace Top to Bottom twice',
- 'Horz Interlace Bottom to Top twice',
- 'Vert Interlace Left to Right then back',
- 'Vert Interlace Right to Left then back',
- 'Horz Interlace Top to Bottom then back',
- 'Horz Interlace Bottom to Top then back',
- 'Horz Interlace Left to Right & Right to Left',
- 'Vert Interlace Top to Bottom & Bottom to Top',
- 'Vert Interlace Left & Right to Center',
- 'Vert Interlace Center to Left & Right',
- 'Horz Interlace Top & Bottom to Center',
- 'Horz Interlace Center to Top & Bottom',
- 'Vert Interlace Left & Right to Center then back',
- 'Vert Interlace Center to Left & Right then back',
- 'Horz Interlace Top & Bottom to Center then back',
- 'Horz Interlace Center to Top & Bottom then back',
- '2-Way Left-Top & Right-Bottom to Center',
- '2-Way Left-Bottom & Right-Top to Center',
- '2-Way Center to Left-Top & Right-Bottom',
- '2-Way Center to Left-Bottom & Right-Top',
- '2-Way Left-Bottom & Right-Bottom to Top',
- '2-Way Left-Top & Right-Top to Bottom',
- '2-Way Right-Top & Right-Bottom to Left',
- '2-Way Left-Top & Left-Bottom to Right',
- '2-Way Left Top to Bottom & Right Bottom to Top',
- '2-Way Top Left to Right & Bottom Right to Left',
- '4-Way Corners Out',
- '4-Way Center to Left & Right then Top & Bottom',
- '4-Way Top & Bottom then Left & Right to Center',
- '4-Way Left Left Left Left',
- '4-Way Left Left Left Right',
- '4-Way Left Left Left Top',
- '4-Way Left Left Left Bottom',
- '4-Way Left Left Right Left',
- '4-Way Left Left Right Right',
- '4-Way Left Left Right Top',
- '4-Way Left Left Right Bottom',
- '4-Way Left Left Top Left',
- '4-Way Left Left Top Right',
- '4-Way Left Left Top Top',
- '4-Way Left Left Top Bottom',
- '4-Way Left Left Bottom Left',
- '4-Way Left Left Bottom Right',
- '4-Way Left Left Bottom Top',
- '4-Way Left Left Bottom Bottom',
- '4-Way Left Right Left Left',
- '4-Way Left Right Left Right',
- '4-Way Left Right Left Top',
- '4-Way Left Right Left Bottom',
- '4-Way Left Right Right Left',
- '4-Way Left Right Right Right',
- '4-Way Left Right Right Top',
- '4-Way Left Right Right Bottom',
- '4-Way Left Right Top Left',
- '4-Way Left Right Top Right',
- '4-Way Left Right Top Top',
- '4-Way Left Right Top Bottom',
- '4-Way Left Right Bottom Left',
- '4-Way Left Right Bottom Right',
- '4-Way Left Right Bottom Top',
- '4-Way Left Right Bottom Bottom',
- '4-Way Left Top Left Left',
- '4-Way Left Top Left Right',
- '4-Way Left Top Left Top',
- '4-Way Left Top Left Bottom',
- '4-Way Left Top Right Left',
- '4-Way Left Top Right Right',
- '4-Way Left Top Right Top',
- '4-Way Left Top Right Bottom',
- '4-Way Left Top Top Left',
- '4-Way Left Top Top Right',
- '4-Way Left Top Top Top',
- '4-Way Left Top Top Bottom',
- '4-Way Left Top Bottom Left',
- '4-Way Left Top Bottom Right',
- '4-Way Left Top Bottom Top',
- '4-Way Left Top Bottom Bottom',
- '4-Way Left Bottom Left Left',
- '4-Way Left Bottom Left Right',
- '4-Way Left Bottom Left Top',
- '4-Way Left Bottom Left Bottom',
- '4-Way Left Bottom Right Left',
- '4-Way Left Bottom Right Right',
- '4-Way Left Bottom Right Top',
- '4-Way Left Bottom Right Bottom',
- '4-Way Left Bottom Top Left',
- '4-Way Left Bottom Top Right',
- '4-Way Left Bottom Top Top',
- '4-Way Left Bottom Top Bottom',
- '4-Way Left Bottom Bottom Left',
- '4-Way Left Bottom Bottom Right',
- '4-Way Left Bottom Bottom Top',
- '4-Way Left Bottom Bottom Bottom',
- '4-Way Right Left Left Left',
- '4-Way Right Left Left Right',
- '4-Way Right Left Left Top',
- '4-Way Right Left Left Bottom',
- '4-Way Right Left Right Left',
- '4-Way Right Left Right Right',
- '4-Way Right Left Right Top',
- '4-Way Right Left Right Bottom',
- '4-Way Right Left Top Left',
- '4-Way Right Left Top Right',
- '4-Way Right Left Top Top',
- '4-Way Right Left Top Bottom',
- '4-Way Right Left Bottom Left',
- '4-Way Right Left Bottom Right',
- '4-Way Right Left Bottom Top',
- '4-Way Right Left Bottom Bottom',
- '4-Way Right Right Left Left',
- '4-Way Right Right Left Right',
- '4-Way Right Right Left Top',
- '4-Way Right Right Left Bottom',
- '4-Way Right Right Right Left',
- '4-Way Right Right Right Right',
- '4-Way Right Right Right Top',
- '4-Way Right Right Right Bottom',
- '4-Way Right Right Top Left',
- '4-Way Right Right Top Right',
- '4-Way Right Right Top Top',
- '4-Way Right Right Top Bottom',
- '4-Way Right Right Bottom Left',
- '4-Way Right Right Bottom Right',
- '4-Way Right Right Bottom Top',
- '4-Way Right Right Bottom Bottom',
- '4-Way Right Top Left Left',
- '4-Way Right Top Left Right',
- '4-Way Right Top Left Top',
- '4-Way Right Top Left Bottom',
- '4-Way Right Top Right Left',
- '4-Way Right Top Right Right',
- '4-Way Right Top Right Top',
- '4-Way Right Top Right Bottom',
- '4-Way Right Top Top Left',
- '4-Way Right Top Top Right',
- '4-Way Right Top Top Top',
- '4-Way Right Top Top Bottom',
- '4-Way Right Top Bottom Left',
- '4-Way Right Top Bottom Right',
- '4-Way Right Top Bottom Top',
- '4-Way Right Top Bottom Bottom',
- '4-Way Right Bottom Left Left',
- '4-Way Right Bottom Left Right',
- '4-Way Right Bottom Left Top',
- '4-Way Right Bottom Left Bottom',
- '4-Way Right Bottom Right Left',
- '4-Way Right Bottom Right Right',
- '4-Way Right Bottom Right Top',
- '4-Way Right Bottom Right Bottom',
- '4-Way Right Bottom Top Left',
- '4-Way Right Bottom Top Right',
- '4-Way Right Bottom Top Top',
- '4-Way Right Bottom Top Bottom',
- '4-Way Right Bottom Bottom Left',
- '4-Way Right Bottom Bottom Right',
- '4-Way Right Bottom Bottom Top',
- '4-Way Right Bottom Bottom Bottom',
- '4-Way Top Left Left Left',
- '4-Way Top Left Left Right',
- '4-Way Top Left Left Top',
- '4-Way Top Left Left Bottom',
- '4-Way Top Left Right Left',
- '4-Way Top Left Right Right',
- '4-Way Top Left Right Top',
- '4-Way Top Left Right Bottom',
- '4-Way Top Left Top Left',
- '4-Way Top Left Top Right',
- '4-Way Top Left Top Top',
- '4-Way Top Left Top Bottom',
- '4-Way Top Left Bottom Left',
- '4-Way Top Left Bottom Right',
- '4-Way Top Left Bottom Top',
- '4-Way Top Left Bottom Bottom',
- '4-Way Top Right Left Left',
- '4-Way Top Right Left Right',
- '4-Way Top Right Left Top',
- '4-Way Top Right Left Bottom',
- '4-Way Top Right Right Left',
- '4-Way Top Right Right Right',
- '4-Way Top Right Right Top',
- '4-Way Top Right Right Bottom',
- '4-Way Top Right Top Left',
- '4-Way Top Right Top Right',
- '4-Way Top Right Top Top',
- '4-Way Top Right Top Bottom',
- '4-Way Top Right Bottom Left',
- '4-Way Top Right Bottom Right',
- '4-Way Top Right Bottom Top',
- '4-Way Top Right Bottom Bottom',
- '4-Way Top Top Left Left',
- '4-Way Top Top Left Right',
- '4-Way Top Top Left Top',
- '4-Way Top Top Left Bottom',
- '4-Way Top Top Right Left',
- '4-Way Top Top Right Right',
- '4-Way Top Top Right Top',
- '4-Way Top Top Right Bottom',
- '4-Way Top Top Top Left',
- '4-Way Top Top Top Right',
- '4-Way Top Top Top Top',
- '4-Way Top Top Top Bottom',
- '4-Way Top Top Bottom Left',
- '4-Way Top Top Bottom Right',
- '4-Way Top Top Bottom Top',
- '4-Way Top Top Bottom Bottom',
- '4-Way Top Bottom Left Left',
- '4-Way Top Bottom Left Right',
- '4-Way Top Bottom Left Top',
- '4-Way Top Bottom Left Bottom',
- '4-Way Top Bottom Right Left',
- '4-Way Top Bottom Right Right',
- '4-Way Top Bottom Right Top',
- '4-Way Top Bottom Right Bottom',
- '4-Way Top Bottom Top Left',
- '4-Way Top Bottom Top Right',
- '4-Way Top Bottom Top Top',
- '4-Way Top Bottom Top Bottom',
- '4-Way Top Bottom Bottom Left',
- '4-Way Top Bottom Bottom Right',
- '4-Way Top Bottom Bottom Top',
- '4-Way Top Bottom Bottom Bottom',
- '4-Way Bottom Left Left Left',
- '4-Way Bottom Left Left Right',
- '4-Way Bottom Left Left Top',
- '4-Way Bottom Left Left Bottom',
- '4-Way Bottom Left Right Left',
- '4-Way Bottom Left Right Right',
- '4-Way Bottom Left Right Top',
- '4-Way Bottom Left Right Bottom',
- '4-Way Bottom Left Top Left',
- '4-Way Bottom Left Top Right',
- '4-Way Bottom Left Top Top',
- '4-Way Bottom Left Top Bottom',
- '4-Way Bottom Left Bottom Left',
- '4-Way Bottom Left Bottom Right',
- '4-Way Bottom Left Bottom Top',
- '4-Way Bottom Left Bottom Bottom',
- '4-Way Bottom Right Left Left',
- '4-Way Bottom Right Left Right',
- '4-Way Bottom Right Left Top',
- '4-Way Bottom Right Left Bottom',
- '4-Way Bottom Right Right Left',
- '4-Way Bottom Right Right Right',
- '4-Way Bottom Right Right Top',
- '4-Way Bottom Right Right Bottom',
- '4-Way Bottom Right Top Left',
- '4-Way Bottom Right Top Right',
- '4-Way Bottom Right Top Top',
- '4-Way Bottom Right Top Bottom',
- '4-Way Bottom Right Bottom Left',
- '4-Way Bottom Right Bottom Right',
- '4-Way Bottom Right Bottom Top',
- '4-Way Bottom Right Bottom Bottom',
- '4-Way Bottom Top Left Left',
- '4-Way Bottom Top Left Right',
- '4-Way Bottom Top Left Top',
- '4-Way Bottom Top Left Bottom',
- '4-Way Bottom Top Right Left',
- '4-Way Bottom Top Right Right',
- '4-Way Bottom Top Right Top',
- '4-Way Bottom Top Right Bottom',
- '4-Way Bottom Top Top Left',
- '4-Way Bottom Top Top Right',
- '4-Way Bottom Top Top Top',
- '4-Way Bottom Top Top Bottom',
- '4-Way Bottom Top Bottom Left',
- '4-Way Bottom Top Bottom Right',
- '4-Way Bottom Top Bottom Top',
- '4-Way Bottom Top Bottom Bottom',
- '4-Way Bottom Bottom Left Left',
- '4-Way Bottom Bottom Left Right',
- '4-Way Bottom Bottom Left Top',
- '4-Way Bottom Bottom Left Bottom',
- '4-Way Bottom Bottom Right Left',
- '4-Way Bottom Bottom Right Right',
- '4-Way Bottom Bottom Right Top',
- '4-Way Bottom Bottom Right Bottom',
- '4-Way Bottom Bottom Top Left',
- '4-Way Bottom Bottom Top Right',
- '4-Way Bottom Bottom Top Top',
- '4-Way Bottom Bottom Top Bottom',
- '4-Way Bottom Bottom Bottom Left',
- '4-Way Bottom Bottom Bottom Right',
- '4-Way Bottom Bottom Bottom Top',
- '4-Way Bottom Bottom Bottom Bottom',
- '4-Way Left-Top Left-Top Left-Top Left-Top',
- '4-Way Left-Top Left-Top Left-Top Left-Bottom',
- '4-Way Left-Top Left-Top Left-Top Right-Top',
- '4-Way Left-Top Left-Top Left-Top Right-Bottom',
- '4-Way Left-Top Left-Top Left-Bottom Left-Top',
- '4-Way Left-Top Left-Top Left-Bottom Left-Bottom',
- '4-Way Left-Top Left-Top Left-Bottom Right-Top',
- '4-Way Left-Top Left-Top Left-Bottom Right-Bottom',
- '4-Way Left-Top Left-Top Right-Top Left-Top',
- '4-Way Left-Top Left-Top Right-Top Left-Bottom',
- '4-Way Left-Top Left-Top Right-Top Right-Top',
- '4-Way Left-Top Left-Top Right-Top Right-Bottom',
- '4-Way Left-Top Left-Top Right-Bottom Left-Top',
- '4-Way Left-Top Left-Top Right-Bottom Left-Bottom',
- '4-Way Left-Top Left-Top Right-Bottom Right-Top',
- '4-Way Left-Top Left-Top Right-Bottom Right-Bottom',
- '4-Way Left-Top Left-Bottom Left-Top Left-Top',
- '4-Way Left-Top Left-Bottom Left-Top Left-Bottom',
- '4-Way Left-Top Left-Bottom Left-Top Right-Top',
- '4-Way Left-Top Left-Bottom Left-Top Right-Bottom',
- '4-Way Left-Top Left-Bottom Left-Bottom Left-Top',
- '4-Way Left-Top Left-Bottom Left-Bottom Left-Bottom',
- '4-Way Left-Top Left-Bottom Left-Bottom Right-Top',
- '4-Way Left-Top Left-Bottom Left-Bottom Right-Bottom',
- '4-Way Left-Top Left-Bottom Right-Top Left-Top',
- '4-Way Left-Top Left-Bottom Right-Top Left-Bottom',
- '4-Way Left-Top Left-Bottom Right-Top Right-Top',
- '4-Way Left-Top Left-Bottom Right-Top Right-Bottom',
- '4-Way Left-Top Left-Bottom Right-Bottom Left-Top',
- '4-Way Left-Top Left-Bottom Right-Bottom Left-Bottom',
- '4-Way Left-Top Left-Bottom Right-Bottom Right-Top',
- '4-Way Left-Top Left-Bottom Right-Bottom Right-Bottom',
- '4-Way Left-Top Right-Top Left-Top Left-Top',
- '4-Way Left-Top Right-Top Left-Top Left-Bottom',
- '4-Way Left-Top Right-Top Left-Top Right-Top',
- '4-Way Left-Top Right-Top Left-Top Right-Bottom',
- '4-Way Left-Top Right-Top Left-Bottom Left-Top',
- '4-Way Left-Top Right-Top Left-Bottom Left-Bottom',
- '4-Way Left-Top Right-Top Left-Bottom Right-Top',
- '4-Way Left-Top Right-Top Left-Bottom Right-Bottom',
- '4-Way Left-Top Right-Top Right-Top Left-Top',
- '4-Way Left-Top Right-Top Right-Top Left-Bottom',
- '4-Way Left-Top Right-Top Right-Top Right-Top',
- '4-Way Left-Top Right-Top Right-Top Right-Bottom',
- '4-Way Left-Top Right-Top Right-Bottom Left-Top',
- '4-Way Left-Top Right-Top Right-Bottom Left-Bottom',
- '4-Way Left-Top Right-Top Right-Bottom Right-Top',
- '4-Way Left-Top Right-Top Right-Bottom Right-Bottom',
- '4-Way Left-Top Right-Bottom Left-Top Left-Top',
- '4-Way Left-Top Right-Bottom Left-Top Left-Bottom',
- '4-Way Left-Top Right-Bottom Left-Top Right-Top',
- '4-Way Left-Top Right-Bottom Left-Top Right-Bottom',
- '4-Way Left-Top Right-Bottom Left-Bottom Left-Top',
- '4-Way Left-Top Right-Bottom Left-Bottom Left-Bottom',
- '4-Way Left-Top Right-Bottom Left-Bottom Right-Top',
- '4-Way Left-Top Right-Bottom Left-Bottom Right-Bottom',
- '4-Way Left-Top Right-Bottom Right-Top Left-Top',
- '4-Way Left-Top Right-Bottom Right-Top Left-Bottom',
- '4-Way Left-Top Right-Bottom Right-Top Right-Top',
- '4-Way Left-Top Right-Bottom Right-Top Right-Bottom',
- '4-Way Left-Top Right-Bottom Right-Bottom Left-Top',
- '4-Way Left-Top Right-Bottom Right-Bottom Left-Bottom',
- '4-Way Left-Top Right-Bottom Right-Bottom Right-Top',
- '4-Way Left-Top Right-Bottom Right-Bottom Right-Bottom',
- '4-Way Left-Bottom Left-Top Left-Top Left-Top',
- '4-Way Left-Bottom Left-Top Left-Top Left-Bottom',
- '4-Way Left-Bottom Left-Top Left-Top Right-Top',
- '4-Way Left-Bottom Left-Top Left-Top Right-Bottom',
- '4-Way Left-Bottom Left-Top Left-Bottom Left-Top',
- '4-Way Left-Bottom Left-Top Left-Bottom Left-Bottom',
- '4-Way Left-Bottom Left-Top Left-Bottom Right-Top',
- '4-Way Left-Bottom Left-Top Left-Bottom Right-Bottom',
- '4-Way Left-Bottom Left-Top Right-Top Left-Top',
- '4-Way Left-Bottom Left-Top Right-Top Left-Bottom',
- '4-Way Left-Bottom Left-Top Right-Top Right-Top',
- '4-Way Left-Bottom Left-Top Right-Top Right-Bottom',
- '4-Way Left-Bottom Left-Top Right-Bottom Left-Top',
- '4-Way Left-Bottom Left-Top Right-Bottom Left-Bottom',
- '4-Way Left-Bottom Left-Top Right-Bottom Right-Top',
- '4-Way Left-Bottom Left-Top Right-Bottom Right-Bottom',
- '4-Way Left-Bottom Left-Bottom Left-Top Left-Top',
- '4-Way Left-Bottom Left-Bottom Left-Top Left-Bottom',
- '4-Way Left-Bottom Left-Bottom Left-Top Right-Top',
- '4-Way Left-Bottom Left-Bottom Left-Top Right-Bottom',
- '4-Way Left-Bottom Left-Bottom Left-Bottom Left-Top',
- '4-Way Left-Bottom Left-Bottom Left-Bottom Left-Bottom',
- '4-Way Left-Bottom Left-Bottom Left-Bottom Right-Top',
- '4-Way Left-Bottom Left-Bottom Left-Bottom Right-Bottom',
- '4-Way Left-Bottom Left-Bottom Right-Top Left-Top',
- '4-Way Left-Bottom Left-Bottom Right-Top Left-Bottom',
- '4-Way Left-Bottom Left-Bottom Right-Top Right-Top',
- '4-Way Left-Bottom Left-Bottom Right-Top Right-Bottom',
- '4-Way Left-Bottom Left-Bottom Right-Bottom Left-Top',
- '4-Way Left-Bottom Left-Bottom Right-Bottom Left-Bottom',
- '4-Way Left-Bottom Left-Bottom Right-Bottom Right-Top',
- '4-Way Left-Bottom Left-Bottom Right-Bottom Right-Bottom',
- '4-Way Left-Bottom Right-Top Left-Top Left-Top',
- '4-Way Left-Bottom Right-Top Left-Top Left-Bottom',
- '4-Way Left-Bottom Right-Top Left-Top Right-Top',
- '4-Way Left-Bottom Right-Top Left-Top Right-Bottom',
- '4-Way Left-Bottom Right-Top Left-Bottom Left-Top',
- '4-Way Left-Bottom Right-Top Left-Bottom Left-Bottom',
- '4-Way Left-Bottom Right-Top Left-Bottom Right-Top',
- '4-Way Left-Bottom Right-Top Left-Bottom Right-Bottom',
- '4-Way Left-Bottom Right-Top Right-Top Left-Top',
- '4-Way Left-Bottom Right-Top Right-Top Left-Bottom',
- '4-Way Left-Bottom Right-Top Right-Top Right-Top',
- '4-Way Left-Bottom Right-Top Right-Top Right-Bottom',
- '4-Way Left-Bottom Right-Top Right-Bottom Left-Top',
- '4-Way Left-Bottom Right-Top Right-Bottom Left-Bottom',
- '4-Way Left-Bottom Right-Top Right-Bottom Right-Top',
- '4-Way Left-Bottom Right-Top Right-Bottom Right-Bottom',
- '4-Way Left-Bottom Right-Bottom Left-Top Left-Top',
- '4-Way Left-Bottom Right-Bottom Left-Top Left-Bottom',
- '4-Way Left-Bottom Right-Bottom Left-Top Right-Top',
- '4-Way Left-Bottom Right-Bottom Left-Top Right-Bottom',
- '4-Way Left-Bottom Right-Bottom Left-Bottom Left-Top',
- '4-Way Left-Bottom Right-Bottom Left-Bottom Left-Bottom',
- '4-Way Left-Bottom Right-Bottom Left-Bottom Right-Top',
- '4-Way Left-Bottom Right-Bottom Left-Bottom Right-Bottom',
- '4-Way Left-Bottom Right-Bottom Right-Top Left-Top',
- '4-Way Left-Bottom Right-Bottom Right-Top Left-Bottom',
- '4-Way Left-Bottom Right-Bottom Right-Top Right-Top',
- '4-Way Left-Bottom Right-Bottom Right-Top Right-Bottom',
- '4-Way Left-Bottom Right-Bottom Right-Bottom Left-Top',
- '4-Way Left-Bottom Right-Bottom Right-Bottom Left-Bottom',
- '4-Way Left-Bottom Right-Bottom Right-Bottom Right-Top',
- '4-Way Left-Bottom Right-Bottom Right-Bottom Right-Bottom',
- '4-Way Right-Top Left-Top Left-Top Left-Top',
- '4-Way Right-Top Left-Top Left-Top Left-Bottom',
- '4-Way Right-Top Left-Top Left-Top Right-Top',
- '4-Way Right-Top Left-Top Left-Top Right-Bottom',
- '4-Way Right-Top Left-Top Left-Bottom Left-Top',
- '4-Way Right-Top Left-Top Left-Bottom Left-Bottom',
- '4-Way Right-Top Left-Top Left-Bottom Right-Top',
- '4-Way Right-Top Left-Top Left-Bottom Right-Bottom',
- '4-Way Right-Top Left-Top Right-Top Left-Top',
- '4-Way Right-Top Left-Top Right-Top Left-Bottom',
- '4-Way Right-Top Left-Top Right-Top Right-Top',
- '4-Way Right-Top Left-Top Right-Top Right-Bottom',
- '4-Way Right-Top Left-Top Right-Bottom Left-Top',
- '4-Way Right-Top Left-Top Right-Bottom Left-Bottom',
- '4-Way Right-Top Left-Top Right-Bottom Right-Top',
- '4-Way Right-Top Left-Top Right-Bottom Right-Bottom',
- '4-Way Right-Top Left-Bottom Left-Top Left-Top',
- '4-Way Right-Top Left-Bottom Left-Top Left-Bottom',
- '4-Way Right-Top Left-Bottom Left-Top Right-Top',
- '4-Way Right-Top Left-Bottom Left-Top Right-Bottom',
- '4-Way Right-Top Left-Bottom Left-Bottom Left-Top',
- '4-Way Right-Top Left-Bottom Left-Bottom Left-Bottom',
- '4-Way Right-Top Left-Bottom Left-Bottom Right-Top',
- '4-Way Right-Top Left-Bottom Left-Bottom Right-Bottom',
- '4-Way Right-Top Left-Bottom Right-Top Left-Top',
- '4-Way Right-Top Left-Bottom Right-Top Left-Bottom',
- '4-Way Right-Top Left-Bottom Right-Top Right-Top',
- '4-Way Right-Top Left-Bottom Right-Top Right-Bottom',
- '4-Way Right-Top Left-Bottom Right-Bottom Left-Top',
- '4-Way Right-Top Left-Bottom Right-Bottom Left-Bottom',
- '4-Way Right-Top Left-Bottom Right-Bottom Right-Top',
- '4-Way Right-Top Left-Bottom Right-Bottom Right-Bottom',
- '4-Way Right-Top Right-Top Left-Top Left-Top',
- '4-Way Right-Top Right-Top Left-Top Left-Bottom',
- '4-Way Right-Top Right-Top Left-Top Right-Top',
- '4-Way Right-Top Right-Top Left-Top Right-Bottom',
- '4-Way Right-Top Right-Top Left-Bottom Left-Top',
- '4-Way Right-Top Right-Top Left-Bottom Left-Bottom',
- '4-Way Right-Top Right-Top Left-Bottom Right-Top',
- '4-Way Right-Top Right-Top Left-Bottom Right-Bottom',
- '4-Way Right-Top Right-Top Right-Top Left-Top',
- '4-Way Right-Top Right-Top Right-Top Left-Bottom',
- '4-Way Right-Top Right-Top Right-Top Right-Top',
- '4-Way Right-Top Right-Top Right-Top Right-Bottom',
- '4-Way Right-Top Right-Top Right-Bottom Left-Top',
- '4-Way Right-Top Right-Top Right-Bottom Left-Bottom',
- '4-Way Right-Top Right-Top Right-Bottom Right-Top',
- '4-Way Right-Top Right-Top Right-Bottom Right-Bottom',
- '4-Way Right-Top Right-Bottom Left-Top Left-Top',
- '4-Way Right-Top Right-Bottom Left-Top Left-Bottom',
- '4-Way Right-Top Right-Bottom Left-Top Right-Top',
- '4-Way Right-Top Right-Bottom Left-Top Right-Bottom',
- '4-Way Right-Top Right-Bottom Left-Bottom Left-Top',
- '4-Way Right-Top Right-Bottom Left-Bottom Left-Bottom',
- '4-Way Right-Top Right-Bottom Left-Bottom Right-Top',
- '4-Way Right-Top Right-Bottom Left-Bottom Right-Bottom',
- '4-Way Right-Top Right-Bottom Right-Top Left-Top',
- '4-Way Right-Top Right-Bottom Right-Top Left-Bottom',
- '4-Way Right-Top Right-Bottom Right-Top Right-Top',
- '4-Way Right-Top Right-Bottom Right-Top Right-Bottom',
- '4-Way Right-Top Right-Bottom Right-Bottom Left-Top',
- '4-Way Right-Top Right-Bottom Right-Bottom Left-Bottom',
- '4-Way Right-Top Right-Bottom Right-Bottom Right-Top',
- '4-Way Right-Top Right-Bottom Right-Bottom Right-Bottom',
- '4-Way Right-Bottom Left-Top Left-Top Left-Top',
- '4-Way Right-Bottom Left-Top Left-Top Left-Bottom',
- '4-Way Right-Bottom Left-Top Left-Top Right-Top',
- '4-Way Right-Bottom Left-Top Left-Top Right-Bottom',
- '4-Way Right-Bottom Left-Top Left-Bottom Left-Top',
- '4-Way Right-Bottom Left-Top Left-Bottom Left-Bottom',
- '4-Way Right-Bottom Left-Top Left-Bottom Right-Top',
- '4-Way Right-Bottom Left-Top Left-Bottom Right-Bottom',
- '4-Way Right-Bottom Left-Top Right-Top Left-Top',
- '4-Way Right-Bottom Left-Top Right-Top Left-Bottom',
- '4-Way Right-Bottom Left-Top Right-Top Right-Top',
- '4-Way Right-Bottom Left-Top Right-Top Right-Bottom',
- '4-Way Right-Bottom Left-Top Right-Bottom Left-Top',
- '4-Way Right-Bottom Left-Top Right-Bottom Left-Bottom',
- '4-Way Right-Bottom Left-Top Right-Bottom Right-Top',
- '4-Way Right-Bottom Left-Top Right-Bottom Right-Bottom',
- '4-Way Right-Bottom Left-Bottom Left-Top Left-Top',
- '4-Way Right-Bottom Left-Bottom Left-Top Left-Bottom',
- '4-Way Right-Bottom Left-Bottom Left-Top Right-Top',
- '4-Way Right-Bottom Left-Bottom Left-Top Right-Bottom',
- '4-Way Right-Bottom Left-Bottom Left-Bottom Left-Top',
- '4-Way Right-Bottom Left-Bottom Left-Bottom Left-Bottom',
- '4-Way Right-Bottom Left-Bottom Left-Bottom Right-Top',
- '4-Way Right-Bottom Left-Bottom Left-Bottom Right-Bottom',
- '4-Way Right-Bottom Left-Bottom Right-Top Left-Top',
- '4-Way Right-Bottom Left-Bottom Right-Top Left-Bottom',
- '4-Way Right-Bottom Left-Bottom Right-Top Right-Top',
- '4-Way Right-Bottom Left-Bottom Right-Top Right-Bottom',
- '4-Way Right-Bottom Left-Bottom Right-Bottom Left-Top',
- '4-Way Right-Bottom Left-Bottom Right-Bottom Left-Bottom',
- '4-Way Right-Bottom Left-Bottom Right-Bottom Right-Top',
- '4-Way Right-Bottom Left-Bottom Right-Bottom Right-Bottom',
- '4-Way Right-Bottom Right-Top Left-Top Left-Top',
- '4-Way Right-Bottom Right-Top Left-Top Left-Bottom',
- '4-Way Right-Bottom Right-Top Left-Top Right-Top',
- '4-Way Right-Bottom Right-Top Left-Top Right-Bottom',
- '4-Way Right-Bottom Right-Top Left-Bottom Left-Top',
- '4-Way Right-Bottom Right-Top Left-Bottom Left-Bottom',
- '4-Way Right-Bottom Right-Top Left-Bottom Right-Top',
- '4-Way Right-Bottom Right-Top Left-Bottom Right-Bottom',
- '4-Way Right-Bottom Right-Top Right-Top Left-Top',
- '4-Way Right-Bottom Right-Top Right-Top Left-Bottom',
- '4-Way Right-Bottom Right-Top Right-Top Right-Top',
- '4-Way Right-Bottom Right-Top Right-Top Right-Bottom',
- '4-Way Right-Bottom Right-Top Right-Bottom Left-Top',
- '4-Way Right-Bottom Right-Top Right-Bottom Left-Bottom',
- '4-Way Right-Bottom Right-Top Right-Bottom Right-Top',
- '4-Way Right-Bottom Right-Top Right-Bottom Right-Bottom',
- '4-Way Right-Bottom Right-Bottom Left-Top Left-Top',
- '4-Way Right-Bottom Right-Bottom Left-Top Left-Bottom',
- '4-Way Right-Bottom Right-Bottom Left-Top Right-Top',
- '4-Way Right-Bottom Right-Bottom Left-Top Right-Bottom',
- '4-Way Right-Bottom Right-Bottom Left-Bottom Left-Top',
- '4-Way Right-Bottom Right-Bottom Left-Bottom Left-Bottom',
- '4-Way Right-Bottom Right-Bottom Left-Bottom Right-Top',
- '4-Way Right-Bottom Right-Bottom Left-Bottom Right-Bottom',
- '4-Way Right-Bottom Right-Bottom Right-Top Left-Top',
- '4-Way Right-Bottom Right-Bottom Right-Top Left-Bottom',
- '4-Way Right-Bottom Right-Bottom Right-Top Right-Top',
- '4-Way Right-Bottom Right-Bottom Right-Top Right-Bottom',
- '4-Way Right-Bottom Right-Bottom Right-Bottom Left-Top',
- '4-Way Right-Bottom Right-Bottom Right-Bottom Left-Bottom',
- '4-Way Right-Bottom Right-Bottom Right-Bottom Right-Top',
- '4-Way Right-Bottom Right-Bottom Right-Bottom Right-Bottom'
- );
-
- var
- MainForm: TMainForm;
- bCancel: bool;
- PaintPaletteVal: integer;
- PaintDitherVal: integer;
- BitonalScalingVal: integer;
-
- implementation
-
- {$R *.DFM}
-
- uses ChildWin;
-
- function GetListIndex(DialogTitle, LabelTitle: string;
- StringArray: TStringArray; var nIndex: integer): boolean; forward;
-
- function GetPaintEffect(var nIndex: integer): boolean; forward;
-
- procedure TMainForm.FormCreate(Sender: TObject);
- var
- bVal : boolean;
- begin
- Application.OnHint := ShowHint;
- Screen.OnActiveFormChange := UpdateMenuItems;
-
- bCancel := false;
- HiddenLead.Visible := false;
-
- { Unlock the express features and the LZW file support.
- Make sure you put the correct keys in LEADDEF.PAS }
- HiddenLead.UnlockSupport(L_SUPPORT_EXPRESS, L_KEY_EXPRESS);
- HiddenLead.UnlockSupport(L_SUPPORT_GIFLZW, L_KEY_GIFLZW);
- HiddenLead.UnlockSupport(L_SUPPORT_TIFLZW, L_KEY_TIFLZW);
- HiddenLead.UnlockSupport(L_SUPPORT_MEDICAL, L_KEY_MEDICAL);
-
- BinaryFilter1.Enabled := HiddenLead.IsSupportLocked(L_SUPPORT_EXPRESS) <> true;
- Deskew1.Enabled := BinaryFilter1.Enabled;
- Despeckle1.Enabled := BinaryFilter1.Enabled;
- FavorBlack1.Enabled := BinaryFilter1.Enabled;
- ScaleToGray1.Enabled := BinaryFilter1.Enabled;
-
- if(LTIsis.IsISISAvailable = True) then
- bVal:=True;
- ISISSelect1.Enabled := bVal;
- ISISAcquire1.Enabled := bVal;
- ISISAcquireMulti1.Enabled := bVal;
-
-
- { set the Preferences defaults }
- PaintPaletteVal := PAINTPALETTE_AUTO;
- Auto1.Checked := true;
- PaintDitherVal := PAINTDITHER_ORDERED;
- Ordered1.Checked := true;
- BitonalScalingVal := BITONALSCALING_NORMAL;
- BitonalNormal1.Checked := true;
- end;
-
- procedure TMainForm.ShowHint(Sender: TObject);
- begin
- StatusBar.SimpleText := Application.Hint;
- end;
-
- procedure TMainForm.CreateMDIChild(const Name: string);
- var
- Child: TMDIChild;
- begin
- { create a new MDI child window }
- Screen.Cursor := crHourglass;
- Child := TMDIChild.Create(Application);
- Child.Caption := Name;
- if Child.LoadImage( Name ) <> true then
- Child.Close;
- Screen.Cursor := crDefault;
- end;
-
- procedure TMainForm.FileOpenItemClick(Sender: TObject);
- var bVal : boolean;
- begin
- bVal := TRUE;
- try
- OpenDialog.Filter := szLoadFilter;
- OpenDialog.FileDlgFlags := 0;
- OpenDialog.DialogTitle := 'Open A File';
- OpenDialog.UIFlags := DLG_FO_95STYLE + DLG_FO_FILEINFO + DLG_FO_SHOWSTAMP + DLG_FO_SHOWPREVIEW;
- OpenDialog.FileOpen(handle);
- except
- bVal := FALSE;
- end;
- if (bVal = TRUE) then
- CreateMDIChild(OpenDialog.FileName);
- end;
-
- function TMainForm.CheckError(E: EOleError):boolean;
- begin
- MessageDlg('Ignoring exception: ' + E.Message, mtInformation, [mbOK], 0);
- CheckError := False;
- end;
-
- procedure TMainForm.FileCloseItemClick(Sender: TObject);
- begin
- if ActiveMDIChild <> nil then
- ActiveMDIChild.Close;
- end;
-
- procedure TMainForm.FileSaveAsItemClick(Sender: TObject);
- begin
- { save current file under new name }
- if( ActiveMDIChild <> nil ) then
- TMDIChild(ActiveMDIChild).SaveImage;
- end;
-
- procedure TMainForm.FileExitItemClick(Sender: TObject);
- begin
- Close;
- end;
-
- procedure TMainForm.CutItemClick(Sender: TObject);
- begin
- {cut selection to clipboard}
- CopyItemClick(Sender);
- if ActiveMDIChild <> nil then
- ActiveMDIChild.Close;
- end;
-
- procedure TMainForm.CopyItemClick(Sender: TObject);
- begin
- Screen.Cursor := crHourglass;
- if TMDIChild(ActiveMDIChild).LeadCtrl1.Copy(COPY_EMPTY + COPY_DIB + COPY_PALETTE) <> 0 then
- MessageDlg('Error copying to clipboard', mtError,[mbOk], 0);
- Screen.Cursor := crDefault;
- UpdateMenuItems(Sender);
- end;
-
- procedure TMainForm.PasteItemClick(Sender: TObject);
- var
- Child: TMDIChild;
- nret: smallint;
- begin
- { create a new MDI child window }
- Screen.Cursor := crHourglass;
- if HiddenLead.Paste(PASTE_ISREADY) <> 0 then
- begin
- Child := TMDIChild.Create(Application);
- Child.Caption := 'Clipboard image';
- if Child.LeadCtrl1.Paste(0) <> 0 then
- Child.Close
- else
- Child.FormResize(Sender);
- end;
- Screen.Cursor := crDefault;
- end;
-
- procedure TMainForm.WindowCascadeItemClick(Sender: TObject);
- begin
- Cascade;
- end;
-
- procedure TMainForm.WindowTileItemClick(Sender: TObject);
- begin
- Tile;
- end;
-
- procedure TMainForm.WindowArrangeItemClick(Sender: TObject);
- begin
- ArrangeIcons;
- end;
-
- procedure TMainForm.WindowMinimizeItemClick(Sender: TObject);
- var
- I: Integer;
- begin
- { Must be done backwards through the MDIChildren array }
- for I := MDIChildCount - 1 downto 0 do
- MDIChildren[I].WindowState := wsMinimized;
- end;
-
- procedure TMainForm.UpdateMenuItems(Sender: TObject);
- begin
- FileCloseItem.Enabled := MDIChildCount > 0;
- FileSaveAsItem.Enabled := MDIChildCount > 0;
- CopyItem.Enabled := MDIChildCount > 0;
- CutItem.Enabled := MDIChildCount > 0;
- PasteItem.Enabled := HiddenLead.Paste(PASTE_ISREADY) <> 0;
- PasteBtn.Enabled := PasteItem.Enabled;
- SaveBtn.Enabled := MDIChildCount > 0;
- CopyBtn.Enabled := MDIChildCount > 0;
- CutBtn.Enabled := MDIChildCount > 0;
- WindowCascadeItem.Enabled := MDIChildCount > 0;
- WindowTileItem.Enabled := MDIChildCount > 0;
- WindowArrangeItem.Enabled := MDIChildCount > 0;
- WindowMinimizeItem.Enabled := MDIChildCount > 0;
- Print.Enabled := MDIChildCount > 0;
- View1.Enabled := MDIChildCount > 0;
- Image1.Enabled := MDIChildCount > 0;
- Color1.Enabled := MDIChildCount > 0;
- Print.Enabled := MDIChildCount > 0;
- if MDIChildCount > 0 then
- begin
- TMDIChild(ActiveMDIChild).CheckZoomFactor;
- Effects1.Checked := TMDIChild(ActiveMDIChild).LeadCtrl1.PaintEffect > EFX_EFFECT_NONE;
- end
- else
- View1.Enabled := false;
- end;
-
- procedure TMainForm.FormDestroy(Sender: TObject);
- begin
- Screen.OnActiveFormChange := nil;
- end;
-
- procedure TMainForm.CloseAllClick(Sender: TObject);
- var i: integer;
- begin
- for i := MDIChildCount - 1 downto 0 do
- MDIChildren[i].Close
- end;
-
- procedure TMainForm.PrintClick(Sender: TObject);
- {This image simply gets a printer hDC, and prints the image}
- {You can do scaling if you wish, and take the printer's dpi}
- {into consideration by changing the Width and Height params.}
- var
- nRet : integer;
- begin
- PrinterSetupDialog1.Execute;
- Screen.Cursor:=crHourGlass;
- Printer.BeginDoc;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- nRet:=TMDIChild(ActiveMDIChild).LeadCtrl1.Render( Printer.Handle, 0, 0, TMDIChild(ActiveMDIChild).LeadCtrl1.BitmapWidth, TMDIChild(ActiveMDIChild).LeadCtrl1.BitmapHeight );
- Printer.EndDoc;
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
-
- procedure TMainForm.TwainSelect1Click(Sender: TObject);
- begin
- try
- HiddenLead.TwainSelect( WindowHandle );
- except
- end;
- end;
-
- procedure TMainForm.TwainAcquire1Click(Sender: TObject);
- var
- Child: TMDIChild;
- nret: smallint;
- begin
- { create a new MDI child window }
- Screen.Cursor := crHourglass;
- Child := TMDIChild.Create(Application);
- Child.Caption := 'Twain Acquired Image';
- try
- nret := Child.LeadCtrl1.TwainAcquire(WindowHandle);
- except
- nret := ERROR_FAILURE;
- end;
- if nret <> 0 then
- Child.Close
- else
- begin
- Child.FormResize(Sender);
- end;
- Screen.Cursor := crDefault;
- end;
-
- procedure TMainForm.TwainAcquireExtended1Click(Sender: TObject);
- {This procedure demonstrates the advanced Twain methods
- of LEADTOOLS OCX. I use a dialog box to get
- the desired scan settings, and then set those using
- the OCX methods. Finally, the image is acquired by
- calling TwainAcquire. Note the user interface is
- not shown, but the status bar is.}
- var
- nRet, nVal, code: integer;
- Child: TMDIChild;
- begin
- TwainDlg.ShowModal;
- if (TwainDlg.ModalResult = mrOK) then
- begin
- Screen.Cursor := crHourglass;
- Child := TMDIChild.Create(Application);
- Child.Caption := 'Twain Acquired Image';
-
- Child.LeadCtrl1.TwainAppAuthor := 'LEAD Technologies';
- Child.LeadCtrl1.TwainAppFamily := 'LEAD';
- Child.LeadCtrl1.TwainAppName := 'LEAD Delphi Demo';
- Child.LeadCtrl1.TwainSourceName := '';
- Child.LeadCtrl1.TwainMaxPages:=1;
- case TwainDlg.PixelType.ItemIndex of
- 0: Child.LeadCtrl1.TwainPixelType:=TWAIN_PIX_HALF;
- 1: Child.LeadCtrl1.TwainPixelType:=TWAIN_PIX_PALETTE;
- 2: Child.LeadCtrl1.TwainPixelType:=TWAIN_PIX_GRAY;
- 3: Child.LeadCtrl1.TwainPixelType:=TWAIN_PIX_RGB;
- end;
-
- case TwainDlg.Bits.ItemIndex of
- 0: Child.LeadCtrl1.TwainBits:=1;
- 1: Child.LeadCtrl1.TwainBits:=4;
- 2: Child.LeadCtrl1.TwainBits:=8;
- end;
-
- Val(TwainDlg.DPI.Text, nVal, code);
- if (code = 0) then
- Child.LeadCtrl1.TwainRes:=nVal
- else Child.LeadCtrl1.TwainRes:=-1;
-
- Val(TwainDlg.SXPos.Text, nVal, code);
- if (code = 0) then
- Child.LeadCtrl1.TwainFrameLeft:=nVal
- else Child.LeadCtrl1.TwainFrameLeft:=-1;
-
- Val(TwainDlg.SYPos.Text, nVal, code);
- if (code = 0) then
- Child.LeadCtrl1.TwainFrameTop:=nVal
- else Child.LeadCtrl1.TwainFrameTop:=-1;
-
- Val(TwainDlg.SWidth.Text, nVal, code);
- if (code = 0) then
- Child.LeadCtrl1.TwainFrameWidth:=nVal
- else Child.LeadCtrl1.TwainFrameWidth:=-1;
-
- Val(TwainDlg.SHeight.Text, nVal, code);
- if (code = 0) then
- Child.LeadCtrl1.TwainFrameHeight:=nVal
- else Child.LeadCtrl1.TwainFrameHeight:=-1;
-
- try
- nret := Child.LeadCtrl1.TwainAcquire(WindowHandle);
- except
- nret := ERROR_FAILURE;
- end;
- if nret <> 0 then
- begin
- MessageDlg('Error Acquiring Twain Image', mtError,[mbOk], 0);
- Child.Close
- end
- else
- begin
- Child.FormResize(Sender);
- end;
- Screen.Cursor := crDefault;
- end;
- end;
-
- procedure TMainForm.TwainAcquireCallback1Click(Sender: TObject);
- var SavedSetting: wordbool;
- begin
- Screen.Cursor := crHourglass;
- { Enable multipage scanning. The callback function is the one that
- handles the OnTwainPage Event for the LEAD OCX. }
- HiddenLead.EnableTwainEvent := True;
- { Acquire the images, allowing for possible mistakes. }
- SavedSetting := HiddenLead.EnableMethodErrors;
- HiddenLead.EnableMethodErrors := False;
- if HiddenLead.TwainAcquire(WindowHandle) <> 0 then
- MessageDlg( 'TWAIN device was not ready', mtError,[mbOk], 0);
- HiddenLead.EnableMethodErrors := SavedSetting;
- HiddenLead.EnableTwainEvent := False;
- Screen.Cursor := crDefault;
- end;
-
-
- procedure TMainForm.OnTwainPage(Sender: TObject);
- var Child: TMDIChild;
- begin
- { create a new MDI child window }
- Child := TMDIChild.Create(Application);
- Child.Caption := 'Twain Acquired Image';
- Child.LeadCtrl1.Bitmap := HiddenLead.Bitmap;
- Child.FormResize(Sender);
- end;
-
- procedure TMainForm.ImageInfo1Click(Sender: TObject);
- {Similar to load. This procedure uses common dialog}
- {to get the filename, and then returns information}
- {about that image.}
- var
- nRet : integer;
- S : String;
- begin
- OpenDialog.Filter := szLoadFilter;
- begin
- Screen.Cursor:=crHourGlass;
- nRet:=HiddenLead.GetFileInfo(OpenDialog.Filename, 0);
- Screen.Cursor:=crDefault;
- end;
- if (nRet <> 0) then
- MessageDlg('Error Getting Info', mtError,[mbOk], 0)
- else
- Begin
- InfoBox.FName.Caption:=OpenDialog.Filename;
- Str(Ord(HiddenLead.InfoFormat), S);
- InfoBox.FFormat.Caption:=S;
- Str(HiddenLead.InfoWidth:1:0, S);
- InfoBox.FWidth.Caption:=S;
- Str(HiddenLead.InfoHeight:1:0, S);
- InfoBox.FHeight.Caption:=S;
- Str(HiddenLead.InfoBits, S);
- InfoBox.FBits.Caption:=S;
- Str(HiddenLead.InfoSizeDisk, S);
- InfoBox.FDisk.Caption:=S;
- Str(HiddenLead.InfoSizeMem, S);
- InfoBox.FMem.Caption:=S;
- InfoBox.FComp.Caption:=HiddenLead.InfoCompress;
- InfoBox.ShowModal;
- end;
- end;
-
- procedure TMainForm.OnActivate(Sender: TObject);
- begin
- UpdateMenuItems(Sender);
- end;
-
- procedure TMainForm.StatusBarItemClick(Sender: TObject);
- begin
- if StatusBarItem.Checked = false then
- StatusBarItem.Checked := true
- else
- StatusBarItem.Checked := false;
- end;
-
- procedure TMainForm.Normal1Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nZoomFactor := 100;
- TMDIChild(ActiveMDIChild).CheckZoomFactor;
- TMDIChild(ActiveMDIChild).ZoomImage;
- end;
-
-
- procedure TMainForm.zoom25Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nZoomFactor := 25;
- TMDIChild(ActiveMDIChild).CheckZoomFactor;
- TMDIChild(ActiveMDIChild).ZoomImage;
- end;
-
- procedure TMainForm.zoom33Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nZoomFactor := 33;
- TMDIChild(ActiveMDIChild).CheckZoomFactor;
- TMDIChild(ActiveMDIChild).ZoomImage;
- end;
-
- procedure TMainForm.zoom50Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nZoomFactor := 50;
- TMDIChild(ActiveMDIChild).CheckZoomFactor;
- TMDIChild(ActiveMDIChild).ZoomImage;
- end;
-
- procedure TMainForm.zoom200Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nZoomFactor := 200;
- TMDIChild(ActiveMDIChild).CheckZoomFactor;
- TMDIChild(ActiveMDIChild).ZoomImage;
- end;
-
- procedure TMainForm.zoom300Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nZoomFactor := 300;
- TMDIChild(ActiveMDIChild).CheckZoomFactor;
- TMDIChild(ActiveMDIChild).ZoomImage;
- end;
-
- procedure TMainForm.zoom400Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nZoomFactor := 400;
- TMDIChild(ActiveMDIChild).CheckZoomFactor;
- TMDIChild(ActiveMDIChild).ZoomImage;
- end;
-
- procedure TMainForm.Effects1Click(Sender: TObject);
- var
- instring : string;
- nRet, code, nVal : integer;
- Begin
- if (Effects1.Checked = True) then
- begin
- Effects1.Checked:= False;
- TMDIChild(ActiveMDIChild).LeadCtrl1.PaintEffect := 0;
- end
- else
- begin
- if( GetPaintEffect(nVal) = false ) then
- exit;
-
- Effects1.Checked:= True;
- TMDIChild(ActiveMDIChild).LeadCtrl1.PaintEffect := nVal+EFX_EFFECT_WIPE_CLASS;
- end;
- end;
-
-
- procedure TMainForm.Flip1Click(Sender: TObject);
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Flip; {flip the image}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
-
- procedure TMainForm.Reverse1Click(Sender: TObject);
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Reverse; {reverse the image}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
-
- procedure TMainForm.Rotate1Click(Sender: TObject);
- {This procedure rotates an image the specified # of degrees}
- var
- instring : string;
- nRet, nVal : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.BackColor := 0;
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_ROTATE + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetAngle (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- nVal := LTDlgOCXCtl1.Angle;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- if(LTDlgOCXCtl1.AngleFlag = false) then bVal := FALSE;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Rotate( nVal, bVal, LTDlgOCXCtl1.BackColor); {rotate the image}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Shear1Click(Sender: TObject);
- {This procedure shears an image the specified # of degrees}
- var
- nRet, nVal : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.BackColor := 0;
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_SHEAR + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetAngle (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- nVal := LTDlgOCXCtl1.Angle;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- if(LTDlgOCXCtl1.AngleFlag = false) then bVal := FALSE;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Shear( nVal, bVal, LTDlgOCXCtl1.BackColor); {rotate the image}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Deskew1Click(Sender: TObject);
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Deskew; {deskew the image}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
-
- procedure TMainForm.Despeckle1Click(Sender: TObject);
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Despeckle; {despeckle the image}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
-
- procedure TMainForm.Resize1Click(Sender: TObject);
- {This procedure resizes the image}
- var
- instring : string;
- nWidth, nHeight : integer;
- fWidth, fHeight : single;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.BackColor := 0;
- fWidth := TMDIChild(ActiveMDIChild).LeadCtrl1.BitmapWidth;
- fHeight := TMDIChild(ActiveMDIChild).LeadCtrl1.BitmapHeight;
- LTDlgOCXCtl1.NewWidth := Round(fWidth);
- LTDlgOCXCtl1.NewHeight := Round(fHeight);
- LTDlgOCXCtl1.UIFlags := DLG_IMG_RESIZE;
- LTDlgOCXCtl1.GetSize (handle);
- nWidth := LTDlgOCXCtl1.NewWidth;
- nHeight := LTDlgOCXCtl1.NewHeight;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Size(nWidth, nHeight, RESIZE_NORMAL); {resize the image}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- TMDIChild(ActiveMDIChild).ZoomImage; { preserve the zoom factor }
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Resample1Click(Sender: TObject);
- {This procedure resizes the image}
- var
- instring : string;
- nWidth, nHeight : integer;
- fWidth, fHeight : single;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.BackColor := 0;
- fWidth := TMDIChild(ActiveMDIChild).LeadCtrl1.BitmapWidth;
- fHeight := TMDIChild(ActiveMDIChild).LeadCtrl1.BitmapHeight;
- LTDlgOCXCtl1.NewWidth := Round(fWidth);
- LTDlgOCXCtl1.NewHeight := Round(fHeight);
- LTDlgOCXCtl1.UIFlags := DLG_IMG_RESAMPLE;
- LTDlgOCXCtl1.GetSize (handle);
- nWidth := LTDlgOCXCtl1.NewWidth;
- nHeight := LTDlgOCXCtl1.NewHeight;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Size(nWidth, nHeight, RESIZE_RESAMPLE); {resample the image}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- TMDIChild(ActiveMDIChild).ZoomImage; { preserve the zoom factor }
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Halftone1Click(Sender: TObject);
- var
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- {assign the bitmap for preview}
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Change := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_HALFTONE + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetChange (handle);
- {release the reference}
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Halftone(HALFTONE_VIEW,LTDlgOCXCtl1.Change); {Halftone for View}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.Grayscale1Click(Sender: TObject);
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Grayscale(8); {turn the bitmap into 8 bit Grayscale }
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
-
- procedure TMainForm.ColorResolution1Click(Sender: TObject);
- {This procedure uses a dialog box to get ColorResolution}
- {options, and then changes the image based on that data.}
- var
- nRet, nBits : integer;
- uDither, uPalette, uFlags : longint;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.BitsPerPixel := TMDIChild(ActiveMDIChild).LeadCtrl1.BitmapBits;
- LTDlgOCXCtl1.PaletteFlags := 0;
- LTDlgOCXCtl1.DitherFlags := 0;
- {assign the bitmap for preview}
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.UIFlags := DLG_CR_BITALL + DLG_CR_PAL_ALL + DLG_CR_DITHER_ALL + DLG_CR_SHOWPREVIEW + DLG_CR_ORDER;
- LTDlgOCXCtl1.GetColorRes (handle);
- {release the reference}
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if (bVal = TRUE) then
- begin
- nBits:=LTDlgOCXCtl1.BitsPerPixel;
- uDither:=LTDlgOCXCtl1.DitherFlags;
- uPalette:=LTDlgOCXCtl1.PaletteFlags;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.ColorRes(nBits, uPalette, uDither, 0); {call ColorRes method}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.Invert1Click(Sender: TObject);
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Invert; {invert bitmap colors}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
-
- procedure TMainForm.Brightness1Click(Sender: TObject);
- var
- instring : string;
- code, nVal : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Change := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_BRIGHTNESS + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetChange (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nVal := LTDlgOCXCtl1.Change;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Intensity(nVal);
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Contrast1Click(Sender: TObject);
- var
- instring : string;
- code, nVal : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Change := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_CONTRAST + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetChange (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nVal := LTDlgOCXCtl1.Change;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Contrast(nVal);
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Hue1Click(Sender: TObject);
- var
- instring : string;
- code, nVal : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Change := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_HUE + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetChange (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nVal := LTDlgOCXCtl1.Change;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Hue(nVal);
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.HistogramEqualize1Click(Sender: TObject);
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.HistoEqualize;
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
-
- procedure TMainForm.StretchIntensity1Click(Sender: TObject);
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.StretchIntensity;
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
-
- procedure TMainForm.GammaCorrect1Click(Sender: TObject);
- var
- instring : string;
- code, nVal : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- {assign the bitmap for preview}
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Gamma := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetGamma (handle);
- {release the reference}
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nVal := LTDlgOCXCtl1.Gamma;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.GammaCorrect( nVal );
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.IntensityDetect1Click(Sender: TObject);
- var
- instring : string;
- nRet, code, valmin, valmax : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- {assign the bitmap for preview}
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Low := 0;
- LTDlgOCXCtl1.High := 255;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetRange (handle);
- {release the reference}
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- valmin := LTDlgOCXCtl1.Low;
- valmax := LTDlgOCXCtl1.High;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.IntensityDetect(valmin, valmax);
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Auto1Click(Sender: TObject);
- var i: integer;
- begin
- if Auto1.Checked = false then
- begin
- Auto1.Checked := true;
- Fixed1.Checked := false;
- PaintPaletteVal := PAINTPALETTE_AUTO;
- for i := MDIChildCount - 1 downto 0 do
- TMDIChild(MDIChildren[i]).LeadCtrl1.PaintPalette := PaintPaletteVal;
- end;
- end;
-
- procedure TMainForm.Fixed1Click(Sender: TObject);
- var i: integer;
- begin
- if Fixed1.Checked = false then
- begin
- Fixed1.Checked := true;
- Auto1.Checked := false;
- PaintPaletteVal := PAINTPALETTE_FIXED;
- for i := MDIChildCount - 1 downto 0 do
- TMDIChild(MDIChildren[i]).LeadCtrl1.PaintPalette := PaintPaletteVal;
- end;
- end;
-
- procedure TMainForm.Ordered1Click(Sender: TObject);
- var i: integer;
- begin
- if Ordered1.Checked = false then
- begin
- Ordered1.Checked := true;
- ErrorDiffusion1.Checked := false;
- PaintDitherVal := PAINTDITHER_ORDERED;
- for i := MDIChildCount - 1 downto 0 do
- TMDIChild(MDIChildren[i]).LeadCtrl1.PaintDither := PaintDitherVal;
- end;
- end;
-
- procedure TMainForm.ErrorDiffusion1Click(Sender: TObject);
- var i: integer;
- begin
- if ErrorDiffusion1.Checked = false then
- begin
- ErrorDiffusion1.Checked := true;
- Ordered1.Checked := false;
- PaintDitherVal := PAINTDITHER_DIFFUSION;
- for i := MDIChildCount - 1 downto 0 do
- TMDIChild(MDIChildren[i]).LeadCtrl1.PaintDither := PaintDitherVal;
- end;
- end;
-
- procedure TMainForm.BitonalNormal1Click(Sender: TObject);
- var i: integer;
- begin
- if BitonalNormal1.Checked = false then
- begin
- BitonalNormal1.Checked := true;
- FavorBlack1.Checked := false;
- ScaleToGray1.Checked := false;
- BitonalScalingVal := BITONALSCALING_NORMAL;
- for i := MDIChildCount - 1 downto 0 do
- TMDIChild(MDIChildren[i]).LeadCtrl1.BitonalScaling := BitonalScalingVal;
- end;
- end;
-
- procedure TMainForm.FavorBlack1Click(Sender: TObject);
- var i: integer;
- begin
- if FavorBlack1.Checked = false then
- begin
- BitonalNormal1.Checked := false;
- FavorBlack1.Checked := true;
- ScaleToGray1.Checked := false;
- BitonalScalingVal := BITONALSCALING_FAVORBLACK;
- for i := MDIChildCount - 1 downto 0 do
- TMDIChild(MDIChildren[i]).LeadCtrl1.BitonalScaling := BitonalScalingVal;
- end;
- end;
-
- procedure TMainForm.ScaleToGray1Click(Sender: TObject);
- var i: integer;
- begin
- if ScaleToGray1.Checked = false then
- begin
- BitonalNormal1.Checked := false;
- FavorBlack1.Checked := false;
- ScaleToGray1.Checked := true;
- BitonalScalingVal := BITONALSCALING_SCALETOGRAY;
- for i := MDIChildCount - 1 downto 0 do
- TMDIChild(MDIChildren[i]).LeadCtrl1.BitonalScaling := BitonalScalingVal;
- end;
- end;
-
- procedure TMainForm.HelpAboutItemClick(Sender: TObject);
- begin
- AboutBox.ShowModal;
- end;
-
- procedure TMainForm.CaptureScreen1Click(Sender: TObject);
- var
- screenDC: HDC;
- nRet: integer;
- Child: TMDIChild;
- begin
- Screen.Cursor := crHourglass;
- Visible := False;
- {$ifdef WIN32}
- Sleep(1000);
- {$else}
- Yield;
- {$endif}
- screenDC := GetDC (0);
- nRet := HiddenLead.Capture (screenDC, 0, 0, GetDeviceCaps (screenDC, HORZRES), GetDeviceCaps (screenDC,VERTRES));
- ReleaseDC (0, screenDC);
- Visible := True;
- if(nRet = 0) then
- begin
- Child := TMDIChild.Create(Application);
- Child.Caption := 'Captured Data';
- TMDIChild(ActiveMDIChild).LeadCtrl1.AutoRepaint := False;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap := HiddenLead.Bitmap;
- HiddenLead.Bitmap := 0; { don't keep two copies of the image }
- TMDIChild(ActiveMDIChild).FormResize(Sender);
- TMDIChild(ActiveMDIChild).LeadCtrl1.AutoRepaint := True;
- end;
- Screen.Cursor := crDefault;
- if (nRet <> 0) then
- MessageDlg('Error capturing the screen', mtError,[mbOk], 0);
- end;
-
- procedure TMainForm.Gradient1Click(Sender: TObject);
- {This procedure performs a Gradient Spatial Filter on the image.}
- {Check the help file for more information.}
- var
- code, nFlt : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- {assign the bitmap for preview}
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Gamma := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_GRADIENT + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetFilter (handle);
- {release the reference}
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nFlt := LTDlgOCXCtl1.SpatialFilterType;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.SpatialFilter(nFlt); {perform the spatial filter}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.Laplacian1Click(Sender: TObject);
- {This procedure performs a Laplacian Spatial Filter on the image.}
- {Check the help file for more information.}
- var
- code, nFlt : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Gamma := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_LAPLACIAN + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetFilter (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nFlt := LTDlgOCXCtl1.SpatialFilterType;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.SpatialFilter(nFlt); {perform the spatial filter}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.Sobel1Click(Sender: TObject);
- {This procedure performs a Sobel Spatial Filter on the image.}
- {Check the help file for more information.}
- var
- code, nFlt : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Gamma := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_SOBEL + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetFilter (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nFlt := LTDlgOCXCtl1.SpatialFilterType;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.SpatialFilter(nFlt); {perform the spatial filter}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.Prewitt1Click(Sender: TObject);
- {This procedure performs a Prewitt Spatial Filter on the image.}
- {Check the help file for more information.}
- var
- code, nFlt : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Gamma := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_PREWITT + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetFilter (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nFlt := LTDlgOCXCtl1.SpatialFilterType;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.SpatialFilter(nFlt); {perform the spatial filter}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.ShiftandDifference1Click(Sender: TObject);
- {This procedure performs a Shift and Difference Spatial Filter on the image.}
- {Check the help file for more information.}
- var
- code, nFlt : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Gamma := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_SHIFTDIFF + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetFilter (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nFlt := LTDlgOCXCtl1.SpatialFilterType;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.SpatialFilter(nFlt); {perform the spatial filter}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.LineSegment1Click(Sender: TObject);
- {This procedure performs a Line Segment Spatial Filter on the image.}
- {Check the help file for more information.}
- var
- code, nFlt : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Gamma := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_LINESEG + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetFilter (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nFlt := LTDlgOCXCtl1.SpatialFilterType;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.SpatialFilter(nFlt); {perform the spatial filter}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.Erosion1Click(Sender: TObject);
- {This procedure performs a Erosion Binary Filter on the image.}
- {Binary Filter can be in any direction.}
- {Check the help file for more information.}
- {Note: this is an Express only function.}
- var
- code, nFlt : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Gamma := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_EROSION + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetFilter (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nFlt := LTDlgOCXCtl1.BinaryFilterType;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.BinaryFilter(nFlt); {perform the binary filter}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.Dilation1Click(Sender: TObject);
- {This procedure performs a Dilation Binary Filter on the image.}
- {Binary Filter can be in any direction.}
- {Check the help file for more information.}
- {Note: this is an Express only function.}
- var
- code, nFlt : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Gamma := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_DILATION + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetFilter (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nFlt := LTDlgOCXCtl1.BinaryFilterType;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.BinaryFilter(nFlt+BFLT_DILATION_OMNI); {perform the binary filter}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- function GetListIndex(DialogTitle, LabelTitle: string;
- StringArray: TStringArray;
- var nIndex: integer): boolean;
- var i: integer;
- begin
- ListDlg.Caption := DialogTitle;
- ListDlg.GroupBox1.Caption := LabelTitle;
- ListDlg.ListBox1.Clear;
- for i := 1 to MAX_STRING_LIST do
- if StringArray[i] <> '' then
- ListDlg.ListBox1.Items.Add(StringArray[i])
- else
- break;
- ListDlg.ListBox1.ItemIndex := 0;
- ListDlg.ShowModal;
- nIndex :=ListDlg.ListBox1.ItemIndex;
- GetListIndex := not ListDlg.bCancelled;
- end;
-
-
- function GetPaintEffect(var nIndex: integer): boolean;
- var i: integer;
- begin
- ListDlg.Caption := 'Paint Effect';
- ListDlg.GroupBox1.Caption := 'Select effect';
- ListDlg.ListBox1.Clear;
- for i := EFX_EFFECT_WIPE_CLASS to EFX_EFFECT_WIPE_MAX do
- ListDlg.ListBox1.Items.Add(aEffectList[i]);
-
- ListDlg.ListBox1.ItemIndex := 0;
- ListDlg.ShowModal;
- nIndex :=ListDlg.ListBox1.ItemIndex;
- GetPaintEffect := not ListDlg.bCancelled;
- end;
-
- procedure TMainForm.Posterize1Click(Sender: TObject);
- var
- instring : string;
- nRet, code, nVal : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Change := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_POSTERIZE + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetChange (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nVal := LTDlgOCXCtl1.Change;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Posterize(nVal);
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Mosaic1Click(Sender: TObject);
- var
- instring : string;
- nRet, code, nVal : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Change := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_MOSAIC + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetChange (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nVal := LTDlgOCXCtl1.Change;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Mosaic(nVal);
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Average1Click(Sender: TObject);
- var
- instring : string;
- nRet, code, nVal : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Change := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_AVERAGE + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetChange (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nVal := LTDlgOCXCtl1.Change;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Average(nVal);
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Median1Click(Sender: TObject);
- var
- instring : string;
- nRet, code, nVal : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Change := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_MEDIAN + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetChange (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nVal := LTDlgOCXCtl1.Change;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Median(nVal);
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Sharpen1Click(Sender: TObject);
- var
- instring : string;
- nRet, code, nVal : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.Change := 0;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_SHARPEN + DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetChange (handle);
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nVal := LTDlgOCXCtl1.Change;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Sharpen(nVal*10);
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.AddNoise1Click(Sender: TObject);
- var
- instring : string;
- nRet, code, nVal, nChannel : integer;
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- {assign the bitmap for preview}
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetNoise (handle);
- {release the reference}
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- nChannel := LTDlgOCXCtl1.Channel;
- nVal := LTDlgOCXCtl1.Range;
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.AddNoise(nVal, nChannel);
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- end;
-
- procedure TMainForm.Edit1Click(Sender: TObject);
- begin
- if MDIChildCount > 0 then
- begin
- SelectRegion1.Enabled := True;
- CancelRegion1.Enabled := TMDIChild(ActiveMDIChild).LeadCtrl1.HasRgn;
- end
- else
- begin
- SelectRegion1.Enabled := False;
- CancelRegion1.Enabled := False;
- end;
- end;
-
- procedure TMainForm.SelectRegion1Click(Sender: TObject);
- begin
- ToolNone1.Checked := TMDIChild(ActiveMDIChild).nRegionTool = RGNMARK_NONE;
- ToolRect1.Checked := TMDIChild(ActiveMDIChild).nRegionTool = RGNMARK_RECT;
- ToolEllipse1.Checked := TMDIChild(ActiveMDIChild).nRegionTool = RGNMARK_ELLIPSE;
- ToolRndRect1.Checked := TMDIChild(ActiveMDIChild).nRegionTool = RGNMARK_ROUNDRECT;
- ToolFreeHand1.Checked := TMDIChild(ActiveMDIChild).nRegionTool = RGNMARK_FREEHAND;
- end;
-
- procedure TMainForm.Image1Click(Sender: TObject);
- begin
- FlipRegion1.Enabled := TMDIChild(ActiveMDIChild).LeadCtrl1.HasRgn;
- ReverseRegion1.Enabled := TMDIChild(ActiveMDIChild).LeadCtrl1.HasRgn;
- RotateRegion1.Enabled := TMDIChild(ActiveMDIChild).LeadCtrl1.HasRgn;
- ResizeRegion1.Enabled := TMDIChild(ActiveMDIChild).LeadCtrl1.HasRgn;
- ResampleRegion1.Enabled := TMDIChild(ActiveMDIChild).LeadCtrl1.HasRgn;
- end;
-
- procedure TMainForm.ToolNone1Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nRegionTool := RGNMARK_NONE;
- end;
-
- procedure TMainForm.ToolRect1Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nRegionTool := RGNMARK_RECT;
- end;
-
- procedure TMainForm.ToolEllipse1Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nRegionTool := RGNMARK_ELLIPSE;
- end;
-
- procedure TMainForm.ToolRndRect1Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nRegionTool := RGNMARK_ROUNDRECT;
- end;
-
- procedure TMainForm.ToolFreeHand1Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).nRegionTool := RGNMARK_FREEHAND;
- end;
-
- procedure TMainForm.CancelRegion1Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).CancelRegion;
- end;
-
- procedure TMainForm.FlipRegion1Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).FlipRegion;
- end;
-
- procedure TMainForm.ReverseRegion1Click(Sender: TObject);
- begin
- TMDIChild(ActiveMDIChild).ReverseRegion;
- end;
-
- procedure TMainForm.RotateRegion1Click(Sender: TObject);
- {This procedure rotates a region the specified # of degrees}
- var
- instring : string;
- nRet, code, nVal : integer;
- begin
- instring := '0';
- if InputQuery('Rotate Region', 'Enter Degrees (-360...360)', instring) = false then
- exit;
-
- Val(instring, nVal, code);
- if (code = 0) and (nVal >= -360) and (nVal <= 360) then
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).RotateRegion(nVal*100);
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end
- else
- MessageDlg('Value out of range', mtError,[mbOk], 0);
- end;
-
- procedure TMainForm.ResizeRegion1Click(Sender: TObject);
- {This procedure resizes the region}
- var
- instring : string;
- nRet, code, nWidth, nHeight : integer;
- begin
- Str(TMDIChild(ActiveMDIChild).LeadCtrl1.RgnWidth:1:0, instring);
- if( InputQuery('New Region Width', 'Enter Width', instring) = false ) then
- exit;
-
- Val(instring, nWidth, code);
- if( code = 0 ) and (nWidth > 0) then
- begin
- Str(TMDIChild(ActiveMDIChild).LeadCtrl1.RgnHeight/TMDIChild(ActiveMDIChild).LeadCtrl1.RgnWidth*nWidth:1:0, instring);
- if( InputQuery('New Region Height', 'Enter Height', instring) = false ) then
- exit;
-
- Val(instring, nHeight, code);
- if (code = 0) and (nHeight > 0) then
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).ResizeRegion(nWidth, nHeight, RESIZE_NORMAL); {resize the region}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- TMDIChild(ActiveMDIChild).ZoomImage; { preserve the zoom factor }
- Screen.Cursor:=crDefault;
- end
- else
- MessageDlg('Value out of range', mtError,[mbOk], 0);
- end
- else
- MessageDlg('Value out of range', mtError,[mbOk], 0);
- end;
-
- procedure TMainForm.ResampleRegion1Click(Sender: TObject);
- {This procedure resamples the region}
- var
- instring : string;
- nRet, code, nWidth, nHeight : integer;
- begin
- Str(TMDIChild(ActiveMDIChild).LeadCtrl1.RgnWidth:1:0, instring);
- if( InputQuery('New Region Width', 'Enter Width', instring) = false ) then
- exit;
-
- Val(instring, nWidth, code);
- if( code = 0 ) and (nWidth > 0) then
- begin
- Str(TMDIChild(ActiveMDIChild).LeadCtrl1.RgnHeight/TMDIChild(ActiveMDIChild).LeadCtrl1.RgnWidth*nWidth:1:0, instring);
- if( InputQuery('New Region Height', 'Enter Height', instring) = false ) then
- exit;
-
- Val(instring, nHeight, code);
- if (code = 0) and (nHeight > 0) then
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).ResizeRegion(nWidth, nHeight, RESIZE_RESAMPLE); {resample the region}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- TMDIChild(ActiveMDIChild).ZoomImage; { preserve the zoom factor }
- Screen.Cursor:=crDefault;
- end
- else
- MessageDlg('Value out of range', mtError,[mbOk], 0);
- end
- else
- MessageDlg('Value out of range', mtError,[mbOk], 0);
- end;
-
- procedure TMainForm.Emboss2Click(Sender: TObject);
- var
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- {assign the bitmap for preview}
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.UIFlags := DLG_IMG_SHOWPREVIEW;
- LTDlgOCXCtl1.GetEmboss(handle);
- {release the reference}
- LTDlgOCXCtl1.Bitmap := 0;
- except
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Emboss(LTDlgOCXCtl1.Direction, LTDlgOCXCtl1.Depth); {perform the spatial filter}
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.ISISSelect1Click(Sender: TObject);
- begin
- try
- LTIsis.ISISSelect(handle);
- { MessageDlg(LTIsis.DriverName, mtInformation,[mbOk], 0);}
- { LTISIS.ISISLoadDriver();}
- { LTISIS.ISISSetScanOptions(handle)}
- { LTISIS.ISISUnloadDriver();}
- except
- ;
- end;
- end;
-
- procedure TMainForm.ISISAcquire1Click(Sender: TObject);
- var
- Child: TMDIChild;
- nret: smallint;
- begin
- { create a new MDI child window }
- Screen.Cursor := crHourglass;
- Child := TMDIChild.Create(Application);
- Child.Caption := 'ISIS Acquired Image';
-
- LTIsis.EnableMethodErrors := false;
- nret := LTIsis.ISISLoadDriver();
- if(nret = 0) then
- Begin
- nret := LTIsis.ISISAcquire(handle, ISIS_SHOWUI);
- LTIsis.ISISUnloadDriver();
- End;
- if nret <> 0 then
- Child.Close
- else
- begin
- Child.LeadCtrl1.Bitmap := LTIsis.Bitmap;
- LTIsis.Bitmap := 0;
- Child.FormResize(Sender);
- end;
- Screen.Cursor := crDefault;
- end;
-
- procedure TMainForm.ISISAcquireMulti1Click(Sender: TObject);
- var
- bVal : boolean;
- begin
- bVal := TRUE;
- try
- MainForm.SaveDialog.FileDlgFlags := 0;
- MainForm.SaveDialog.UIFlags := DLG_FS_95STYLE + DLG_FS_MULTIPAGE;
- MainForm.SaveDialog.SaveFormatFlags := DLG_FS_TIFF;
- MainForm.SaveDialog.FileSave(handle);
- except
- bVal := FALSE;
- end;
- if (bVal = TRUE) then
- begin
- ISISDlg.ShowModal;
- if(ISISDlg.ModalResult<>mrOK) then
- bVal := FALSE;
- end;
- if(bVal = TRUE) then
- MessageDlg('Images saved to file(s)', mtInformation,[mbOk], 0);
- end;
-
- procedure TMainForm.File1Click(Sender: TObject);
- var
- bVal : boolean;
- begin
- bVal := FALSE;
- if(LTIsis.IsISISAvailable = true) then
- bVal := TRUE;
- ISISSelect1.Enabled := bVal;
- ISISAcquire1.Enabled := bVal;
- ISISAcquireMulti1.Enabled := bVal;
- ImageInfo1.Enabled:=(OpenDialog.FileName<>'');
- end;
-
- procedure TMainForm.WindowLevel1Click(Sender: TObject);
- {This procedure uses a dialog box to AutoProcess WindowLevel}
- var
- nRet, nBits : integer;
- bVal : boolean;
- uMid : integer;
- begin
- bVal := TRUE;
- try
- TMDIChild(ActiveMDIChild).LeadCtrl1.GetMinMaxBits();
- TMDIChild(ActiveMDIChild).LeadCtrl1.GetMinMaxVal();
- LTDlgOCXCtl1.LowBit := TMDIChild(ActiveMDIChild).LeadCtrl1.MinBit;
- LTDlgOCXCtl1.HighBit := TMDIChild(ActiveMDIChild).LeadCtrl1.MaxBit;
- uMid := Round((TMDIChild(ActiveMDIChild).LeadCtrl1.MinVal + TMDIChild(ActiveMDIChild).LeadCtrl1.MaxVal) / 2);
- LTDlgOCXCtl1.LowLevel := Round(uMid * 9 / 10);
- LTDlgOCXCtl1.HighLevel := Round(uMid + (uMid / 10));
- LTDlgOCXCtl1.StartColor := RGB(0,0,255);
- LTDlgOCXCtl1.EndColor := RGB(0,255,0);
- {assign the bitmap for preview}
- LTDlgOCXCtl1.Bitmap := TMDIChild(ActiveMDIChild).LeadCtrl1.Bitmap;
- LTDlgOCXCtl1.UIFlags := DLG_WL_SHOWPREVIEW + DLG_WL_AUTOPROCESS;
- LTDlgOCXCtl1.GetWindowLevel(handle);
- {release the reference}
- LTDlgOCXCtl1.Bitmap := 0;
- TMDIChild(ActiveMDIChild).LeadCtrl1.ForceRepaint();
- except
- bVal := FALSE;
- end;
- if (bVal = TRUE) then
- begin
- Screen.Cursor:=crHourGlass;
- // TMDIChild(ActiveMDIChild).InitStatusProcess;
- // TMDIChild(ActiveMDIChild).LeadCtrl1.ColorRes(nBits, uPalette, uDither, 0); {call ColorRes method}
- // TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
- end;
-
- procedure TMainForm.Grayscale121Click(Sender: TObject);
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Grayscale(12); {turn the bitmap into 12 bit Grayscale }
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
-
- procedure TMainForm.Grayscale161Click(Sender: TObject);
- begin
- Screen.Cursor:=crHourGlass;
- TMDIChild(ActiveMDIChild).InitStatusProcess;
- TMDIChild(ActiveMDIChild).LeadCtrl1.Grayscale(16); {turn the bitmap into 16 bit Grayscale }
- TMDIChild(ActiveMDIChild).ResetStatusProcess;
- Screen.Cursor:=crDefault;
- end;
-
- procedure TMainForm.Color1Click(Sender: TObject);
- var
- bEnable : boolean;
- begin
- bEnable := False;
- if (TMDIChild(ActiveMDIChild).LeadCtrl1.BitmapBits = 12) or
- (TMDIChild(ActiveMDIChild).LeadCtrl1.BitmapBits = 16) Then
- bEnable := True;
- if (TMDIChild(ActiveMDIChild).LeadCtrl1.IsGrayScale = GRAY_NO) Then
- bEnable := False;
-
- WindowLevel1.Enabled := bEnable;
- end;
-
- end.
-
-