Ho capito, ma resta il fatto che l evento mousedown su di un record pieno della tdbgrid non si scatena.
Nello specifico quello che volevo fare io è un drag and drop da una tdbgrid a una stringlist dei dati del record della tdbgrid.
quello che avevo pensato io era quindi:
al mousedown sulla tdbgrid mi memorizzo i dati del record corrente;
e inizia il drag
sull evento dragdrop della stringlist aggiungo i dati che mi ero memorizzato, ma appunto non “entrando” nel metodo mouse down dell dbrid non posso fare cosi.
se c'e' un altro modo per fre drag and drop…
grazie ancora 
p.s. posto il codice:
 evento onmousedown della tdbgrid
   myRecColor:=TRecColor.create;
   myRecColor.ID:=DBGridInks.DataSource.DataSet.FieldByName('ID').AsInteger;
   myRecColor.Descrizione:=DBGridInks.DataSource.DataSet.FieldByName('DESCRDEF').AsString;
   myRecColor.rgb:=DBGridInks.DataSource.DataSet.FieldByName('RGBCODE').AsString;
   myRecColor.Colore:=DBGridInks.DataSource.DataSet.FieldByName('RGBCODE').AsInteger;
   myRecColor.Col:=DBGridInks.DataSource.DataSet.FieldByName('POSCOL').AsInteger;
   myRecColor.Row:=DBGridInks.DataSource.DataSet.FieldByName('POSROW').AsInteger;
   DBGridInks.BeginDrag(True);
evento  dragdrop della tstringlist:
var
  r,c:integer ;
  inkSource,inkDest:TRecColor;
 if Source = DBGridInks then
 begin
   with SgridInkPos do
   begin
      MouseToCell( x, y, c, r );
      inkDest :=  TRecColor( Objects[c, r]);
      //  if not(Assigned(inkDest) )then
      begin
         inkSource := myRecColor;
         if InkExistIngrid(inkSource) then
         begin
            ShowModalMessage('THIS COLOR IS PRESENT IN POSITION: '+#13#10+'ROW='+IntToStr(inkSource.Row)+#13#10+'COLUMN='+inttostr(inkSource.Col),'COPY IP',eTM_warning,5000,True,False);
            Exit;
         end;
        inkSource.Row := r+1;
        inkSource.Col := c+1;
        objects[c,r]  := inkSource;
        cells[c,r]    := inkSource.Descrizione ;
        inkDest:= inkSource;
      end;
   end;