gridEh的bug

grideh的bug,delphi和c++builder都存在。

RAD自带的原始grid控件是好的。

procedure TForm12.DBGridEh2ColExit(Sender: TObject);
begin
  if DBGridEh2.SelectedField.FieldName = 't2' then
    Button1.Click();
end;

procedure TForm12.Button1Click(Sender: TObject);
begin
  FDMemTable1.Append;
  FDMemTable1.Fields.Fields[0].Value := 1;
  ShowMessage('wait');
end;

wait对话框关闭前,没有新纪录出现

fix  解决方法,用timer延迟调用或线程。

procedure TForm12.DBGridEh1ColExit(Sender: TObject);
begin
  if DBGridEh1.SelectedField.FieldName = 't2' then
    TThread.CreateAnonymousThread(
      procedure()
      begin
        Button1.Click();
      end).Start;

  // Timer1.Enabled := true;
end;

procedure TForm12.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := false;
  self.Button1.Click;
end;

Timer1.Interal=10;设置很短,感觉不到延迟。

原文地址:https://www.cnblogs.com/cb168/p/6891990.html