![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Привет, возможно кто то интерисовался подобным:
есть 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; |