delphi循环语句问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:25:39
procedure TForm3.FormCreate(Sender: TObject);
begin
with uup_query do
begin
close;
sql.Clear;
sql.Add('select * from stu_info where del_id=false');
open;
first;
while not Eof do
begin
edit1.Text:=fieldbyname('stu_name').AsString;
edit2.Text:=fieldbyname('stu_age').AsString;
edit3.Text:=fieldbyname('stu_sex').AsString;
edit4.Text:=fieldbyname('stu_tel').AsString;
edit5.Text:=fieldbyname('stu_address').AsString;
next;
end;
end;
end;

只能停在一条.不动了.
我不要显示最后一条.
我要我选哪一条他就把哪条的值给我的这些EDIT.

我的意思是怎么不让他显示到最后一条.
选完一条.就可以到下一条呢.

没有意义.那应该如何来做
不让他一下到最后一条记录.而是一条条的走呢.

不太明白你这个循环有什么意义,这段程序运行的最后结果是,你的edit1到edit5的text里是最后一条数据的值,即软显示最后一条么,直接就把uup_query的指针定位到last么就行了,何必再做一个循环呢?
把循环结构去掉,只保存里面的循环体
while not Eof do
begin
edit1.Text:=fieldbyname('stu_name').AsString;
edit2.Text:=fieldbyname('stu_age').AsString;
edit3.Text:=fieldbyname('stu_sex').AsString;
edit4.Text:=fieldbyname('stu_tel').AsString;
edit5.Text:=fieldbyname('stu_address').AsString;
next;
end;
改成
if recordcount>0 then
begin
edit1.Text:=fieldbyname('stu_name').AsString;
edit2.Text:=fieldbyname('stu_age').AsString;
edit3.Text:=fieldbyname('stu_sex').AsString;
edit4.Text:=fieldbyname('stu_tel').AsString;
edit5.Text:=fieldbyname('stu_address').AsString;
next;
end;
然后新建一个按钮,在它的click事件里加入
with uup_query do
begin
if not eof then
begin
edit1.Text:=fieldby