Здравствуйте Аноним, Вы писали:
А>Как вставить картинку в TDBGRid. Желательно исходник
Во первых можно обрабатывать onDrawDataCell
Во вторых, если это вызывает у тебя затуднение — есть много компонент, которые позволяют реализовать то, что тебе нужно. Например EhLib — очень советую. В RxLib помоему есть такая возможность.
В принципе, в этих компонентах есть исходники и можешь посмотреть, как это там реализованно.
Здравствуйте DemAS, Вы писали:
DAS>Здравствуйте Аноним, Вы писали:
А>>Как вставить картинку в TDBGRid. Желательно исходник
DAS> DAS> Во первых можно обрабатывать onDrawDataCell
DAS> DAS> Во вторых, если это вызывает у тебя затуднение — есть много компонент, которые позволяют реализовать то, что тебе нужно. Например EhLib — очень советую. В RxLib помоему есть такая возможность.
DAS> В принципе, в этих компонентах есть исходники и можешь посмотреть, как это там реализованно.
Это так в Дельфийском TDbGrid
на форме у меня ImageList1 c картинками из них я тяну рисунки в соответствующую колонку
begin
LeftBar.Panels[0].Text:=IntToStr(DM.Mag_N.RecNo)+' : '+IntToStr(DM.Mag_N.RecordCount);
if (Column.FieldName='ToSend' ) then
begin
with Grid.Canvas do
begin
FillRect(Rect);
if (DM.Mag_NToSend.asBoolean=true)
then
begin
ImageList1.Draw(TDBGrid(Sender).Canvas,round((Rect.Left+Rect.Right-10)/2),Rect.Top, 0);
end
else
begin
ImageList1.Draw(TDBGrid(Sender).Canvas,round((Rect.Left+Rect.Right-10)/2),Rect.Top, -1);
end;
end;
end;
IF gdSelected IN State
Then
Begin
TDBGrid(Sender).Canvas.Brush.Color:= clHighlight;
TDBGrid(Sender).Canvas.Font.Color := clHighlightText;
End;
//TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Работает 100% !!!! Надеюсь Вы будете довольны
Вообще была хорошая статейка "Полосатый DbGrid" на citforum.ru
begin
LeftBar.Panels[0].Text:=IntToStr(DM.Mag_N.RecNo)+' : '+IntToStr(DM.Mag_N.RecordCount);
if (Column.FieldName='ToSend' ) then
begin
with Grid.Canvas do
begin
FillRect(Rect);
if (DM.Mag_NToSend.asBoolean=true)
then
begin
ImageList1.Draw(TDBGrid(Sender).Canvas,round((Rect.Left+Rect.Right-10)/2),Rect.Top, 0);
end
else
begin
ImageList1.Draw(TDBGrid(Sender).Canvas,round((Rect.Left+Rect.Right-10)/2),Rect.Top, -1);
end;
end;
end;
IF gdSelected IN State
Then
Begin
TDBGrid(Sender).Canvas.Brush.Color:= clHighlight;
TDBGrid(Sender).Canvas.Font.Color := clHighlightText;
End;
//TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Работает 100% !!!! Надеюсь Вы будете довольны
Вообще была хорошая статейка "Полосатый DbGrid" на citforum.ru