我有一个查询操作要花20秒的时间,我想在这20秒的时间使程序只做查询操作而不响应其他操作,因为用户可能等得不耐烦,多次点击查询,这样系统可能会响应不过来。说得清楚点就是查询过程中要屏蔽鼠标,键盘输入。请问应该加入什么语句?

解决方案 »

  1.   

    屏蔽鼠标,键盘输入可能做得过份了一点,如果用户在等待查询的过程中,想切换到程序中的另一个界面,那不就难办了。可以设置一个unit级的boolean变量,QueryIsNeeded。当查询条件被更改时,该变量被置为True;在执行查询过程中,先判断是否真要执行操作;执行查询前,把QueryIsNeeded置为False。这样就可以避免重复执行无谓的查询了。开始查询时,记得改变鼠标的图标,以提示用户正在查询;
    如果还不明显,那就在界面中再加上个Label,font用红字大号,强烈提示用户不要妄动;
    做好用户的使用培训,让用户知道这儿要花点时间;
    还不行?只有让这个机盲下岗了(或者你下岗--谁让你的程序这么差,执行查询要这么久的时间啊)。
      

  2.   

    用disableControl,或者弹出提示‘正在查询’的窗口,并让鼠标只能停留在此窗体范围内。
      

  3.   

    你可以设置下属性啊...查询的时候设置Enabled := False