|
#1
|
|||
|
|||
Вопросы по dbgrid
1) 4 столбца сетки заполняются программой, и надо чтобы пользователь их не мог редактировать, а 2 столбца заполняет пользователь - тоесть они должны быть активны, как такое организовать использую ehgrid
2) Как сделать чтобы при щелчке на поле выдавался список значений которые берутся из другой таблицы, как в комбобоксе 3) Как подсвечивать разными цветами строки, разделять их надо по логическому столбцу, допустим если в поле галочка - красная строка, нет ничего - синяя |
#2
|
||||
|
||||
1) 2 раза кликаете по гриду, открываете список столбцов, выделяете первый столбец, в object inspector свойство ReadOnly ставим True...
Такое проделываете со всеми столбцами которые должны быть недоступны для редактирования. 2) для этого, необходимо почитать статьи про вычисляемые поля, а так же про поля типа LookUp. При правильном подходе, уверен, у Вас все получится. 3) Выделяете Грид. На закладке Events находите событие OnGetCellParams, и в теле этого события пишите примерно такой текст: Код:
If Table1.FieldByName('Check').Value = True then Background := clRed else Background := clBlue; "Люди никогда не видят то, существование чего им кажется невозможным." ©Терри Пратчетт |
#3
|
|||
|
|||
Вопрос 1. У колонок которые не редактируются поставь ReadOnly=true,
а у редактируемых соответссссно ReadOnly=false. Вопрос 2. Создай и заполни StringList из другой таблицы. Затем направь полученный StringList в PickList. Код:
Self.DBGridEh1.Columns[3].PickList:=t_StrList; Вопрос 3. См. образец Код:
procedure TForm1.DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumnEh; State: TGridDrawState); begin IF ля-ля-ля then Begin Self.DBGridEh1.Canvas.Brush.Color:=clRed; Self.DBGridEh1.DefaultDrawColumnCell(Rect,DataCol,Column,State); End; end; ЗЫ. В 1-ом и во 2-м вопросе сам грид должен быть редактируем. Обрати внимание на Options-dgEdited, Options-dgRowSelect и ReadOnly. |