数据庫内容交替显示在一个Memo1中?(200分)

  • 主题发起人 主题发起人 xjdelphifan
  • 开始时间 开始时间
X

xjdelphifan

Unregistered / Unconfirmed
GUEST, unregistred user!

我需要将一个数据庫内容每隔6秒在一个
Memo1中,我非常想知道怎么写,但不
会写,因为我是一个菜鸟,help me ?
请帮帮我,希望能有源码。高分200求教。
还有一问,能否实现顺序、逆序、及随机
显示。
 
Timer实现定时。如果要实现顺序、逆序、及随机显示,可以定义序号字段,用相应的
算法实现选择显示
 
用延时delay(6000)
 
我写了这样一段,希望能将数据庫内容交替显示在一个edit1中,
可为什么运行起来时,按Button1时,edit1中只显示了庫中的第一
个单词就不动了。


unit Unit4;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, ExtCtrls;

type
TForm4 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
Edit1: TEdit;
Button1: TButton;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form4: TForm4;

implementation

{$R *.DFM}

procedure TForm4.Button1Click(Sender: TObject);
begin

Table1.DisableConstraints;//切断Table1与其他数据浏览部件的联系
Table1.First;
While not Table1.Eof do
begin
Edit1.Clear;//先清除edit1中原来的单词
Edit1.text :=Table1.FieldByName('Word').asstring;//显示
Table1.Next;//下一个
// delay(1000);
end;

Table1.EnableConstraints; //恢复Table1与其他数据浏览部件的联系

end;

procedure TForm4.Timer1Timer(Sender: TObject);
begin
//Table1.DisableConstraints;//切断Table1与其他数据浏览部件的联系
//Table1.First;
//While not Table1.Eof do
// begin
// Edit1.Clear;//先清除原来的单词
// Edit1.text :=Table1.FieldByName('Word').asstring;//显示
// Table1.Next;//下一个
// end;

//Table1.EnableConstraints; //恢复Table1与其他数据浏览部件的联系

end;

end.



 
另外,delphi 中有delay()这个函数吗?是不是想当然地把C的拿过来了,
我的delphi怎么不认呢?
问一下:你们一般是怎么延时的?
 
呵,我帮写一下吧!
procedure TForm4.Timer1Timer(Sender: TObject);
var mark:tbookmak;
begin
Table1.DisableConstraints;//切断Table1与其他数据浏览部件的联系
mark:=table1.getbookmark;
table1.gotobookmark(tt);
Table1.Next;
Edit1.Clear;//先清除原来的单词
Edit1.text :=Table1.FieldByName('Word').asstring;//显示
tt:=table1.getbookmark;
table1.gotobookmark(mark);
Table1.EnableConstraints; //恢复Table1与其他数据浏览部件的联系
end;
建议:在外面建立一个公共变量:tt:tbookmark;

Table1.DisableConstraints;//切断Table1与其他数据浏览部件的联//这个事件不要,这个就是造成你死机的原因,死循环呀
 
簡單一點

procedure TForm4.Timer1Timer(Sender: TObject);
begin
Table1.DisableConstraints;//切断Table1与其他数据浏览部件的联系
if table1.eof then table1.First else Table1.Next;
Edit1.Clear;//先清除原来的单词
Edit1.text :=Table1.FieldByName('Word').asstring;//显示
Table1.EnableConstraints; //恢复Table1与其他数据浏览部件的联系
end;

 
lqy:如果这样的话,其它数据控件的数据也要变化了!
 
看他的需要啦﹐如果是這樣的話
倒不如用一個query 看不滾動的數據﹐一個query 看滾動的數據
 
我的那样写法就是不会变的呀,我看的样子就是想其它数据感应件不变,否则就不需要
Table1.EnableConstraints;
Table1.disableConstraints;
你说是不是?
 
多人接受答案了。
 
:(,这是什么世道???????
 
呵呵﹐見多不怪﹐下次不理他就是了
 

Similar threads

后退
顶部