⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newprev.cpp

📁 suite component ace report
💻 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 + -