📄 newprev.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop
#include "newprev.h"
//---------------------------------------------------------------------------
#pragma link "AceMeter"
#pragma link "AcePrev"
#pragma resource "*.dfm"
TNewPreview *NewPreview;
//---------------------------------------------------------------------------
__fastcall TNewPreview::TNewPreview(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::Open1Click(TObject *Sender)
{
if (OpenFileDialog->Execute())
{
Preview->LoadFromFile(OpenFileDialog->FileName);
ZoomValues->ItemIndex = (Integer) Preview->AceZoom;
}
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::Close1Click(TObject *Sender)
{
Preview->Filer->AceFile->Free();
Preview->Filer->AceFile = NULL;
Preview->Invalidate();
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::Save1Click(TObject *Sender)
{
if (SaveFileDialog->Execute())
Preview->SaveToFile(SaveFileDialog->FileName);
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::PrintSetup1Click(TObject *Sender)
{
Preview->AcePrinterSetup->SetData();
PrinterSetup->Execute();
Preview->AcePrinterSetup->GetData();
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::Print1Click(TObject *Sender)
{
TAcePrintDestination *pd = new TAcePrintDestination(Application);
TAcePrinterSetup *CopyPS = new TAcePrinterSetup;
CopyPS->Assign(Preview->AcePrinterSetup);
pd->Viewer = this;
pd->Preview = Preview;
pd->AcePrinterSetup = Preview->AcePrinterSetup;
pd->AcePrinterSetup->SetData();
try
{
if (pd->ShowModal() == mrOk)
{
FPrinting = True;
UpdateControls();
TAcePreviewStatus *ps = new TAcePreviewStatus(this);
try
{
ps->Preview = Preview;
ps->Show();
Preview->IgnorePrinterSettings = CopyPS->IsEqual(pd->AcePrinterSetup);
Preview->PrintStatus = ps->UpdateStatus;
Preview->SendPagesToPrinter(pd->StartPage, pd->EndPage);
} catch (...) {};
ps->Free();
}
} catch (...) {};
pd->Free();
CopyPS->Free();
FPrinting = False;
UpdateControls();
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::mitemExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::ViewToolbarClick(TObject *Sender)
{
((TMenuItem *) Sender)->Checked = !((TMenuItem *) Sender)->Checked;
ToolBar->Visible = ((TMenuItem *)Sender)->Checked;
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::NextPage1Click(TObject *Sender)
{
Preview->NextPage();
UpdatePage();
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::PriorPage1Click(TObject *Sender)
{
Preview->PriorPage();
UpdatePage();
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::FirstPage1Click(TObject *Sender)
{
Preview->FirstPage();
UpdatePage();
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::LastPage1Click(TObject *Sender)
{
Preview->LastPage();
UpdatePage();
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::GotoPage1Click(TObject *Sender)
{
Integer pg;
TAceGotoPage *ag = new TAceGotoPage(this);
try
{
if (ag->ShowModal() == mrOk)
{
pg = StrToInt(ag->PageNum->Text);
Preview->Page = pg;
UpdatePage();
}
} catch (...) {};
if (ag != NULL) ag->Free();
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::ZoomValuesChange(TObject *Sender)
{
Preview->AceZoom = (TAceZoom) ((TComboBox *) Sender)->ItemIndex ;
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::StopClick(TObject *Sender)
{
if (FOnAbort != NULL)
{
try
{
FOnAbort(this);
}
catch (...)
{
Application->HandleException(this);
}
}
// make sure this isn't called again
FOnAbort = NULL;
Generating = False;
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::FormClose(TObject *Sender, TCloseAction &Action)
{
if (FOnAbort != NULL)
{
try
{
FOnAbort(this);
}
catch (...)
{
Application->HandleException(this);
}
}
// make sure this isn't called again
FOnAbort = NULL;
Generating = False;
Action = caFree;
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::FormCreate(TObject *Sender)
{
FGenerating = False;
ShowFirst = True;
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::FormResize(TObject *Sender)
{
ZoomValuesChange(ZoomValues);
}
//---------------------------------------------------------------------------
Single __fastcall TNewPreview::GetLoadPercent( void )
{
Single Result = 0;
if (Preview->Filer->AceFile != NULL)
Result = ((TAceAceFile *) Preview->Filer->AceFile)->PercentDone;
return Result;
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::UpdatePage( void )
{
LoadMeter->Progress = GetLoadPercent();
PageNum->Caption = "Page: " + IntToStr(Preview->Page) + "/" + IntToStr(Preview->PageCount);
if (ShowFirst && ((Preview->PageCount > 1) || (LoadMeter->Progress == 100)))
{
ShowFirst = False;
Preview->Invalidate();
}
if (Preview->Description == "") Caption = "Preview";
else Caption = Preview->Description;
if (LoadMeter->Progress == 100) Generating = False;
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::SetAceFile(TAceFile *AF)
{
LoadMeter->Progress = 0;
ShowFirst = True;
Preview->LoadFromAceFile(AF);
Preview->AcePrinterSetup = AF->AcePrinterSetup;
ZoomValues->ItemIndex = (Integer) Preview->AceZoom;
Generating = True;
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::UpdateStatus(TObject *Sender)
{
UpdatePage();
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::UpdateControls( void )
{
File1->Enabled = !Printing;
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::SetGenerating( Boolean Value)
{
if (FGenerating != Value) FGenerating = Value;
Stop->Enabled = FGenerating;
UpdateControls();
}
//---------------------------------------------------------------------------
void __fastcall TNewPreview::btnCloseClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -