powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DevExpress. Есть ли возможность в одну ячейку TcxGrid засунуть несколько иконок?
7 сообщений из 7, страница 1 из 1
DevExpress. Есть ли возможность в одну ячейку TcxGrid засунуть несколько иконок?
    #39788819
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Использую TcxGridTableView, создаю несколько колонок, по одной из колонок мне нужно отображать иконки загруженные в TcxImageList. Т.е. в разных записях по колонке должны присутствовать разное количество иконок.

Такое возможно? (не нашёл нужной свойство по колонке).
...
Рейтинг: 0 / 0
DevExpress. Есть ли возможность в одну ячейку TcxGrid засунуть несколько иконок?
    #39788825
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CustomDrewCell
...
Рейтинг: 0 / 0
DevExpress. Есть ли возможность в одну ячейку TcxGrid засунуть несколько иконок?
    #39788829
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Способы:

1) делаешь много тоненьких колонок. Каждая для своей иконки. Сколько их может быть сразу? Пять? Тогда 5 колонок.
2) отрисовывать что угодно в событии OnCustomDrawCell
...
Рейтинг: 0 / 0
DevExpress. Есть ли возможность в одну ячейку TcxGrid засунуть несколько иконок?
    #39788867
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из странных вариантов можно еще рассмотреть TcxButtonEdit в ячейке, тогда по иконкам-кнопкам еще и тыкать можно будет
...
Рейтинг: 0 / 0
DevExpress. Есть ли возможность в одну ячейку TcxGrid засунуть несколько иконок?
    #39788880
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBr,

хм.. вроде как идея ясна, а Вы можете привести пример в виде куска кода?
...
Рейтинг: 0 / 0
DevExpress. Есть ли возможность в одну ячейку TcxGrid засунуть несколько иконок?
    #39788902
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
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.
procedure TMainTableGraphFrm.cxTreeCustomDrawDataCell;
var Node: TcxTreeListNode;
    R: TRect;
begin
...
  if AViewInfo.Column = cxTreeDrawProp then begin
    R := AViewInfo.ContentRect;
    if Node.Selected
      then ACanvas.FillRect(R,cxTree.Styles.Selection.Color)
      else ACanvas.FillRect(R,GraphDontNowColor);

    if SignVacansy then begin
      ACanvas.DrawImage(DataModuleFrm.ImageListGrid,R.Left,R.Top+1,19);
      inc(R.Left,16);
    end;
    if SignState then begin
      ACanvas.DrawImage(DataModuleFrm.ImageListGrid,R.Left,R.Top+1,20);
      inc(R.Left,16);
    end;
...
    ADone := true;
    Exit;
  end;
....
end;
...
Рейтинг: 0 / 0
DevExpress. Есть ли возможность в одну ячейку TcxGrid засунуть несколько иконок?
    #39788903
__Avenger__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
procedure TformDEOperations.tvMainPARAMS_MASKCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);

  procedure DrawRhomb(ACanvas: TCanvas; const x, y: Integer; const AColor: TColor; const ASize: Integer = 5);
  begin
    with ACanvas do
    begin
      Brush.Style := bsSolid;
      Brush.Color := AColor;
      Pen.Color   := AColor;
      Polygon([
        Point(x, y),
        Point(x + ASize, y - ASize),
        Point(x + 2 * ASize, y),
        Point(x + ASize, y + ASize)
      ]);
    end;
  end;

const
  RhombSize = 4;
var
  ARect: TRect;
  x, y: Integer;
  AMask: Int64;
begin
  if not Assigned(AViewInfo) then
    Exit;
  AMask := StrToInt64Def(VarToStr(AViewInfo.GridRecord.Values[tvMainPARAMS_MASK.Index]), 0);
  ARect := AViewInfo.Bounds;
  ACanvas.FillRect(ARect, AViewInfo.Params.Color);
  x     := ARect.Left + 2;
  y     := ARect.Top  - 1 + (ARect.Bottom - ARect.Top) div 2;
  // Draw Rhombs
  // Обработанный или необработанный пакет
  if AMask and 8 = 8 then // В процессе обработки обнаружены ошибки
    DrawRhomb(ACanvas.Canvas, x, y, clOlive, RhombSize)
  else if AMask and 1 = 1 then
    DrawRhomb(ACanvas.Canvas, x, y, clLime, RhombSize)
  else
    DrawRhomb(ACanvas.Canvas, x, y, clRed, RhombSize);
  Inc(x, 2 * RhombSize + 3);
  // Выгруженный пакет
  if AMask and 2 = 2 then
    DrawRhomb(ACanvas.Canvas, x, y, clFuchsia, RhombSize);
  Inc(x, 2 * RhombSize + 3);
  // В пакете есть PB2
  if AMask and 4 = 4 then
    DrawRhomb(ACanvas.Canvas, x, y, clBlack, RhombSize);
  ADone := True;
end;

...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DevExpress. Есть ли возможность в одну ячейку TcxGrid засунуть несколько иконок?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]