sjfyfrm.pas

来自「采用Delphi7+Oracle. 该软件是由交警人员对各个路口闯红灯违法照片」· PAS 代码 · 共 125 行

PAS
125
字号
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 + =
减小字号Ctrl + -
显示快捷键?