unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Db, DBTables;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
BitBtn_Next: TBitBtn;
Table1: TTable;
BitBtn_prie: TBitBtn;
procedure BitBtn_NextClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn_prieClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
PageIndex:integer;
Procedure PaintListOnPicture(Page:Integer);
end;
var
Form1: TForm1;
const
SHOWCOUNT = 5 ;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);//初始显示第一页
begin
Table1.Active:=True;
PageIndex:=1;
PaintListOnPicture(PageIndex);
end;
procedure TForm1.BitBtn_NextClick(Sender: TObject);//下一页
begin
if PageIndex*SHOWCOUNT>Table1.RecordCount-1 then Exit;
Inc(PageIndex);
PaintListOnPicture(Pageindex);
end;
procedure TForm1.BitBtn_prieClick(Sender: TObject);//上一页
begin
if PageIndex=1 then Exit;
Dec(PageIndex);
PaintListOnPicture(Pageindex);
end;
Procedure TForm1.PaintListOnPicture(Page:Integer); //根据页索引显示数据
var
i:Integer;
begin
Table1.First;
Table1.MoveBy((Page-1)*SHOWCOUNT);
//我不是很会用DataSet,上面定位Table1当前记录的语句你可以作改进
//改完记得告诉我
for i:=(Page-1)*SHOWCOUNT to Page*SHOWCOUNT do
begin
if Findcomponent('label'+IntToStr(i-(Page-1)*SHOWCOUNT+1)) is TLabel then
with Findcomponent('label'+IntToStr(i-(Page-1)*SHOWCOUNT+1)) as TLabel do
begin
if i>Table1.RecordCount-1 then Caption:=''
else begin
Caption:=Table1.FieldByName('MC').asstring;
Table1.Next;
end;
end;
end;
end ;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Table1.Active:=False;
end;
end.