《请教》怎么控制memo的下拉

imfzp 2005-01-27 08:15:43
控件:edit1,memo1
memo1有100行
当edit1取值50的时候,怎么让memo1自动下拉到第50行
...全文
172 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
imfzp 2005-01-28
感谢
回复
chinaandys 2005-01-28
up
回复
Kevin_Lmx 2005-01-28
不好意思,昨天晚上太晚了没有测试就想当然了……
这样应该可以的……
-----------------------------------------------
var
linenum :Integer; //要跳往的行号
begin
RichEdit1.Perform(EM_LINESCROLL,0,-RichEdit1.Lines.Count);
RichEdit1.Perform(EM_LINESCROLL,0,linenum-1);
RichEdit1.SetFocus;
end;
回复
goddevilor 2005-01-28
顶 Kevin_Lmx.
回复
imfzp 2005-01-28
无效果,不会动
回复
Kevin_Lmx 2005-01-27
RichEdit的,把 WM_VSCROLL 改为 EM_LINESCROLL :
SendMessage(RichEdit1.Handle,EM_LINESCROLL,MakeWParam(SB_THUMBPOSITION,linenum-1),0);
回复
imfzp 2005-01-27
十分感谢,memo可以了
我还有一个richedit,照样套用就找不准位置
如果用在richedit上这一句该怎么改呢

回复
Kevin_Lmx 2005-01-27
有点小错误,改一改,只要这一句就OK了,刚才没测试好……
BS一下自己 -_-#

---------------
var
linenum :Integer; //要跳往的行号
begin
linenum := 50;
SendMessage(Memo1.Handle,WM_VSCROLL,MakeWParam(SB_THUMBPOSITION,linenum-1),0);
end;
回复
Kevin_Lmx 2005-01-27
Memo1.SelStart := Memo1.Perform(EM_LINEINDEX, 50, 0);
Memo1.SetFocus;
SendMessage(Memo1.Handle,WM_VSCROLL,MakeWParam(SB_THUMBPOSITION,50),0);
回复
imfzp 2005-01-27
不一定需要用memo
synedit下载好了
怎么安装和使用
回复
Rural_Boy 2005-01-27
一定要用Memo吗?能够实现,就是比较困难。要写很多代码。

你可以使用象 SynEdit 这样的三方附源码控件。里面不仅有到达任意行数的函数还有

让该行置可视面积中间的函数。
回复
imfzp 2005-01-27
没有用阿,光标移动过去了
但是不会自动下拉阿
memo下拉框不会动,还是要手动下拉
回复
VeryOldMan 2005-01-27
With Memo1 do
SelStart := Perform(EM_LINEINDEX, Line, 0) ;
回复
相关推荐
发帖
语言基础/算法/系统设计
创建于2007-08-02

1.6w+

社区成员

Delphi 语言基础/算法/系统设计
申请成为版主
帖子事件
创建了帖子
2005-01-27 08:15
社区公告
暂无公告