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

📄 teeprevi.pas

📁 complete source code for teechart 7
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        Position = 99
        TabOrder = 0
        OnChange = TrackBar1Change
      end
    end
    object PanelMargins: TPanel
      Left = 1
      Top = 162
      Width = 110
      Height = 58
      Align = alTop
      BevelOuter = bvNone
      TabOrder = 4
      object BReset: TButton
        Left = 4
        Top = 5
        Width = 101
        Height = 25
        HelpContext = 1331
        Caption = 'Reset &Margins'
        Enabled = False
        TabOrder = 0
        OnClick = BResetClick
      end
      object ShowMargins: TCheckBox
        Left = 7
        Top = 36
        Width = 100
        Height = 15
        HelpContext = 1331
        Caption = '&View Margins'
        Checked = True
        State = cbChecked
        TabOrder = 1
        OnClick = ShowMarginsClick
      end
    end
    object Panel4: TPanel
      Left = 1
      Top = 286
      Width = 110
      Height = 54
      Align = alClient
      BevelOuter = bvNone
      TabOrder = 3
      object CBProp: TCheckBox
        Left = 11
        Top = 5
        Width = 92
        Height = 17
        HelpContext = 889
        Caption = 'Proport&ional'
        Checked = True
        State = cbChecked
        TabOrder = 0
        OnClick = CBPropClick
      end
    end
  end
  *)
end;
{$ENDIF}

Procedure TChartPreview.ResetMargins;
begin
  With TeePreviewPanel1 do
  if Assigned(Panel) then
  begin
    if Panel.PrintProportional and (Printer.Printers.Count>0) then
    begin
      OldMargins:=Panel.CalcProportionalMargins;
      Panel.PrintMargins:=OldMargins;
    end;
    TeePreviewPanel1ChangeMargins(Self,False,Panel.PrintMargins);
    Invalidate;
  end;
end;

procedure TChartPreview.FormShow(Sender: TObject);
var tmpClass: TTeePageNavigatorClass;
begin
  tmpClass:=PageNavigatorClass;
  if Assigned(tmpClass) then
  begin
    PageNavigator1:=tmpClass.Create(Self);
    PageNavigator1.Parent:=Panel2;
    PageNavigator1.Align:=alBottom;
    PageNavigator1.HelpContext:=1488;
    PageNavigator1.OnButtonClicked:=Navigator1ButtonClicked;
  end;

  Screen.Cursor:=crDefault;

  if Tag<>{$IFDEF CLR}nil{$ELSE}0{$ENDIF} then
     TeePreviewPanel1.Panel:=TCustomTeePanel({$IFDEF CLR}TObject{$ENDIF}(Tag));

  CBPrinters.Items:=Printer.Printers;
  if Printer.Printers.Count>0 then
  begin
    {$IFDEF CLX}
    CBPrinters.ItemIndex:=0;
    {$ELSE}
    CBPrinters.ItemIndex:=Printer.PrinterIndex;
    {$ENDIF}

    {$IFNDEF TEEOCX}
    if TeeChangePaperOrientation then
       Printer.Orientation:=poLandscape;
    {$ENDIF}

    CheckOrientation;
  end
  else
  begin
    EnableControls(False,[BPrint,BSetupPrinter,Orientation]);
  end;

  With TeePreviewPanel1 do
  if Assigned(Panel) then
  begin
    CBProp.Checked:=Panel.PrintProportional;
    Resolution.Position:=Panel.PrintResolution+100;
    OldMargins:=Panel.PrintMargins;
    ResetMargins;

    if Assigned(PageNavigator1) then
       PageNavigator1.Panel:=Panel;  { 5.03 }
  end
  else
  begin
    CBProp.Enabled:=False;
    Resolution.Enabled:=False;
    GBMargins.Enabled:=False;
    BPrint.Enabled:=False;
  end;

  CheckBox1.Checked:=TeePreviewPanel1.AsBitmap;
  
  TeeTranslateControl(Self);
end;

procedure TChartPreview.BSetupPrinterClick(Sender: TObject);
begin
  PrinterSetupDialog1.Execute;
  CBPrinters.Items:=Printer.Printers;
  {$IFNDEF CLX}
  CBPrinters.ItemIndex:=Printer.PrinterIndex;
  {$ENDIF}
  CheckOrientation;
  TeePreviewPanel1.Invalidate;
end;

procedure TChartPreview.CBPrintersChange(Sender: TObject);
begin
  {$IFNDEF CLX}
  Printer.PrinterIndex:=CBPrinters.ItemIndex;
  {$ENDIF}
  CheckOrientation;
  OrientationClick(Self);
end;

procedure TChartPreview.OrientationClick(Sender: TObject);
begin
  Printer.Orientation:=TPrinterOrientation(Orientation.ItemIndex);
  ResetMargins;
  TeePreviewPanel1.Invalidate;
end;

procedure TChartPreview.ChangeMargin(UpDown:TUpDown; Var APos:Integer; OtherSide:Integer);
begin
  if Showing then
  begin
    if UpDown.Position+OtherSide<100 then
    begin
      APos:=UpDown.Position;
      if not ChangingMargins then
      With TeePreviewPanel1 do
      Begin
        Invalidate;
        BReset.Enabled:=not EqualRect(Panel.PrintMargins,OldMargins);
        CBProp.Checked:=False;
      end;
    end
    else UpDown.Position:=APos;
  end;
end;

