Afterscroll的触发条件。(30分)

  • 主题发起人 主题发起人 千中元
  • 开始时间 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
Afterscroll,当然是"scroll "后触发了。可是
with query1 do
begin
close;
unprepare;
prepare;
open;
end;
query1.locate(.....)
用F7跟踪到open的时候,就跳到Afterscroll上去了!!。而要命的是,因为要在每次记录指针移动后进行统计计算,在Afterscroll 中也有
with query1 do
begin
close;
unprepare;
prepare;
open;
end;
locacte(.....)
就这样跳啊跳。。。再也出不去了:(
AfterScroll为什么在query1.open的时候触发呢?

 
Afterscroll中为什么又 open?
 
每次open都会引发 afterscroll事件.
 
因为向前,向后移动(scroll)后,要重新用locate进行定位,
而locate必须query1.open.
如果不用afterscroll,用户使用起来就有点不方便。
为什么open就会触发afterscroll事件呢?
 
那可完蛋了。。。。。
 
>>因为向前,向后移动(scroll)后,要重新用locate进行定位,
你还让不让用户移动?
不知你到底要实现什么样的功能?
 
open会调用AfterScroll事件. 因为open时内部record指针在不断变化以指向
刚读入的记录. 这个变化就触发AfterScroll啦
其实要用AfterScroll也简单:
with query1 do
begin
AfterScroll := nil;
....
Open;
AfterScroll := Query1AfterScroll;
end;
 
Afterscroll必须先赋nil么?
 
是不是这样调用:
query1afterscroll(nil)
 
后退
顶部