项目中碰到此问题,之前一直没留意,研究一番用上,以做备忘。参考其它解决方法,不尽完美,自试之,达到效果。

直上代码:

type
TMemo = class(StdCtrls.TMemo)
protected
procedure Change; override;
end;
{ TMemo }

procedure TMemo.Change;
var
lc, lh: Integer;
cvs: TControlCanvas;
begin
inherited; cvs := TControlCanvas.Create;
try
cvs.Control := Self;
cvs.Font.Assign(Font);
lh := cvs.TextHeight('z') + ;
finally
cvs.Free;
end; lc := Lines.Count;
if (Text <> '') and (Text[Length(Text)] = #10) then
Inc(lc);
if lc * lh > Height then
begin
if ScrollBars = ssNone then
begin
ScrollBars := ssVertical;
Perform(WM_VSCROLL, SB_BOTTOM, );
end;
end
else if ScrollBars = ssVertical then
ScrollBars := ssNone;
end;

效果如图示:

Delphi: TMemo垂直滚动条自动显示的更多相关文章

  1. MFC对话框程序EDIT类控件的自动换行,垂直滚动条自动下移

    1.新建一个Edit Control,将其Multiline属性设置为True,Auto HScroll属性设置False,这样就可以实现每一行填满后自动换行了.   2.再将Vetrical Scr ...

  2. 【转】MFC编辑框自动换行,垂直滚动条自动下移

    1.新建一个编辑框控件(Edit Control),将其多行(Multiline)前面打勾(属性设置为True),Auto HScroll前面的勾去掉(属性设置False),这样就可以实现每一行填满后 ...

  3. 【Visual Studio】MFC编辑框自动换行,垂直滚动条自动下移(转)

    原文转自 http://blog.csdn.net/wu_lai_314/article/details/8317395 1.新建一个编辑框控件(Edit Control),将其多行(Multilin ...

  4. ListCtrl中垂直滚动条自动滚动

    在用ListCtrl控件时,当向该控件中添加数据时,怎么样可以把滚动条时时滚动到最后一行,这样便可看到添加的新数据内容 1 加完数据后执行 EnsureVisible(最后一行索引) 可以保证滚动到最 ...

  5. Axure RP 8 实现 圆角文本框 圆角带筛选的下拉列表框 可自动显示滚动条

    刚开始用Axure 会发现 Axure 元件库并不是很齐全,很多元件需要自己想办法解决 或者去网上去找.其实个人建议网上有现成的元件可以就下载就不必花时间去折腾.除非你也想练练手,原型这种东西除非高保 ...

  6. java中如何将JScrollPane的垂直滚动条自动移动到最下端

    JPanel QQP = new JPanel(); JScrollPane jsp = new JScrollPane(QQP); JScrollBar jsb = jsp.getVerticalS ...

  7. JTextPane或JTextPane设置了滚动条,文本增加后,滚动条自动下滑,追加文本的例子

    http://zhizaibide1987.iteye.com/blog/1012955 https://zhidao.baidu.com/question/2116908942184706107.h ...

  8. Delphi TMemo 可以显示、编辑多行文本

    多行编辑框组件(TMemo)TMemo组件可以显示.编辑多行文本,是一个标准的Windows多行编辑组件.对一些比较多的文本内容可以利用TMemo组件来显示.编辑. 1.TMemo组件的典型用法 TM ...

  9. iscroll5 滚动条根据内容高度自动显示隐藏及强制横屏时方向错位

    横竖屏方向错位: move: function (e) { if ( !this.enabled || utils.eventType[e.type] !== this.initiated ) { r ...

随机推荐

  1. centos磁盘空间重新分配

    将/home目录压缩一部分空间到/ ref: https://serverfault.com/a/811124/434124 https://stackoverflow.com/a/19969471/ ...

  2. JSP基本_JSPの構成要素、アクション、ディレクティブ

    1.JSPの構成要素[コア要素] JSP文法のコアとなる要素で.サーブレットソースに変換される. ・宣言: <%! - %> (宣言で指定した変数は.Javaの「フィールド変数」になる.ス ...

  3. (FireDAC) 连接定义

     Defining Connection (FireDAC) 连接定义就是应用程序使用特定的FireDAC驱动连接数据库的参数集合.相当于BDE的别名,ADO的UDL,或者ODBC的DSN. For ...

  4. 简洁的实现ls-l命令

    现在我们来简洁的实现命令:了解一下相关知识: 我们使用掩码可以很明确的得出文件的每一种信息.关于掩码,上图中的S_IRUSR等均为掩码.我们来看看函数getpwuid,原型:struct passwd ...

  5. linux下给PHP安装拓展

    要先完成了上一篇文章的phpize的操作,并激活它才能下一步. 下载拓展,在http://pecl.php.net/这个网站下载,其他的有可能不成功,我之前还很纳闷phpize已经调试通过了,但是切换 ...

  6. 新版openvpn for pc使用旧证书问题的处理

    在client.ovpn中增加一句: tls-cipher "DEFAULT:@SECLEVEL=0"

  7. week5 04 npm run build

    上期 我们完成了nodeserver的创建 用的是express genrealtor那个工具 我们在server端执行 起来了 然后我们改一下 删一下 我们觉着暂时没用的东西 首先去app.js程序 ...

  8. C++ CTreeview的checkbox使用方法

    1. 消息事件   (1)鼠标点击当前ITEM的CHECKBOX:引发NM_CLICK事件并传递TVHT_ONITEMSTATEICON.   (2)鼠标点击当前ITEM的TEXT:引发NM_CLIC ...

  9. Windows Server 2008 R2微软官方下载

    注意:Windows Server 2008 R2仅有64位版本. 以下下载地址为Windows Server 2008 R2 RTM Build 7600.16385的评估版本,此版本可免费试用18 ...

  10. Linux下开启计划任务日志

    crontab记录日志 修改rsyslog vim /etc/rsyslog.d/50-default.conf (我的是root用户) 搜索cron 把如下行之前的注释"#"去掉 ...