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

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

TrichEdit [D5, Win95/98]


AndreyB ©   (2002-03-02 20:52:00) 

Как в RichEdit выделять текст рзным цветом,как например в редакторе кода Delphi и Visual C++


MegaVolt   (2002-03-04 09:59:00) [1]

есть ещё один метод заключается в преобразовании входного файла во время открытия в RTF формат с разноцветной подсветкой. Это реализуется используя конвертер который подключается к RichEdit. Пример:

Type
p =class(Tconversion)
function ConvertReadStream(Stream: TStream; Buffer: PChar; BufSize: Integer): Integer; override;
function ConvertWriteStream(Stream: TStream; Buffer: PChar; BufSize: Integer): Integer; override;
end;

function p.ConvertReadStream(Stream: TStream; buffer: PChar; BufSize: Integer): Integer;
Begin
//тута вставляем текст преобразователя на чтение
end;

function p.ConvertWriteStream(Stream: TStream; Buffer: PChar; BufSize: Integer): Integer;
begin
Result := Stream.Write(Buffer^, BufSize);
// преобразование на запись не требуется так что пишем всй что поступило :)
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
richedit1.registerConversionFormat("pas",p);
richedit1.DefaultConverter:=p;
//регистрируем конвертер
end;


При открытии файлов делалось преобразование в Дельфяшную раскраску. Скорость работы самого конвертера без отображения результата была порядка 1Мб/сек что вполне достаточно :)
Недостаток этого метода в том что ежели неоюходим не просмотр а редактирование то автоматической подсветки синтаксиса не происходит :( Как это обойти я не прибумал :(


Mbo   (2002-03-03 07:52:00) [2]

selstart,sellength,selattributes


Наверх

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