private
{ Private declarations }
FBook: string;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
Caption := Format('%.6f', [Now]);
Edit1.Visible := TDBGrid(Sender).SelectedField.FieldName = 'id';
if (TDBGrid(Sender).SelectedField.FieldName = 'id') and (Column.FieldName = 'id') and
(TDBGrid(Sender).DataSource.DataSet.Book = FBook) then begin
Edit1.Top := Rect.Top;
Edit1.Left := Rect.Left;
Edit1.Width := Rect.Right - Rect.Left + 1;
Edit1.Height := Rect.Bottom - Rect.Top + 1;
Edit1.SetFocus;
FBook := '';
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Parent := DBGrid1;
end;procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
FBook := TDataSource(Sender).DataSet.Book;
end;
{ Private declarations }
FBook: string;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
Caption := Format('%.6f', [Now]);
Edit1.Visible := TDBGrid(Sender).SelectedField.FieldName = 'id';
if (TDBGrid(Sender).SelectedField.FieldName = 'id') and (Column.FieldName = 'id') and
(TDBGrid(Sender).DataSource.DataSet.Book = FBook) then begin
Edit1.Top := Rect.Top;
Edit1.Left := Rect.Left;
Edit1.Width := Rect.Right - Rect.Left + 1;
Edit1.Height := Rect.Bottom - Rect.Top + 1;
Edit1.SetFocus;
FBook := '';
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Parent := DBGrid1;
end;procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
FBook := TDataSource(Sender).DataSet.Book;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货