Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Приветствую Мастеров! Всё таже раскраска строк в РичЕдит! [D5, Win95/98, NT4, Win2k]


IronHawk ©   (2002-11-26 02:09:00) 

На форме есть: РичЕдит, Буттон, Едит, ОпенДиалог (и всё к примеру).
Всё таже трабла, вставляю текст из файла с помощью ОпенДиалога по событию БуттонТыц, в едит мне надо ввести символ с которых начинаются некоторые строки, на событие ОнЧендж Едита, немогу повесить перерисовку цвета тех строк коротые начинаются с символа введенного в Едит на красный цвет, а все остальные строки перекрасить в тёмно-синий.

Напомните ПЛЗ.
заранее благодарен!


IronHawk   (2002-12-02 00:26:00) [1]


> Fantasist © (02.12.02 00:14)

Спасибо!


Fantasist   (2002-12-02 00:14:00) [2]


> > используй SynEdit.
>
> А де его взчть-то?


http://SynEdit.SourceForge.net


IronHawk   (2002-12-01 15:49:00) [3]


> Fantasist © (30.11.02 02:23)
> используй SynEdit.

А де его взчть-то?

> Дмитрий К.К. © (30.11.02 08:41)

Нифига! :-)


Дмитрий К.К.   (2002-11-30 08:41:00) [4]


> IronHawk ©


Ты противоречишь сам себе. Разберись с собой ;)


Fantasist   (2002-11-30 02:23:00) [5]


> IronHawk © (29.11.02 23:48)


Правильно говорят - используй SynEdit. А типа того, что мы дескать сами крутые - все сами сделаем, то лучше вы не сделаете. А если и сделаете то далеко не сейчас.


IronHawk   (2002-11-29 23:48:00) [6]


> Дмитрий К.К. © (29.11.02 06:39)
> и поставляется с исходниками. Если в них покопаться, можно
> извлечь немало полезного.

Полезное можно достать откуда хочешь, если покопатся...


Дмитрий К.К.   (2002-11-29 06:39:00) [7]


> IronHawk © (29.11.02 00:49)
> А можно вообще не мучатся, есть компоненты сторонних производителей, но это ж не интересно!


Во-первых, это и есть компоненты от сторонних производителей, а во-вторых, SynEdit бесплатен и поставляется с исходниками. Если в них покопаться, можно извлечь немало полезного.


IronHawk   (2002-11-29 00:49:00) [8]


> Дмитрий К.К. © (28.11.02 06:31)
> Альтернатив - море (Dream Memo, Syn Edit и проч.)

А можно вообще не мучатся, есть компоненты сторонних производителей, но это ж не интересно!

> Song © (28.11.02 07:32)

Спасибо, что уточнил!


Song   (2002-11-28 07:32:00) [9]

>>ДЛя всех символов, а цикл не много ли ресурсов сьест?
Не знаю, не пробовал. Ты же спрашивал альтернативы, я тебе их и привожу :)


Дмитрий К.К.   (2002-11-28 06:31:00) [10]

Альтернатив - море (Dream Memo, Syn Edit и проч.)


IronHawk   (2002-11-28 03:02:00) [11]


> Song © (26.11.02 08:26)
> EM_SETCHARFORMAT

ДЛя всех символов, а цикл не много ли ресурсов сьест?

> Дмитрий К.К. © (26.11.02 08:35)
> ИМХО, когда начинаются задачи синтаксического раскраски
> и прочего подобного, нужно юзать не РичЭдит.

А что? Мемо? Или ВебБроузер?


Дмитрий К.К.   (2002-11-26 08:35:00) [12]

ИМХО, когда начинаются задачи синтаксического раскраски и прочего подобного, нужно юзать не РичЭдит.


Song   (2002-11-26 08:26:00) [13]

EM_SETCHARFORMAT


IronHawk   (2002-11-26 02:39:00) [14]


>Almaz
Спасибо!

А у кого ещё какие вариантики есть?


Almaz   (2002-11-26 02:33:00) [15]

Что-то вроде. Оптимизируй сам. :))

procedure TForm1.Edit1Change(Sender: TObject);
var
I: Integer;
Ch: Char;
Start, L: Integer;
begin
if Length(Edit1.Text) = 0 then Ch := #0
else Ch := Edit1.Text[1];
Start := 0;
for I := 0 to RichEdit1.Lines.Count - 1 do
begin
L := Length(RichEdit1.Lines[I]);
if L > 0 then
begin
RichEdit1.SelStart := Start;
RichEdit1.SelLength := L;
Inc(Start, L + 2); // +2 - это перевод строки :)
if RichEdit1.Lines[I][1] = Ch then
RichEdit1.SelAttributes.Color := clRed else
RichEdit1.SelAttributes.Color := clBlue;
end;
end;
end;


Удачи.


Наверх

Титульная страница Поиск, карта сайта Написать письмо