关于书签(BookMark)操作;       书签操作主要用于在表中快速地定位记录指针,在应用程序中常常要保存记录指针所在的位置,在进行其他处理之后,希望能快速地返回到先前指针所在的位置,此时,使用书签将显得特别有用。有关书签操作,Delphi提供了三个方法,它们是:

●   GetBookMark

●   GotoBookMark

●   FreeBokMark

这三个方法一般都是在一起使用,GetBookMark方法返回一个TBookMark类型的变量,该变量包含着指向当前记录的指针,GotoMark方法用于快速地将记录指针定位到具有书签的记录处。FreeBookmark方法是与GetBookMark方法相反的操作,它释放书签标志。下面的程序代码阐述了书签操作的一般方法:

BookMark   :   TBookMark;

BookMark   :=   Table1.GetBookMark;   {对当前记录作书签标志}

Table1.DisableControls;   {切断Table1与数据察觉部件的联系...下面有其使用解说}

Table.First

While   Not   EOF   Do   {对表中全部记录进行其他处理}       begin  
      Tabel1.Next;

end;   
Tabel1.GotoBookMark(BookMark)

Table1.EnableControls;   {重新定位记录指针回到原来的位置}

Tabel1.FreeBookMark(BookMark);   {删除书签BookMark标志} 

-- - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - -

DisableControls方法是在程序修改或后台有刷 新记录的时候切断数据组件,如TTABLE、ADOQUERY等等与组件数据源的联系。如果没有切断,数据源中只要一有数据的改动,尤其是批量改动的话,每一笔的改动都会更新窗口中数据浏览组件的显示,这样会急剧减慢处理过程而且浪费时间。EnableControls的作用相反,用来恢复TTABLE等组件与DATASOURCE的联系,并促使数据浏览组件更新显示。       这两个函数主要阻止组件感应显示,以加快语句执行速度。 比如,用大量的循环的时候,最好用他们。

1. 数据集的EnableControls, DisableControls方法成对使用的时候, 如果中间的代码可能会导至出错的话必须用try..finaly DisableControls; end; 否则会导致数据感知不控制不可使用;

2. 在遍历数据或Filter大数据的时候的要用DataSet的EnableControls与DisabbleControls, 否则窗体上的数据感知控件会闪烁.       enablecontrols,disablecontrols是防止因数据源的改动而造成界面的闪动!在你需要刷新数据时可以调这两个函数,但建议你把它写在 try...finally语句块中!   
如:   try         adoQuery1.disablecontrols;         adoQuery1.close;         adoQuery1.open;   finally         adoQuery1.enablecontrols;   end; TQuery 的EnableControls 和DisableControls 方法都是继承自TDataSet 类的。由于TTable 和TQuery 都是TDataSet 的派生类,所以它们都有以上这两个方法。

DELPHI BOOKMARK使用的更多相关文章

  1. Delphi CxGrid 汇总(3)

    列   解决:       <aColumn>.GroupIndex   :=   -1;         <aColumn>.Visible   :=   True; *** ...

  2. delphi 保存网页MHT

    delphi 保存网页MHT   uses ADODB_TLB, CDO_TLB, ComObj,MSHTML;{$R *.dfm}{能把网页如 WWW.QQ.COM保存为一个单文件 .MHT但不能把 ...

  3. Delphi资源大全

    A curated list of awesome Delphi frameworks, libraries, resources, and shiny things. Inspired by awe ...

  4. Awesome Delphi

    Awesome Delphi  A curated list of awesome Delphi frameworks, libraries, resources, and shiny things. ...

  5. delphi DBgrid应用大全

    Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一.但是 DBGrid 缺省的外观未免显得单调和缺乏创意.其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid 外观的目 ...

  6. Delphi 10.3.1来了

    10.3.1发布了,这个版本可以独自安装,是对Delphi 10.3 Rio,C ++ Builder 10.3 Rio和RAD Studio 10.3 Rio的更新.如果安装了2018年11月发布的 ...

  7. Delphi实现DBGrid全选和反选功能

    Delphi实现Dbgrid全选和反选.清除全选的功能,不管是在Delphi下,还是在WEB开发中,这种功能都是很实用的,是进行数据批量操作的基础.本模块就是实现了为Delphi的DBGrid数据列表 ...

  8. delphi RAD Studio新版本及路线图 及官方网站 官方 版本发布时间

    delphi  RAD Studio Berlin 10.1 主要是FireMonkey 移动开发的改动,VCL确实没有多大变化. http://docwiki.embarcadero.com/RAD ...

  9. Delphi Dataset CurValue

    TField.CurValue Property Represents the current value of the field component including changes made ...

随机推荐

  1. lr中常用函数以str开头函数

    对各函数的定义: strcat( ):添加一个字符串到另一个字符串的末尾.strncat  (拼接指定长度字符串)                                 --粘贴操作    ...

  2. 小程序开发-10-新版Music组件、组件通信与wxss样式复用

    加入缓存提升用户体验 思路:先从缓存中寻找数据或者从服务器中获取数据写入缓存中 优点:减少网络访问次数,提升用户体验 解决缓存带来的问题 问题:比如原先是不喜欢的在点击喜欢的时候,跳到下一期刊后返回来 ...

  3. Java:多线程中的volatile

    一.为什么使用volatile 首先,通过一段简单的代码来理解为什么要使用volatile: public class RunThread extends Thread{ private boolea ...

  4. 6、Java并发编程:volatile关键字解析

    Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在 ...

  5. oracle 建立一个视图,然后授权其他用户访问

    grant select on V_LIC_ENTRY_HZ_STATUS to ielicr2013; create or replace view dept_sum_vw (name,minsal ...

  6. Oracle TDE的学习

    TDE的开启和关闭 设置wallet目录,在参数文件sqlnet.ora中,按照下面的格式加入信息 # Oracle Advanced Security Transparent Data Encryp ...

  7. 感知机(perceptron)

  8. Java面试知多少

    1.谈谈&和&&的区别  1.&&是短路判断,在与其他语句一起判断时,第一个条件为假就不判断剩下的条件:   & 需要判断所有的条件  2.&是 ...

  9. POJ 3304 Segments(线的相交判断)

    Description Given n segments in the two dimensional space, write a program, which determines if ther ...

  10. Samba共享权限分配

    案例推荐:http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html 本文不详细介绍全部参数,只介绍完成需求的一些参数. 需求: 1,账 ...