to bcboy(编程蜗牛) 我觉得你这样判断是不行的,如果在关键字前后或中间又加了一个字母了呢?这样是不是没有判别到?
to bcboy(编程蜗牛) 我觉得你这样判断是不行的,如果在关键字前后或中间又加了一个字母了呢?这样是不是没有判别到?
人家都已经实现过了啊。可以使用mwEdit或者其他的RichEdit控件。 其实自己做也可以,用户输入的时候,只要进行“当前行”扫描就可以了啊!这样能够提高效率。当然,你还要注意用户用Ctrl+C,Ctrl+V的时候也要扫描Paste进来的文字。 function GetTokenAtCursor:string; begin i:=RichEdit.SelStart; while RichEdit.Text[i]<>' ' do dec(i); Return chars between RichEdit.Text[i+1] and RichEdit.Text[SelStart]; end;if GetTokenAtCursor is AToken then SetColor(Red);
其次,是如何判断关键字的输入,我想这个才是最难的,要么就在onchange事件中监测输入,但是速度和效率会很低。
第三,标红的做法使用selattribute属性的color就行了。
一个思路:在OnClick中检查,如果输入的是空格或回车等,就马上return,若不是,再识别。
这种方法效率不会很底。
我觉得你这样判断是不行的,如果在关键字前后或中间又加了一个字母了呢?这样是不是没有判别到?
我觉得你这样判断是不行的,如果在关键字前后或中间又加了一个字母了呢?这样是不是没有判别到?
其实自己做也可以,用户输入的时候,只要进行“当前行”扫描就可以了啊!这样能够提高效率。当然,你还要注意用户用Ctrl+C,Ctrl+V的时候也要扫描Paste进来的文字。
function GetTokenAtCursor:string;
begin
i:=RichEdit.SelStart;
while RichEdit.Text[i]<>' ' do dec(i);
Return chars between RichEdit.Text[i+1] and RichEdit.Text[SelStart];
end;if GetTokenAtCursor is AToken then
SetColor(Red);