请问如何得到 RichEdit 的可见区域的内容? 我的程序中用了 RichEdit ,在有滚动条内容大于一页的时候,我只想得到当前可见区域的内容(文本,不是图片),光标的位置是不定的,而且不能让用户操作,要程序自己截取。我找了半天没有找到相关资料,还请各位高手想想办法,多谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你自己看看TFont::Charset,试试read。richedit1.SelAttributes.Charset;Richedit当前显示的字符集可能有很多种!象是的字符可能是西文字符集,也可能是中文字符集,这样的话,只好一个字符一个字符查询了,如果是选择的内容的字符集久很简单,用我前面的就可以了。 to: hellolongbin(一个人): 发送什么消息,请说的明白点。to: Kshape([伟大的大伟!]): RichEdit不让用户参与操作的,也就是不能让用户选择文本,当然也不能让用户把光标移到可视区域的第一行。 //参考如下代码uses RichEdit;function RichEditVisibleText(mRichEdit: TRichEdit): string;var vRect: TRect; vStart: Integer; vEnd: Integer;begin Result := ''; if not Assigned(mRichEdit) then Exit; mRichEdit.Perform(EM_GETRECT, 0, Integer(@vRect)); vStart := mRichEdit.Perform(EM_CHARFROMPOS, 0, Integer(@vRect.TopLeft)); vEnd := mRichEdit.Perform(EM_CHARFROMPOS, 0, Integer(@vRect.BottomRight)); Result := Copy(mRichEdit.Text, vStart + 1, vEnd - vStart + 1);end; { RichEditVisibleText }procedure TForm1.Button1Click(Sender: TObject);begin Memo1.Text := RichEditVisibleText(RichEdit1);end; Delphi实现将映射盘文件copy到本地 急用简单问题:如何给一个控件的事件赋值? 如何获得女声语音文件 一个类的问题,请帮下手! 提问所有高手!!!怎么解决这个最容易出错,但最不容易发现的ADO问题!!!!!!!!!!!!!! ADO的问题 关于Pbytearray的问题,高分相送,大家一定要帮帮我。。 花了一个晚上写了一个消息轰炸机90%的win2000或xp都有效,好用不用说谢不是什么好东西! 在线:如何获取本机IP? 像我这样的水平能找到工作吗? 关于delphi连接domino的问题。 接口问题,实在不会了...
richedit1.SelAttributes.Charset;Richedit当前显示的字符集可能有很多种!
象是的字符可能是西文字符集,也可能是中文字符集,这样的话,只好一个字符一个字符查询了,如果是选择的内容的字符集久很简单,用我前面的就可以了。
发送什么消息,请说的明白点。
to: Kshape([伟大的大伟!]):
RichEdit不让用户参与操作的,也就是不能让用户选择文本,当然也不能让用户把光标移到可视区域的第一行。
uses RichEdit;function RichEditVisibleText(mRichEdit: TRichEdit): string;
var
vRect: TRect;
vStart: Integer;
vEnd: Integer;
begin
Result := '';
if not Assigned(mRichEdit) then Exit;
mRichEdit.Perform(EM_GETRECT, 0, Integer(@vRect));
vStart := mRichEdit.Perform(EM_CHARFROMPOS, 0, Integer(@vRect.TopLeft));
vEnd := mRichEdit.Perform(EM_CHARFROMPOS, 0, Integer(@vRect.BottomRight));
Result := Copy(mRichEdit.Text, vStart + 1, vEnd - vStart + 1);
end; { RichEditVisibleText }procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Text := RichEditVisibleText(RichEdit1);
end;