如何制作高亮显示关键字的控件。(100分)

  • 主题发起人 主题发起人 GP14
  • 开始时间 开始时间
G

GP14

Unregistered / Unconfirmed
GUEST, unregistred user!
1.从哪一个类继承较好。
2.算法如何?
3.如有好控件,介绍一个。(免费的,无须注册的)
 
不需要别的控件,将要高亮的文字的Font及其中的Color,Sytle.....
设为你要的颜色,如果想在mouse移过时高亮,将上述代码放到OnMouseMove事件
中即可
 
请教sw: 光标移出文字时,如果激活一个事件?
 
richedit 可以用来做,

1, 不知道你要做哪一方面的, 文字编辑? label?
2, 很容易,找 token , 然后变色,
3, 大多很烦,

另外,我做了一个 AsmEditor 可以高亮显示,其实很差的,也就
自己用用, 有兴趣的话,可以给我发信,SuperMMX@263.net
 
怎么样自动检查文本中的关键字代码呢?
 
呵呵, 我用的是字符串查找,
不过应该是这样吧。
 
rxlib中有一个Editor, 可以达到你的要求, keyWords可以自己设置.
rxlib在深度历险中可以找到, 并且有源码.
 
其实有两个事件在大多数控件中都没有公布出来一个是mouseEnter,一个是mouseLeaver;用这两个事件就可以做到你要做的事情了,别说高亮,唱歌也行啊!
 
估计你要的是Delphi IDE环境式的高亮显示
就用RichEdit,价格便宜量又足,我一直用它,不过据说有中文兼容性问题

如果是Mouse上的高亮度显示就是自己捕获滑鼠信息吧:)比较容易实现的
 
你能不能把问题说的清楚一点,

这是我开发的一个软件中的"关于..."窗口中的代码(我是用C++Builder的)
当Mouse移到http://lingxun.yeah.net和shijianbcb@sina.com时,颜色变红,
Mouse为手形;移开,颜色恢复为蓝色,Mouse恢复为箭头;单击,就访问主页或发
E_Mail.

void __fastcall TAboutBox::Label6Click(TObject *Sender)
{
char *sj;
if(Sender==Label6)
sj = "http://lingxun.yeah.net";
if(Sender==Label8)
sj = "mailto:shijianbcb@sina.com";
ShellExecute(Application->Handle,NULL,
sj,NULL,NULL,SW_SHOW);
}
//---------------------------------------------------------------------------

void __fastcall TAboutBox::Label6MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
Label6->Font->Color = clRed;
Label8->Font->Color = clBlue;
Label6->Font->Style = Label6->Font->Style<<TFontStyle(2);
Label8->Font->Style = Label8->Font->Style>>TFontStyle(2);
}
//---------------------------------------------------------------------------

void __fastcall TAboutBox::FormMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
Label6->Font->Color = clBlue;
Label8->Font->Color = clBlue;
Label6->Font->Style = Label6->Font->Style>>TFontStyle(2);
Label8->Font->Style = Label8->Font->Style>>TFontStyle(2);
}
//---------------------------------------------------------------------------
 
sw:
RXlib中有这个控件!

GP14:
你指的是超链接的控件吗?若不是,而是像Delphi的编辑器的控件,
建议用mwEdit,对中文支持不错,只有一点点的小Bug!
 
多人接受答案了。
 
后退
顶部