//
unit ads_ILSkyDoc;
{Copyright(c)2016 Advanced Delphi Systems
Richard Maley
Advanced Delphi Systems
12613 Maidens Bower Drive
Potomac, MD 20854 USA
phone 301-840-1554
dickmaley@advdelphisys.com
The code herein can be used or modified by anyone. Please retain references
to Richard Maley at Advanced Delphi Systems. If you make improvements to the
code please send your improvements to dickmaley@advdelphisys.com so that the
entire Delphi community can benefit. All comments are welcome.
}
(*UnitIndex Master Index Implementation Section Download UnitsDescription: ads_ILSkyDoc.pas This unit contains the following routines.
ads_ILDoc_ESAInitCreate ads_ILDoc_GoToBottomLeft ads_ILDoc_GoToBottomRight ads_ILDoc_GoToTopLeft ads_ILDoc_GoToTopRight ads_ILDoc_HideViewer ads_ILDoc_ReadTifFile ads_ILDoc_ShowViewer
*) interface Uses Windows, Oasis_g, ILDocImg, SysUtils, skuimg, Forms, DllSP96, Dll96v1, Oasis_p, Controls, FileCtrl; procedure ads_ILDoc_ReadTifFile(IL: ILDocumentImage;FileName: TFileName;Page: SmallInt;Resolution: SmallInt); procedure ads_ILDoc_GoToBottomLeft(IL: ILDocumentImage); procedure ads_ILDoc_GoToTopRight(IL: ILDocumentImage); procedure ads_ILDoc_GoToTopLeft(IL: ILDocumentImage); procedure ads_ILDoc_GoToBottomRight(IL: ILDocumentImage); Procedure ads_ILDoc_ESAInitCreate(Var Doc_MainForm: TDoc_MainForm; IsVisible: Boolean); Procedure ads_ILDoc_ShowViewer(Var Doc_MainForm: TDoc_MainForm); Procedure ads_ILDoc_HideViewer(Var Doc_MainForm: TDoc_MainForm); Var ads_ILDoc_FileName : TFileName; ads_ILDoc_FileNamePath : String; ads_ILDoc_FileNameNoPath : String; ads_ILDoc_FileNameNoPathOrExt : String; ads_ILDoc_ImageLoaded : Boolean; ads_ILDoc_Page : SmallInt; ads_ILDoc_Resolution : SmallInt; ads_ILDoc_Tiff_BPP : SmallInt; ads_ILDoc_Tiff_Compression : String; ads_ILDoc_Tiff_Height : LongInt; ads_ILDoc_Tiff_Page : Integer; ads_ILDoc_Tiff_Pages : SmallInt; ads_ILDoc_Tiff_Width : LongInt; implementation Uses dm_ViewerNav; Const UnitName = 'ads_ILSkyDoc'; //Unit Description UnitIndex Master Index
procedure ads_ILDoc_ReadTifFile(
IL : ILDocumentImage;
FileName : TFileName;
Page : SmallInt;
Resolution : SmallInt);
Var
ProcName : String;
inPosPeriod : Integer;
Cursor : TCursor;
//For SkyDocImage Compatibility
PageNum : LongInt;
fim_Width : LongInt; //@# January 18 1998 Changed from Smallint to Longint
fim_Height : LongInt; //@# January 18 1998 Changed from Smallint to Longint
fim_BPP : SmallInt;
fim_TiffPages : SmallInt;
fim_Compression : String;
Begin
ProcName := 'ads_ILDoc_ReadTifFile';
Cursor := Screen.Cursor;
Try
Try
//Start For SkyDocImage Compatibility
Doc_MainForm.Image3.Visible:=False;
Doc_MainForm.Save1.Enabled:=False;
Doc_MainForm.cWait;
Doc_MainForm.CheckUsedFilename(Doc_MainForm.sFileName);
Doc_MainForm.CanPaint:=False;
Doc_MainForm.DefaultDir := GlobalCacheDir;
//Delete any existing thumbs and memory files if any
Doc_MainForm.FreeAllItemsAndPackList;
//Reset pagenumber to 0
PageNum := Page;
//reset no. of pages to 0
Doc_MainForm.Pages :=0;
//Set filename
Doc_MainForm.sFileName := FileName;
Doc_MainForm.checkusedfile(Doc_MainForm.sFileName ,PageNum );
//Set filename
Doc_MainForm.MFilename := Doc_MainForm.sFileName;
//get file info
GetTiffInfo(
Doc_MainForm.MFilename,
0,
fim_Width,
fim_Height,
fim_Compression,
fim_TiffPages,
fim_BPP);
//reset page number when pages difference from before
If PageNum > fim_TiffPages Then PageNum:=0;
//End For SkyDocImage Compatibility
ads_ILDoc_FileName := FileName;
ads_ILDoc_FileNamePath := ExtractFilePath(ads_ILDoc_FileName);
If Copy(ads_ILDoc_FileNamePath,Length(ads_ILDoc_FileNamePath),1) <> '\' Then
ads_ILDoc_FileNamePath := ads_ILDoc_FileNamePath + '\';
ads_ILDoc_FileNameNoPath := ExtractFileName(ads_ILDoc_FileName);
inPosPeriod := Pos('.',ads_ILDoc_FileNameNoPath);
If inPosPeriod > 0 Then
Begin
ads_ILDoc_FileNameNoPathOrExt :=
Copy(ads_ILDoc_FileNameNoPath,1,inPosPeriod-1);
End
Else
Begin
ads_ILDoc_FileNameNoPathOrExt := ads_ILDoc_FileNameNoPath;
End;
If UpperCase(ads_ILDoc_FileNameNoPathOrExt) = 'BLANK' Then
Begin
ads_ILDoc_HideViewer(Doc_MainForm);
End
Else
Begin
ads_ILDoc_ShowViewer(Doc_MainForm);
End;
ads_ILDoc_Page := Page;
ads_ILDoc_Resolution := Resolution;
IL.ReadTifFile(FileName, Page, Resolution);
GetTiffInfo(
ads_ILDoc_FileName,
0,
ads_ILDoc_Tiff_Width,
ads_ILDoc_Tiff_Height,
ads_ILDoc_Tiff_Compression,
ads_ILDoc_Tiff_Pages,
ads_ILDoc_Tiff_BPP);
ads_ILDoc_ImageLoaded := True;
//Start For SkyDocImage Compatibility
//only create thumbnails when the paintbox is visible
If Doc_MainForm.ThumbBox.Visible Then Doc_MainForm.CreateAndShowThumbs;
//Set it as selected
Doc_MainForm.SelectUnSelect(1, PageNum);
//End For SkyDocImage Compatibility
dmViewerNav.ActionListViewerNavChange(nil);
Finally
//Start For SkyDocImage Compatibility
Doc_MainForm.cNorm;
Doc_MainForm.CanPaint:=True;
Doc_MainForm.ThumbPaintBox.ReFresh;
Doc_MainForm.CheckDisableorEnablemenu;
//End For SkyDocImage Compatibility
Screen.Cursor := Cursor;
End;
Except
On E : Exception Do
Begin
ads_ILDoc_FileName := '';
ads_ILDoc_ImageLoaded := False;
ads_ILDoc_Page := -1;
ads_ILDoc_Resolution := -1;
ads_ILDoc_Tiff_BPP := -1;
ads_ILDoc_Tiff_Compression := '';
ads_ILDoc_Tiff_Height := -1;
ads_ILDoc_Tiff_Page := -1;
ads_ILDoc_Tiff_Pages := -1;
ads_ILDoc_Tiff_Width := -1;
Raise Exception.Create('Error in '+UnitName+'.'+ProcName+':'+E.Message);
End;
End;
End;
//Unit Description UnitIndex Master Index
procedure ads_ILDoc_GoToBottomRight(IL: ILDocumentImage);
Var
ProcName : String;
begin
ProcName := 'ads_ILDoc_GoToBottomRight';
Try
If ads_ILDoc_ImageLoaded Then
Begin
IL.FTopLeft.y :=
StrToInt(FloatToStr(Int((ads_ILDoc_Tiff_Height*IL.ScalePercent)/100)))
-IL.Height;
IL.FTopLeft.x :=
StrToInt(FloatToStr(Int((ads_ILDoc_Tiff_Width*IL.ScalePercent)/100)))
-IL.Width;
IL.Refresh;
End;
Except
On E : Exception Do
Begin
Raise Exception.Create('Error in '+UnitName+'.'+ProcName+':'+E.Message);
End;
End;
end;
//Unit Description UnitIndex Master Index
procedure ads_ILDoc_GoToBottomLeft(IL: ILDocumentImage);
Var
ProcName : String;
begin
ProcName := 'ads_ILDoc_GoToBottomLeft';
Try
If ads_ILDoc_ImageLoaded Then
Begin
IL.FTopLeft.y :=
StrToInt(FloatToStr(Int((ads_ILDoc_Tiff_Height*IL.ScalePercent)/100)))
-IL.Height;
IL.FTopLeft.x := 0;
IL.Refresh;
End;
Except
On E : Exception Do
Begin
Raise Exception.Create('Error in '+UnitName+'.'+ProcName+':'+E.Message);
End;
End;
end;
//Unit Description UnitIndex Master Index
procedure ads_ILDoc_GoToTopRight(IL: ILDocumentImage);
Var
ProcName : String;
begin
ProcName := 'ads_ILDoc_GoToTopRight';
Try
If ads_ILDoc_ImageLoaded Then
Begin
IL.FTopLeft.y := 0;
IL.FTopLeft.x :=
StrToInt(FloatToStr(Int((ads_ILDoc_Tiff_Width*IL.ScalePercent)/100)))
-IL.Width;
IL.Refresh;
End;
Except
On E : Exception Do
Begin
Raise Exception.Create('Error in '+UnitName+'.'+ProcName+':'+E.Message);
End;
End;
end;
//Unit Description UnitIndex Master Index
procedure ads_ILDoc_GoToTopLeft(IL: ILDocumentImage);
Var
ProcName : String;
begin
ProcName := 'ads_ILDoc_GoToTopLeft';
Try
If ads_ILDoc_ImageLoaded Then
Begin
IL.FTopLeft.y := 0;
IL.FTopLeft.x := 0;
IL.Refresh;
End;
Except
On E : Exception Do
Begin
Raise Exception.Create('Error in '+UnitName+'.'+ProcName+':'+E.Message);
End;
End;
end;
//Unit Description UnitIndex Master Index
Procedure ads_ILDoc_ESAInitCreate(Var Doc_MainForm: TDoc_MainForm; IsVisible: Boolean);
Begin
If Not (Application.MainForm is TDoc_MainForm) Then
Begin
Doc_MainForm.Exit1.Visible := IsVisible;
End;
frmMain.PageControl1.ActivePage := frmMain.pageMain;
With Doc_MainForm Do
Begin
Annotation1 .Visible := IsVisible;
Cut1 .Visible := IsVisible;
CutButton .Visible := IsVisible;
DeletePage3 .Visible := IsVisible;
DeskewAllPages1 .Visible := IsVisible;
DeskewPage1 .Visible := IsVisible;
DeskewPagebtn .Visible := IsVisible;
(*
Edit971 .Visible := IsVisible;
*)
EditTags1 .Visible := IsVisible;
ExportFiles1 .Visible := IsVisible;
First1 .Visible := IsVisible;
FullScreen1 .Visible := IsVisible;
GoBack1 .Visible := IsVisible;
GoTo1 .Visible := IsVisible;
Help1 .Visible := IsVisible;
ImagingPreviewHelp1 .Visible := IsVisible;
ImportFiles1 .Visible := IsVisible;
Insertfromclibboard1 .Visible := IsVisible;
Last1 .Visible := IsVisible;
LastOpenFile1 .Visible := IsVisible;
Lastopenfile2 .Visible := IsVisible;
Lastopenfile3 .Visible := IsVisible;
MainToolbar .Visible := IsVisible;
Toolbar972 .Visible := IsVisible;
N10 .Visible := IsVisible;
N4 .Visible := IsVisible;
N5 .Visible := IsVisible;
N9 .Visible := IsVisible;
Newfile .Visible := IsVisible;
Next1 .Visible := IsVisible;
NextPage .Visible := IsVisible;
(*
OnePage1 .Visible := IsVisible;
OnePageBtn .Visible := IsVisible;
*)
RotateAllPages1 .Visible := IsVisible;
OpenlastknownScratchboard1 .Visible := IsVisible;
OpentoScratchBoard1 .Visible := IsVisible;
PackFile1 .Visible := IsVisible;
Page_ThumbNails_ScratchBtn .Visible := IsVisible;
(*
PageandThumbnails1 .Visible := IsVisible;
PageAndThumbNailsBtn .Visible := IsVisible;
*)
PageThumbnailsandScratchboard1.Visible := IsVisible;
PasteButton .Visible := IsVisible;
Paste1 .Visible := IsVisible;
Previous1 .Visible := IsVisible;
PreviousPage .Visible := IsVisible;
Properties1 .Visible := IsVisible;
RemoveBorder1 .Visible := IsVisible;
RemoveBorderAllPages1 .Visible := IsVisible;
RemoveBrdBtn .Visible := IsVisible;
ReplacefromClipboard1 .Visible := IsVisible;
ScanNew1 .Visible := IsVisible;
SelectScanner1 .Visible := IsVisible;
Send1 .Visible := IsVisible;
ShowDeskewAnge1 .Visible := IsVisible;
Text_Tiif_Text .Visible := IsVisible;
Toolbar971 .Visible := IsVisible;
Toolbars1 .Visible := IsVisible;
ToolbarButton976 .Visible := IsVisible;
Tools1 .Visible := IsVisible;
(*
View1 .Visible := IsVisible;
*)
Width := 110;
End;
End;
//Unit Description UnitIndex Master Index
Procedure ads_ILDoc_ShowViewer(Var Doc_MainForm: TDoc_MainForm);
Var
inCounter : Integer;
Begin
For inCounter := 0 To Doc_MainForm.MainMenu1.Items.Count -1 Do
Begin
If Doc_MainForm.MainMenu1.Items[inCounter].Tag = 13 Then
Begin
Doc_MainForm.MainMenu1.Items[inCounter].Visible := True;
Doc_MainForm.MainMenu1.Items[inCounter].Tag := 0;
End
Else
Begin
If Doc_MainForm.MainMenu1.Items[inCounter].Tag = 14 Then
Begin
Doc_MainForm.MainMenu1.Items[inCounter].Visible := False;
Doc_MainForm.MainMenu1.Items[inCounter].Tag := 0;
End;
End;
End;
Doc_MainForm.pgeViewer.ActivePage := Doc_MainForm.pageViewer;
Doc_MainForm.pgeViewerChange(nil);
End;
//Unit Description UnitIndex Master Index
Procedure ads_ILDoc_HideViewer(Var Doc_MainForm: TDoc_MainForm);
Var
inCounter : Integer;
Begin
For inCounter := 0 To Doc_MainForm.MainMenu1.Items.Count -1 Do
Begin
If Doc_MainForm.MainMenu1.Items[inCounter].Visible Then
Begin
Doc_MainForm.MainMenu1.Items[inCounter].Tag := 13;
End
Else
Begin
Doc_MainForm.MainMenu1.Items[inCounter].Tag := 14;
End;
Doc_MainForm.MainMenu1.Items[inCounter].Visible := False;
End;
Doc_MainForm.pgeViewer.ActivePage := Doc_MainForm.pageGradient;
Doc_MainForm.pgeViewerChange(nil);
End;
Initialization
ads_ILDoc_FileName := '';
ads_ILDoc_FileNamePath := '';
ads_ILDoc_FileNameNoPath := '';
ads_ILDoc_FileNameNoPathOrExt := '';
ads_ILDoc_ImageLoaded := False;
ads_ILDoc_Page := -1;
ads_ILDoc_Resolution := -1;
ads_ILDoc_Tiff_BPP := -1;
ads_ILDoc_Tiff_Compression := '';
ads_ILDoc_Tiff_Height := -1;
ads_ILDoc_Tiff_Page := -1;
ads_ILDoc_Tiff_Pages := -1;
ads_ILDoc_Tiff_Width := -1;
end.
//