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

📄 sjfyfrm.pas

📁 采用Delphi7+Oracle. 该软件是由交警人员对各个路口闯红灯违法照片进行有效保存
💻 PAS
字号:
unit SjfyFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB;

type
  TFrmSjfy = class(TFrame)
    DBGrid: TDBGrid;
    btnLast: TButton;
    btnNext: TButton;
    btnPrior: TButton;
    btnFirst: TButton;
    txtMsg: TLabel;
    DataSource1: TDataSource;
    ADODataSet1: TADODataSet;
    procedure btnFirstClick(Sender: TObject);
    procedure btnPriorClick(Sender: TObject);
    procedure btnNextClick(Sender: TObject);
    procedure btnLastClick(Sender: TObject);
  private
    { Private declarations }
    pegenum : Integer;
    pagecount,page : Integer;
    sqltext : string;
  public
    { Public declarations }
   procedure beginQuery(sqlcmd:string;pagenums:integer);
  published
    property pagenumber: Integer read pegenum write pegenum  stored true default 10;
  end;

implementation

{$R *.dfm}
//开始查询
procedure TFrmSjfy.beginQuery(sqlcmd:string;pagenums:integer);
var
  count : integer;
begin
  adodataset1.Close;
  adodataset1.Filtered := false;
  page := 0;
  pegenum := pagenums; //每页显示的记录数
  adodataset1.CommandText := sqlcmd;
  adodataset1.Open;
  
  count := adodataset1.RecordCount;
  adodataset1.Filtered := true;
  if count = 0 then
  begin
      txtMsg.Caption := '查无结果';
      btnFirst.Enabled := false;
      btnPrior.Enabled := false;
      btnLast.Enabled := false;
      btnNext.Enabled := false;
  end
  else
  begin
            if count mod pegenum > 0 then
                 pagecount := count div pegenum + 1
            else
                 pagecount := count div pegenum;
            page := 0;
            btnFirstclick(btnFirst);
  end;
end;


procedure TFrmSjfy.btnFirstClick(Sender: TObject);
begin
  page := 0;
  adodataset1.Filter := 'rownum >= ' + inttostr(page * pegenum+1) + ' and rownum <=' + inttostr((page+1) * pegenum);
  btnFirst.Enabled := false;
  btnPrior.Enabled := false;
  btnLast.Enabled := true;
  btnNext.Enabled := true;
  txtMsg.Caption := '总页数:' + inttostr(pagecount) + '   当前页:' + inttoStr(page +1);
end;

procedure TFrmSjfy.btnPriorClick(Sender: TObject);
begin
  if page = 0 then exit;
  page := page - 1;
   btnLast.Enabled := true;
   btnNext.Enabled := true;
  if page = 0 then
  begin
      btnFirst.Enabled := false;
      btnPrior.Enabled := false;
  end;
  adodataset1.Filter := 'rownum >= ' + inttostr(page * pegenum+1) + ' and rownum <=' + inttostr((page+1) * pegenum);
  txtMsg.Caption := '总页数:' + inttostr(pagecount) + '   当前页:' + inttoStr(page+1);
end;

procedure TFrmSjfy.btnNextClick(Sender: TObject);
begin
  if page = pagecount-1 then exit;
  page := page + 1;
      btnFirst.Enabled := true;
      btnPrior.Enabled := true;
  if page = pagecount-1 then
  begin
       btnLast.Enabled := false;
       btnNext.Enabled := false;
  end;
  adodataset1.Filter := 'rownum >= ' + inttostr(page * pegenum+1) + ' and rownum <=' + inttostr((page+1) * pegenum);
  txtMsg.Caption := '总页数:' + inttostr(pagecount) + '   当前页:' + inttoStr(page+1);
end;

procedure TFrmSjfy.btnLastClick(Sender: TObject);
begin
  page := pagecount - 1;
  adodataset1.Filter := 'rownum >= ' + inttostr(page * pegenum+1) + ' and rownum <=' + inttostr((page+1) * pegenum);
  btnLast.Enabled := false;
  btnNext.Enabled := false;
  btnFirst.Enabled := true;
  btnPrior.Enabled := true;
  txtMsg.Caption := '总页数:' + inttostr(pagecount) + '   当前页:' + inttoStr(page+1);
end;

end.

⌨️ 快捷键说明

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