小弟在memo控件的ONKEYDOWN中设置了一个热键,想用ctrl+enter来实现memo1的clear,并且使光标回到最开始的地方,可是在这里出了个问题,就是clear方法调用之后,memo里面的文本是没了,可是光标却到了第二行的最前面,估计是我按热键以后,其实在内存中还留了一个回车键,所以会这样,我记得在c中也有这样的情况,但是c中可以用fflush函数来搞定,不知道在delphi中,怎么解决这个问题,希望得到大家的解答,我先谢谢了。

解决方案 »

  1.   

    if (ssCtrl in shift ) and #13 then
    begin
      Memo1.Lines.Clear;
      Memo1.SetFocus;
    end;
      

  2.   

    if (ssCtrl in shift ) and (key= VK_RETURN) then
    ...
      

  3.   

    楼上的不错!
    if (ssCtrl in shift ) and (key= VK_RETURN) then
       begin
         Memo1.Lines.Clear;
         Memo1.SetFocus;
       end;
      

  4.   

    可能是我没说清楚,我的程序跟你们的一样的,我说的是执行了之后吧,那个光标的位置倒了第二行,又什么办法可以使它在第一行的顶头位置。可能由于热键用了enter,所以跳倒了第二行,大家可以试试,执行上面的程序,就会发现我所说的问题了。
      

  5.   

    if (ssCtrl in shift ) and (key= VK_RETURN) then
       begin
         Memo1.Lines.Clear;
         Memo1.SetFocus;
         key:=#0;
       end;