preview.cpp

来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 109 行

CPP
109
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Preview.h"
#include "FinReport.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmPreview *frmPreview;
//---------------------------------------------------------------------------
__fastcall TfrmPreview::TfrmPreview(TComponent* Owner)
        : TForm(Owner)
{
    p = new TPPanel(this);
    p->Parent = sb;
    p->BevelOuter = bvNone;
    CurrPage = 1;
    TotalPage = 1;
}
//---------------------------------------------------------------------------
__fastcall TPPanel::TPPanel(TComponent * Owner)
                  : TPanel(Owner)
{
}
void __fastcall TPPanel::Paint(void)
{
    TPanel::Paint();
    frmFinReport->Formula->PrintPreview((unsigned int)this->Handle,
             0, 0, this->Width, this->Height, frmPreview->CurrPage, &frmPreview->TotalPage);
}
void __fastcall TfrmPreview::FormDestroy(TObject *Sender)
{
    delete p;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreview::FormShow(TObject *Sender)
{
    p->Left = 0;
    p->Top = 0;
    p->Height = sb->Height;
    p->Width = p->Height * 210 / 297;
    UpdatePosition();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreview::BitBtn3Click(TObject *Sender)
{
    p->Height -= 50;
    p->Width = p->Height * 210 / 297;
    UpdatePosition();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreview::BitBtn4Click(TObject *Sender)
{
    p->Height += 50;
    p->Width = p->Height * 210 / 297;
    UpdatePosition();
}
//---------------------------------------------------------------------------
void TfrmPreview::UpdatePosition()
{
    if(p->Width < sb->ClientRect.Width())
       p->Left = (sb->ClientRect.Width() - p->Width) / 2;
    else
       p->Left = 0;
    if(p->Height < sb->ClientRect.Height())
       p->Top = (sb->ClientRect.Height() - p->Height) / 2;
    else
       p->Top = 0;
}

void __fastcall TfrmPreview::FormResize(TObject *Sender)
{
    UpdatePosition();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreview::BitBtn6Click(TObject *Sender)
{
    CurrPage = 1;
    p->Repaint();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreview::BitBtn1Click(TObject *Sender)
{
    if(CurrPage > 1)
    {
       CurrPage--;
       p->Repaint();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreview::BitBtn2Click(TObject *Sender)
{
    if(CurrPage < TotalPage)
    {
       CurrPage++;
       p->Repaint();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreview::BitBtn7Click(TObject *Sender)
{
    CurrPage = TotalPage;
    p->Repaint();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?