unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids,math, ComCtrls;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Query1: TQuery;
Query2: TQuery;
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
UpDown1: TUpDown;
procedure Button1Click(Sender: TObject);
procedure Label4Click(Sender: TObject);
procedure Label3Click(Sender: TObject);
procedure ExButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Total,PageSize,Page: integer;
p : real;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);//轉到第n頁
begin
if (Edit1.Text = ‘‘) or (StrToFloat(Edit1.Text) < 0 )then
Exit;
DataSource1.DataSet := Query1;
with query2 do
begin
Close;
SQL.Clear;
SQL.Add(‘SELECT COUNT(*) COUNT FROM OP ‘);
Open;
Total := FieldByName(‘COUNT‘).AsInteger;
PageSize := 10;//10條記錄/頁
p := Total / PageSize;
Page := Ceil(Total/PageSize);//共多少頁
end;
Query1.Close;
Query1.ParamByName(‘n‘).AsInteger := (StrToInt(Edit1.text) - 1) * 10;
Query1.Open;
end;
procedure TForm1.Label4Click(Sender: TObject);//下一頁
begin
DataSource1.DataSet := Query1;
Query1.Close;
Query1.ParamByName(‘n‘).AsInteger := StrToInt(Edit1.text) * 10;
Query1.Open;
Edit1.Text := IntToStr(StrToInt(Edit1.Text) + 1);
end;
procedure TForm1.Label3Click(Sender: TObject);//上一頁
begin
if StrToInt(Edit1.Text) < 2 then
Exit;
DataSource1.DataSet := Query1;
Query1.Close;
Query1.ParamByName(‘n‘).AsInteger := (StrToInt(Edit1.text) - 2) * 10;
Query1.Open;
Edit1.Text := IntToStr(StrToInt(Edit1.Text) - 1);
end;