![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приветствую Мастеров! Всё таже раскраска строк в РичЕдит! [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;
Удачи.