Модераторы: Vitalik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с компонентом SynEdit 1.0, Как выделить цветом нужную строку? 
V
    Опции темы
fess
Дата 7.5.2006, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



Собственно, сабж.
Пытаюсь сделать стледующим образом:
У этого компонента есть событие onSpecialLineColors насколько я понял, оно как раз и предназначено для выделения цветом конкретных строк.

Определил его:
Код

procedure TSourceCodeForm.SourceCodeSpecialLineColors(Sender: TObject;
  Line: Integer; var Special: Boolean; var FG, BG: TColor);
begin

 if Special
 then begin
      FG := clRed;
      BG := clBlue;
  end;
end;
 


Затем его вызывю:
 
Код

 procedure ExecCode(Slist: TStringList);
  var
    TempS:String;
    TempBol:boolean;
    TempCl1,TempCl2:TColor;
  begin
    TempCl1:=ClRed;
    TempCl2:=ClLime;
    TempBol:=true;
    {подсветка 10 строки}
        SourceCodeForm.SourceCodeSpecialLineColors(SourceCodeForm.SourceCode,10,TempBol,TempCl1,TempCl2);
 end;

 И ничего не происходит, цвет 10 строки не меняется не меняется... Событие точно выполняется...
Может, кто работал с эти компонентом? 
--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
Vitalik
Дата 16.5.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Координатор проекта
Сообщений: 653
Регистрация: 8.11.2004
Где: Ukraine, Kharkov

Репутация: 9
Всего: 12



fess, на сколько я понимаю, это событие нужно использовать по-другому.
Например, так:
Код

procedure TSourceCodeForm.SourceCodeSpecialLineColors(Sender: TObject;
  Line: Integer; var Special: Boolean; var FG, BG: TColor);
begin    
  if (Line = 10) then begin
    FG := clRed;
    BG := clBlue;
  end;
end;

Идея ясна?
Просто вызывая событие с параметром (номером линии) мы не запускаем прорисовку линии. Это событие вызывается автоматически при прорисовке каждой строки, мы можем лишь показать как её нужно рисовать в момент этой прорисовки. 
PM MAIL WWW ICQ YIM   Вверх
fess
Дата 28.6.2006, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 17.2.2005
Где: г. Мурманск, Росс ия

Репутация: нет
Всего: 3



Спасибо за помощь, но надо было быстро решить... и я не появлялся в инете долго потом... в общем, испльзовал просто другой компонент TAdvMemo... Там всё просто и понятно )))) А суть та же.... 
--------------------
Компьютер не подчиняется законам физики. Только в нём глюки возникают из ничего, файлы исчезают в никуда, а объём измеряется в метрах и называется весом.
PM MAIL ICQ   Вверх
Noor
Дата 27.12.2007, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Подвкажите как в SynEdit выделить программно определенные строки.
Например я ввожу в одном поле Edit1 номер строки с которой нужно начать выделение, а во втором  Edit2 по какое поле произвести выделение ?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | SynUniHighlighter и SynEdit | Следующая тема »


 




[ Время генерации скрипта: 0.3269 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.