我的窗体里有一个dbcombobox和Dbgrid,按很多朋友的说法我已经实现了dbcombobox和Dbgrid的某个字段的关联,,但是Dbcombobox怎么没嵌进我指定的单元格里面,而是悬浮在外面呀?
还有哪些东西要设置呀?4、 DrawDataCell事件是绘制单元格,当获得焦点网格所对应的字段与组合框所对应的字段一致时,移动组合框到获得焦点的网格上,并且 
使组合框可视,从而达到在DBGrid指定列上显示DBComboBox的功能。设置DBGrid1的OnDrawDataCell事件如下:  
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;  Field: TField; State: TGridDrawState); 
begin 
    if (gdFocused in State) then 
    begin 
        if (Field.FieldName = DBComboBox1.DataField ) then 
        begin 
            DBComboBox1.Left := Rect.Left + DBGrid1.Left; 
            DBComboBox1.Top := Rect.Top + DBGrid1.top; 
            DBComboBox1.Width := Rect.Right - Rect.Left; 
            DBComboBox1.Height := Rect.Bottom - Rect.Top; 
            DBComboBox1.Visible := True; 
     end; 
  end; 
end; ---- 5、 DBGrid指定单元格未获得焦点时不显示DBComboBox,设置DBGrid1的OnColExit事件如下:  
procedure TForm1.DBGrid1ColExit(Sender: TObject); 
begin 
    If DBGrid1.SelectedField.FieldName  = DBComboBox1.DataField then 
    begin 
        DBComboBox1.Visible := false; 
   end; 
end; ---- 6、 当DBGrid指定列获得焦点时DrawDataCell事件只是绘制单元格,并显示DBComboBox,但是DBComboBox并没有获得焦点,数据的输入还是在单元格上进行。在DBGrid1的KeyPress事件中调用SendMessage这个 Windows API函数将数据输入传输到DBComboBox上,从而达到在DBComboBox上进行数据输入。因此还要设置KeyPress事件如下:  
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); 
begin 
    if (key < > chr(9)) then 
    begin 
        if (DBGrid1.SelectedField.FieldName   =DBComboBox1.DataField) then 
        begin 
             DBComboBox1.SetFocus; 
             SendMessage(DBComboBox1.Handle, WM_Char, word(Key), 0); 
        end; 
    end; 
end;