V
vitalya777
Я пишу так:
КОД: C/C++
[codebox]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, StartPos, Endpos, TSearchTypes()<< stMatchCase);
23.
24. RichEdit1->SelStart = Position;
25. RichEdit1->SelLength = SearchWords.Length();
26. RichEdit1->SelAttributes->Style =RichEdit1->SelAttributes->Style<<fsBold;
27. RichEdit1->SelAttributes->Style =RichEdit1->SelAttributes->Style<<fsItalic;
28. StartPos = Position+SearchWords.Length();
29. }
30. }
31.
[/codebox]
Как можно сделать так, чтобы эти слова выделяло только тогда, когда они сами?
Обясняю: просто например в слове Sender слово end тоже выделяет, а мне это не нужно, можно ли как-то это исправить?А если написать в програме " end ", то в слове Sender слово end не выделяется, но когда написать так в тексте : end; , то слово end тоже не выделяется, а это нужно!
КОД: C/C++
[codebox]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, StartPos, Endpos, TSearchTypes()<< stMatchCase);
23.
24. RichEdit1->SelStart = Position;
25. RichEdit1->SelLength = SearchWords.Length();
26. RichEdit1->SelAttributes->Style =RichEdit1->SelAttributes->Style<<fsBold;
27. RichEdit1->SelAttributes->Style =RichEdit1->SelAttributes->Style<<fsItalic;
28. StartPos = Position+SearchWords.Length();
29. }
30. }
31.
[/codebox]
Как можно сделать так, чтобы эти слова выделяло только тогда, когда они сами?
Обясняю: просто например в слове Sender слово end тоже выделяет, а мне это не нужно, можно ли как-то это исправить?А если написать в програме " end ", то в слове Sender слово end не выделяется, но когда написать так в тексте : end; , то слово end тоже не выделяется, а это нужно!