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

📄 prdesigner.pas

📁 是 delphi6的函数库
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit PRDesigner;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Menus, IniFiles,ExtCtrls, ToolWin, Db,ComCtrls, Spin,
   printers ,ExtDlgs,  ImgList, PRScale, PReport;

type
  TfrmPRDesigner = class(TForm)
    MainMenu1: TMainMenu;
    T1: TMenuItem;
    FileOpen: TMenuItem;
    FileExit: TMenuItem;
    N1: TMenuItem;
    T2: TMenuItem;
    NewTable: TMenuItem;
    InsertLine: TMenuItem;
    AddLine: TMenuItem;
    DeleteLine: TMenuItem;
    N4: TMenuItem;
    CombineCells: TMenuItem;
    SplitCell: TMenuItem;
    N7: TMenuItem;
    FileSave: TMenuItem;
    OpenDialog1: TOpenDialog;
    N2: TMenuItem;
    AddCell: TMenuItem;
    InsertCell: TMenuItem;
    DeleteCell: TMenuItem;
    mnuSetCell: TMenuItem;
    FontDialog1: TFontDialog;
    SaveDialog1: TSaveDialog;
    PrintIt: TMenuItem;
    VSplitCell: TMenuItem;
    mnuDataset: TMenuItem;
    N6: TMenuItem;
    PrintPreivew: TMenuItem;
    PopupMenu1: TPopupMenu;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    file1: TMenuItem;
    FileClose: TMenuItem;
    N3: TMenuItem;
    N29: TMenuItem;
    N32: TMenuItem;
    N30: TMenuItem;
    N33: TMenuItem;
    ScrollBox1: TScrollBox;
    Panel3: TPanel;
    Bevel1: TBevel;
    Panel4: TPanel;
    SpeedButton9: TSpeedButton;
    OpenPictureDialog1: TOpenPictureDialog;
    ToolImages: TImageList;
    FormattingBar: TToolBar;
    cboFont: TComboBox;
    cboFontSize: TComboBox;
    S7: TToolButton;
    btnBold: TToolButton;
    btnItalic: TToolButton;
    btnUnderline: TToolButton;
    btnStrikeOut: TToolButton;
    S8: TToolButton;
    btnAlignLeft: TToolButton;
    btnAlignCenter: TToolButton;
    btnAlignRight: TToolButton;
    S9: TToolButton;
    btnVertTop: TToolButton;
    btnVertCenter: TToolButton;
    btnVertBottom: TToolButton;
    S10: TToolButton;
    btnMerge: TToolButton;
    btnMergeAcross: TToolButton;
    btnUnmerge: TToolButton;
    S11: TToolButton;
    btnAddPic: TToolButton;
    btnClearPic: TToolButton;
    Panel5: TPanel;
    Bevel5: TBevel;
    ToolBar1: TToolBar;
    Panel6: TPanel;
    Panel8: TPanel;
    ToolButton4: TToolButton;
    Panel9: TPanel;
    Panel10: TPanel;
    Panel11: TPanel;
    PrinterSetupDialog1: TPrinterSetupDialog;
    N5: TMenuItem;
    Panel1: TPanel;
    StatusBar1: TStatusBar;
    Bevel2: TBevel;
    StandardBar: TToolBar;
    btnOpen: TToolButton;
    btnSave: TToolButton;
    btnCloseFile: TToolButton;
    S1: TToolButton;
    btnNewGrid: TToolButton;
    btnInsertLine: TToolButton;
    btnAddLine: TToolButton;
    btnDeleteLine: TToolButton;
    S2: TToolButton;
    btnSetting: TToolButton;
    btnPrint: TToolButton;
    btnPreview: TToolButton;
    S3: TToolButton;
    btnAddCell: TToolButton;
    btnInsertCell: TToolButton;
    btnDeleteCell: TToolButton;
    ToolButton18: TToolButton;
    btnFont: TToolButton;
    btnColor: TToolButton;
    btnCellSet: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton17: TToolButton;
    ToolButton12: TToolButton;
    ToolButton14: TToolButton;
    ToolButton13: TToolButton;
    ToolButton19: TToolButton;
    cboFormat: TComboBox;
    cboVF: TComboBox;
    btnExit: TToolButton;
    PRClass1: TPRClass;
    PRScale1: TPRScale;
    PRScale2: TPRScale;
    edtText: TEdit;
    btnDataField: TToolButton;
    btnPrintLine: TToolButton;
    btnAncientStyle: TToolButton;
    procedure FileOpen1(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FileExitClick(Sender: TObject);
    procedure NewTableClick(Sender: TObject);
    procedure CombineCellsClick(Sender: TObject);
    procedure CellDiagonalLineClick(Sender: TObject);
    procedure FileSaveClick(Sender: TObject);
    procedure PrintItClick(Sender: TObject);
    procedure UpdateOldies(TempFileName: string; sender: tobject);
    procedure RecentFile1(sender: tobject);
    procedure RecentFile2(sender: tobject);
    procedure RecentFile3(sender: tobject);
    procedure RecentFile4(sender: tobject);
    procedure RecentFile5(sender: tobject);
    procedure RecentFile6(sender: tobject);
    procedure RecentFile7(sender: tobject);
    procedure RecentFile8(sender: tobject);
    procedure RecentFile9(sender: tobject);
    procedure T1Click(Sender: TObject);
    procedure FileCloseClick(Sender: TObject);
    procedure ScrollBox1Resize(Sender: TObject);
    procedure loadini;
    procedure saveini;
    procedure left1Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    procedure SpeedButton7Click(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure cboVFChange(Sender: TObject);
    procedure SpeedButton16Click(Sender: TObject);
    procedure cboFontChange(Sender: TObject);
    procedure cboFontSizeChange(Sender: TObject);
    procedure btnAlignLeftClick(Sender: TObject);
    procedure btnBoldClick(Sender: TObject);
    procedure btnMergeClick(Sender: TObject);
    procedure btnMergeAcrossClick(Sender: TObject);
    procedure btnUnmergeClick(Sender: TObject);
    procedure btnAddPicClick(Sender: TObject);
    procedure btnClearPicClick(Sender: TObject);
    procedure cboFormatChange(Sender: TObject);
    procedure btnInsertCellClick(Sender: TObject);
    procedure edtTextChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btnOpenClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure ToolButton13Click(Sender: TObject);
    procedure ToolButton14Click(Sender: TObject);
    procedure ToolButton12Click(Sender: TObject);
    procedure btnSettingClick(Sender: TObject);
    procedure btnPrintClick(Sender: TObject);
    procedure btnInsertLineClick(Sender: TObject);
    procedure btnAddLineClick(Sender: TObject);
    procedure btnDeleteLineClick(Sender: TObject);
    procedure btnAddCellClick(Sender: TObject);
    procedure btnDeleteCellClick(Sender: TObject);
    procedure btnCellSetClick(Sender: TObject);
    procedure ToolButton9Click(Sender: TObject);
    procedure btnFontClick(Sender: TObject);
    procedure btnColorClick(Sender: TObject);
    procedure edtDefChange(Sender: TObject);
    procedure btnDataFieldClick(Sender: TObject);
    procedure PRClass1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PRClass1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PRClass1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure PRClass1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure PRClass1DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure btnExitClick(Sender: TObject);
    procedure btnPreviewClick(Sender: TObject);
    procedure btnPrintLineClick(Sender: TObject);
    procedure btnAncientStyleClick(Sender: TObject);
  private
    dbarleft:integer;
    dbartop:integer;
    ZoomRate:INTEGER;  //缩放比例
    IsSaveFlag:boolean;
    procedure ListBoxDragOver(Sender, Source: TObject; X,Y: Integer; State: TDragState; var Accept: Boolean);
    { Private declarations }
  Private

  public
    TempFileName, savefilename: string;
    myDatasets,tmpDataset: TList;
    DSDefine: TStringList;
  end;

const
  SysIni = 'iReport.ini';
var
  frmPRDesigner: TfrmPRDesigner;
implementation

uses prNewTable, prBorder, prIncline, prColor, prSplit,
  prSetting,prDataFields;

{$R *.DFM}

procedure TfrmPRDesigner.saveini;
var
  IniFile: TIniFile;
  toolbar, fonts, statusbar, autosave: integer;
begin
  IniFile := TIniFile.create(SysIni);
  inifile.writeinteger('其他', 'toolbar', toolbar);
  inifile.writeinteger('其他', 'statusbar', statusbar);
  inifile.writeinteger('其他', 'autosave', autosave);

  inifile.writeinteger('其他', 'fonts', fonts);
end;

procedure TfrmPRDesigner.loadini;
var
  IniFile: TIniFile;
  savetime, fonts, toolbar, statusbar, autosave: integer;
begin
  IniFile := TIniFile.create(SysIni);
  toolbar := inifile.readinteger('其他', 'toolbar', 1);
  statusbar := inifile.readinteger('其他', 'statusbar', 1);
  autosave := inifile.readinteger('其他', 'autosave', 1);
  savetime := inifile.readinteger('其他', 'savetime', 120000);
  fonts := inifile.readinteger('其他', 'fonts', 1);

end;

procedure TfrmPRDesigner.FormCreate(Sender: TObject);
var i,j,k:integer;
begin
  DSDefine:=TStringList.Create;
  //
  IsSaveFlag:=true; //未存盘标志     add 
  dbarleft:=0;
  dbartop:=0;
  caption := '[无文件名] ' ;
  loadini;
  saveini;
  cboFont.Items := screen.fonts;
  cboFont.ItemIndex := 1;
  cboFontSize.ItemIndex := 1;

  for i := 0 to cboFont.items.Count do
  begin
    if cboFont.Items[i] = '宋体' then
    begin
      cboFont.ItemIndex := i;
      break;
    end;
  end;
  ZoomRate:=100;
  If ParamCount>=1 Then
  Begin
    PRClass1.LoadFromFile(ParamStr(1));
    caption:=ParamStr(1);
    TempFileName :=ParamStr(1);
    savefilename := TempFileName;
  End;
  PRClass1.CalcWndSize;
end;
procedure TfrmPRDesigner.FileExitClick(Sender: TObject);
begin
  close;
end;


procedure TfrmPRDesigner.FileOpen1(Sender: TObject);
begin
  PRClass1.LoadFromFile(TempFileName);
  frmPRDesigner.caption := TempFileName ;
  SaveFileName := TempFileName;
  updateOldies(TempFileName, sender);
  TempFileName := '';
end;

procedure TfrmPRDesigner.NewTableClick(Sender: TObject);
var
  t: boolean;
begin
  if frmNewTable.ShowModal = IDOK then
    PRClass1.NewTable(StrToInt(frmNewTable.Edit2.Text), StrToInt(frmNewTable.Edit1.Text));
end;

procedure TfrmPRDesigner.CombineCellsClick(Sender: TObject);
begin
  PRClass1.CombineCell;
      IsSaveFlag:=false;
end;

procedure TfrmPRDesigner.CellDiagonalLineClick(Sender: TObject);
var
  nDiagonal: UINT;
begin
if CellSelected <> nil then
  if frmIncline.ShowModal = mrOK then
  begin
    with frmIncline do
    begin
      nDiagonal := 0;
      if LeftDiagonal1.Checked then
        nDiagonal := nDiagonal or LINE_LEFT1;

      if LeftDiagonal2.Checked then
        nDiagonal := nDiagonal or LINE_LEFT2;

      if LeftDiagonal3.Checked then
        nDiagonal := nDiagonal or LINE_LEFT3;

      if RightDiagonal1.Checked then
        nDiagonal := nDiagonal or LINE_RIGHT1;

      if RightDiagonal2.Checked then
        nDiagonal := nDiagonal or LINE_RIGHT2;

      if RightDiagonal3.Checked then
        nDiagonal := nDiagonal or LINE_RIGHT3;
      PRClass1.SetCellDiagonal(nDiagonal);
    IsSaveFlag:=false;
    end;
  end;
end;

procedure TfrmPRDesigner.FileSaveClick(Sender: TObject);
begin
  savedialog1.filename := SaveFileName;
  if SaveDialog1.Execute then
  begin
    PRClass1.SaveToFile(SaveDialog1.FileName);
    TempFileName := SaveDialog1.Filename;
    SaveFileName := TempFileName;
    frmPRDesigner.caption := TempFileName ;
    updateOldies(TempFileName, sender);
    TempFileName := '';
  end;
end;

procedure TfrmPRDesigner.PrintItClick(Sender: TObject);  // update
begin

end;


//页面设置
procedure TfrmPRDesigner.FileCloseClick(Sender: TObject); // update
begin
  if Application.Messagebox('确实要关闭文件吗?', '警告', MB_OKCANCEL) = MrOK then
  begin
    CellSelected:=nil;
    PRClass1.FreeEdit;
    PRClass1.ResetContent;
    cp_pgw := 0;
    PRClass1.CalcWndSize;
    frmPRDesigner.caption := '[无文件名] ' ;
    TempFileName := '';
    SaveFileName := '';
  end;
end;


procedure TfrmPRDesigner.updateoldies(TempFileName: string; sender: tobject);
var
  A, B, holder: string;
  n: integer;
  IniFile: TIniFile;
begin
  IniFile := TIniFile.create(SysIni);
  A := uppercase(TempFileName);
  holder := A;
  for n := 1 to 10 do
  begin
    B := inifile.readstring('Oldies', inttostr(n), '');
    if b = holder then
    begin
      inifile.writestring('Oldies', inttostr(n), 'filepath');
      B := inifile.readstring('Oldies', inttostr(n), '');
    end;
    inifile.writestring('Oldies', inttostr(n), A);
    A := B;
  end;
  ZoomRate:=100;
  ShowWindow(PRClass1.Handle, SW_HIDE);
  PRClass1.ReportScale := ZoomRate;
  ScrollBox1Resize(Self);
  ShowWindow(PRClass1.Handle, SW_SHOW);

⌨️ 快捷键说明

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