Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.04.2010, 17:12
davin4u davin4u вне форума
Прохожий
 
Регистрация: 21.04.2009
Сообщения: 18
Репутация: 10
По умолчанию 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;
Как я понял тут SelStart-это положение с которого начинается выделение
SelLength-это длина выделения, ну SelAttributes.Color это понятно цвет. А вот со следующей строкой проблема, Form1.RichEdit1.Lines.Add(CurrentWord) осуществляет переход на следующую строку и добавляет текст из переменной CurrentWord, при этом получается примерно следующее:
Код:
текст текст текс CurrentWord
CurrentWord
А мне нужно чтобы просто мой текст CurrentWord окрасился без перехода на следующую строку. Кто знает подскажите плиз, буду очень благодарен
Ответить с цитированием
  #2  
Старый 04.04.2010, 22:51
davin4u davin4u вне форума
Прохожий
 
Регистрация: 21.04.2009
Сообщения: 18
Репутация: 10
По умолчанию

Ладно с этим сам разобрался уже, появилась другая проблема...
Код:
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;
При компиляции подсвечивает строку PositionArray:=Position(str1, str2); две ошибки на строке, одна missing operator or semicolon, другая Incompatible types: 'TPositionArray' and 'TPosition'. Не пойму в чем дело, похожую задачу решал, использовал точно такой же метод, все делал так же и работало... Не подскажите что может быть?
Ответить с цитированием
  #3  
Старый 06.04.2010, 00:01
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Во-первых, под var вторую строку надо убрать, т.к. она дублируется
(Function Position(line,key:string):TPositionArray), во-вторых, Position - это свойство формы, лучше изменить название (напр., MyPosition)
Ответить с цитированием
  #4  
Старый 06.04.2010, 21:38
davin4u davin4u вне форума
Прохожий
 
Регистрация: 21.04.2009
Сообщения: 18
Репутация: 10
По умолчанию

Код:
var
       Function Position(line,key:string):TPositionArray;
Это надо т.к. моя функция в отдельном юните и без объявления ее не видно из других юнитов программы.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:36.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter