Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Вниз

Как сохранить цветовое выделение текста в TRichEdit?   Найти похожие ветки 

 
Alex_C ©   (2006-09-25 13:41) [0]

Есть TRichEdit в котором цветом автоматически выделяются ключевые слова. При добавлении нового текста в конец иимеющегося
RichEd.Text := RichEd.Text+IputChar;
цветовое выделение теряется и приходится снова весь текст просматривать и выделять ключевые слова. Как можно этого избежать?
Есть такой вариант, при котором не теряется цветовое выделение текста:
RichEd.SelStart := Length(RichEd.Text);
RichEd.SelLength := 0;
RichEd.SelText := InputChar;
но он не подходит ввиду того, что не позволяет в это время пользователю самому выделять текст.


 
clickmaker ©   (2006-09-25 14:01) [1]


> не позволяет в это время пользователю самому выделять текст

то есть? У тебя RichEd.SelText := InputChar; в отдельном потоке, да еще так долго, что пользователь может успеть что-то выделить?


 
Alex_C ©   (2006-09-25 14:17) [2]

Поясню ситуацию:
из устройства данные выводятся на RichEdit. Пользователь же в это время должен иметь возможность выделить допустим кусок текста и скопировать его. Данные с ус-ва поступают постоянно. Если пользоваться 2 методам, то у пользователя не получается выделить текст - SelStart то все время меняется.


 
clickmaker ©   (2006-09-25 14:27) [3]


> не получается выделить текст - SelStart то все время меняется

а сохранить, а потом восстановить?


 
Alex_C ©   (2006-09-25 14:29) [4]

Некрасиво получается. Вот представь - все время добавляется из ус-ва информация. Сохранять и восстанавливать SelStart - все время выделение мигает, пока пользователь выделяет текст.


 
clickmaker ©   (2006-09-25 14:35) [5]

а RichEdit.Lines.Add не поможет?


 
Alex_C ©   (2006-09-25 15:16) [6]

Нет
При этом добавляется НОВАЯ строка, а мне надо чтоб было продолжение существующей.


 
clickmaker ©   (2006-09-25 15:19) [7]

Ну звиняй, варианты кончились.
Разве что попробовать [3], но окружить вызовами
SendMessage(RE.Handle, WM_SETREDRAW, 0, 0);
...
SendMessage(RE.Handle, WM_SETREDRAW, 1, 0);
чтобы не мерцало


 
Alex_C ©   (2006-09-25 15:31) [8]

А вот интересно, где у RichEdit хранится информация об аттрибутах каждой буквы? По идее ведь каждая буква может свой цвет, фонт и т.п. иметь? В св-ве Text хранится только сам текст, а где хранятся аттрибуты каждой буквы?


 
clickmaker ©   (2006-09-25 15:37) [9]


> [8] Alex_C ©   (25.09.06 15:31)

с точки зрения программера в SelAttributes
ну а так, это часть формата RTF. В тэгах. В этом смысле ртф слегка напоминает html


 
Alex_C ©   (2006-09-25 16:45) [10]

Видел как работают другие программы. В них все очень быстро и подсветка синтаксиса, и позволяют добавлять текст, сохраняя аттрибуты старого текста. Вроде простая задама, а вот в инете порылся - решения простого для нее нет.


 
clickmaker ©   (2006-09-25 16:47) [11]


> [10] Alex_C ©   (25.09.06 16:45)

другие программы могут и не использовать richedit


 
Alex_C ©   (2006-09-25 17:06) [12]

свой компонент?
не понятно зачем так сделано, чтоб при добавлении текста все аттрибубы что были менять на исходные.


 
clickmaker ©   (2006-09-25 17:14) [13]

RichEd.Text := RichEd.Text+IputChar;
этой строчкой ты фактически полностью меняешь содержимое, причем, именно текст, а форматирование естесственно теряется.
Как вариант можно попробовать
S := RichEdit1.Lines[RichEdit1.Lines.Count-1];
S := S + "Some text";
RichEdit1.Lines[RichEdit1.Lines.Count-1] := S;

тогда, по крайне мере, только у последней строки собьется формат



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.042 c
15-1160743963
Ketmar
2006-10-13 16:52
2006.11.05
облазил кучу сайтов. или дают один-два альбома, или и того хуже. не подскажете, где их можно нормально скачать? начиная с "Восхода Чёрной Луны" и вниз. %-) качество устроит даже 128 kbps (всё равно потом куплю диски).


15-1161146287
Layner
2006-10-18 08:38
2006.11.05
WindowsXP: один раз вошел в домен, теперь локально работаю


8-1143532496
kmi
2006-03-28 11:54
2006.11.05
Как сохранить TBitmap в jpg-файл с разрешением 300 dpi


2-1160984972
gvozdkoff
2006-10-16 11:49
2006.11.05
Paradox на другом компе


8-1143620068
nik2006
2006-03-29 12:14
2006.11.05
samplegrabber





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский