很久不用RichEdit,居然连这个也忘了。记得好像是要发送一个消息。

解决方案 »

  1.   

    方法1: richedit1.Lines.Delete(LineNo);//删除某行
      方法2:
      richedit1.SelStart:=5;
      richedit1.SelLength:=30;
      richedit1.SetFocus;
      richedit1.ClearSelection;
    也可以删除选中的字符
      

  2.   

    复人: zhangguanshi(石头一块) 
    说很详细了
      

  3.   

    Sorry,我说得不是太清楚。
    我是要删除选中的文字,直接用RichEdit1.SelText:='';虽然可以删除,但没有选中时无法删除光标右侧字符。我记得应该是发一个模拟Del键的消息。
      

  4.   

    这样如何?没有选中时
    SelLength:=1;
    SelText:='';http://lysoft.7u7.net
      

  5.   

    用这个可以啦
    var H : THandle;
        ClassName : Array[0..255] of Char;
    begin
       H := FindWindow(nil, 'form1');
       if H = 0 then begin
          ShowMessage('Not Found');
          exit;
       end;
    var H : THandle;
        ClassName : Array[0..255] of Char;
    begin
       H := FindWindow(nil, 'SUN');
       if H = 0 then begin
          ShowMessage('Not Found');
          exit;
       end;
       //H := FindWindowEx(H, 0, 'RICHEdit', nil);
       if H <> NULL then begin
          BringWindowToTop(H);
          keybd_event(VK_DELETE, 0, 0, 0);
          keybd_event(VK_DELETE, 0, KEYEVENTF_KEYUP, 0);
       end;   if H <> NULL then begin
          BringWindowToTop(H);
          keybd_event(VK_DELETE, 0, 0, 0);
          keybd_event(VK_DELETE, 0, KEYEVENTF_KEYUP, 0);
       end;
      

  6.   

    重复了一段if H <> NULL then begin
          BringWindowToTop(H);
          keybd_event(VK_DELETE, 0, 0, 0);
          keybd_event(VK_DELETE, 0, KEYEVENTF_KEYUP, 0);
       end;
    自己改改吧