DbGrid如何实现翻页?

解决方案 »

  1.   

    参考一下吧 DBGRIDEH的unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Grids, DBGridEh, DB, ADODB, ExtCtrls, StdCtrls;type
      TForm1 = class(TForm)
        Panel1: TPanel;
        Panel2: TPanel;
        ADOQuery1: TADOQuery;
        ADOConnection1: TADOConnection;
        DataSource1: TDataSource;
        DBGridEh1: TDBGridEh;
        Label1: TLabel;
        ComboBox1: TComboBox;
        Label2: TLabel;
        Label3: TLabel;
        Label4: TLabel;
        procedure Label1Click(Sender: TObject);
        procedure FormShow(Sender: TObject);
        procedure Label2Click(Sender: TObject);
        procedure Label4Click(Sender: TObject);
        procedure Label4MouseEnter(Sender: TObject);
        procedure Label4MouseLeave(Sender: TObject);
        procedure ComboBox1Change(Sender: TObject);
      private
        I,J:Integer;                 //I:页数,J:记录数。
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Label1Click(Sender: TObject);
    begin
    if I = 9 Then
      Begin
        Showmessage('已到页尾' );
        Abort;
      End;
      combobox1.ItemIndex := Combobox1.ItemIndex + 1;
      I := I+1;
      AdoQuery1.Close;
      AdoQuery1.SQL.Clear;
      AdoQuery1.SQL.Text :='select * from Test where LineID > '
      +(inttostr((I-1)*J))+ ' And lineID <= '
      +(inttostr(I*J));
      AdoQuery1.Open;
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
    I := 1;
    J := 15;
    end;procedure TForm1.Label2Click(Sender: TObject);
    begin
      if I=1 Then
        Begin
          showmessage('已到首页!');
          Abort;
        End;
      combobox1.ItemIndex := Combobox1.ItemIndex + 1;
      I:= I-1;
      AdoQuery1.Close;
      AdoQuery1.SQL.Clear;
      AdoQuery1.SQL.Text :='select * from Test where LineID > '
        +(inttostr((I-1)*J))+ ' And lineID <= '
        +(inttostr(I*J));
      AdoQuery1.Open;
    end;procedure TForm1.Label4Click(Sender: TObject);
    begin
    if I = 1 Then
      Begin
        Showmessage('已到首页!');
        Abort;
      End;
      combobox1.ItemIndex := 0;
      I:= 1;
      AdoQuery1.Close;
      AdoQuery1.SQL.Clear;
      AdoQuery1.SQL.Text :='select * from Test where LineID > '
        +(inttostr((I-1)*J))+ ' And lineID <= '
        +(inttostr(I*J));
      AdoQuery1.Open;
    end;procedure TForm1.Label4MouseEnter(Sender: TObject);
    begin
      Label4.Font.Style := Label4.Font.Style +[FsBold]+[Fsunderline];
    end;procedure TForm1.Label4MouseLeave(Sender: TObject);
    begin
    Label4.Font.Style := Label4.Font.Style -[FsBold] - [Fsunderline];
    end;procedure TForm1.ComboBox1Change(Sender: TObject);
    begin
      I := Combobox1.ItemIndex + 1;
      AdoQuery1.Close;
      AdoQuery1.SQL.Clear;
      AdoQuery1.SQL.Text :='select * from Test where LineID > '
        +(inttostr((I-1)*J))+ ' And lineID <= '
        +(inttostr(I*J));
      AdoQuery1.Open;                             //可以自定义一个程只需传入参数页数和记录数。
    end;end.