![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помещение компонентов в DBGrid [D6, WinXP]
DimMih © (2005-12-02 12:04:00)Помогите разобраться. Необходимо поместить в DBGrid DBComboBox, вот код:
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.Visible := True;
end;
end;
end;
Работает только тогда, когда DBGrid1.Columns.State:=csDefault, т.е. при этом подгружаются все поля из таблицы. Мне не нужно отображать все поля, но при этом DBComboBox не будет отображаться в DBGrid........
Dimmih (2005-12-02 12:19:00) [1]Сделал через OnDrawColumnCell. Спасибо!
ANB (2005-12-02 12:10:00) [2]1. Комбобокс пихать в грид смысла нету - проще локаповое поле завести - тогда он сам там появится.
2. Если уж очень охота ручками его делать - то лучше в OnDrawColumnCell.
3. Вешать это все на обработчики вообще не круто, т.к. если понадобится еще один такой же грид, то придется еще раз все заново делать.