加急!!!!! 请各位朋友帮一下。(30分)

  • 主题发起人 主题发起人 ufolink
  • 开始时间 开始时间
U

ufolink

Unregistered / Unconfirmed
GUEST, unregistred user!
300 分问题:
我想用 Label 控件显示数据
共5个 Label 控件 显示字段 Name 上的数据。即:
Label1 显示记录 a
Label2 显示记录 b
Label3 显示记录 c
Label4 显示记录 d
Label5 显示记录 e

Label1 显示记录 ....n
Label2 显示记录 n+1
Label3 显示记录 n+2
Label4 显示记录 n+3
Label5 显示记录 n+4
.......
循环......
给人的感觉是 使用Dbgrid 控件显示5条记录的样子。

请各位朋友帮一下,给些提示。谢谢大家。
分少,不过我可以转分。


 
哎,进入煎熬等待,恐怕没人能贴贴子。


............................................................
[:(]
 
用dblabel不可以吗?
 
每一页只显示5条记录?每个记录只显示一个字段?
通过翻页方式更新显示的数据?如果是这样应该很简单啊

定义每页显示的记录数
const SHOWCOUNT = 5
定义当前页索引变量
var PageIndex:Integer
初始设置当前页为1
PageIndex:=1
通过页索引定位要显示的记录
假设数据存在Query1中,Query1的当前记录为第一条
用下面的循环将数据把记录按页显示在label上
for i:=(PageIndex-1)*SHOWCOUNT to PageIndex*SHOWCOUNT do
begin
if Findcomponent('label'+IntToStr(i:=(PageIndex-1)*SHOWCOUNT +1)) is TLabel then
with Findcomponent('label'+IntToStr(i:=(PageIndex-1)*SHOWCOUNT +1)) as TLabel do
begin
if i>query1.recordcount-1 then Caption:=''
else Caption:=query1.fieldbyname('NAME').asstring;
end;
query1.next;
end;

 
DBCtrlGrid1.datasource->datasource,Rowcount->5,再在上面放个dbtext,其他的属性改
改就能达到效果
 
to 楼上的两位朋友:
单条浏览呢?一条一条的上或下滚动。
刁么能贴个示例吗?
 
在当前页浏览当前页显示的5条记录时,不需要改变显示的数据啊
你可以对显示当前记录的label赋特别的字体颜色以标识,
上一条下一条时只需改变label的字体颜色就行了

关于需要的翻页的时候只需修改我上面程序中PageIndex的值
然后调用循环重新显示数据就行了
当然还需要一些细节的控制,比如说翻页后和如何定位当前记录
我不是很清楚在query里怎么按索引定位记录,我以前作的一个程序是
把数据全部取出放到listview里面,然后在根据页索引(PageIndex)把数据显示
到几个label上,其实很简单的,自己多尝试一下吧
 
to siyan:
你的那段代码好象有点毛病。
能否写个事列?有5个 Label ,两个按钮(上下翻页)1个Table ,1个DataSource,帖给我,将不胜感激。

给你加大分如何,我真的很急。
谢谢了。
 
!!!!!!!@#$%^&)))))))*^%$#
 
这样,那我试一下!
 
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.
 
to siyan:
不胜感激,谢谢。
点击我的名字,进入其他待答问题,灌水,给你加分。
 
后退
顶部