Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2010, 10:47   #1
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию Вставить *ico в ячейку DBGridEh

Всем доброго дня,

Надо украсить DBGridEh иконками. Кое с чем разобрался. Например, иконку в Title

Код:
DBGridEh1.Columns[4].ImageList := ImageList1;
DBGridEh1.Columns[4].Title.ImageIndex := 2;
Надо показать иконку в ячейке вместе с текстом. То есть слева в ячейке иконка, а за ней текст. По-идеи как-то так

Код:
DBGridEh1.Columns[2].ShowImageAndText:= True;
DBGridEh1.Columns[2].ImageList := ImageList1;
Но тогда Columns[2] должен быть заполнен числами, соответствующими индексам ImageList1. А у меня в столбце текст. Надо как-то ручками указать индекс (по аналогии с Title).
new player вне форума Ответить с цитированием
Старый 30.09.2010, 14:04   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Первое, что приходит на ум:
Код:
procedure TfrmMain.GridDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
var cc: TCanvas;
  Bitmap: TBitmap;
begin
  {Делаем только для столбца 2}
  if (DataCol = 2) then
  begin
    Bitmap := TBitmap.Create;
    {KlientNUMBER.Value - значение того самого числового поля ...}
    case  KlientNUMBER.Value of
     0: Bitmap.LoadFromFile('Test.bmp');
     1: Bitmap.LoadFromFile('Test2.bmp');
    end;
    cc := Grid.Canvas;
    cc.FillRect(rect);
    cc.Draw(Rect.Left, Rect.Top, Bitmap);
    {KlientZAKAZCHIK.Text - значение тестового поля, в который пихаем иконку
    Ширина иконки 16, поэтому отступ текста сделаем 20 px}
    cc.TextOut(Rect.Left + 20, Rect.Top, KlientZAKAZCHIK.Text);
    Bitmap.Free;
  end;
end;
Только иконки грузить из файла как-то некрасиво. Затолкай их в ресурсы что-ли...
_SERGEYX_ вне форума Ответить с цитированием
Старый 30.09.2010, 16:37   #3
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию

И снова спасибо, _SERGEYX_

Немного перебил код

Код:
var cc: TCanvas;
begin
  if (DataCol = 0) then
  begin
    Icon := TIcon.Create;
    Icon.LoadFromFile('user1_16.ico');
    cc := DBGridEh1.Canvas;
    cc.FillRect(rect);
    cc.Draw(Rect.Left, Rect.Top, Icon);
    cc.TextOut(Rect.Left + 20, Rect.Top, DBGridEh1.DataSource.DataSet.Fields[0].AsString);
    Icon.Free;
  end;
Отображается все прекрасн. Лишь, когда закрываешь программу вылетает. Invalid pointer operation. Вроде бы это ошибка о неверной операции с указателем. Буду разбираться.

Последний раз редактировалось new player; 30.09.2010 в 16:39.
new player вне форума Ответить с цитированием
Старый 04.10.2010, 13:13   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Icon.LoadFromFile('user1_16.ico'); смотрится как-то некрасиво.
ImageList1.GetBitmap(0,Bitmap); симпатичнее :=))
_SERGEYX_ вне форума Ответить с цитированием
Старый 04.10.2010, 14:30   #5
new player
Форумчанин
 
Регистрация: 30.08.2010
Сообщений: 153
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Icon.LoadFromFile('user1_16.ico'); смотрится как-то некрасиво.
ImageList1.GetBitmap(0,Bitmap); симпатичнее :=))
Согласен. Выглядит намного симпатичнее

Последний раз редактировалось new player; 04.10.2010 в 14:33.
new player вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вставить в ячейку имя листа ElenaTro Microsoft Office Excel 7 16.03.2013 10:50
Как вставить картинку в ячейку drawgrid? prod87 Общие вопросы Delphi 4 29.11.2012 21:05
как вставить в ячейку ссылку на фаил Lis000iq Microsoft Office Excel 3 11.06.2010 23:55
как вставить ссылку на ячейку в документе Excel в Word? ruavia3 Microsoft Office Excel 3 19.03.2009 21:32
как вставить ссылку в Word на ячейку в документе Excel? ruavia3 Microsoft Office Word 2 19.03.2009 21:24