Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помещение компонентов в 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. Вешать это все на обработчики вообще не круто, т.к. если понадобится еще один такой же грид, то придется еще раз все заново делать.


Наверх

Титульная страница Поиск, карта сайта Написать письмо