Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.08.2011, 09:59
Nicky Nicky вне форума
Прохожий
 
Регистрация: 18.08.2011
Сообщения: 3
Репутация: 10
По умолчанию cxGrid + иконка

Добрый день! Подскажите, пожалуйста, как можно использовать подстановку иконок в cxGrid для определенного значения в ячейке.
И вообще есть ли возможность в одной ячейке выводить значение ячейки + иконка или нужно создавать дополнительное поле?

Необходимо сделать следующее:

Код:
procedure TForm.NameCellCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
 if  cxGridDBBandedTableView1Name.DataBinding.DataController.DataSet.FieldByName('TEMP_OPEN').Value < 1
 then 'показывать icon1';
end;
Ответить с цитированием
  #2  
Старый 18.08.2011, 15:00
Nicky Nicky вне форума
Прохожий
 
Регистрация: 18.08.2011
Сообщения: 3
Репутация: 10
По умолчанию

Разобралась. Теперь бы еще вместе с иконкой данные выводить...



Код:
procedure TAnalysisOfTrans.cxGridDBBandedTableViewCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
Var r           : TRect;
    iImageIndex : Integer ;
begin
  If (TcxGridDBBandedColumn(AViewInfo.Item) = cxGridDBBandedTableViewTEMP_OPEN) then
Begin

   If (AViewInfo.GridRecord.Values[cxGridDBBandedTableViewTEMP_OPEN.Index] > 0)
Then Begin
         iImageIndex := 0 ;
      End;

If (AViewInfo.GridRecord.Values[cxGridDBBandedTableViewTEMP_OPEN.Index] < 0)
      Then Begin
         iImageIndex := 1 ;
      End;

If (AViewInfo.GridRecord.Values[cxGridDBBandedTableViewTEMP_OPEN.Index] = 0)
      Then Begin
         iImageIndex := 2 ;
      End;

      R := AViewInfo.Bounds ;
      ACanvas.Brush.Color := AViewInfo.Params.Color;
      ACanvas.FillRect(R);

      // draw the image.
      R := AViewInfo.Bounds ;
      Inc(r.Top,1);
      ACanvas.DrawImage(ImageList1,r.Left,r.Top,iImageIndex,True);
      ADone := True ;
   End;


end;
Ответить с цитированием
  #3  
Старый 18.08.2011, 15:11
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Попробуй закомментировать эту часть кода:

Код:
      R := AViewInfo.Bounds ;
      ACanvas.Brush.Color := AViewInfo.Params.Color;
      ACanvas.FillRect(R);
__________________
Google в помощь
Ответить с цитированием
  #4  
Старый 18.08.2011, 15:22
Nicky Nicky вне форума
Прохожий
 
Регистрация: 18.08.2011
Сообщения: 3
Репутация: 10
По умолчанию

Тема закрыта.


Код:
procedure TAnalysisOfTrans.cxGridDBBandedTableViewCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
Var r                 : TRect;
    iImageIndex, iVal : Integer;
    sVal              :string;
begin
  If (TcxGridDBBandedColumn(AViewInfo.Item) = cxGridDBBandedTableViewTEMP_OPEN) then
Begin
    iVal:= AViewInfo.GridRecord.Values[cxGridDBBandedTableViewTEMP_OPEN.Index];

   If (iVal > 0)
Then Begin
         iImageIndex := 0 ;
      End;

If (iVal < 0)
      Then Begin
         iImageIndex := 1 ;
      End;

If (iVal = 0)
      Then Begin
         iImageIndex := 2 ;
      End;

      R := AViewInfo.Bounds ;
      ACanvas.Brush.Color := AViewInfo.Params.Color;
      ACanvas.FillRect(R);

      // Draw the number left justified in the cell.
      Inc(r.Left,1);
      sVal := IntToStr(iVal);
      ACanvas.DrawTexT(sVal,r,cxAlignLeft or cxAlignVCenter);

       // draw the image right justified in the cell.
      // this assmues that the image is 16 x 16 pixles.
      R.Left := (R.Right - 16);
      Inc(r.Top,1);
      ACanvas.DrawImage(ImageList1,r.Left,r.Top,iImageIndex,True);
      ADone := True ;
   End;
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:04.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter