![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Есть ли аналог компонентов MEMO или RichEdit в delphi? [D7]
Kiloper © (2006-08-08 17:53:00)Есть ли аналог компонентов MEMO или RichEdit в delphi, но только чтобы текст можно было менять стиль тескта по строчкам, например одна строчка 10 шрифтом жирная, а другая курсивом 12 шрифтом? Или как это можно осуществить?
Ketmar (2006-08-10 13:33:00) [1]> [16] tButton © (10.08.06 13:28)
не спорю. см. мой TAKChat -- я там пытался подобное начать. правда, сделано коряво, но задумка была. можешь попробовать взять и довести до ума -- код там public domain.
tButton (2006-08-10 13:28:00) [2]
> но сделать нормальный richView
зависит от задачи.
Ketmar (2006-08-10 11:38:00) [3]> [14] TButton © (10.08.06 06:23)
или так. но сделать нормальный richView -- это задача не на 5 минут.
TButton (2006-08-10 06:23:00) [4]я вот подумал, а не проще ли будет рендерить текст на битмап?
т.е. хранить лог и по необходимости рендерить нужный кусок
Ketmar (2006-08-09 20:43:00) [5]> [12] Anatoly Podgoretsky © (09.08.06 19:49)
ну я же сказал, что в курсе формы Земли... %-)
Anatoly Podgoretsky (2006-08-09 19:49:00) [6]Ketmar © (08.08.06 22:23) [6]
Выделение есть всегда, только SelLength=0
Shaman_ (2006-08-09 13:58:00) [7]Я уже писал выше про использование RTF кода
Вот так можно получить RTF код:
function GetRTFText(ARichEdit: TRichedit): string;
var
ss: TStringStream;
emptystr: string;
begin
emptystr := '';
ss := TStringStream.Create(emptystr);
try
ARichEdit.PlainText := False;
ARichEdit.Lines.SaveToStream(ss);
Result := ss.DataString;
finally
ss.Free
end;
end;
А вот так записать RTF код в TRichEdit
procedure SetRTFText(ARichEdit: TRichEdit; const ARTFText: string);
var
ss: TStringStream;
begin
ss := TStringStream.Create(ARTFText);
try
ARichEdit.PlainText := False;
ARichEdit.Lines.LoadFromStream(ss);
finally
ss.Free;
end;
end;
Чтобы быстрей понять как устроена RTF разметка, отформатируй строку в ворде и вставляй в TRichEdit, потом смотри получившийся код
Ketmar (2006-08-09 09:58:00) [8]> [9] TButton © (09.08.06 05:34)
а сохранить старое выделение и вернуть на место после добавления строки -- никак?
> хотелось бы сцылку на инфу
google, rtf specification.
TButton (2006-08-09 05:34:00) [9]
> так снимай выделение. дел-то? %-)
представь ситуацию
выделяешь ты текст из лога, чтоб копипастнуть его. бэмс! и снялось выделение. почему? а строчка добавилась. не вежливо.
ждать же пока юзер сам снимет выделение - глупо. запретить выделять - опять не вежливо.
поэтому, хотелось бы сцылку на инфу по
> RTF разметки. Формируй праввильный RTF код
Ketmar (2006-08-09 02:06:00) [10]> [7] Германн © (09.08.06 02:03)
а я и не смеялся. я намекал на то, что в курсе ньюансов работы richedit, и разжёвывать их не надо.
Германн (2006-08-09 02:03:00) [11]2 Ketmar © (08.08.06 22:23) [6]
> зыж я знаю, что Земля не круглая. (ц) %-)
Давно уже не смешно. Твоя прежняя подпись была более смешной. Имхо.
Прошу прощения за offtop.
Ketmar (2006-08-08 22:23:00) [12]или устанавливается для набираемых буковок, если выделения нет.
зыж я знаю, что Земля не круглая. (ц) %-)
Anatoly Podgoretsky (2006-08-08 21:01:00) [13]Форматирование применяется к выделеному тексту.
Ketmar (2006-08-08 20:42:00) [14]> [2] tButton © (08.08.06 19:34)
так снимай выделение. дел-то? %-)
Shaman_ (2006-08-08 19:51:00) [15]все офирмление в RichEdit описывается с помощью RTF разметки. Формируй праввильный RTF код
tButton (2006-08-08 19:34:00) [16]воевал с рич едитом
вроде б нормально получается добавлять строки с разной подсветкой, но)
если во время добавления строки в рич едите выделен текст. то подсветка применяется не к добавляемой строке, а к выделеному тексту)
Ketmar (2006-08-08 17:55:00) [17]TRichEdit, ага? f1 и курить до пресветленияю вместе с каталогом demos.