Witam!
Proszę o wskazówkę jak uzyskać efekt edycji podświetlonej komórki w dbgrid, po jej wybraniu bez względu czy user ustawił na niej kursor myszki czy komórka jest zaznaczona poprzez przyciski kursora. Po prostu musi wykonać się jakby w tle wcisnięcie F2. Próbuje to uzyskać poprzez: dbgrid1.EditorMode:=true; - niestety nie jest to rozwiązanie.
Dziękuje za podpowiedz i pozdrawiam serdecznie
Piotr
ps. próbowałem również:
if (dataCol=3) and ( State = [gdSelected,gdFocused] )
then
PostMessage (Handle, WM_KEYUP, VK_F2, 0);
procedure TFAPQP.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
grid : TDBGrid;
row : integer;
begin
grid := sender as TDBGrid;
if (dataCol=2) and ( State = [gdSelected] )
then
dbgrid1.EditorMode:=true;
row := grid.DataSource.DataSet.RecNo;
grid.ReadOnly:=false;
if grid.dataSource.DataSet.FieldByName('Resp_dep').AsString='HEAD'
then grid.Canvas.Brush.Color := clSilver;
//grid.Canvas.Brush.Color := clDkGray;
//nie zamkniesz finish gdy OPEN Check_List
if (Column.FieldName='Finish_Actual')
and (grid.dataSource.DataSet.FieldByName('Finish_actual').AsString='')
and (grid.dataSource.DataSet.FieldByName('Check_List').AsString='OPEN')
then
begin
grid.Canvas.Brush.Color := clSilver;
grid.ReadOnly:=true;
end;
//
if grid.dataSource.DataSet.FieldByName('Stat').AsString='OVERDUE'
then grid.Canvas.Brush.Color := TColor($9370DB);
//
if grid.dataSource.DataSet.FieldByName('Stat').AsString='SOONOVER'
then grid.Canvas.Brush.Color := clyellow;
//
grid.DefaultDrawColumnCell(Rect, DataCol, Column, State) ;
end;