你可以放個TIME吧,再設置個全局變量,當移動時變量為0,加到5時則執行主從關係,你可以在主數據集的 AfterScroll 下寫:
with cds從表 do
begin
if Active then
begin
Filter := 'KEY = '''+cds主表.FieldByName('KEY').AsString+''' ';
Filtered := true;
end;
end;
放一个Timer,在其OnTimer属性中写打开从表的代码,设置其Interval为500
begin
Query2.Open;
Timer1.Enabled:=false;
end;
然后在Query的AfterScroll中写代码:
begin
Timer1.Enabled:=false;
Timer1.Enabled:=True;
end;
谢谢
另外附件一点:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer ;
begin
label1.Caption := '开始时间:' + TimeToStr(Time);
for i := 0 to 1000000 do
begin
Timer1.Enabled := false ;
Timer1.Enabled := true ;
end ;
label2.Caption := '结束时间:' + TimeToStr(Time);
end;
这个代码大概需要两秒多,效率还可以。
哪位还有更快一点的Timer组件吗?