Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
TRichEdit - Раскраска при загрузке из файла ?
|
|||
|---|---|---|---|
|
#18+
При загрузке из файла в TRichEdit необходимо, чтобы в зависимости от содержимого, строки были раскрашены в соответствующие цвета. Для этого накалякал процедуру загрузки из файла идентичую TStrings.LoadFromFile, которая осуществляет следующую последовательность вызовов TStrings.LoadFromFile -> TStrings.LoadFromStream -> TStrings.SetTextStr В TStrings.SetTextStr осуществляется добавление строк в Lines. В ней по содержимому строки устанавливется ее цвет. Процедура TStrings.SetTextStr работает быстро, а моя процедура - медленно. При чем ее замедляет не анализ строки и установка цвета, а добавление строки. Почему так происходит? И как ускорить? Код моей процедуры: procedure TfmMain.SetTextStr(const Value: string{содержимое файла представленное ввиде строки}); var P, Start, P1: PChar; S: string; begin RichEdit.Enabled := False; RichEdit.Lines.BeginUpdate; try with RichEdit do begin Lines.Clear; P := Pointer(Value); if P <> nil then while (P^ <> #0) do begin Start := P; // сохраняем указатель на начало строки while not (P^ in [#0, #10, #13]) do // находим конец строки begin Inc(P); end; SetString(S, Start, P - Start); // получаем строку для добавления //----------------------- этот кусок не замедляет, если его выкинуть работает всеравно медленно SelStart; // SelAttributes.Color := GetColor(s); // устанавливаем необходимый цвет строки //----------------------- Lines.Add(S); // добавляем строку !!!!! Вот это крепко замедляет if P^ = #13 then Inc(P); if P^ = #10 then Inc(P); end; end; finally red.Lines.EndUpdate; red.Enabled := True; end; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 16:34 |
|
||
|
TRichEdit - Раскраска при загрузке из файла ?
|
|||
|---|---|---|---|
|
#18+
можно было перед Lines.Add(S) добавить rt.SelAttributes:= clRed без селстартов и ендов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2003, 18:30 |
|
||
|
TRichEdit - Раскраска при загрузке из файла ?
|
|||
|---|---|---|---|
|
#18+
А собственно, дополнительные компоненты для раскраски чем тебя не устраивают? Иногда ими выгоднее пользоваться вместо написания собственных процедур. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2003, 03:57 |
|
||
|
TRichEdit - Раскраска при загрузке из файла ?
|
|||
|---|---|---|---|
|
#18+
Вот, можешь закачать такой компонент (может там есть то, что тебе надо): SynEdit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2003, 04:04 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32100134&tid=2119206]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 416ms |

| 0 / 0 |
