请问如何在RichEdit控件中实现光标不能通过键盘上的方向键或鼠标移动,而只能通过
增加或减少其中的字符来移动(也就是RichEdit中的字符打到那儿光标就跟到哪儿,不能将光标移动到别处),第二个问题是如何在RichEdit中实现不能选取文字,(一般richedit中的文字可以通过鼠标拖动或键盘上的Shift+方向键来选取),请问如何实现
不可选取文字。(当然,richedit属性不能设为ReadOnly,因为我还要在其中输入字符。)我是Delphi初学者,还望各位高手多多照顾,谢谢!

解决方案 »

  1.   

    分别设置下面的四个RichEdit事件,
    OnContexPopup、OnKeyDown、OnMouseDown、OnMouseMovet:procedure TForm1.RichEdit1ContextPopup(Sender: TObject; MousePos: TPoint;
      var Handled: Boolean);
    begin
      // 禁止右键菜单
      Handled := True;
    end;procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      // 禁止方向键及Shift+方向键
      if Key in [VK_LEFT,VK_UP,VK_RIGHT,VK_DOWN] then Key := 0;
    end;procedure TForm1.RichEdit1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      // 禁止用鼠标点击到其它位置
      RichEdit1.SelStart := -1;
    end;procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      // 禁止用鼠标拖动选取
      if ssLeft in Shift then begin
        RichEdit1.SelStart := -1;
        RichEdit1.SelLength := 0;
      end;
    end;
      

  2.   

    问题解决了,十分感谢sysu网友!