![]() |
|
|
#1
|
|||
|
|||
|
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. |