在Memo中使用SetSel时,如果此时设置范围不在可视区域内,会自动滚动到可视区域。怎样才能不让其滚动。

解决方案 »

  1.   

    倒过来选择能符合要求吗?
    procedure TForm1.Button5Click(Sender: TObject);
    begin
     with Memo1 do
      begin
        Lines.LoadFromFile('G:\ff.txt');
        ScrollBars:=ssboth;
        SetFocus;
        SelStart:=200;
        SelLength:=-195;
      end;
    end;
      

  2.   

    with Memo1 do
      begin
      SetFocus;
      SendMessage(Handle, EM_SETSEL, 50, 50);
        SendMessage(Handle, EM_GETSEL, Longint(50), Longint(54));
        SendMessage(Handle, EM_SETSEL, 50, 54);  end;
    可以工作,自己看看tcustomedit里的代码。
      

  3.   

    多余了
    with memo1 do
    begin
    SetFocus;
    SendMessage(Handle, EM_SETSEL, 500, 540);
    end;
    即可实现
      

  4.   

    我的答案怎么不对?如果问题说得不清楚就重新说嘛。
    在SendMessage(Handle, EM_SETSEL, 500, 540);中,500时开始的位置,540是选择结束的位置。
      

  5.   

    对idilent老兄我还是心存感激的。必竞是用心回答问题了。虽然不对吧。但也难怪了。我曾为此而查了中外的许多资料,像这些方法我都试过的。没有可行的。也许是我运气不好吧。