procedure TChartPreview.SETopMaChange(Sender: TObject);
{$IFDEF CLR}
var R: TRect;
{$ENDIF}
begin
  if Showing then
  {$IFDEF CLR}
  begin
    R:=TeePreviewPanel1.Panel.PrintMargins;
    ChangeMargin(UDTopMa,R.Top,R.Bottom);
    TeePreviewPanel1.Panel.PrintMargins:=R;
  end;
  {$ELSE}
  with TeePreviewPanel1.Panel.PrintMargins do
       ChangeMargin(UDTopMa,Top,Bottom);
  {$ENDIF}
end;

procedure TChartPreview.SERightMaChange(Sender: TObject);
{$IFDEF CLR}
var R: TRect;
{$ENDIF}
begin
  if Showing then
  {$IFDEF CLR}
  begin
    R:=TeePreviewPanel1.Panel.PrintMargins;
    ChangeMargin(UDRightMa,R.Right,R.Left);
    TeePreviewPanel1.Panel.PrintMargins:=R;
  end;
  {$ELSE}
  with TeePreviewPanel1.Panel.PrintMargins do
       ChangeMargin(UDRightMa,Right,Left);
  {$ENDIF}
end;

procedure TChartPreview.SEBotMaChange(Sender: TObject);
{$IFDEF CLR}
var R: TRect;
{$ENDIF}
begin
  if Showing then
  {$IFDEF CLR}
  begin
    R:=TeePreviewPanel1.Panel.PrintMargins;
    ChangeMargin(UDBotMa,R.Bottom,R.Top);
    TeePreviewPanel1.Panel.PrintMargins:=R;
  end;
  {$ELSE}
  with TeePreviewPanel1.Panel.PrintMargins do
       ChangeMargin(UDBotMa,Bottom,Top);
  {$ENDIF}
end;

procedure TChartPreview.SELeftMaChange(Sender: TObject);
{$IFDEF CLR}
var R: TRect;
{$ENDIF}
begin
  if Showing then
  {$IFDEF CLR}
  begin
    R:=TeePreviewPanel1.Panel.PrintMargins;
    ChangeMargin(UDLeftMa,R.Left,R.Right);
    TeePreviewPanel1.Panel.PrintMargins:=R;
  end;
  {$ELSE}
  with TeePreviewPanel1.Panel.PrintMargins do
       ChangeMargin(UDLeftMa,Left,Right);
  {$ENDIF}
end;

procedure TChartPreview.ShowMarginsClick(Sender: TObject);
begin
  TeePreviewPanel1.Margins.Visible:=ShowMargins.Checked;
end;

procedure TChartPreview.FormCreate(Sender: TObject);
begin
  ChangingMargins:=True;
  ChangingProp:=False;
  PrinterSetupDialog1:=TPrinterSetupDialog.Create(Self);
end;

procedure TChartPreview.BResetClick(Sender: TObject);
begin
  With TeePreviewPanel1 do
  Begin
    Panel.PrintMargins:=OldMargins;
    TeePreviewPanel1ChangeMargins(Self,False,Panel.PrintMargins);
    Invalidate;
  end;
  BReset.Enabled:=False;
end;

Procedure TChartPreview.CheckOrientation;
Begin
  Orientation.ItemIndex:=Ord(Printer.Orientation);
End;

procedure TChartPreview.BPrintClick(Sender: TObject);
begin
  Screen.Cursor:=crHourGlass;
  try
    if Assigned(PageNavigator1) and (PageNavigator1.PageCount>1) then
       PageNavigator1.Print
    else
       TeePreviewPanel1.Print;
  finally
    Screen.Cursor:=crDefault;
  end;
end;

procedure TChartPreview.BCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TChartPreview.CBPropClick(Sender: TObject);
begin
  if not ChangingProp then
  begin
    TeePreviewPanel1.Panel.PrintProportional:=CBProp.Checked;
    ResetMargins;
  end;
end;

procedure TChartPreview.TeePreviewPanel1ChangeMargins(Sender: TObject;
  DisableProportional: Boolean; const NewMargins: TRect);
begin
  ChangingMargins:=True;
  try
    UDLeftMa.Position :=NewMargins.Left;
    UDRightMa.Position:=NewMargins.Right;
    UDTopMa.Position  :=NewMargins.Top;
    UDBotMa.Position  :=NewMargins.Bottom;
    if DisableProportional then
    begin
      TeePreviewPanel1.Panel.PrintProportional:=False;
      ChangingProp:=True;
      CBProp.Checked:=False;
      ChangingProp:=False;
    end;
  finally
    ChangingMargins:=False;
  end;
end;

procedure TChartPreview.Navigator1ButtonClicked(Index: TTeeNavigateBtn);
begin
  TeePreviewPanel1.Invalidate;
end;

procedure TChartPreview.TrackBar1Change(Sender: TObject);
begin
  With TeePreviewPanel1 do
  Begin
    Panel.PrintResolution:=Resolution.Position-100;
    Invalidate;
  end;
end;

function TChartPreview.PreviewPanel: TTeePreviewPanel;
begin
  result:=TeePreviewPanel1;
end;

procedure TChartPreview.FormDestroy(Sender: TObject);
begin
  PrinterSetupDialog1.Free;
  PageNavigator1.Free; { 5.02 }
end;

procedure TChartPreview.CheckBox1Click(Sender: TObject);
begin
  TeePreviewPanel1.AsBitmap:=CheckBox1.Checked;
end;

end.

⌨️ 快捷键说明

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