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

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

Редактирование в DBGrid


Igor_thief ©   (2005-01-30 12:38:00) 

Как в DBGrid сделать так, чтобы можно было редактировать только одно поле, а все остальные нет. Я например сделал это таким образом:
procedure TfrmMain.DBGCalculationDrawDataCell(Sender: TObject;
 const Rect: TRect; Field: TField; State: TGridDrawState);
begin
 with DBGCalculation.Canvas do
   begin
     ...
         if Field.Name = DM.tCalculationTCount.Name then
           DBGCalculation.Options := DBGCalculation.Options + [dgEditing]
         else
           DBGCalculation.Options := DBGCalculation.Options - [dgEditing];
       end; // if
     ...
   end; // with
 DBGCalculation.DefaultDrawDataCell(Rect, Field, State);
end;
У кого есть другие (!!! но более оптимальные) способы решения, поделитесь?


Соловьев   (2005-02-02 12:00:00) [1]


> Дык я Table юзаю а не Query!

Дык. юзай TQuery и будешь несказанно рад.


Igor_thief   (2005-02-02 11:58:00) [2]

Соловьев ©   (02.02.05 11:51) [8]
Дык я Table юзаю а не Query!


Соловьев   (2005-02-02 11:51:00) [3]


> но и программно тоже.

а кто тебе запретил использовать SQL?


Igor_thief   (2005-02-02 11:49:00) [4]

Хруст ©   (01.02.05 16:28) [4]
Тогда эти поля нельзя будет редактировать не только через ДБГрид но и программно тоже.
Колумнс подходит для моей цели лучше. Хотя я привык работать напрямую с TFields, не создавая колонок в DBGrid. Ну ладно, теперь прийдется создать колонки и работать с ними. Хотя это, наверное, даже удобнее.
Всем спасибо!


ЮЮ   (2005-02-02 04:06:00) [5]

>З.Ы.: А мой способ вообще толком не работает. Hoops!

Потому что место этому коду не в OnDrawDataCell, а в OnColEnter


Johnmen   (2005-02-01 18:27:00) [6]

>Хруст ©   (01.02.05 16:28) [4]

Не надо путать коллекции TFields и TDBGridColumns.


Хруст   (2005-02-01 16:28:00) [7]

двоиной клик на TTable и иже с ним
Add All Fields
и в свойствах выставляешь
ReadOnly -> True(False)


Igor_thief   (2005-01-30 16:32:00) [8]

P.N.P. ©   (30.01.05 12:41) [1]
Точно!!! Я провтыкал! Спасибо! Я просто простудился. Я правда никогда не использовал Columns. Работал всегда с полями на прямую.

Anatoly Podgoretsky ©   (30.01.05 12:45) [2]
:о)

З.Ы.: А мой способ вообще толком не работает. Hoops!


Anatoly Podgoretsky   (2005-01-30 12:45:00) [9]

P.N.P. ©   (30.01.05 12:41) [1]
Ну там код писать не надо :-)


P.N.P.   (2005-01-30 12:41:00) [10]

DBGrid.Columns[x].ReadOnly чем не устраивает?


Наверх

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