RichEdit1SelectionChange事件 当我输入一个字符就触发该事件,还说我不动脑子。 procedure TForm1.RichEdit1SelectionChange(Sender: TObject); begin ShowMessage('a'); end; 自己去试试吧。这个效果不能在SelectionChange函数里实现。如果行的话我就不会跑这来问了。
好了,好了,和谐第一,没事就别怄气了,你提供的方法我会参考的。也感谢你,procedure TForm1.RichEdit1SelectionChange(Sender: TObject); begin if RichEdit1.HideSelection Then ShowMessage('a'); end; 这样也不行。
http://hi.csdn.net/attachment/201007/21/756293_1279680775duED.png
uses
richedit;procedure TForm1.Button1Click(Sender: TObject);
var Fmt :TCharFormat2;
begin
Fmt.cbSize := SizeOf(Fmt);
Fmt.dwMask := CFM_COLOR or CFM_BACKCOLOR Fmt.crTextColor := clRed;//设置字体颜色
Fmt.crBackColor := clYellow;
RichEdit1.Perform(EM_SETCHARFORMAT,SCF_SELECTION,integer(@Fmt));
RichEdit1.Lines.Add('中华人民共和国');
end;
谢谢你回复,但不是这效果,首先字不是加的,是用户随便打的,然后选择一部分文字,就会出现选择条,要改变选择条的颜色。
windows记事本下的选择条颜色是蓝色,而选择文本的颜色是白色。
Delphi下TRichEdit下默认选择条颜色是黑色(真丑),选择文本的颜色是白色。
RichEdit1SelectionChange事件 当我输入一个字符就触发该事件,还说我不动脑子。
procedure TForm1.RichEdit1SelectionChange(Sender: TObject);
begin
ShowMessage('a');
end;
自己去试试吧。这个效果不能在SelectionChange函数里实现。如果行的话我就不会跑这来问了。
好了,好了,和谐第一,没事就别怄气了,你提供的方法我会参考的。也感谢你,procedure TForm1.RichEdit1SelectionChange(Sender: TObject);
begin
if RichEdit1.HideSelection Then
ShowMessage('a');
end;
这样也不行。
Shift: TShiftState; X, Y: Integer);
begin
Fmt.crTextColor := clBlack;//设置字体颜色
Fmt.crBackColor := clWhite;//设置字体背景色
RichEdit1.Perform(EM_SETCHARFORMAT,SCF_ALL,integer(@Fmt));
Label1.Caption := 'x:'+IntToStr(RichEdit1.SelStart)+',y:'+IntToStr(RichEdit1.SelLength);
Fmt.crTextColor := clRed;//设置字体颜色
Fmt.crBackColor := clYellow;//设置字体背景色
RichEdit1.Perform(EM_SETCHARFORMAT,SCF_SELECTION,integer(@Fmt));
RichEdit1.SelLength := 0;
end;
TCharFormat2 或 TCharFormat 在D7里不认啊