"EhLib.Com" https://forum.ehlib.com/ru/ |
|
Отрисовка части (!) текста в ячейке грида другим цветом https://forum.ehlib.com/ru/viewtopic.php?f=4&t=2710 |
Страница 1 из 1 |
Автор: | GoldMedium [ 19 дек 2018, 11:24 ] |
Заголовок сообщения: | Отрисовка части (!) текста в ячейке грида другим цветом |
Добрый день. Подскажите, пожалуйста, как в ячейке грида часть (!) текста отрисовывать другим цветом. Если возможно - хотя бы простой пример. Большое спасибо! |
Автор: | EhLibSupport [ 27 дек 2018, 10:44 ] | ||
Заголовок сообщения: | Re: Отрисовка части (!) текста в ячейке грида другим цветом | ||
Добрый день. К сожалению, в библиотеки нет специальных функций или классов для отрисовки мультиформатного текста. Один из вариантов, это использовать RichText, но его надо будет где-то хранить. В БД или динамически создавать. Другой вариант - рисовать куски текста самому в событии TColumnEh.OnAdvDrawDataCell. Вот пример обработчика события для подмены цвета, первого слова в содержимом ячейки. Код: procedure TForm1.DBGridEh1Columns2AdvDrawDataCell(Sender: TCustomDBGridEh; Cell,
AreaCell: TGridCoord; Column: TColumnEh; const ARect: TRect; var Params: TColCellParamsEh; var Processed: Boolean); var s1, s2: String; TextRect: TRect; begin //Draw background //Just use default draw method with Text = '' Params.Text := ''; Sender.DefaultDrawColumnDataCell(Cell, AreaCell, Column, ARect, Params); //Draw foreground Sender.Canvas.Brush.Style := bsClear; if (Column.DisplayText = 'South America') then begin Sender.Canvas.Font.Color := $000042CA; s1 := 'South '; end else begin Sender.Canvas.Font.Color := $00FF8000; s1 := 'North '; end; TextRect := ARect; TextRect.Top := TextRect.Top + 2; TextRect.Left := TextRect.Left + 2; Sender.Canvas.TextRect(TextRect, s1); TextRect.Left := TextRect.Left + Sender.Canvas.TextWidth(s1); s2 := 'America'; Sender.Canvas.Font.Color := clWindowText; Sender.Canvas.TextRect(TextRect, s2); Processed := True; end;
|
Автор: | GoldMedium [ 27 дек 2018, 16:52 ] |
Заголовок сообщения: | Re: Отрисовка части (!) текста в ячейке грида другим цветом |
Красота! Спасибо огромное, отдельное за исчерпывающий пример! Жаль что нет готового решения, такого ни у кого нет и это было бы преимуществом EhLib. Но значит пока придётся вручную. Ещё раз большое спасибо! |
Автор: | maratvg [ 28 дек 2018, 09:12 ] |
Заголовок сообщения: | Re: Отрисовка части (!) текста в ячейке грида другим цветом |
Тогда уж сразу поддержку html-тегов хотя бы небольшого их количества. Там и стили и цвета будут. Сейчас для таких случаев я пользуюсь джедаевской ItemHTDraw в событии OnAdvDrawDataCell грида. |
Автор: | Stalker4 [ 28 дек 2018, 11:15 ] |
Заголовок сообщения: | Re: Отрисовка части (!) текста в ячейке грида другим цветом |
maratvg писал(а): Тогда уж сразу поддержку html-тегов хотя бы небольшого их количества. Там и стили и цвета будут. А я давно просил автора добавить в грид в поддержку html-тегов (например как в библиотеках от TMS) - но пока воз и ныне там. Видать мало оно кому нужно ;-( |
Автор: | OlegX [ 28 дек 2018, 14:13 ] |
Заголовок сообщения: | Re: Отрисовка части (!) текста в ячейке грида другим цветом |
Я бы плюсанул эту хотелку |
Автор: | AndrewP [ 29 дек 2018, 09:02 ] |
Заголовок сообщения: | Re: Отрисовка части (!) текста в ячейке грида другим цветом |
Присоединяюсь к предыдущим авторам. |
Автор: | Cinemaizer [ 15 дек 2019, 09:47 ] |
Заголовок сообщения: | Re: Отрисовка части (!) текста в ячейке грида другим цветом |
Да, было бы отлично, хотя бы на минимальном уровне (цвет шрифта, толщина, наклон, перечеркивание...). |
Автор: | Cinemaizer [ 16 дек 2019, 07:19 ] |
Заголовок сообщения: | Re: Отрисовка части (!) текста в ячейке грида другим цветом |
И еще бы вставку картинки в произвольном месте, как в html-тегах. |
Страница 1 из 1 | Часовой пояс: UTC |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |