dodawanie obrazka do komorki w dbGrid

0

Witam
Mam pytanie jak w DBGrid w jakiejś komórce np 3,5 dać jakiś obrazek z imagelist...???
takie cos mam zrobione ale do stringgrida i działa wszystko ok ale nie wiem jak to pozmieniać żeby szlo na DBGridzie...
ma ktoś pomysł??

aha i zeby on dodawal te obrazki po zaladowaniu bazy ... czyli ze nie z bazy ladoje obrazki tylko z dysku...

A to kod do dodawania obrazka do wybranej komórki w stringgridzie:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
    n,col: Integer;
begin
 if StringGrid1.Cells[ACol,ARow] ='PC' then
 n:=4
 else if StringGrid1.Cells[ACol,ARow] ='GBA'then
 n:=1
 else if StringGrid1.Cells[ACol,ARow] ='GCN'then
 n:=2
 else if StringGrid1.Cells[ACol,ARow] ='NDS'then
 n:=3
 else if StringGrid1.Cells[ACol,ARow] ='360'then
 n:=0
 else if StringGrid1.Cells[ACol,ARow] ='PS2'then
 n:=5
 else if StringGrid1.Cells[ACol,ARow] ='PS3'then
 n:=6
 else if StringGrid1.Cells[ACol,ARow] ='PSP'then
 n:=7
 else if StringGrid1.Cells[ACol,ARow] ='XBX'then
 n:=8
 else
 n:=-1;
 if n >= 0 then
        ImageList1.Draw(StringGrid1.Canvas,Rect.left,Rect.Top,n);
if StringGrid1.Cells[ACol,ARow] ='      TAK' then
 n:=9
 else if StringGrid1.Cells[ACol,ARow] ='      NIE'then
 n:=10;
if n >= 0 then
        ImageList1.Draw(StringGrid1.Canvas,Rect.left,Rect.Top,n);

end;

<font size="3">PYTANIE 2. :)</span>

O a teraz pomyślałem ze może tez to byc tak ze zamiast do dbgrid ładować sie baza ładowała by sie do stringgrida i przy zamknięciu by sie zapisywała(jeśli użytkownik by tego pragną)... ale da sie tak zrobić??

0

Kiedyś było na forum :

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
obrazek : TBitmap;
begin
if Column.FieldName = 'Płeć' then
begin
obrazek:=TBitmap.Create;
if column.Field.value='M' then
imagelist1.GetBitmap(1,obrazek)
else
imagelist1.GetBitmap(0,obrazek);
dbgrid1.Canvas.StretchDraw(Rect,obrazek);
obrazek.Free;
end
else
(sender as tdbgrid).DefaultDrawColumnCell(Rect, DataCol , column ,
State);
end;

0

O właśnie o to mi chodziło wielkie dzięki ci za ten kodzik :D:D

1 użytkowników online, w tym zalogowanych: 0, gości: 1