📄 previewwin.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "PreviewWin.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CNReport"
#pragma resource "*.dfm"
TfrmPreviewWin *frmPreviewWin;
//---------------------------------------------------------------------------
__fastcall TfrmPreviewWin::TfrmPreviewWin(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreviewWin::tbCloseClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreviewWin::tbtScaleClick(TObject *Sender)
{
TPoint p;
p = tbtScale->ClientToScreen(Point(0,tbtScale->Height));
tbtScale->DropdownMenu->Popup(p.x,p.y);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreviewWin::tbtPrintClick(TObject *Sender)
{
tbStop->Enabled = True;
((TCNReportRunTime *)Owner)->Print();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreviewWin::tbStopClick(TObject *Sender)
{
tbStop->Enabled = !((TCNReportRunTime *)Owner)->Cancelprint();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreviewWin::tbtPrevPageClick(TObject *Sender)
{
int nPrevScale;
AnsiString strFileDir;
nPrevScale = CNReportControl1->ReportScale;
if (CurrentPage <= 1 ) return;
CurrentPage --;
if (CurrentPage <= 1 )
{
tbtPrevPage->Enabled = False;
}
tbtNextPage->Enabled = True;
// PageLabel.Caption := IntToStr(PageCount) + ' 页中的第 ' + IntToStr(CurrentPage) + ' 页 ';
LockWindowUpdate(Handle);
strFileDir = ExtractFileDir(Application->ExeName); // + '\';
if (strFileDir[strFileDir.Length()] != '\\' ) strFileDir = strFileDir + "\\";
if (FileExists(strFileDir + "Temp\\" + IntToStr(CurrentPage) + ".tmp") )
CNReportControl1->LoadFromFile(strFileDir + "Temp\\" + IntToStr(CurrentPage) + ".tmp");
CNReportControl1->ReportScale = nPrevScale;
CNReportControl1->Enabled = EnableEdit;
LockWindowUpdate(0);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreviewWin::tbtNextPageClick(TObject *Sender)
{
int nPrevScale;
AnsiString strFileDir;
nPrevScale = CNReportControl1->ReportScale;
if (CurrentPage >= PageCount ) return;
CurrentPage ++;
if (CurrentPage >= PageCount )
{
tbtNextPage->Enabled = False;
}
tbtPrevPage->Enabled = True;
// PageLabel.Caption := IntToStr(PageCount) + ' 页中的第 ' + IntToStr(CurrentPage) + ' 页 ';
LockWindowUpdate(Handle);
strFileDir = ExtractFileDir(Application->ExeName); // + '\';
if (strFileDir[strFileDir.Length()] != '\\' ) strFileDir = strFileDir + "\\";
if (FileExists(strFileDir + "Temp\\" + IntToStr(CurrentPage) + ".tmp") )
CNReportControl1->LoadFromFile(strFileDir + "Temp\\" + IntToStr(CurrentPage) + ".tmp");
CNReportControl1->ReportScale = nPrevScale;
CNReportControl1->Enabled = EnableEdit;
LockWindowUpdate(0);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreviewWin::SetPreviewMode(bool bPreview)
{
//TODO: Add your source code here
CNReportControl1->IsPreview = bPreview;
CNReportControl1->Refresh();
}
void __fastcall TfrmPreviewWin::PrintFile(AnsiString strFileName)
{
//TODO: Add your source code here
CNReportControl1->LoadFromFile(strFileName);
CNReportControl1->PrintIt();
}
void __fastcall TfrmPreviewWin::FormCreate(TObject *Sender)
{
AnsiString strFileDir;
PageCount = 1;
CurrentPage = 1;
// PageLabel.Caption := IntToStr(PageCount) + ' 页中的第 ' + IntToStr(CurrentPage) + ' 页 ';
strFileDir = ExtractFileDir(Application->ExeName); // + '\';
if (strFileDir[strFileDir.Length()] != '\\' ) strFileDir = strFileDir + "\\";
if (FileExists(strFileDir + "Temp\\" + IntToStr(CurrentPage) + ".tmp") )
CNReportControl1->LoadFromFile(strFileDir + "Temp\\1.tmp");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreviewWin::mni500Click(TObject *Sender)
{
TMenuItem *p = (TMenuItem *)Sender;
ShowWindow(CNReportControl1->Handle, SW_HIDE);
CNReportControl1->ReportScale = p->Tag;
ScrollBox1Resize(this);
ShowWindow(CNReportControl1->Handle, SW_SHOW);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreviewWin::ScrollBox1Resize(TObject *Sender)
{
if (ClientRect.Right > (CNReportControl1->Width + 20) )
CNReportControl1->Left = (ClientRect.Right - CNReportControl1->Width)/2;
else
CNReportControl1->Left = 10;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreviewWin::tbtPrinterSetupDialogClick(TObject *Sender)
{
PrintDialog1->Execute();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -