Вопрос 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.