powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как рисовать в ячейке DBGrid картинку, в зависимости от значения поля?
6 сообщений из 6, страница 1 из 1
Как рисовать в ячейке DBGrid картинку, в зависимости от значения поля?
    #32091898
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как рисовать в ячейке DBGrid картинку, в зависимости от значения поля?
Вот так раскрашивать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure TFormMain.grdElementDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  //проверяешь содержимое поля
  case qryElements.FieldByName('TypeElement').AsInteger of
   1 : begin
        TDBGrid(Sender).Canvas.Brush.Color:=$9DEBAC;
    end;
   2 : begin
        TDBGrid(Sender).Canvas.Brush.Color:=clRed;
    end;
  end;
  // А теперь пусть он рисует сам !
  TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

а рисовать так, чтобы сдвигался текст?
...
Рейтинг: 0 / 0
Как рисовать в ячейке DBGrid картинку, в зависимости от значения поля?
    #32091988
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в сети есть примеры.

Но лучше уж использовать грид из EhLib - там он все это умеет сам. Только imagelist с картинками указываешь и при каком значении что рисовать - и все.
...
Рейтинг: 0 / 0
Как рисовать в ячейке DBGrid картинку, в зависимости от значения поля?
    #32092232
LexusR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbgIcons: TDBGrid;
.....
procedure TfrmIconLibrary.dbgIconsDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
NewBitmap : TBitmap;
NewRect : TRect;
begin
if ((Column.Field = adoIconLibraryIcon)and(Column.Field.Value= условие)) then \\выбор нужной ячейки
begin
dbgIcons.Canvas.FillRect(Rect);
NewBitmap := TBitmap.Create;
NewBitmap.Assign(Column.Field);
if not NewBitmap.Empty then
begin
NewBitmap.Transparent := true;
dbgIcons.Canvas.Draw(Rect.Left,Rect.Top,NewBitmap);
end;
NewRect := Rect;
NewRect.Left := NewRect.Left+NewBitmap.Width+5;\\сдвиг для отрисовки текста
dbgIcons.Canvas.TextOut(NewRect.Left,NewRect.Top,'Ваш текст');
NewBitmap.Free;
end;
end;
...
Рейтинг: 0 / 0
Как рисовать в ячейке DBGrid картинку, в зависимости от значения поля?
    #32092244
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На //www.delphikingdom.com есть статья по раскраске и вставке рисунков в Грид, называется "Разноцвеьтный DBGrid", там все подробненько прописано, почитай может себе чтото интересное найдешь. Н примере этой статьи я делаю так:

procedure TFrmTypeEngine.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Column.Index = 0 then
begin
if (DM.IBQueryTypeEngineDATA_ACTIV.AsDateTime <= FrmMain.CurDateAct)
and ((DM.IBQueryTypeEngineDATA_DEACTIV.AsDateTime > FrmMain.CurDateAct)
or (DM.IBQueryTypeEngineDATA_DEACTIV.AsDateTime = 0))
then// активная
DM.ImageList16.Draw(TDBGrid(Sender).Canvas,Rect.Left,Rect.Top, 7)
else
begin
if (DM.IBQueryTypeEngineDATA_ACTIV.AsDateTime > FrmMain.CurDateAct)
then // если вид эл.эн. не вступил в действие
DM.ImageList16.Draw(TDBGrid(Sender).Canvas,Rect.Left,Rect.Top, 8)
else if (DM.IBQueryTypeEngineDATA_DEACTIV.AsDateTime <= FrmMain.CurDateAct)
then// если срок вышел
DM.ImageList16.Draw(TDBGrid(Sender).Canvas,Rect.Left,Rect.Top, 6)

end;

end;
end;
Картинки беруться из ИмеджЛиста.
Попробуй, может понравиться.

Да и к стати гдето твой код расскраски Грида я уже видел:-).
...
Рейтинг: 0 / 0
Как рисовать в ячейке DBGrid картинку, в зависимости от значения поля?
    #32092257
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так я же вроде сказал, спасибо многоуважаемый Voha
и ни в коем случае не приписываю себе авторство на этот код, а честно признаю, что скемперил его
сорри, за то что не указал автора...
(с) CopyRigth предыдущего кода Voha
...
Рейтинг: 0 / 0
Как рисовать в ячейке DBGrid картинку, в зависимости от значения поля?
    #32092348
Voha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я просто приколося, идея кода не моя, я те ссылку давал сразу еслибы покапался нашелбы ответ и на этот вопрос.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как рисовать в ячейке DBGrid картинку, в зависимости от значения поля?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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