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

📄 urepset.pas

📁 对初学票据套打开发的人很有帮助
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit URepSet;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ComCtrls, Spin, registry, USetPlace, Qrctrls, QuickRpt, Buttons;

type
  TFrm_RepSet = class(TForm)
    StatusBar1: TStatusBar;
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    SpinEdit1: TSpinEdit;
    SpinEdit2: TSpinEdit;
    GroupBox2: TGroupBox;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    ScrollBox1: TScrollBox;
    Panel3: TPanel;
    ListView1: TListView;
    Panel4: TPanel;
    BitBtn5: TBitBtn;
    Panel5: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    BitBtn6: TBitBtn;
    ComboBox1: TComboBox;
    BitBtn7: TBitBtn;
    Label7: TLabel;
    Edit4: TEdit;
    CheckBox1: TCheckBox;
    Bevel1: TBevel;
    Label8: TLabel;
    Edit5: TEdit;
    procedure SpinEdit1Change(Sender: TObject);
    procedure SpinEdit2Change(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure ListView1DblClick(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
  private
    function create_reg(keyname: string): boolean;
    procedure setwz(objectname: string);
    function No: string;
    procedure Add_pyl(left, top: integer);
    procedure ObjectMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  rep: TQuickRep;
  Frm_RepSet: TFrm_RepSet;
  oldleft: integer = 0;
  oldtop: integer = 0;
  keyname: string;
implementation

{$R *.DFM}

procedure TFrm_RepSet.SpinEdit1Change(Sender: TObject);
var
  Reg: TRegistry;
  section: string;
begin
  keyname := 'rep' + no;
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CURRENT_USER;
  section := '\Software\Gd\UserCustomSet\' + keyname;
  if (SpinEdit1.text = '') and (SpinEdit2.text = '') then exit;
  if reg.KeyExists(section) then
  else
    if create_reg(keyname) then exit;
  setplace(strtoint(SpinEdit1.text) - oldleft, strtoint(SpinEdit2.text) - oldtop, rep);
  oldleft := strtoint(SpinEdit1.text);
  oldtop := strtoint(SpinEdit2.text);
  Add_pyl(strtoint(SpinEdit1.text), strtoint(SpinEdit2.text));
end;

procedure TFrm_RepSet.SpinEdit2Change(Sender: TObject);
begin
  SpinEdit1Change(Sender);

{
  setplace(strtoint(SpinEdit1.text) - oldleft, strtoint(SpinEdit2.text) - oldtop, rep);
  oldleft := strtoint(SpinEdit1.text);
  oldtop := strtoint(SpinEdit2.text);
  Add_pyl(strtoint(SpinEdit1.text), strtoint(SpinEdit2.text));}
end;

procedure TFrm_RepSet.BitBtn1Click(Sender: TObject);
var
  i, j: integer;
  TempList: TlistItem;
  Reg: TRegistry;
  section: string;
begin
  keyname := 'rep' + no;
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CURRENT_USER;
  section := '\Software\Gd\UserCustomSet\' + keyname;

  if reg.KeyExists(section) then
  else
    if create_reg(keyname) then exit;

  if Reg.OpenKey(section, false) then
  begin
    ListView1.items.clear;
    for i := 0 to rep.ControlCount - 1 do
    begin
      if rep.Controls[i] is TQRBand then
      begin
        for j := 0 to (rep.Controls[i] as TQRBand).ControlCount - 1 do
          if (rep.Controls[i] as TQRBand).Controls[j] is TObject then
          begin
            Templist := ListView1.Items.Add;
            TempList.Caption := ((rep.Controls[i] as TQRBand).Controls[j] as TObject).Name;
     //       TempList.string1 := ((rep.Controls[i] as TQRBand).Controls[j] as TObject).Name;
            if Reg.OpenKey(section + '\' + ((rep.Controls[i] as TQRBand).Controls[j] as TObject).Name, true) then
            begin
              if (rep.Controls[i] as TQRBand).Controls[j] is TQRLabel then
                TempList.SubItems.Add(reg.ReadString('Displayname'))
              else
                TempList.SubItems.Add('');
              TempList.SubItems.Add(inttostr(reg.ReadInteger('Left')));
              TempList.SubItems.Add(inttostr(reg.ReadInteger('Top')));
              TempList.SubItems.Add(inttostr(reg.ReadInteger('Zt')));
              if reg.Readbool('IsSave') then
                TempList.SubItems.Add('保存')
              else
                TempList.SubItems.Add('');
              TempList.SubItems.Add(reg.ReadString('China'));
            end;
          end;
      end
      else
        if rep.Controls[i] is TQRChildBand then
        begin
          for j := 0 to (rep.Controls[i] as TQRChildBand).ControlCount - 1 do
          begin
            Templist := ListView1.Items.Add;
            TempList.Caption := ((rep.Controls[i] as TQRChildBand).Controls[j] as TObject).Name;
         //   TempList.string1 := ((rep.Controls[i] as TQRChildBand).Controls[j] as TObject).Name;
            if Reg.OpenKey(section + '\' + ((rep.Controls[i] as TQRChildBand).Controls[j] as TObject).Name, true) then
            begin
              if (rep.Controls[i] as TQRChildBand).Controls[j] is TQRLabel then
                TempList.SubItems.Add(reg.ReadString('Displayname'))
              else
                TempList.SubItems.Add('');
              TempList.SubItems.Add(inttostr(reg.ReadInteger('Left')));
              TempList.SubItems.Add(inttostr(reg.ReadInteger('Top')));
              TempList.SubItems.Add(inttostr(reg.ReadInteger('Zt')));
              if reg.Readbool('IsSave') then
                TempList.SubItems.Add('保存')
              else
                TempList.SubItems.Add('');
              TempList.SubItems.Add(reg.ReadString('China'));
            end;
          end;
        end
        else
          if rep.Controls[i] is TQRsubdetail then
          begin
            for j := 0 to (rep.Controls[i] as TQRsubdetail).ControlCount - 1 do
            begin
              Templist := ListView1.Items.Add;
              TempList.Caption := ((rep.Controls[i] as TQRsubdetail).Controls[j] as TObject).Name;
           //   TempList.string1 := ((rep.Controls[i] as TQRsubdetail).Controls[j] as TObject).Name;
              if Reg.OpenKey(section + '\' + ((rep.Controls[i] as TQRsubdetail).Controls[j] as TObject).Name, true) then
              begin
                if (rep.Controls[i] as TQRsubdetail).Controls[j] is TQRLabel then
                  TempList.SubItems.Add(reg.ReadString('Displayname'))
                else
                  TempList.SubItems.Add('');
                TempList.SubItems.Add(inttostr(reg.ReadInteger('Left')));
                TempList.SubItems.Add(inttostr(reg.ReadInteger('Top')));
                TempList.SubItems.Add(inttostr(reg.ReadInteger('Zt')));
                if reg.Readbool('IsSave') then
                  TempList.SubItems.Add('保存')
                else
                  TempList.SubItems.Add('');
                TempList.SubItems.Add(reg.ReadString('China'));
              end;
            end;
          end
          else
            if rep.Controls[i] is TQRStringsBand then
            begin
              for j := 0 to (rep.Controls[i] as TQRStringsBand).ControlCount - 1 do
              begin
                Templist := ListView1.Items.Add;
                TempList.Caption := ((rep.Controls[i] as TQRStringsBand).Controls[j] as TObject).Name;
           //     TempList.string1 := ((rep.Controls[i] as TQRStringsBand).Controls[j] as TObject).Name;
                if Reg.OpenKey(section + '\' + ((rep.Controls[i] as TQRStringsBand).Controls[j] as TObject).Name, true) then
                begin
                  if (rep.Controls[i] as TQRStringsBand).Controls[j] is TQRLabel then
                    TempList.SubItems.Add(reg.ReadString('Displayname'))
                  else
                    TempList.SubItems.Add('');
                  TempList.SubItems.Add(inttostr(reg.ReadInteger('Left')));
                  TempList.SubItems.Add(inttostr(reg.ReadInteger('Top')));
                  TempList.SubItems.Add(inttostr(reg.ReadInteger('Zt')));
                  if reg.Readbool('IsSave') then
                    TempList.SubItems.Add('保存')
                  else
                    TempList.SubItems.Add('');
                  TempList.SubItems.Add(reg.ReadString('China'));
                end;
              end;
            end
            else
            begin
              Templist := ListView1.Items.Add;
              TempList.Caption := (rep.Controls[i] as TObject).Name;
           //   TempList.string1 := (rep.Controls[i] as TObject).Name;
              if Reg.OpenKey(section + '\' + (rep.Controls[i] as TObject).Name, true) then
              begin
                if rep.Controls[i] is TQRLabel then
                  TempList.SubItems.Add(reg.ReadString('Displayname'))
                else
                  TempList.SubItems.Add('');
                TempList.SubItems.Add(inttostr(reg.ReadInteger('Left')));
                TempList.SubItems.Add(inttostr(reg.ReadInteger('Top')));
                TempList.SubItems.Add(inttostr(reg.ReadInteger('Zt')));
                if reg.Readbool('IsSave') then
                  TempList.SubItems.Add('保存')
                else
                  TempList.SubItems.Add('');
                TempList.SubItems.Add(reg.ReadString('China'));
              end;
            end;
    end;
  end;
 // Panel2.Visible := false;
  Panel3.Visible := TRUE;
  GroupBox1.Enabled := false;
end;



function TFrm_RepSet.create_reg(keyname: string): boolean;
var
  Reg: TRegistry;
  section: string;
  i, j: integer;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_CURRENT_USER;
  section := '\Software\Gd\UserCustomSet\' + keyname;
  if Reg.OpenKey(section, true) then
    for i := 0 to rep.ControlCount - 1 do
    begin
      if rep.Controls[i] is TQRBand then
      begin
        for j := 0 to (rep.Controls[i] as TQRBand).ControlCount - 1 do
          if (rep.Controls[i] as TQRBand).Controls[j] is TObject then
            if Reg.OpenKey(section + '\' + ((rep.Controls[i] as TQRBand).Controls[j] as TObject).name, true) then
            begin
              reg.WriteInteger('Left', 0);
              reg.WriteInteger('Top', 0);
              reg.WriteInteger('OldLeft', ((rep.Controls[i] as TQRBand).Controls[j] as TObject).Left);
              reg.WriteInteger('OldTop', ((rep.Controls[i] as TQRBand).Controls[j] as TObject).top);
              if (rep.Controls[i] as TQRBand).Controls[j] is Tqrlabel then
              begin
                reg.WriteString('Displayname', ((rep.Controls[i] as TQRBand).Controls[j] as Tqrlabel).caption);
                reg.WriteInteger('Zt', ((rep.Controls[i] as TQRBand).Controls[j] as Tqrlabel).Font.Size);
              end
              else
              begin
                reg.WriteString('Displayname', '');
                reg.WriteInteger('Zt', 9);
              end;
              reg.WriteBool('IsSave', false);
              reg.WriteString('China', '');
            end;

      end
      else
        if rep.Controls[i] is TQRChildBand then
        begin
          for j := 0 to (rep.Controls[i] as TQRChildBand).ControlCount - 1 do
            if Reg.OpenKey(section + '\' + ((rep.Controls[i] as TQRChildBand).Controls[j] as TObject).name, true) then
            begin
              reg.WriteInteger('Left', 0);
              reg.WriteInteger('Top', 0);
              reg.WriteInteger('OldLeft', ((rep.Controls[i] as TQRChildBand).Controls[j] as TObject).Left);
              reg.WriteInteger('OldTop', ((rep.Controls[i] as TQRChildBand).Controls[j] as TObject).top);
              if (rep.Controls[i] as TQRChildBand).Controls[j] is Tqrlabel then
              begin
                reg.WriteString('Displayname', ((rep.Controls[i] as TQRChildBand).Controls[j] as Tqrlabel).caption);
                reg.WriteInteger('Zt', ((rep.Controls[i] as TQRChildBand).Controls[j] as Tqrlabel).Font.Size);
              end
              else
              begin
                reg.WriteString('Displayname', '');
                reg.WriteInteger('Zt', 9);
              end;
              reg.WriteBool('IsSave', false);
              reg.WriteString('China', '');
            end;

        end
        else
          if rep.Controls[i] is TQRsubdetail then
          begin
            for j := 0 to (rep.Controls[i] as TQRsubdetail).ControlCount - 1 do
              if Reg.OpenKey(section + '\' + ((rep.Controls[i] as TQRsubdetail).Controls[j] as TObject).name, true) then
              begin
                reg.WriteInteger('Left', 0);
                reg.WriteInteger('Top', 0);
                reg.WriteInteger('OldLeft', ((rep.Controls[i] as TQRsubdetail).Controls[j] as TObject).Left);
                reg.WriteInteger('OldTop', ((rep.Controls[i] as TQRsubdetail).Controls[j] as TObject).top);
                if (rep.Controls[i] as TQRsubdetail).Controls[j] is Tqrlabel then
                begin
                  reg.WriteString('Displayname', ((rep.Controls[i] as TQRsubdetail).Controls[j] as Tqrlabel).caption);
                  reg.WriteInteger('Zt', ((rep.Controls[i] as TQRsubdetail).Controls[j] as Tqrlabel).Font.Size);
                end
                else
                begin
                  reg.WriteString('Displayname', '');
                  reg.WriteInteger('Zt', 9);
                end;
                reg.WriteBool('IsSave', false);
                reg.WriteString('China', '');
              end;

          end
          else
            if rep.Controls[i] is TQRStringsBand then
            begin
              for j := 0 to (rep.Controls[i] as TQRStringsBand).ControlCount - 1 do
                if Reg.OpenKey(section + '\' + ((rep.Controls[i] as TQRStringsBand).Controls[j] as TObject).name, true) then

⌨️ 快捷键说明

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