有没有办法在禁用的TMemo组件中启用滚动条?即使控件的Enabled属性设置为False,我也希望用户可以滚动内容。
我知道可能有ReadOnly和颜色更改之类的解决方法,就像处于禁用状态一样,但这会对我很有帮助。
提前感谢:)
这不是完美的方法,但它可以工作: 在Memo旁边使用ScrollBar组件。
procedure TForm9.FormCreate(Sender: TObject);
begin
Memo1.ScrollBars := ssNone;
ScrollBar1.Min := 0;
ScrollBar1.Max := Memo1.Lines.Count div (Memo1.Height div 13);//13 is height of a line in memo
end;
procedure TForm9.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
begin
if ScrollCode in [scPageDown, scLineDown] then
SendMessage(Memo1.Handle, WM_VSCROLL, SB_PAGEDOWN,0)
else if ScrollCode in [scPageUp, scLineUp] then
SendMessage(Memo1.Handle, WM_VSCROLL, SB_PAGEUP,0);
end;
嗯,这不完全是你想要的,但效果是一样的。看看这篇文章,其中实现了一个WinControls的ViewOnly属性,在过去的几年中我发现它非常有用。链接
有一种方法。
将整个TMemo放置在TScrollBox内。
当您填充备忘录文本时,调整高度和宽度以适应文本的大小(这是另一个问题,但我相信可以完成)。