|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
RichEdit + цветной текст
Привет, возможно кто то интерисовался подобным:
есть RichEdit в него вводится текст, если введено ключевое слово то оно окрашивается в заданный цвет, вот код: Код:
Form1.RichEdit1.SelStart:= pos(CurrentWord,Form1.RichEdit1.Lines[0])-1; Form1.RichEdit1.SelLength:=Length(CurrentWord);//в CurrentWord хранится последнее введенное слово, т.е. текст от пробела до пробела Form1.RichEdit1.SelAttributes.Color:= HColor; Form1.RichEdit1.Lines.Add(CurrentWord); Form1.RichEdit1.SelAttributes.Color:=clBlack; SelLength-это длина выделения, ну SelAttributes.Color это понятно цвет. А вот со следующей строкой проблема, Form1.RichEdit1.Lines.Add(CurrentWord) осуществляет переход на следующую строку и добавляет текст из переменной CurrentWord, при этом получается примерно следующее: Код:
текст текст текс CurrentWord CurrentWord |
#2
|
|||
|
|||
Ладно с этим сам разобрался уже, появилась другая проблема...
Код:
type TPositionArray=array[1..100] of integer; var PositionArray:TPositionArray; Function Position(line,key:string):TPositionArray; Function Position(line,key:string):TPositionArray; var i:integer; begin i:=1; while pos(key,line)<>0 do begin Result[i]:=pos(key,line); delete(line,pos(key,line),length(key)); inc(i); end; end; procedure TForm1.Button1Click(Sender: TObject); var str1,str2:string; begin str1:='text some some some text some'; str2:='str'; PositionArray:=Position(str1, str2); end; |
#3
|
|||
|
|||
Во-первых, под var вторую строку надо убрать, т.к. она дублируется
(Function Position(line,key:string):TPositionArray), во-вторых, Position - это свойство формы, лучше изменить название (напр., MyPosition) |
#4
|
|||
|
|||
Код:
var Function Position(line,key:string):TPositionArray; |