Правильно вывести изображение в ячейке RxDbGrid

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Правильно вывести изображение в ячейке RxDbGrid

Сообщение Lemboy » 14.02.2010 02:19:19

Есть несколько устаревший опыт в Delphi, Lazarus только начинаю изучать.

Не могу сообразить, как в RxDbGrid в определенном столбце по условию вывести иконку.
Такой код желаемого результата не дает:
Код: Выделить всё

procedure TRxDBGridMainForm.RxDBGrid1DrawColumnCell(Sender: TObject;
    const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
    if Column.ID = 0 then
      ImageList1.Draw(TRxDBGrid(Sender).Canvas,Rect.Left,Rect.Top, 0 );
end;


Если правильно понял alexs, нужно использовать OnGetCellProps, но как именно в данном случае, сообразить не могу.

(WinXP, Lazarus 0.9.28.2, RXLib последний отсюда: http://lazarus-ccr.svn.sourceforge.net/ ... z?view=tar)
Lemboy
незнакомец
 
Сообщения: 8
Зарегистрирован: 14.02.2010 01:46:13
Откуда: Крым

Re: Правильно вывести изображение в ячейке RxDbGrid

Сообщение alexs » 14.02.2010 15:53:01

Можно вобще всё визуально сделать. Это если у тебя картинка однозначно соответсвет значению поля.
Посмотри у колонки свойсово ImageList
а также KeyList
в ImageList устанавливаеш изображения, которые будеш отображать.
а в KeyList вносиш чо-то типа такого:
1=0
2=1
3=2

где то что до = - значание поля, а после равно - соответсвеющий индекс из ImageList-а.
Код: Выделить всё
    RxColumn:=TRxColumn(ColumnFromGridColumn(aCol));
    if Assigned(RxColumn) and Assigned(RxColumn.Field) and Assigned(RxColumn.ImageList) then
    begin
      AImageIndex:=StrToIntDef(RxColumn.KeyList.Values[RxColumn.Field.AsString], RxColumn.FNotInKeyListIndex);
      if (AImageIndex > -1) and (AImageIndex < RxColumn.ImageList.Count) then
        DrawCellBitmap(RxColumn, aRect, aState, AImageIndex);
    end

Видиш - вот код, оторый отображает картинку в методе TRxDBGrid.DrawCell
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Правильно вывести изображение в ячейке RxDbGrid

Сообщение Lemboy » 14.02.2010 22:25:26

Работает! :)
Очень удобная связка ImageList - KeyList.

Самое забавное, что я этого ImageList property не то что не заметил - не нашел, хотя искал.

Спасибо!
Lemboy
незнакомец
 
Сообщения: 8
Зарегистрирован: 14.02.2010 01:46:13
Откуда: Крым

Re: Правильно вывести изображение в ячейке RxDbGrid

Сообщение Lemboy » 20.02.2010 22:03:01

Однако, есть вопрос.

Похоже, конструкция "ImageList - KeyList" перестает работать если в RxDBGrid.Options
параметры dgIndicator=False либо dgTitles=False
В этих случаях в соответствующей колонке вместо иконки отображается значение поля.
Lemboy
незнакомец
 
Сообщения: 8
Зарегистрирован: 14.02.2010 01:46:13
Откуда: Крым

Re: Правильно вывести изображение в ячейке RxDbGrid

Сообщение mkazakov » 22.03.2012 11:00:18

глупый вопрос а где взять компоненту KeyList?
mkazakov
новенький
 
Сообщения: 52
Зарегистрирован: 24.02.2012 14:04:14
Откуда: Балаково

Re: Правильно вывести изображение в ячейке RxDbGrid

Сообщение ZeUsM » 22.03.2012 11:23:51

mkazakov

Посмотри у колонки свойсово ImageList
а также KeyList


Это не компоненты.
Аватара пользователя
ZeUsM
новенький
 
Сообщения: 57
Зарегистрирован: 08.11.2010 13:55:35
Откуда: Нерезиновая

Re: Правильно вывести изображение в ячейке RxDbGrid

Сообщение mkazakov » 22.03.2012 11:27:01

ZeUsM писал(а):mkazakov

Посмотри у колонки свойсово ImageList
а также KeyList


Это не компоненты.


все равно в RxDbGrid я этого не обнаружил.
mkazakov
новенький
 
Сообщения: 52
Зарегистрирован: 24.02.2012 14:04:14
Откуда: Балаково

Re: Правильно вывести изображение в ячейке RxDbGrid

Сообщение ZeUsM » 22.03.2012 11:36:10

Изображение

Плохо смотрел. :D
Аватара пользователя
ZeUsM
новенький
 
Сообщения: 57
Зарегистрирован: 08.11.2010 13:55:35
Откуда: Нерезиновая

Re: Правильно вывести изображение в ячейке RxDbGrid

Сообщение mkazakov » 22.03.2012 11:41:17

ZeUsM писал(а):Изображение

Плохо смотрел. :D


Хорошо смотрел

Изображение
mkazakov
новенький
 
Сообщения: 52
Зарегистрирован: 24.02.2012 14:04:14
Откуда: Балаково

Re: Правильно вывести изображение в ячейке RxDbGrid

Сообщение ZeUsM » 22.03.2012 11:53:36

Не очень хорошо все таки смотрел, это свойство не грида, а колонки. Чтобы до него добраться нужно создать колонку, я вроде на скрине это показал, не? :o
Аватара пользователя
ZeUsM
новенький
 
Сообщения: 57
Зарегистрирован: 08.11.2010 13:55:35
Откуда: Нерезиновая

Re: Правильно вывести изображение в ячейке RxDbGrid

Сообщение mkazakov » 22.03.2012 12:03:16

Ок :D
mkazakov
новенький
 
Сообщения: 52
Зарегистрирован: 24.02.2012 14:04:14
Откуда: Балаково


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 205

Рейтинг@Mail.ru
cron