Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
8 / 8 / 4
Регистрация: 11.07.2012
Сообщений: 200
1

Кастомная отрисовка в компонентах DevExpress

19.11.2018, 09:19. Показов 1261. Ответов 1
Метки нет (Все метки)

Всем доброго времени суток.

Вопрос по DevExpress (TcxTreeList - CustomDrawDataCell)

Если кто нибудь реализовывал в своих проектах кастомную отрисовку текста (содержимого в ячейках грида).

Встала задача раскрасить посимвольно текст в ячейке, и она реализована в событии CustomDrawDataCell

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
procedure TFrmLog.tlLogCustomDrawDataCell(Sender: TcxCustomTreeList;
  ACanvas: TcxCanvas; AViewInfo: TcxTreeListEditCellViewInfo;
  var ADone: Boolean);
var
  ManagerCustomDrawCell: IManagerCustomDrawCell;
begin
  if (AViewInfo.Column.ItemIndex = 2) then
  begin
    ADone := True; // сами полностью всё пророисовываем
 
    ACanvas.FillRect(AViewInfo.ContentRect); 
 
    ManagerCustomDrawCell := TManagerCustomDrawCell.Create(
      AViewInfo.Node.Texts[2], 
      AViewInfo.ContentRect, ACanvas);
 
    ManagerCustomDrawCell.DoTextOut;
  end;
end;
 
  ........................
 
procedure TManagerCustomDrawCell.RangeTextOutByTag(const AItemTag: TItemTag;
  const AParseStr: string; const ATop, ABottom: Integer);
var
  RangeStr: string;
begin
  RangeStr := Copy(AParseStr, AItemTag.FPosBeginTag,
    (AItemTag.FPosEndTag + 1) - AItemTag.FPosBeginTag);
 
  FCanvas.Font.Color := AItemTag.FColor;
 
  FCanvas.DrawText(RangeStr, Rect(AItemTag.FRectLeft, ATop,
    AItemTag.FRectRight, ABottom), cxShowEndEllipsis);
end;
Частично привел код который этим занимается.
Теперь текст раскрашивается соглассованно с заранее построеной картой тэгов (сам текст также заранее в эти теги
обрамлен) и все хорошо но одно НО

Когда сдвигаешь правую границу столбца в котором текст отрисован кастомно то она наползает на содержимое
этого стобца вместе с текстом следующего столбца.

Если сделать.
Delphi
1
ADone := False;
то TcxTreeList сам начинает рулить отрисовкой содержимого
в инспекторе обьектов можно настроить авто перенос строки можно без него но влюбом случае текст
скрывается за границей не что не на что не налазит но и посимвольно раскрасить нельзя можно только
всю строку.

Все это относится не только к
Delphi
1
TcxTreeList
но и к другим
Delphi
1
DevExpress
контролам.

Подскажите что где нужно подкрутить, ни где не могу найти похожего примера / случая.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2018, 09:19
Ответы с готовыми решениями:

Кастомная отрисовка виджета
Всем привет. Столкнулся с такой проблемой: В общем есть виджет, который отображает некоторые...

Кастомная клавиатура
Доброго времени суток!Как сделать кастомную клавиатуру в собственном приложении?Весь Интернет...

Кастомная оболочка
Начал изучать JavaFX. Новичок совсем. Хочу создать свое приложение с кастомным графическим...

кастомная валидация
Здравствуйте. Не могу написать правильно валидацию. Есть таблица компании и таблица юзеры. При...

1
qwertehok
19.11.2018, 11:07     Кастомная отрисовка в компонентах DevExpress
  #2

Не по теме:

лучше напишите вопрос в поддержку DevExpress, отвечают достаточно быстро и с примерами

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2018, 11:07

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Кастомная таблица
Здравствуйте, у меня такой вопрос возник с версткой в Django. возможно ли сделать такое? если да,...

Кастомная авторизация
В общем зачем мне это надо, ответ прост - начальство как всегда самое умное... Так вот в общем-то...

Кастомная пагинация страниц
Доброго времени, форумчане! Подскажите идею как можно сделать следующее - пагинация в таком виде ...

Кастомная сборка программ
Требуется собрать установщики программ в один, и произвести тихую установку — чтобы за один клик...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.