问题表现如下:当SynEdit1.lines不为空时,执行SynEdit1.clear,总要触发桌面的刷新,使用lines.beginupdate /endupdate也没有用?何故?  程序如下: 一个窗体(form)上放置一个TSynedit编辑框SynMemo1、一个RichEdit编辑框Richedit1,两个按钮Btn1,bBtn2。
按钮1OnClik代码如下:
  SynMemo1.Lines.Add('Test is test for Desktop flash');
  SynMemo1.Clear;
按钮2OnClik代码如下:
  RichEdit1.Lines.Add('Test is test for Desktop flash');
  RichEdit1.Clear ;
按钮2不会引起任何反应,按钮1总要触发桌面图标刷新?  {//================
Debug之,好像时执行到以下语句时触发:
     LockWindowUpdate(0);     //姚乔峰同志修改 使用windows锁定函数
//===================================}{ 查阅LockWindowUpdate结果如下:
说明 
锁定指定窗口,禁止它更新。同时只能有一个窗口处于锁定状态 
返回值 
Long,非零表示成功,零表示失败(比如另外已有一个窗口锁定) 
参数表 
参数 类型及说明 
hwndLock Long,欲锁定窗口的句柄。如设为零,则对窗口解锁 
注解 
windows会跟踪锁定窗口的区域,并会在窗口解锁后重画它们。可用GetDCEx获得一个特殊的设备场景,令其与锁定窗口协同工作,从而描绘一个加锁的窗口。这种技术的一个应用场合是创建跟踪矩形(比如用于改变窗口大小的矩形)。  
}

解决方案 »

  1.   


      来CSDN混的真的都是象俺这样的水货吗?
      

  2.   

    你不一定非要使用clear呀,你可以使用synedit.lines.text:='';一样可以满足要求.....
      

  3.   

    你加群8838343,这是我和bootini建立得synedit得专门讨论组,共享里放了几个demo,你可以参考.
      

  4.   

    非常感谢senfore(来而不往非礼也!) :)最近我们调整了一批干部,特别忙,没及时回复,万望见谅。
      您说得方法很好,不过用synedit.lines.loadfromstream也会如此啊,俺主要是想搞解决这个问题,而不是规避这个问题。  8838343是什么意思?QQ群吗?俺自打2000年以来就没用过QQ了,平时见面的人都招呼不过来,别说网友了,通过CSDN、大富翁照样可以和同好交流嘛^_^。