Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выделение текста
Форум программистов > Системное программирование > C, С++ и С Builder > Borland C++ Builder & Kylix
vitalya777
Я пишу так:


КОД: C/C++

CODE
void __fastcall TForm1::N4Click(TObject *Sender)
1. 2. {
3. RichEdit1->Font->Size=10;
4. int StartPos, Position=0, Endpos;
5.
6. AnsiString *SearchWords;
7. SearchWords = new AnsiString[5];
8. SearchWords[0]=" while ";
9. SearchWords[2]="end";
10. SearchWords[3]=" While ";
11. SearchWords[4]="End";
12. for(int i=0;i<5;i++)
13. {
14. Position=0;
15. StartPos = 0;
16.
17. Endpos = RichEdit1->Text.Length();
18.
19. while (Position!=-1)
20. {
21. Endpos = RichEdit1->Text.Length() - StartPos;
22. Position = RichEdit1->FindText(SearchWords[i], StartPos, Endpos, TSearchTypes()<< stMatchCase);
23.
24. RichEdit1->SelStart = Position;
25. RichEdit1->SelLength = SearchWords[i].Length();
26. RichEdit1->SelAttributes->Style =RichEdit1->SelAttributes->Style<<fsBold;
27. RichEdit1->SelAttributes->Style =RichEdit1->SelAttributes->Style<<fsItalic;
28. StartPos = Position+SearchWords[i].Length();
29. }
30. }
31.



Как можно сделать так, чтобы эти слова выделяло только тогда, когда они сами?
Обясняю: просто например в слове Sender слово end тоже выделяет, а мне это не нужно, можно ли как-то это исправить?А если написать в програме " end ", то в слове Sender слово end не выделяется, но когда написать так в тексте : end; , то слово end тоже не выделяется, а это нужно!
European
Если нужна самопальная подсветка, то нужно использовать более сложные алгоритмы поиска ключевых слов, т.к. они должны располагаться между символами-"разделителями", такими как ";", пробел, конец строки, символы комментариев и т.д.
Если самому писать не нужно, то можно воспользоваться готовыми компонентами, например SynEdit
vitalya777
выкладите хотя бы кокой-то пример, бо у меня ну никак не получается! Заранее спасибо!
European
Цитата(vitalya777 @ 2:04:2008 - 12:59) *
выкладите хотя бы кокой-то пример

http://www.google.ru/search?q=реализовать+...таксиса+С%2B%2B
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.