procedure TForm1.Memo1Change(Sender: TObject);
var
ContentHeight: Integer;
begin
Canvas.Font := Memo1.Font; //这什么意思.canvas是干什么用的.为什么给它赋值
ContentHeight := Canvas.TextHeight('好'); //这句完全不明白.还有那个('好')又是个什么东西
ContentHeight := (Memo1.Lines.Count+1) * ContentHeight;//这句话有什么意义啊
if ContentHeight < Memo1.Height then //这里下面我知道.判断是否超出memo的高度
begin
Memo1.ScrollBars := ssNone;
end
else
begin
Memo1.ScrollBars := ssVertical;
end;
end;
end.好人做到底.给我个详细解答
var
ContentHeight: Integer;
begin
Canvas.Font := Memo1.Font; //这什么意思.canvas是干什么用的.为什么给它赋值
ContentHeight := Canvas.TextHeight('好'); //这句完全不明白.还有那个('好')又是个什么东西
ContentHeight := (Memo1.Lines.Count+1) * ContentHeight;//这句话有什么意义啊
if ContentHeight < Memo1.Height then //这里下面我知道.判断是否超出memo的高度
begin
Memo1.ScrollBars := ssNone;
end
else
begin
Memo1.ScrollBars := ssVertical;
end;
end;
end.好人做到底.给我个详细解答
解决方案 »
- delphi的问题
- 难点:delphi调用dll问题
- 请问我后加的image1组件为什么会跑到别的控件下面,怎么把它调到上面来???
- 表A有一个字段ID,是自增的,在插入记录后如何获得插入记录的ID号。
- 用DELPHI这么多年,连这个我都不会啊!大家给看看吧!
- interbase 如何改成access???急啊!在线等待!立即给分!!
- 三层DCOM结构,SQL Server2000数据库,为何新增记录可以保存,而修改记录则保存不了?
- 很简单的问题,进来看看
- 请大家伙看一看这个问题!!!!!!
- ★★★最后一搏,提供源代码,求高手救我!!
- 想把微信公众平台接口转成DELPHI的,那位大侠给个思路
- WAP浏览器
var
ContentHeight: Integer;
begin
Canvas.Font := Memo1.Font; //canvas是memo1控件的画布,memo1显示出的东西都是画在这上面的。
ContentHeight := Canvas.TextHeight('好'); //这句是得到单独一行文字的高度,"好"字没意义,只是随便用一字来取得当前字体下,一行文字的高度,你可以换成其它字。
ContentHeight := (Memo1.Lines.Count+1) * ContentHeight;//这句话得到memo1中所有行的文字高度
if ContentHeight < Memo1.Height then //这里下面我知道.判断是否超出memo的高度
begin
Memo1.ScrollBars := ssNone;
end
else
begin
Memo1.ScrollBars := ssVertical;
end;
end;
end.
这句还是不理解.为什么Memo1.Lines.Count+1 要加1.还要剩 ContentHeight
在乘法没有执行前,ContentHeight是每行的高度
而memo1中,有Memo1.Lines.Count这么多行,所以总高度应该是(Memo1.Lines.Count+1) * ContentHeight;+1应该是为了让memo1提前一行就开始有滚动条。你把+1去掉也没关系,显示上有点不同。
ssNone:不出现滚动条。即使超出范围也不出现。(界面上不显示滚动条部分)
ssVertical:当超出Memo高度时出现滚动条。(界面上始终显示滚动条部分).
所以楼主的意思是两者的综合体,超出的时候可以显示,但是没超出来就不能显示滚动条部分!但是Memo默认的属性要么始终显示,要么都不显示。这就有点死板了!