delphi richedit光标如何回到上一行末尾

delphi richedit光标如何回到上一行末尾,第1张

//改变第二行的字体大小为15 RichEdit1SelStart := Length(RichEdit1Lines[0]); RichEdit1SelLength := Length(RichEdit1Lines[1]) + 2; richedit1SelAttributesSize := 15;

事件处理会吧?

在确定button被点击的事件处理中

设置JTextArea的光标位置,行话叫插入符Caret

可以使用JTextArea继承自JTextComponent类的方法setCaretPosition(int position)来设置。

JTextAreasetCaretPosition(int position)

此处position表示从文本开头数起第position个字符处。

要插入某行行首的话,需要计算该数字,通过以下方法计算:

position = JTextAreagetLineStartOffset(int 行号);

该方法返回给定行号的开头的offset值。

给你两种方法:

1

richedit1LinesMove(0,strtoint(trim(edit1Text))-1); //把这里的edit1text改成你想要的行数;就行;

这只是最基础的,其他的想要实现可以再加

2

var

i:integer; //这是你想跳到的行数;

str:string;

begin

richedit1setfocus;

for i:= 0 to i do str:=str+richedit1lines[i];

str:=str+(i2);

richedit1selstart:=str;

richedit1sellength(richedit1LinesValueFromIndex[i]);

end;

这个定位更准确点;

简单方法就是将RichEditControl自带的 下标 按钮添加到界面隐藏起来,每次输入内容的时候判断一下下标按钮的选择状态,如果是被选择,就取消选择就行了!!!

复杂一点就是每次输入的时候判断一下当前光标位置的字体属性,如果是字体有下标效果,就取消后再输入!!!

一个光标位置,用的着这么复杂吗

如果想排出WORD一类的文本版面,用RichEdit文本框,肯定不行首先,是它不能中英混排,也就是一行文字之中,如果你用上奇数个英文字符或者数字,右边就不是整齐的了

1CaretPos可以直接控制光标位置,比如

CaretPos := Point(20, 2); 表示将光标放在第200行第2个字符之后。

2可以通过SelText来代替LinesAdd,比如

SelStart := Length(richeditText); //光标移动到最后

SelLength := 0; //选中0个字符

SelText := '要显示的内容'; //你要显示的内容, 此时光标移动到最后,并且刚显示的内容被选中

SelStart := Length(richeditText); //再次,光标移动到最后

SelLength := 0; //再次。选中0个字符

3 如果你一直使用LinesAdd, 并且希望光标始终在最后的话,有个简单的方法,

richeditSelStart := Length(richeditText);

PostMessage(richeditHandle, WM_VSCROLL, SB_BOTTOM, 0);

以上三种任选其一啦,有问题欢迎再问。

以上就是关于delphi richedit光标如何回到上一行末尾全部的内容,包括:delphi richedit光标如何回到上一行末尾、RichEdit 怎么快速转跳到指定行、delphi 如何把RichEdit的滚动条移动到指定行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9764185.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存