Как вставить картинку в TDBGRid
От: Аноним  
Дата: 16.10.02 10:48
Оценка:
Как вставить картинку в TDBGRid. Желательно исходник
Re: Как вставить картинку в TDBGRid
От: DemAS http://demas.me
Дата: 16.10.02 11:03
Оценка:
Здравствуйте Аноним, Вы писали:

А>Как вставить картинку в TDBGRid. Желательно исходник



Во первых можно обрабатывать onDrawDataCell


Во вторых, если это вызывает у тебя затуднение — есть много компонент, которые позволяют реализовать то, что тебе нужно. Например EhLib — очень советую. В RxLib помоему есть такая возможность.

В принципе, в этих компонентах есть исходники и можешь посмотреть, как это там реализованно.
Re[2]: Как вставить картинку в TDBGRid
От: Keizer  
Дата: 16.10.02 13:37
Оценка:
Здравствуйте DemAS, Вы писали:

DAS>Здравствуйте Аноним, Вы писали:


А>>Как вставить картинку в TDBGRid. Желательно исходник


DAS>

DAS> Во первых можно обрабатывать onDrawDataCell

DAS>

DAS> Во вторых, если это вызывает у тебя затуднение — есть много компонент, которые позволяют реализовать то, что тебе нужно. Например EhLib — очень советую. В RxLib помоему есть такая возможность.

DAS> В принципе, в этих компонентах есть исходники и можешь посмотреть, как это там реализованно.



Это так в Дельфийском TDbGrid

на форме у меня ImageList1 c картинками из них я тяну рисунки в соответствующую колонку

procedure TNalOtpr.GridDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);

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
Re: Как вставить картинку в TDBGRid
От: Keizer  
Дата: 16.10.02 13:39
Оценка:
Здравствуйте Аноним, Вы писали:

А>Как вставить картинку в TDBGRid. Желательно исходник


так в Дельфийском TDbGrid

на форме у меня ImageList1 c картинками из них я тяну рисунки в соответствующую колонку

procedure TNalOtpr.GridDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);

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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.