怎么实现memo分页及翻页的有关问题
如何实现memo分页及翻页的问题?
为客户开发触摸屏的程序,需要从数据表中取得的文字内容放到memo中,因为使用滚动条客户提出不方便,要求分页显示及翻页功能,或者是利用触摸实现上移及下移文字内容,不知道应该怎么实现呢?
------解决思路----------------------
触摸的,可以拦截鼠标消息进行模拟滑动处理,以前做过
------解决思路----------------------
RichEdit当然比Memo好。它可以类型Word文本格式。
------解决思路----------------------
建议一:用ListBox,每按一次按钮清空原有窗口并载入重新载入几行。
建议二:用Button模拟PageUp和PageDown按键或方向键事件,实现虚拟键盘的功能。
至于虚拟键盘(SendKey)的实现,论坛里找一下就有了。
------解决思路----------------------
还是先把文本保存在StringList里, 分页的时候Memo展示StringList里的几行即可
------解决思路----------------------
MEMO中很头痛的事情就是不知道光标所在的行和列,所以做分页必须知道光标的位置:
var
xRow,yCol,Num,CharsLine:longint;
begin
Num:=SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0);
CharsLine:=SendMessage(Memo1.Handle,EM_LINEINDEX,Num,0);
xRow:=Num+1;//当前行
yCol:=(Memo1.SelStart-CharsLine)+1;//当前列
用SendMessage这个函数可以得知MEMO的行列,希望对你有帮助
------解决思路----------------------
使用RichEdit,它可能知道光标的位置。
可能通过模拟光标的上下移动,实现窗口的滚动。
------解决思路----------------------
可行
------解决思路----------------------
如果每行等高的,根据页数计算该显示的哪些行
从数据源(Tstringlist)里复制这些行到Memo显示
------解决思路----------------------
用Xe7 吧 我在网上看到实现翻页的例子 还是动画模式的
------解决思路----------------------
如果要用MEMO,可以参考前面说的,点“上一页:,”后一页“时把MEMO内容清除,加载对应的内容就行了,可以考虑用第三方的控件TMS中的控件来实现,对触屏的支持很好
为客户开发触摸屏的程序,需要从数据表中取得的文字内容放到memo中,因为使用滚动条客户提出不方便,要求分页显示及翻页功能,或者是利用触摸实现上移及下移文字内容,不知道应该怎么实现呢?
------解决思路----------------------
触摸的,可以拦截鼠标消息进行模拟滑动处理,以前做过
------解决思路----------------------
RichEdit当然比Memo好。它可以类型Word文本格式。
------解决思路----------------------
建议一:用ListBox,每按一次按钮清空原有窗口并载入重新载入几行。
建议二:用Button模拟PageUp和PageDown按键或方向键事件,实现虚拟键盘的功能。
至于虚拟键盘(SendKey)的实现,论坛里找一下就有了。
------解决思路----------------------
还是先把文本保存在StringList里, 分页的时候Memo展示StringList里的几行即可
------解决思路----------------------
MEMO中很头痛的事情就是不知道光标所在的行和列,所以做分页必须知道光标的位置:
var
xRow,yCol,Num,CharsLine:longint;
begin
Num:=SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0);
CharsLine:=SendMessage(Memo1.Handle,EM_LINEINDEX,Num,0);
xRow:=Num+1;//当前行
yCol:=(Memo1.SelStart-CharsLine)+1;//当前列
用SendMessage这个函数可以得知MEMO的行列,希望对你有帮助
------解决思路----------------------
使用RichEdit,它可能知道光标的位置。
可能通过模拟光标的上下移动,实现窗口的滚动。
------解决思路----------------------
可行
------解决思路----------------------
如果每行等高的,根据页数计算该显示的哪些行
从数据源(Tstringlist)里复制这些行到Memo显示
------解决思路----------------------
用Xe7 吧 我在网上看到实现翻页的例子 还是动画模式的
------解决思路----------------------
如果要用MEMO,可以参考前面说的,点“上一页:,”后一页“时把MEMO内容清除,加载对应的内容就行了,可以考虑用第三方的控件TMS中的控件来实现,对触屏的支持很好